2006-12-24 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-12-24  Chris Toshok  <toshok@ximian.com>
2
3         * Control.cs: corecompare work here too.
4
5         * DataGridViewElement.cs, DataGridView.cs,
6         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
7         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
8         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
9         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
10         work.
11
12 2006-12-24  Miguel de Icaza  <miguel@novell.com>
13
14         * Control.cs: Switched the error message on the console for a
15         todo.  A review of the code will have to cope with this anyways
16         (since its a large feature, it is in our radar) and it was
17         producing too much output when running PDN.
18
19         * ToolStripComboBox.cs: Set the text when the SelectedIndex
20         changes.  Applications depend on this (PDN 2.72)
21
22 2006-12-23  Chris Toshok  <toshok@ximian.com>
23
24         * TableLayoutSettings.cs: finish up the corcompare work for this
25         class.
26
27 2006-12-23  Chris Toshok  <toshok@ximian.com>
28
29         * Control.cs: make SetImplicitBounds internal, do some futzing
30         with LayoutEngine so that it's available in 1.1, and remove the
31         entire duplicated code mess from PerformLayout.  Use
32         System.Windows.Forms.Layout.DefaultLayout instead.
33
34         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
35
36 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
37
38         * Form.cs: Add MainMenuStrip property.
39
40 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
41
42         * Control.cs: Add ContextMenuStrip property and implementation.
43         Fix ContextMenu implementation to show menu centered on control when
44         activated using the keyboard instead of showing at screen (0,0).
45
46         * ToolStripDropDown.cs: Fix needed overload of Show ().
47
48 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
49
50         * Menu.cs: Name property added for 2.0 profile.
51         
52 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
53
54         * Menu.cs: Update information about FindMenuItem, method to be
55         implemented soon.
56
57 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
58
59         * MenuAPI.cs: When deselect items deselect also selected subitems.
60         
61 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
62
63         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
64         FindSubItemByCoord to found itens that is not active, also an
65         cheking added to FindSubItemByCoord to search for items only 
66         in visible popup windows. Fixes #80274.
67
68 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
69
70         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
71         internal property, it be care about change ExStyle. 
72
73 2006-12-22  Andreia Gaita  <avidigal@novell.com>
74
75         * ContainerControl.cs: set activeControl for parent forms up the 
76         tree when the new activecontrol is a container.
77         When validating the active control, if it is a container, also
78         raise up the validation for it's active control. Fixes #80280
79         
80         * Control.cs: Add internal property flag and check to prevent
81         Focus events from getting raised when Select() is called for
82         a ContainerControl. There are still too many focus events being
83         raised at the moment though.
84         Cleaned up the code a bit.
85
86 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
87
88         * Control.cs: Added all missing 2.0 events.and
89         fixed a couple of corcompare issues.
90         * TrackBar.cs: Implemented missing 2.0 bits.
91         * MonthCalendar.cs, 
92         * DateTimePicker.cs, 
93         * MdiClient.cs: Fixed some corcompare issues.
94
95 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
96
97         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
98         SplitterPanel.cs: corecompare work.
99
100 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
101
102         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
103         Clean up warnings for BackgroundImageChanged and PaddingChanged
104         events now that they are implemented in Control.cs.
105
106 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
107
108         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
109         
110         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
111         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
112         of TableLayoutPanel and supporting cast.
113
114 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
115
116         * XplatUIWin32.cs: 
117         - GrabWindow now confines the mouse pointer to the confine window.
118         - Added Win32ClipCursor and Win32GetClipCursor.
119
120         * Control.cs: 
121         - Added CaptureWithConfine to be able to capture and confine 
122         mouse pointer.
123         
124         * InternalWindowManager.cs: 
125         - Call CaptureWithConfine instead of Capture if we're an
126         MdiChild (fixes #79982).
127
128 2006-12-21  Chris Toshok  <toshok@ximian.com>
129
130         * DataGrid.cs: guard against the initial state of selection, where
131         selection_start == -1.  make sure we only select from index >= 0.
132         Fixes bug #80291.
133
134 2006-12-21  Chris Toshok  <toshok@ximian.com>
135
136         * Control.cs: we don't need to be so draconian with
137         UpdateDistances, and we thusly don't need to call it before
138         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
139
140 2006-12-21  Daniel Nauck  <dna@mono-project.de>
141
142         * ComboBox.cs,
143         TextBox.cs: Implemented AutoComplete properties.
144
145 2006-12-20  Chris Toshok  <toshok@ximian.com>
146
147         * DataGridView*.cs: some corecompare work.
148
149 2006-12-20  Jackson Harper  <jackson@ximian.com>
150
151         * XplatUIX11.cs: We need to hide the caret when deleting it,
152         otherwise you get carets left lying around everywhere.
153         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
154         prevents getting some weird half drawn caret tracers when
155         scrolling.
156         * TextControl.cs: Attempt to reduce the number of times we need to
157         recreate the caret.
158
159 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
160
161         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
162
163 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
164
165         * DateTimePicker.cs:
166         - Implemented missing 2.0 bits.
167         - Changed some default values to match MS.
168         
169 2006-12-20  Jackson Harper  <jackson@ximian.com>
170
171         * TextBoxBase.cs: When changing the font across the document we
172         can't recalculate after changing each line, since that will cahnge
173         the line count.
174         - PreferredHeight is a little different than i thought.
175         - When backspacing, move the caret before we do the actual char
176         delete, because when that delete crosses a wrap boundary the
177         positional information will change.
178
179 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
180
181         * Control.cs: Added some missing 2.0 bits: 
182         BackgroundImageLayout, BackgroundImageLayoutChanged, 
183         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
184         add IBindableComponent and IDropTarget implementation.
185         
186         * MonthCalendar.cs: 
187         - Added all missing 2.0 features:
188         BackgroundImageLayout, RightToLeftLayout, 
189         OnHandleDestroyed, RightToLeftLayoutChanged, 
190         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
191         PaddingChanged.
192         - Rewrote all the BoldDate code, it was completely broken.
193         - Fixed all the tests (the tests can now be re-enabled, the
194         problems were not with the tests, but with the control, it was
195         mostly broken).
196         
197         * DateTimePicker.cs: Changed the location where the 
198         MonthCalendar is shown.
199         
200 2006-12-19  Chris Toshok  <toshok@ximian.com>
201
202         * DataGridView.cs: add IDropTarget implementation.
203
204         * ToolStripPanel.cs: add IDropTarget implementation.
205
206 2006-12-19  Jackson Harper  <jackson@ximian.com>
207
208         * TextControl.cs: soft now means something different than what it
209         used to mean, we want to move the caret regardless of whether or
210         not this break was soft (would we really have wanted the caret
211         to not move with the break in the old context?)
212         * TreeView.cs: Make sure we factor in the vert scrollbar when
213         calculating the horizontal scrollbar's maximum.
214
215 2006-12-19  Andreia Gaita  <avidigal@novell.org>
216
217         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
218         check for keywords in alternate casing, close bug #80049.
219
220 2006-12-19  Chris Toshok  <toshok@ximian.com>
221
222         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
223         methods (which all do nothing).
224
225         * IDropTarget.cs: add the 4 missing methods.
226
227 2006-12-19  Chris Toshok  <toshok@ximian.com>
228
229         * TableLayoutRowStyleCollection.cs: corcompare work.
230         
231         * TableLayoutSettings.cs: same.
232
233         * TableLayoutStyle.cs: same.
234
235         * TableLayoutColumnStyleCollection.cs: same.
236
237 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
238
239         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
240         TableLayoutPanel I've had in my local tree for way too long.
241
242 2006-12-19  Miguel de Icaza  <miguel@novell.com>
243
244         * TableLayoutSettings.cs: Finish the public API (still needs all
245         the logic to update on changes). 
246
247         * TableLayoutPanelCellPosition.cs: new file.
248         
249         * TableLayoutRowStyleCollection.cs,
250         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
251         TableLayoutSettings.cs: Track the final 2.0 table api.
252
253 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
254
255         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
256         and Image List 2.0 members for ColummnHeader.
257         * ListView.cs: Add key-related 2.0 methods for
258         ColumnHeaderCollection.
259
260 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
261
262         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
263         ArgumentNullException if items argument is null. Ignore null item in
264         arrays. Removed extra tabs.
265
266 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
267
268         * MonthCalendar.cs: Fixed InvalidCastException.
269
270 2006-12-19  Jackson Harper  <jackson@ximian.com>
271
272         * TextControl.cs: Don't increment the position here.
273         - When calculating char positions only add in the line break size
274         for hard line breaks.
275
276 2006-12-19  Andreia Gaita  <avidigal@novell.org>
277
278         * SendKeys.cs: Changed some things to match ms.net behaviour
279         when parsing shifted capital letters.
280         
281         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
282         Add window handle as parameter to SendInput. X11 needs the 
283         window handle, and the handle being passed      to it in the keys 
284         queue is the active control handle (which windows needs), not 
285         the window handle.
286         
287         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
288         to support SendKeys on X.       
289         
290         * X11Keyboard: Implement helper method to lookup a linux keycode
291         given the virtual keycode. Added table of keycode-2-virtualkey
292         values to support this.
293
294 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
295
296         * ListView.cs: Add support for SelectedIndexCollection
297         and SelectedItemCollection 2.0 methods. Implement support
298         for ImageKey too.
299         * ListViewItem.cs: Add support for ListViewSubItemCollection
300         2.0 methods. Also, fix an incorrect behavior of AddRange method
301         (it shouldn't call Clear).
302         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
303
304 2006-12-19  Jackson Harper  <jackson@ximian.com>
305
306         * RichTextBox.cs: 
307         * TextBoxBase.cs: New args for FormatText
308         * TextControl.cs: Rewrote the main drawing method, this version
309         feels a little easier to understand and debug to me.  Hopefully it
310         does to others also
311         - Fix FormatText to OR in the new formating values.  Added
312         FormatSpecified param, basically this works in the same way as
313         BoundsSpecified in Control.
314         - Set the caret properties when the caret is positioned.
315         - When wrapping text make sure that we calculate the width of the
316         last character
317         - when calculating alignments we might have wrapped down to the
318         next line, so don't search for an individual tag, search for the
319         end of the line
320         - We need to invalidate the selection area when we replace the
321         selection.
322         
323 2006-12-19  Daniel Nauck  <dna@mono-project.de>
324
325         * Application.cs: add Restart () 2.0 support
326
327 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
328
329         * MenuItem.cs: Invalidate menu item rectangle after change Enable
330         property. Fixes #80268.
331         
332 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
333
334         * MenuAPI.cs: Dont trigger select event when closes top menu
335         item. Fixes #80270.
336
337 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
338
339         * MenuAPI.cs: When you click on menuitem only trigger onselect
340         event for top menu itens. Fixes #80271.
341         
342 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
343
344         * MdiWindowManager.cs: Make IconicBounds depend on
345         the bottom of MdiClient, not the top (fixes #80267)
346         
347 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
348
349         * MdiClient.cs: Added missing 2.0 attribute
350
351 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
352
353         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
354         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
355
356 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
357
358         * MenuAPI.cs: Fix click when menuitem is not popup,
359         this regression was caused by last commit (#80272).
360
361 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
362
363         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
364         fire click event or close menu. Fixes #80272.
365
366 2006-12-17  Daniel Nauck  <dna@mono-project.de>
367
368         * ListViewHitTestInfo.cs: add
369
370 2006-12-17  Daniel Nauck  <dna@mono-project.de>
371
372         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
373         * FlatButtonAppearance.cs: add
374         * DockingAttribute.cs: add
375
376 2006-12-17  Chris Toshok  <toshok@ximian.com>
377
378         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
379         and rebind our columns when it does - this way, if you make
380         changes to the DataTable (or set the Table attribute on a DataView
381         after setting it as the DataGrid's DataSource, the changes are
382         made visible.)  Fixes bug #80107.
383
384 2006-12-17  Daniel Nauck  <dna@mono-project.de>
385
386         * ListViewGroup.cs: add internal Location property for layouting.
387         * Theme.cs: add abstract ListViewGroupHeight function.
388         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
389
390 2006-12-16  Andreia Gaita  <avidigal@novell.com>
391
392         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
393         Added reset of selected index to 0 when adding first tab page.
394         Fixes #80264
395         
396         * NumericUpDown.cs: Fix NET_2_0 check
397
398 2006-12-16  Daniel Nauck  <dna@mono-project.de>
399
400         * ListViewGroup.cs: fixed DefaultValueAttribute value
401
402 2006-12-16  Daniel Nauck  <dna@mono-project.de>
403
404         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
405
406 2006-12-15  Miguel de Icaza  <miguel@novell.com>
407
408         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
409         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
410         ScrollableControl.cs: Add a handful of methods that are
411         overwritten in 2.0 
412
413 2006-12-15  Chris Toshok  <toshok@ximian.com>
414
415         * XplatUIWin32.cs: initial implementation of the Reversible
416         drawing functions.  there are some problems.  DrawReversibleFrame
417         doesn't seem to work at all for Dashed FrameStyle, and in the
418         Thick case there are drawing errors at the corners (we probably
419         need to bind Rectangle instead of doing moveto/lineto's.)
420
421 2006-12-16  Andreia Gaita  <avidigal@novell.com>
422         
423         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
424         to send blocks of key messages. Send accumulates keys to send with Flush, 
425         while SendWait sends all keys immediately.
426                 
427         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
428         XplatUIX11.cs,  XplatUIX11-new.cs:
429         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
430         to Win32 SendInput.
431         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
432         
433         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
434         testing for ms.net on this class is very tricky, as the tests run too fast 
435         to allow the hook to release, essentially freezing the keyboard and the 
436         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
437         category :p
438
439 2006-12-16  Daniel Nauck  <dna@mono-project.de>
440
441         * Padding.cs: fixed serialization compability to MS ("_var" field names),
442                         added missing attributes.
443  
444 2006-12-15  Daniel Nauck  <dna@mono-project.de>
445
446         * ListViewGroup.cs: Added missing attributes.
447         * ListViewGroupCollection.cs: Added missing attributes.
448
449 2006-12-15  Daniel Nauck  <dna@mono-project.de>
450
451         * ListViewItem.cs: fixed ListViewSubItem text property.
452
453 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
454         
455         * Control.cs: Added missing 2.0 attributes
456         
457 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
458         
459         * MdiClient.cs: Added missing 2.0 attribute.
460         * MonthCalendar.cs: Added some missing 2.0 attributes 
461         and properties.
462         
463 2006-12-15  Daniel Nauck  <dna@mono-project.de>
464
465         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
466
467 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
468
469         * MainMenu.cs: Add the new 2.0 constructor to help out people
470         using the MainMenu in VS2005.
471
472 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
473         
474         * MdiChildContext.cs: Removed it, no longer used.
475         * MdiClient.cs: Added missing 2.0 attributes.
476         
477 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
478         
479         * InternalWindowManager.cs: Fix a NullRef with previous 
480         changes for toolwindows.
481         
482 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
483
484         * Control.cs: 
485         - Added AfterTopMostControl to allow for certain controls 
486         to always stay on top when normal controls are brought to 
487         front.
488         
489         * XplatUIWin32.cs: 
490         - (DrawInversibleRectangle): Get window rectangle from Win32 
491         in stead of from control, since Win32 doesn't calculate
492         screen coords correctly from control's Location if it 
493         have docked siblings.
494         
495         * MdiWindowManager.cs:
496         - Correct the control menu popup location when clicked on
497         the maximized form icon. (fixes #80223.1)
498         - Don't show moving rectangle if mouse hasn't moved from
499         the original clicked point.
500         - Removed FormGotFocus handler (not used).
501         - Calculate the control buttons location from the main
502         window's size and not client size (fixes #79770).
503         - Form is now closed when the form icon is double-clicked
504         (fixes #79775). 
505         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
506         
507         * InternalWindowManager.cs:
508         - Moved some MDI-only methods to MdiWindowManager.
509         - Removed unused properties and methods.
510         - Unified method naming for methods handling wm messages.
511         - Moved all message handling to seperate methods for
512         each message.
513         
514         * ThemeWin32Classic.cs:
515         - DrawManagedWindowDecorations now draws the title bar 
516         with a gradient brush.
517         - Add a CPDrawButtonInternal that allows us to specify
518         light, normal and dark colors for the buttons (control 
519         buttons for MDI children were drawn with the same light
520         color as the background, therefore loosing the 3D effect).
521         
522         * SizeGrip.cs:
523         - Add a CapturedControl property that is used to 
524         determine the control to resize (defaults to parent). 
525         Needed for MdiClient, since its SizeGrip's parent is
526         MdiClient, but the control to resize is the main form.
527         
528         * MdiClient.cs:
529         - Set SizeGrip's CapturedControl to the main form in order
530         to resize the main form and not the MdiClient.
531         - Override AfterTopMostControl to leave the scrollbars 
532         always on top.
533
534 2006-12-15  Daniel Nauck  <dna@mono-project.de>
535
536         * ListView.cs: fixed ListViewItemCollection AddRange and
537                         implemented ListViewItemCollection AddRange 2.0 support.
538
539 2006-12-15  Daniel Nauck  <dna@mono-project.de>
540
541         * ListViewGroup.cs: Add.
542         * ListViewGroupCollection.cs: Add
543         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
544         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
545                                 stub for ImageKey 2.0 support.
546
547 2006-12-14  Mike Kestner  <mkestner@novell.com>
548
549         * ListView.cs: add text padding to the autocalculation for columns
550         of width -2.  Fixes #80207.
551  
552 2006-12-14  Mike Kestner  <mkestner@novell.com>
553
554         * ListView.cs: add some index guarding for partial row navigation 
555         logic.  Fixes #80250.
556
557 2006-12-14  Mike Kestner  <mkestner@novell.com>
558
559         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
560         are added or inserted to the collection.  Fixes #81099.
561
562 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
563
564         * MenuAPI.cs: Closes menu when right click out side of popup
565         it fix problem in ContextMenu and MainMenu. Fixes #80252.
566
567 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
568
569         * ListViewItem.cs: Fix dumb error.
570
571         * ListView.cs: Add Find and ContainsKey methods in 
572         ListViewItemCollection, and also return true for IsReadOnly
573         and IsFixedSize (changes for 2.0). 
574
575 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
576
577         * Control.cs: Allow Region to be set to null.
578
579 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
580
581         * MdiWindowManager.cs: Remove unused (commented out) code.
582         * Form.cs: When the MdiChild is maximized, the form needs 
583         WM_NCMOUSELEAVE, so request it.
584         * InternalWindowManager.cs: 
585         - Added tooltips to control buttons.
586         - Removed duplicated control button handling code.
587         - Removed unused (commented out) code.
588         
589 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
590
591         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
592         was used because we must set cursor without trigger ChangeCursor event
593         and without change Cursor control property. Fixes #79963.
594
595 2006-12-12  Andreia Gaita  <avidigal@novell.com>
596         
597         * Control.cs: Check if Region setter value is null, and ignore
598
599 2006-12-12  Jackson Harper  <jackson@ximian.com>
600
601         * TextControl.cs: We were almost always drawing one more line then
602         needed, since the GetLineByPixel will return the last line found
603         at that pixel. In most cases though, we were invalidating up to
604         the junction between two lines.
605         - Improve debug code.
606
607 2006-12-12  Chris Toshok  <toshok@ximian.com>
608
609         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
610         and FillReversibleRectangle.
611
612         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
613         and FillReversibleRectangle.
614
615         * XplatUIWin32.cs: add stubs which do nothing for
616         DrawReversibleFrame, DrawReversibleLine, and
617         FillReversibleRectangle.
618
619         * XplatUIOSX.cs: add stubs which raise NIE for
620         DrawReversibleFrame, DrawReversibleLine, and
621         FillReversibleRectangle.
622
623         * XplatUIX11.cs: add working implementation for
624         DrawReversibleFrame, DrawReversibleLine, and
625         FillReversibleRectangle.
626         
627         * ControlPaint.cs: implement DrawReversibleFrame,
628         DrawReversibleLine, and FillReversibleRectangle, by calling into
629         the appropriate XplatUI method.
630
631 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
632
633         * Form.cs: Make MdiClient have the focus even if it's
634         not selectable, since it should receive WM_KEY* and WM_MOUSE 
635         messages. Fixes #79907.
636         
637 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
638
639         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
640         queried after the window is created.
641         
642         * XplatUIX11.cs: Added SendParentNotify to implement 
643         WM_PARENTNOTIFY logic. Fixes #79965.
644         
645         * Control.cs: Added MakeParam.
646         
647 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
648
649         * MdiClient.cs: Resume Layout before setting window
650         states (fixes #80201).
651
652 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
653
654         * MenuAPI.cs: Deselect a menu item after performing
655         the click (fixes #80197).
656
657 2006-12-11  Jackson Harper  <jackson@ximian.com>
658
659         * TextBoxBase.cs: We need to cap this value, since Maximum -
660         ViewPortHeight can be less than zero.
661         - Only do selection with the left mouse button.
662         * TextBox.cs: Don't tell the world that we have a context menu.
663         * Control.cs: New method so that we can control whether or not the
664         context menu is visible outside MWF.
665
666 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
667
668         * ToolBarButton.cs: Fix text positon. 
669
670 2006-12-11  Miguel de Icaza  <miguel@novell.com>
671
672         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
673
674         * Control.cs (DoubleBuffered): Add implementation.
675
676         * Application.cs (OpenForms): Add.
677
678 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
679
680         * Form.cs: Use opacity instead of Opactiy to determine if we need
681         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
682
683 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
684
685         * Control.cs: Fix NRE if Control.Site was set to null.
686
687 2006-12-11  Chris Toshok  <toshok@ximian.com>
688
689         * Control.cs: ControlCollection.Remove should return if the arg is
690         null, and ControlCollection.SetChildIndex should raise a ANE.
691
692 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
693
694         * Control.cs: Verify value set for Dock property. Code formatting
695         updates.
696
697 2006-12-11  Jackson Harper  <jackson@ximian.com>
698
699         * TextControl.cs: Draw the caret and the selection when a flag is
700         set on the owner.
701         * TextBoxBase.cs: We want to draw the caret and the selection for
702         TextBox but not for TextBoxBase.
703         - If the window is resized and scrolling is no longer needed (the
704         whole doc is visible) set the scroll position to zero.
705         - The default SelectWord (the one TextBox uses) should move the
706         caret to the end of the word.
707         - SelectAll moves the caret to the end of the selection.
708         * TextBox.cs: We don't selectall on focus, we just do it when the
709         control is created.
710         
711 2006-12-11  Mike Kestner  <mkestner@novell.com>
712
713         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
714
715 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
716
717         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
718         2.0 support.
719         * ListViewItem.cs: Add Name 2.0 property.
720
721 2006-12-11  Andreia Gaita  <avidigal@novell.com>
722
723         * TabControl.cs: Set visibility on selected or default tab 
724         when tabcontrol handle is created, so that it's contents
725         actually show up (duh). Fixes #80193
726         Don't redraw the control if there is no handle created, as
727         the selected index might be completely invalid. Added some tests
728         to check for this.
729
730 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
731
732         * ToolBar.cs: Uses maximun width and height of all buttons as 
733         button rectangle when ButtonSize specified, it looks strange but
734         is what happens in Win32. Fixes #80189.
735
736 2006-12-11  Jackson Harper  <jackson@ximian.com>
737
738         * TextControl.cs: Need to track undo levels ourself, since
739         compound actions will mess them up.
740
741 2006-12-10  Andreia Gaita  <avidigal@novell.com>
742
743         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
744         SelectedIndex value is changed (even if it's not valid).
745         Reset SelectedIndex to 0 when the handle is created and if
746         the current index is invalid.
747         Fixes SelectdeIndex unit tests and #80128
748
749 2006-12-08  Chris Toshok  <toshok@ximian.com>
750
751         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
752         calls EndEdit, it needs to be called before we set current_cell to
753         its new value.  Otherwise, we end up committing the value in the
754         textbox to the new cell as well.  Fixes bug #80160.
755
756 2006-12-08  Chris Toshok  <toshok@ximian.com>
757
758         * Form.cs (set_CancelButton): if the button's DialogResult is
759         None, set it to Cancel.  Fixes bug 80180.
760
761 2006-12-08  Jackson Harper  <jackson@ximian.com>
762
763         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
764         to watch ourselves when setting the canvas size and setting the
765         scrollbar values.
766
767 2006-12-08  Chris Toshok  <toshok@ximian.com>
768
769         * DataGrid.cs: comment out the two MakeTransparent calls for the
770         time being so people using trunk (and not 1.2.2) on windows can
771         actually use the datagrid.  This deals with bug #80151.
772
773 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
774
775         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
776         Graphics.DrawImage (image, int, int, int, int) overload instead
777         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
778         the dpi difference and was blurring images it drew.
779         [Fixes bug #79960]
780
781 2006-12-08  Chris Toshok  <toshok@ximian.com>
782
783         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
784         rowcnt is 0 (such as with an empty datasource), and make sure we
785         initialize not_usedarea.Y to cells.Y, so we don't draw over the
786         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
787
788 2006-12-08  Chris Toshok  <toshok@ximian.com>
789
790         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
791         grid.
792
793 2006-12-08  Chris Toshok  <toshok@ximian.com>
794
795         [ Fixes bug #80167 ]
796         
797         * ThemeWin32Classic.cs: don't draw the image if the button's flat
798         style is FlatStyle.System.
799
800         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
801         ButtonBase.flat_style private, and switch uses of it to the public
802         property.
803         
804 2006-12-08  Chris Toshok  <toshok@ximian.com>
805
806         [ Fixes bug #80121 ]
807         
808         * ThemeWin32Classic.cs: center the caption text in the datagrid
809         when we draw it.
810
811         * DataGrid.cs: lessen the amount we add to the caption height from
812         6 to 2.  6 was making it huge.
813
814 2006-12-08  Andreia Gaita  <avidigal@novell.com>
815
816         * UpDownBase: Handle MouseWheel call directly instead of capturing
817         the inner textbox's OnMouseWheel. Fixes #80166
818
819 2006-12-08  Jackson Harper  <jackson@ximian.com>
820
821         * TextControl.cs: We need to invalidate the textbox when we empty
822         it (how had this not been discovered before?)
823
824 2006-12-08  Jackson Harper  <jackson@ximian.com>
825
826         * TextBoxBase.cs: Reworked the mouse down code so I could get it
827         to behave like MS, we now ignore the eventargs.Click and just
828         track state ourself, which we were already doing anyways.
829         - Constrain the double click handler to the double click size.
830         
831 2006-12-08  Chris Toshok  <toshok@ximian.com>
832
833         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
834         direction if that scrollbar isn't shown.  fixes bug #80158.
835
836 2006-12-08  Andreia Gaita  <avidigal@novell.com>
837
838         * NumericUpDown.cs: Update value on getter. Fixes #79950
839
840 2006-12-08  Chris Toshok  <toshok@ximian.com>
841
842         * MenuItem.cs: add back in the event cloning code.  I didn't know
843         how to do it in the face of the EventHandlerList work i'd done
844         last week.  Fixes bug #80183.
845
846 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
847
848         * Control.cs: Add an invalidate to the BackgroundImage setter.
849         [Fixes 80184]
850
851 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
852
853         * ToolStrip*: Add some small properties reported by MoMA, fix event
854         firing and default properties based off of unit tests, and add some
855         attributes based off of the class status page.
856
857 2006-12-07  Jackson Harper  <jackson@ximian.com>
858
859         * TextBoxBase.cs: Take HideSelection into account when determining
860         whether or not to show the selection.
861         * RichTextBox.cs: After inserting the RTF into the document move
862         the cursor to the beginning of the document.
863
864 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
865
866         * Control.cs: Remove static ArrayList "controls" which maintained
867         a reference to every control created.
868         * Application.cs: Create a static FormCollection to maintain a reference
869         to every form created.  Use it in places that formerly enumerated through
870         the controls one looking for forms.
871         * Form.cs: Add and remove self from above FormCollection.
872
873 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
874
875         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
876           not libgdk (though it makes me wonder why I didn't have any
877           problems)
878
879 2006-12-07  Chris Toshok  <toshok@ximian.com>
880
881         [ you had to know this was coming after that last commit...]
882         
883         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
884         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
885         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
886         XCopyArea).
887
888 2006-12-07  Chris Toshok  <toshok@ximian.com>
889
890         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
891         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
892         all the behavior we need for double buffering.
893
894         * XplatUIDriver.cs: implement the 3 double buffer methods using a
895         client side Bitmap, just like the old Control-based double buffer
896         code did.  The methods are virtual, so each XplatUI driver
897         subclass can replace the implementation to use a faster, platform
898         specific approach.
899
900         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
901         double buffer code, and clean things up a bit in the process.
902
903 2006-12-06  Chris Toshok  <toshok@ximian.com>
904
905         * Control.cs: reindent WndProc.
906
907 2006-12-06  Chris Toshok  <toshok@ximian.com>
908
909         [ I wanna be like BenM when I grow up ]
910         
911         * Hwnd.cs: create a single static Graphics object on the static
912         Bitmap we create.  use this for our text measurements.
913
914         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
915         This was causing us to allocate a backbuffer for every control,
916         even when it wasn't flagged as double buffered.  Instead use the
917         single graphics instance.  This might have implications for
918         multithreaded applications.  If we run into problems we can switch
919         to creating 1 Graphics per control, on the static Hwnd bitmap.
920
921         this change nets us a 7M savings in private dirty mappings when
922         running FormsTest.exe.
923
924 2006-12-06  Chris Toshok  <toshok@ximian.com>
925
926         * ListView.cs: the BackgroundImage override is just to set
927         attributes.  chain up to base.BackgroundImage.
928
929         * RichTextBox.cs: same.
930
931         * ToolBar.cs: same, but we need to also redraw the toolbar when it
932         changes, so instead a handler for BackgroundImageChanged.
933         
934         * Control.cs: make background_image private.
935
936 2006-12-06  Chris Toshok  <toshok@ximian.com>
937
938         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
939         sure we even need this assignment, but roll with it for now.
940
941         * Control.cs: make the cursor field private.
942
943 2006-12-06  Chris Toshok  <toshok@ximian.com>
944
945         * Form.cs: we don't need to explicitly set ImeMode to
946         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
947         behavior in the face of ImeMode.Inherit.
948
949         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
950         change the ctor's assignment to use ImeMode instead of ime_mode.
951
952         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
953         ImeModeInherit.  Only check for the parent's imemode (and return
954         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
955         This fixes the button unit test, which sets both ImeMode and
956         DefaultImeMode to ImeMode.Disable.
957
958         also make the ime_mode field private.
959
960 2006-12-06  Chris Toshok  <toshok@ximian.com>
961
962         * Control.cs: make control_style private.
963
964         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
965         setting the styles to true, then setting them to false instead of
966         reverting to their previous values.
967
968         also, call SetStyle on the scrollbars instead of using
969         control_style directly.
970
971 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
972
973         * FormCollection.cs: Implement. [2.0]
974
975 2006-12-06  Chris Toshok  <toshok@ximian.com>
976
977         * Control.cs: make tab_stop private.
978
979         * Label.cs: set TabStop, not tab_stop.  reformat some event
980         add/remove methods to make them more compact.
981
982 2006-12-06  Chris Toshok  <toshok@ximian.com>
983
984         * RadioButton.cs: fix TabStop handling.
985
986 2006-12-06  Chris Toshok  <toshok@ximian.com>
987
988         * TextBox.cs: remove the explicit assignments to has_focus.
989         Control does that.
990
991         * ButtonBase.cs: remove the assignment to has_focus.  Control will
992         manage that.
993         
994 2006-12-06  Chris Toshok  <toshok@ximian.com>
995
996         * ButtonBase.cs: remove all uses of is_enabled from this code.
997         it's always true when any of the code containing the checks is
998         executed.
999
1000 2006-12-06  Chris Toshok  <toshok@ximian.com>
1001
1002         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
1003         with different semantics (some are present in both 1.1 and 2.0
1004         profiles) so that we match MS's behavior in our unit tests.
1005
1006 2006-12-06  Jackson Harper  <jackson@ximian.com>
1007
1008         * TextControl.cs: Make this operation undoable.
1009         * TextBoxBase.cs: Factor the border width into the preferred
1010         height.
1011         - implement Modified as per the spec.
1012
1013 2006-12-06  Chris Toshok  <toshok@ximian.com>
1014
1015         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
1016
1017 2006-12-06  Chris Toshok  <toshok@ximian.com>
1018
1019         * Control.cs: make right_to_left and context_menu fields private.
1020
1021 2006-12-06  Chris Toshok  <toshok@ximian.com>
1022
1023         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
1024         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
1025         Control.child_controls private.  switch all uses over to
1026         Control.Controls.
1027
1028 2006-12-06  Chris Toshok  <toshok@ximian.com>
1029
1030         * System.Windows.Forms/GroupBox.cs,
1031         System.Windows.Forms/AccessibleObject.cs,
1032         System.Windows.Forms/ErrorProvider.cs,
1033         System.Windows.Forms/Control.cs,
1034         System.Windows.Forms/UpDownBase.cs,
1035         System.Windows.Forms/ScrollBar.cs,
1036         System.Windows.Forms/DateTimePicker.cs,
1037         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
1038         System.Windows.Forms/ToolTip.cs,
1039         System.Windows.Forms/RadioButton.cs,
1040         System.Windows.Forms/LinkLabel.cs,
1041         System.Windows.Forms/Splitter.cs,
1042         System.Windows.Forms/TextBoxBase.cs,
1043         System.Windows.Forms/ToolStripTextBox.cs,
1044         System.Windows.Forms/ContainerControl.cs,
1045         System.Windows.Forms/ThemeWin32Classic.cs,
1046         System.Windows.Forms/SizeGrip.cs,
1047         System.Windows.Forms/ToolStripDropDown.cs,
1048         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
1049         private.  switch all uses over to Control.Parent.
1050
1051 2006-12-06  Chris Toshok  <toshok@ximian.com>
1052
1053         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
1054         Control does this before calling emitting these events.
1055
1056         * TabControl.cs: same.
1057
1058         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
1059         Control.client_rect.
1060
1061         * ButtonBase.cs: use the ClientSize property instead of the
1062         client_size field.
1063
1064         * ScrollableControl.cs: same.
1065
1066         * Control.cs: another pass at making properties private.  also,
1067         move the initialization of tab_stop to the ctor.
1068
1069 2006-12-05  Andreia Gaita <avidigal@novell.com>
1070
1071         * TabControl.cs: Let the selected index be set freely if the 
1072         control handle is not yet created.
1073
1074 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
1075
1076         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
1077         internal until I can rewrite DefaultLayout.
1078         * ToolStrip.cs: Fix build error and some general cleaning.
1079         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
1080         Fix build errors caused by making some of Control's fields private.
1081
1082 2006-12-05  Jackson Harper  <jackson@ximian.com>
1083
1084         * TextControl.cs: Redo Insert a little so that it use IndexOf
1085         instead of Split, this prevents it from messing up on things like
1086         \n\n\n. Also more effecient since the split array doesn't need to
1087         be created.
1088         * TextBoxBase.cs: AppendText doesnt handle multiline and non
1089         multiline text differently, this is the first of many fixes that
1090         will make multiline/non-multiline the same thing as far as the
1091         TextBoxBase is concerned.
1092         - Don't split the text and insert lines, this can lose some line
1093         endings (like is the last line a soft or hard break). Instead use
1094         the new Insert.
1095         - Fix an off by one when combining all the lines in the Text
1096         getter.
1097         - Remove separate multiline handling from the Text getter/setter.
1098
1099 2006-12-05  Chris Toshok  <toshok@ximian.com>
1100
1101         * ButtonBase.cs: a few changes:
1102
1103         - don't reinitialize internal Control fields in the ctor when they
1104         have the same values as Control sets them.
1105
1106         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
1107         this before calling those methods.
1108
1109         - we don't need to call Refresh for anything.  use Invalidate
1110         instead.
1111
1112         - OnEnabledChanged doesn't need to redraw at all - Control.cs
1113         calls Refresh in its OnEnabledChanged.
1114         
1115         - several of the events we were registered for in the ctor to
1116         redraw ourselves already include calls to Invalidate in the
1117         property setters that raise the events.  remove the extra
1118         invalidation.
1119
1120         - reformat a switch statement that was 83274658 columns wide.
1121         
1122 2006-12-05  Mike Kestner  <mkestner@novell.com>
1123
1124         * ComboBox.cs: fix a unit test regression from a TextBox
1125         SelectionLength return of -1 when there's no selection.  
1126
1127 2006-12-05  Chris Toshok  <toshok@ximian.com>
1128
1129         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
1130         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
1131         cleaning up some of the internal Control fields being used by
1132         subclasses.
1133
1134 2006-12-05  Mike Kestner  <mkestner@novell.com>
1135
1136         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
1137         listbox after AddImplicit calls since it defaults to hidden. Add a 
1138         hack to preserve requested heights across DropDownStyle changes.
1139
1140 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
1141
1142         * PropertyGrid.cs: Hide FindFirstItem method from public API.
1143
1144 2006-12-05  Chris Toshok  <toshok@ximian.com>
1145
1146         * DataGridView.cs: fix compiler warnings.
1147
1148         * PrintControllerWithStatusDialog.cs: same.
1149
1150         * ToolBar.cs: same.
1151
1152         * FolderBrowserDialog.cs: same.
1153
1154         * Splitter.cs: same.
1155
1156         * DataGridViewComboBoxCell.cs: same.
1157
1158         * XplatUIWin32.cs: same.
1159
1160         * PictureBox.cs: same.
1161
1162         * Win32DnD.cs: same.
1163
1164         * PageSetupDialog.cs: same.
1165
1166         * FileDialog.cs: same.
1167
1168         * PrintDialog.cs: same.
1169
1170         * DataGridTextBoxColumn.cs: same.
1171
1172         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
1173
1174 2006-12-05  Chris Toshok  <toshok@ximian.com>
1175
1176         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
1177         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
1178         System.ComponentModel.EventHandlerList work.
1179
1180 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
1181
1182         * DrawTreeNodeEventArgs.cs: Added.
1183
1184 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1185         
1186         * InternalWindowManager.cs: Remove an unused field.
1187         
1188 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1189
1190         * InternalWindowManager.cs:
1191         - Save the point where the title bar is clicked.
1192         
1193         * MdiWindowManager.cs:
1194         - Only allow moving of the window as long as the 
1195         clicked point on the title bar does not get out of
1196         MdiClient's rectangle. Fixes #79982.
1197         
1198         * MdiClient.cs:
1199         - Added Horizontal/VerticalScrollbarVisible.
1200         - Simplified the scrollbar sizing algorithm.
1201         - Cache the difference in scrolled value in
1202         H/VBarValueChanged and move the calculation out
1203         of the for loop.
1204
1205 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1206
1207         * Control.cs: Make the Console.WriteLine in WndProc 
1208         write more info.
1209
1210 2006-12-05  Chris Toshok  <toshok@ximian.com>
1211
1212         * ToolStripManager.cs, ToolStripButton.cs,
1213         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
1214         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
1215         ToolStripSplitButton.cs, ToolStripSeparator.cs,
1216         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
1217         ToolStripProgressBar.cs, ToolStripContainer.cs,
1218         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
1219         to using System.ComponentModel.EventHandlerList.
1220
1221 2006-12-04  Chris Toshok  <toshok@ximian.com>
1222
1223         * LinkLabel.cs: fix up compiler warnings.
1224
1225         * TableLayoutSettings.cs: same.
1226
1227         * TreeView.cs: same.
1228
1229         * ToolBar.cs: same.
1230
1231         * TabControl.cs: same.
1232
1233         * RichTextBox.cs: same.
1234
1235         * ListViewItem.cs: same.
1236
1237         * PropertyGrid.cs: same.
1238
1239         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
1240
1241         * ToolTip.cs same.
1242
1243         * TextRenderer.cs: fix up compiler warnings.
1244
1245         * Label.cs: same.
1246
1247         * Form.cs: corcompare fixes.
1248
1249         * PictureBox.cs: fix up compiler warnings.
1250
1251         * ImageListStreamer.cs: same.
1252
1253         * TrackBar.cs: corcompare fix.
1254
1255         * Control.cs: fix up compiler warnings.
1256
1257         * SplitterPanel.cs: same.
1258
1259         * NumericTextBox.cs: same.
1260
1261         * ImageList.cs: same.
1262
1263         * StatusStrip.cs: same.
1264
1265         * ProgressBar.cs: corcompare fix.
1266
1267         * ToolStripButton.cs: fix up compiler warnings.
1268
1269         * ToolStripStatusLabel.cs: same.
1270
1271         * ToolStripSplitButton.cs: same.
1272
1273         * ToolStripSeparator.cs: same.
1274
1275         * ToolStripProgressBar.cs: same.
1276
1277         * ToolStripDropDownMenu.cs: same
1278
1279         * ToolStripDropDown.cs: same.
1280
1281         * ToolStripDropDownButton.cs: same.
1282
1283         * ToolStrip.cs: same.
1284
1285         * ToolStripControlHost.cs: same.
1286
1287         * ToolStripContentPanel.cs: same.
1288
1289         * ToolStripDropDown.cs: same.
1290
1291         * ToolStripContainer.cs: same.
1292
1293         * ToolStripPanel.cs: same, and add "new" where we need it to work
1294         with the new ArrangedElementCollection.
1295
1296         * ToolStripItemCollection.cs: add "new" where we need it to work
1297         with the new ArrangedElementCollection.
1298
1299 2006-12-04  Andreia Gaita <avidigal@novell.com>
1300
1301         * TabControl.cs: Fix default tab selection to after TabControl
1302         gets focus and not before. Fixes #80128
1303
1304 2006-12-04  Chris Toshok  <toshok@ximian.com>
1305
1306         * DataGridTableStyle.cs: remove the gross calling of
1307         datagrid.Refresh from here.  It's a broken idea and it doesn't
1308         work anyway.
1309
1310         * DataGrid.cs: instead, just register/unregister from the
1311         DataGridTableStyle events in CurrentTableStyle.  we play it
1312         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
1313         even though some would most likely not require it.  Fixes bug
1314         #80115 (and one portion of #80117 as a side effect).
1315
1316 2006-12-04  Chris Toshok  <toshok@ximian.com>
1317
1318         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
1319         so the textbox (if any) goes away.  Fixes bug #80117.
1320
1321 2006-12-04  Chris Toshok  <toshok@ximian.com>
1322
1323         * DataGridColumnStyle.cs: set the column's readonly property
1324         initially based on the property descriptor's IsReadOnly.  Fixes
1325         bug #80044.
1326
1327 2006-12-04  Chris Toshok  <toshok@ximian.com>
1328
1329         * ComboBox.cs: wrap the dropdown style changing work in
1330         SuspendLayout/ResumeLayout.  Fixes bug #79968.
1331
1332 2006-12-04  Jackson Harper  <jackson@ximian.com>
1333
1334         * TextBoxBase.cs: Fix off by one, since these are one-based.
1335         * TextBox.cs: Select all the text when we get focus.  The TextBox
1336         does this but the RTB does not.
1337
1338 2006-12-04  Chris Toshok  <toshok@ximian.com>
1339
1340         * DataGridTextBoxColumn.cs: remove some spew.
1341
1342         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
1343         but some part of me is saying "it shouldn't be here.."  At any
1344         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
1345         setting the value.
1346
1347 2006-12-04  Chris Toshok  <toshok@ximian.com>
1348
1349         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
1350         to reassign the propertydescriptor.
1351
1352 2006-12-04  Jackson Harper  <jackson@ximian.com>
1353
1354         * TextBoxBase.cs:
1355         * TextControl.cs: Remove some unused variables.  Maybe this will
1356         patch things up between mike and I.
1357         - don't split lines less then one char wide, if the viewport is
1358         that small text won't be visible anyways.
1359         
1360 2006-12-04  Jackson Harper  <jackson@ximian.com>
1361
1362         * TextBoxBase.cs: Default selection length is -1, need to do some
1363         more testing on windows to see when this is used for the property.
1364         - Redid the Lines [] property to that we properly remove soft line
1365         breaks
1366         - added support for preserving carriage returns
1367         -  CanUndo is not a variable like 'is undo enabled' it just returns
1368         true if there is undo operations available.
1369         - AppendText doesn't need to grab the last tag itself anymore,
1370         this happens automatically when we move the cursor.
1371         * TextControl.cs: Add CompoundActions to the undo class. This
1372         allows combining the other operations into one big option.  ie a
1373         paste will combine { delete old, insert new, move cursor }
1374         - Add InsertString undo operation
1375         - New method for deleting multiline text
1376         - Add carriage returns to lines. So we can preserve carriage
1377         returns when text is 'roundtripped'
1378
1379 2006-12-04  Chris Toshok  <toshok@ximian.com>
1380
1381         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
1382         minimum 0.  Fixes the scrollbar exception in bug #80136.
1383
1384 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1385
1386         * MdiClient.cs: 
1387         * MdiWindowManager: Removed unused fields and methods.
1388         
1389 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1390         
1391         * StatusBar.cs: Update all panels when a AutoSize=Contents
1392         panel needs updating.
1393         
1394         * StatusBarPanel.cs: Remove twidth and only use initialize.
1395         Fixes #80031.
1396                 
1397 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1398
1399         * Form.cs: When a form's MdiParent is set add it directly
1400         on top of the z-order in stead of relying on MdiClient's
1401         ActivateChild to do it. Fixes #80135.
1402         
1403         * MdiClient.cs: 
1404         - Remove original_order, mdi_child_list is already doing
1405         the same thing.
1406         - Create mdi_child_list on construction in
1407         stead of first use (avoids a few null checks).
1408
1409         * MenuItem.cs: Use an already existing list of mdi children
1410         to get the correct order of children and remove the other
1411         redundant list.
1412
1413 2006-12-04  Chris Toshok  <toshok@ximian.com>
1414
1415         * PropertyGridView.cs: cached_splitter_location is only used in
1416         !DOUBLEBUFFER code.
1417
1418         * PropertyGrid.cs: implement the ComComponentNameChanged event
1419         using Events, hoping that would fix the warning.  Looks like a
1420         compiler bug instead (#80144).
1421
1422         * PropertyManager.cs: remove unused method.
1423
1424 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
1425
1426         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
1427         include parentesis to fix expression evaluation. Fixes #79634.
1428
1429 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
1430         
1431         * MenuAPI.cs:
1432         - Changes to fix behavior in Menu control, some reported in #80097
1433         and other detected during behavior refactory like a select event
1434         problems.
1435         - Remove unneded "if's" conditions.
1436         - Created an internal to flag when popup is active in control, we need 
1437         it because in .NET you can have menu active but without popup active
1438         when you active menu using popup without visible items.
1439         - Mimic win32 behavior for Select and Popup events.  
1440         - Dont open popup menu when you dont have visible subitems.
1441         - Do nothing when click on disabled menu item.
1442         - Some small changes to follow the coding style guidelines.
1443         - Unselect menu only when another control gives focus. Fixes #80097.
1444         - Remove unused code.
1445         
1446         * MenuItem.cs: internal VisibleItems method to check if menu
1447         theres visible subitems, it will be usefull to fix some 
1448         behavior in Menu control.
1449         
1450 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1451         
1452         * Timer.cs: Tag property for 2.0 profile.
1453         
1454 2006-12-01  Chris Toshok  <toshok@ximian.com>
1455
1456         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
1457         
1458         * Win32DnD.cs: comment out some unused fields.
1459
1460         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
1461         some unused properties/methods.
1462
1463         * XplatUIX11.cs: fix MousePosition so we override the base class's
1464         property instead of conflicting with it.
1465
1466         * PictureBox.cs: comment out some unused fields
1467
1468         * OSXStructs.cs: make some struct fields public.
1469
1470         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
1471         MousePosition so we override the base class's property instead of
1472         conflicting with it.
1473
1474         * X11Dnd.cs: comment out some unused fields
1475
1476         * X11DesktopColors.cs: fix some struct field visibility to quiet
1477         the compiler.
1478
1479         * X11Dnd.cs: remove some debug code.
1480
1481         * ThemeClearlooks.cs: comment out unused field.
1482
1483         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
1484
1485         * ThemeGtk.cs: comment out some unused pinvokes.
1486
1487         * Timer.cs: remove some unused fields.
1488
1489         * ThemeClearlooks.cs: comment out unused field.
1490
1491         * UpDownBase.cs: comment out unused field.
1492
1493         * DataObject.cs: comment out unused field.
1494
1495         * DataGridBoolColumn.cs: reomve unused field.
1496
1497         * DataGrid.cs: remove unused field.
1498
1499         * Cursor.cs: remove old ToBitmap code.
1500
1501         * ControlPaint.cs: remove unused method.
1502
1503         * ScrollBar.cs: remove unused fields.
1504
1505         * ComboBox.cs: remove unused field, and chain up to
1506         AccessibleObject ctor.
1507
1508         * ListBox.cs: remove unused field.
1509
1510         * ButtonBase.cs: wrap a couple fields in NET_2_0.
1511
1512         * GridEntry.cs: remove unused fields.
1513
1514         * Binding.cs: remove unused fields.
1515
1516         * AxHost.cs: remove unused method.
1517
1518         * ContainerControl.cs: remove unused field.
1519
1520         * ScrollableControl.cs: remove unused fields.
1521
1522 2006-12-01  Chris Toshok  <toshok@ximian.com>
1523
1524         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
1525         the Where/WhereString stuff.  it's easy enough to CWL
1526         Environment.StackTrace.
1527
1528         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
1529         unused private fields.
1530
1531 2006-12-01  Jackson Harper  <jackson@ximian.com>
1532
1533         * TextControl.cs: Do not update the view while inserting multiline
1534         text. If we update the view we might wrap lines, before entering
1535         the new lines, which causes the new line insertion calculations to
1536         be totally fubared.
1537         - Remove an old TODO
1538         - Make debug output a little nicer
1539         
1540 2006-12-01  Chris Toshok  <toshok@ximian.com>
1541
1542         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
1543
1544 2006-12-01  Chris Toshok  <toshok@ximian.com>
1545
1546         [ fix the majority of the CS0108 warnings we've been suppressing ]
1547         
1548         * TreeView.cs: mark BackgroundImageChanged as 'new'.
1549
1550         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
1551         to "LayoutToolBar" to quiet mcs.
1552         
1553         * TabControl.cs: mark our ControlCollection class as 'new'.
1554
1555         * TextBoxBase.cs: mark some events as 'new'.
1556
1557         * Splitter.cs: TabStop is 'new'.
1558
1559         * ControlBindingsCollection.cs: mark a few methods as new since
1560         they change the visibility from protected to public.
1561
1562         * RadioButton.cs: DoubleClick -> base class, and remove unused
1563         HaveDoubleClick.
1564
1565         * MonthCalendar.cs: ImeMode property -> base class, and mark many
1566         events as new.
1567
1568         * NumericUpDown.cs: TextChanged -> base class.
1569
1570         * CheckedListBox.cs: mark our ObjectCollection class as new to
1571         quiet mcs.
1572
1573         * FolderBrowserDialog.cs: make HelpRequest event new and have it
1574         muck with the base class.
1575
1576         * StatusBar.cs: fix some mcs warnings about Update being the same
1577         name as a base class method.
1578
1579         * RichTextBox.cs: mark some events as new, and make them do things
1580         to the base class impl.
1581
1582         * UserControl.cs: mark TextChanged as new, and have it manipulate
1583         base.TextChanged.
1584
1585         * UpDownBase.cs: mark some things new.
1586
1587         * CheckBox.cs: mark DoubleClick "new", and add some text about
1588         what we need to look at.
1589
1590         * Panel.cs: make the events "new", and manipulate the base
1591         version.  these are just here for attributes.
1592
1593         * AccessibleObject.cs: make owner private.
1594
1595         * Control.cs: deal with AccessibleObject.owner being private.
1596         cache our own copy if we need it.
1597
1598         * Button.cs: add "new" to the DoubleClickEvent.
1599
1600         * ListBox.cs: no need to track our own has_focus here.  let
1601         Control.has_focus do it for us.  Also some other work to clear up
1602         warnings about not overriding base class methods of the same name.
1603         
1604         * ComboBox.cs: clear up some warnings about not override base
1605         class methods of the same name.
1606
1607 2006-12-01  Chris Toshok  <toshok@ximian.com>
1608
1609         * Form.cs: flag a few things as "new" to quiet some of the mcs
1610         warnings.
1611
1612         * AxHost.cs: same.
1613
1614         * PrintPreviewDialog.cs: same.
1615
1616         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
1617         now DGV isn't so horrible on the class status page.  also, move
1618         all events to using System.ComponentModel.EventHandlerList.  my
1619         wrists hurt.
1620
1621 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1622
1623         * MdiWindowManager.cs:
1624         - Set form to active mdi child if shown,
1625         and update the active mdi child to the next 
1626         remaining child in the z-order if the form is hidden.
1627
1628         * Form.cs: 
1629         - Track if the form has been visible and if its 
1630         visibility is beeing changed, so that the MdiClient
1631         can properly decide the ActiveMdiChild. The MdiClient 
1632         cannot track this since the form can change visibility 
1633         before MdiClient is created.
1634
1635         * MdiClient.cs:
1636         - Don't activate anything of the parent form is changing
1637         its visibility.
1638         - Rework ActiveMdiChild to only return visible mdi 
1639         children and take into account several other corner 
1640         cases.
1641
1642 2006-12-01  Chris Toshok  <toshok@ximian.com>
1643
1644         * IBindableComponent.cs: new 2.0 interface.
1645
1646 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
1647
1648         * DataGrid.cs: Font for caption area is bold by default.
1649
1650 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
1651
1652         * Menu.cs: Tag property for 2.0.
1653         
1654 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1655
1656         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
1657         
1658 2006-12-01  Chris Toshok  <toshok@ximian.com>
1659
1660         * TreeView.cs: doh, the Begin* events should be
1661         TreeViewCancelEventHandler.
1662
1663 2006-12-01  Chris Toshok  <toshok@ximian.com>
1664
1665         * Form.cs: Form.ControlCollection already stores off the
1666         form_owner field.  don't access the base class's internal "owner"
1667         field.
1668
1669         * Control.cs: make all the fields in Control.ControlCollection
1670         private.  there's no need for any internal fields here.
1671
1672 2006-12-01  Chris Toshok  <toshok@ximian.com>
1673
1674         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
1675         OnHandleCreated.  Fixes bug #80109.
1676
1677 2006-12-01  Chris Toshok  <toshok@ximian.com>
1678
1679         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
1680         SplitContainer.cs, Control.cs, StatusStrip.cs,
1681         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
1682         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
1683         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
1684         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
1685         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
1686         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
1687         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
1688         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
1689         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
1690         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
1691
1692         do most of the work to convert our code over to use
1693         System.ComponentModel.Component.Events for
1694         adding/removing/dispatching events.
1695
1696
1697 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1698
1699         * DataGridView.cs: Fix an ArgumentNullException reported 
1700         twice today in IRC.
1701
1702 2006-11-30  Mike Kestner  <mkestner@novell.com>
1703
1704         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
1705         grabbed listbox.  Fixes #80036 and #80101.
1706
1707 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1708
1709         * Message.cs: Changed ToString() to match MS.
1710         
1711 2006-11-30  Jackson Harper  <jackson@ximian.com>
1712
1713         * TextBoxBase.cs: You can still change the selected text on a read
1714         only textbox.
1715         * TextControl.cs: Lower magic number for wrap calculations. This
1716         lets text get closer to the right (far) edge.
1717
1718 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1719
1720         * Control.cs: Tweak 2.0 layout properties.
1721         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
1722         * TextRenderer.cs: Add a new overload.
1723         * ToolStrip*: Huge amount of changes and new features.
1724
1725 2006-11-30  Mike Kestner  <mkestner@novell.com>
1726
1727         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
1728         scroll range correct.  Fixes #79994.
1729
1730 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1731
1732         * MdiWindowManager.cs: Update main form's text when
1733         a form is closed. (fixes #80038)
1734         
1735 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
1736
1737         * ToolBar.cs:
1738         - Fix an regression in ButtonSize.
1739         - Get ImeMode default value change to "Disable".
1740         - Get ShowTooltips default value change to true, default value is 
1741         "false" but after make a test in .NET we get "true" result as default.
1742         
1743 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
1744
1745         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
1746
1747 2006-11-29  Chris Toshok  <toshok@ximian.com>
1748
1749         * XplatUIWin32.cs (GetWindowTransparency): check return value of
1750         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
1751         SetWindowTransparency hasn't been called.
1752
1753 2006-11-29  Chris Toshok  <toshok@ximian.com>
1754
1755         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
1756         if it's supported.
1757         (set_AllowTransparency): reorder things a little so that the
1758         WS_EX_LAYERED style is removed properly.
1759
1760 2006-11-29  Chris Toshok  <toshok@ximian.com>
1761
1762         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
1763         
1764         * Form.cs: only call the XplatUI transparency method (get/set) if
1765         SupportsTransparency says it's supported. Otherwise fallback to
1766         doing nothing (in the set case) or returning the instance field we
1767         cache (in the get case).
1768
1769         * XplatUIStructs.cs: add TransparencySupport flag enum.
1770         
1771         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
1772         change to SupportsTransparency.
1773
1774         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
1775         TransparencySupport.None from SupportsTransparency.
1776
1777         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
1778         TransparencySupport.Set from SupportsTransparency.
1779
1780         * XplatUIWin32.cs: implement GetWindowTransparency calling
1781         GetLayeredWindowAttributes, and implement SupportsTransparency by
1782         checking whether or not both
1783         GetWindowTransparency/SetWindowTransparency are available
1784         entrypoints.  We need to do this since SetWindowTransparency is
1785         available as of win2k, but GetWindowTransparency requires winxp.
1786         yay win32 api.
1787
1788         * XplatUI.cs: Add GetWindowTransparency, and change
1789         SupportsTransparency to allow for either/both Get/Set.
1790
1791 2006-11-29  Chris Toshok  <toshok@ximian.com>
1792
1793         * DataGrid.cs: keep from going into an infinite loop redrawing a
1794         datagrid that has no datasource.  Fixes bug #80033.
1795
1796 2006-11-29  Chris Toshok  <toshok@ximian.com>
1797
1798         * MenuItem.cs: fix the NRE when we assign text (and therefore call
1799         Invalidate) before the mainmenu has been assigned to a control.
1800
1801 2006-11-29  Chris Toshok  <toshok@ximian.com>
1802
1803         * DataGrid.cs: detect when we should be double the double click
1804         row/column autosize stuff, although that codepath has yet to be
1805         written.  part of the work for bug #79891.
1806
1807 2006-11-29  Chris Toshok  <toshok@ximian.com>
1808
1809         * Binding.cs (SetControl): fix unit test.
1810
1811 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1812
1813         * PageSetupDialog.cs: Validate the margins and set them in
1814         PageSettings. 
1815         * NumericTextBox.cs: New class to mimic the behavior of the
1816         textboxes used in the printing dialogs.
1817
1818 2006-11-29  Andreia Gaita  <avidigal@novell.com>
1819         
1820         * Form.cs: Revert previous change (remove call UpdateBounds
1821         from form constructor), because it messes with the handle creation
1822         order, and that one needs lots and lots of love.
1823         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
1824         for valid printer and throw InvalidPrinterException if document
1825         is set but printer not valid), adding a MonoTODO. Once 
1826         handle creation is done properly, we can put this back in.
1827
1828 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1829
1830         * MenuItem.cs: Create a invalidate method for menu item, to be
1831         calling from set text, it make text changes to imadiate update
1832         on screen. Fixes #80013. 
1833         
1834 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1835
1836         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
1837         fixes bug #80070 and some other problem on toolbar buttons
1838         layout.
1839
1840 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1841
1842         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
1843         with dotted brush.      Fixes #79564
1844         
1845 2006-11-28  Andreia Gaita  <avidigal@novell.com>
1846
1847         * Form.cs: Removed call to UpdateBounds on Form
1848         constructor, it was causing a call to CreateHandle
1849         before it was supposed to.
1850         * PrintControllerWithStatusDialog: Applied patch
1851         by Chris Toshok to hide controller when there are
1852         no printers available.
1853         PrintDialog.cs: initialize printer settings to 
1854         null - correct DefaultValues test #5
1855         * PrintPreviewControl.cs: Move PrintController
1856         initialization to GeneratePreview
1857         * PrintPreviewDialog.cs: 
1858         - Remove Preview generation     from Document_set(). It is 
1859         called on OnPaint
1860         - Throw InvalidPrinterException on CreateHandle if
1861         a Document is set but there are no printers or 
1862         printer is not valid.
1863         * ThemeWin32Classic: don't paint PrintPreviewControl
1864         if there is nothing to paint    
1865
1866 2006-11-28  Miguel de Icaza  <miguel@novell.com>
1867
1868         * Form.cs: Add another popular method.
1869
1870         * TabPage.cs: ditto.
1871
1872 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1873
1874         * MenuItem.cs: Fixed a warning.
1875         * InternalWindowManager: Fixed a warning.
1876
1877 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1878
1879         * MenuItem.cs:
1880         - When cloning a menu also clone MdiList and clone the 
1881           window menu items properly (as the forms and menuitems
1882           are kept in an internal hashtable, these need updating 
1883           as well)
1884         - Rewrote the window menu code, menu items are added in the
1885           order the forms were added to their parent, and they are
1886           updated every time the window menu is shown (before the
1887           list was only generated once, in the current order of the
1888           forms, and would never be updated). A checkmark is shown
1889           next to the item corresponding to the active mdi child.
1890
1891 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1892
1893         * XplatUIStructs.cs: 
1894         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
1895         
1896         * XplatUIWin32.cs: 
1897         - Added TME_NONCLIENT to TMEFlags.
1898         - Handles WM_NCMOUSEMOVE in GetMessage to 
1899           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
1900
1901         * MdiWindowManager:
1902         - Now merges mdi child menu to parent menu when maximized.
1903         - Recalculate NC areas of both mdi child and mdi parent. 
1904           Fixes #79757 (4).
1905           on window state and size changes.Fixes #79844 (3).
1906         - Handle WM_NCCALCSIZE to properly calculate borders.
1907
1908         * Form.cs:
1909         - Add/remove to the mdi containers list of mdi children 
1910           in the order they are added.
1911         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
1912           to the maximized mdi child.
1913         
1914         * InternalWindowManager.cs:
1915         - Only execute a click on the control buttons on the mouse up,
1916           not on the mouse down. Show the state of the button 
1917           (was only showing Normal state, never Pressed state). The
1918           pressed button now follows the mouse (if you click the Close 
1919           button and move the mouse over the Maximize button, the 
1920           Maximize button will be shown as pressed). Since Win32 does
1921           not generate WM_NCLBUTTONUP if you release the button outside
1922           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
1923           it as a mouse up.
1924         
1925         * ThemeWin32Classic.cs:
1926         - Draw a missing border around mdi child forms. Fixes #79844 (2).
1927
1928         * MdiClient.cs:
1929         - Added a list of forms which contains the order the forms are
1930           added to the mdi parent.
1931         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
1932         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
1933         - If the active form changes set the scrollbars to the top
1934           of the Z order, otherwise the form could hide them.
1935         - Scrollbars are now sized according to ClientSize, not 
1936           to Size, and they take into account the other scrollbar
1937           to determine maximum.
1938         
1939 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
1940         
1941         * XplatUI.cs:
1942         * XplatUIDriver.cs:
1943         * XplatUIX11.cs:
1944         * XplatUIWin32.cs:
1945         * XplatUIOSX.cs:
1946         - Added RequestAdditionalWM_NCMessages for windows to 
1947           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
1948           Currently only implemented in XplatUIWin32.
1949
1950 2006-11-27  Chris Toshok  <toshok@ximian.com>
1951
1952         * Hwnd.cs: only add the hwnd to the windows hash in
1953         set_WholeWindow and set_ClientWindow if whole_window/client_window
1954         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
1955
1956 2006-11-27  Mike Kestner  <mkestner@novell.com>
1957
1958         * ComboBox.cs: remove redundant OnDropDown call.  It is called
1959         from the ComboListBox.ShowWindow code. Fixes #79969.
1960
1961 2006-11-27  Chris Toshok  <toshok@ximian.com>
1962
1963         * Hwnd.cs: remove the setters for ExposePending and
1964         NCExposePending - noone uses them.
1965
1966 2006-11-27  Jackson Harper  <jackson@ximian.com>
1967
1968         * TextControl.cs: new param for ReplaceSelection which determines
1969         whether we select the new selection, or set the cursor to the end
1970         of the new selection.
1971         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
1972         pasting, select the new text.
1973         * RichTextBox.cs: Use new param for ReplaceSelection.
1974
1975 2006-11-27  Jackson Harper  <jackson@ximian.com>
1976
1977         * TextBoxBase.cs: Set the selection to the caret after the caret
1978         is moved, otherwise they get out of sync.
1979
1980 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1981
1982         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
1983         it fixes #80015
1984
1985 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1986
1987         * ThemeWin32Classic.cs: 
1988         - Fix toolbar drop down arrow position.
1989         - Fix drop down appearance when ToolBar.Appearance is normal,
1990         it fixes #80018.
1991         
1992 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
1993
1994         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
1995         * Control.cs: Same.
1996         * UpDownBase.cs: Same.
1997         * ButtonBase.cs: Same.
1998         * ScrollBar.cs: Same.
1999         * TrackBar.cs: Same.
2000         * PictureBox.cs: Same.
2001         * UserControl.cs: Same.
2002         * Label.cs: Same.
2003         * ListControl.cs: Same.
2004         * TextBoxBase.cs: Same.
2005         * ListView.cs: Same.
2006         * RichTextBox.cs: Same.
2007         * TreeView.cs: Same.
2008
2009 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
2010
2011         * PrintDialog.cs:
2012         - Text label for where 
2013         - Text label comment was not shown
2014
2015 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
2016
2017         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
2018
2019 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2020
2021         * InternalWindowManager.cs: 
2022         - Handle WM_PARENTNOTIFY to activate the form
2023         if any child control is clicked.
2024         - The form is only sizable if not minimized.
2025
2026         * MdiWindowManager.cs:
2027         - Save the IconicBounds if the form is moved.
2028         - Rework SetWindowState, now the window bounds 
2029         are stored only if the old window state is Normal.
2030         
2031         * MdiClient.cs:
2032         - In SetWindowStates store the old window state if 
2033         the window is maximized and restore window state if
2034         the window looses focus.
2035         - Don't handle any scrollbar value changes if 
2036         initializing the scroll bars. Fixes #79771.
2037         - Reworked ArrangeIconicWindows. Current algorithm
2038         tests bounds agains all other minimized windows, if
2039         any intersections create new bounds (going left to 
2040         right, bottom to top) and then test again. When 
2041         successful the bounds are saved and never computed
2042         again. Fixes #79774.
2043
2044 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2045
2046         * InternalWindowManager.cs: Added HandleTitleBarUp.
2047
2048 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2049
2050         * NumericUpDown.cs: In .NET 1.1, user entered text is still
2051         hexadecimal in ParseUserEdit.
2052
2053         
2054 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2055
2056         * MdiWindowManager.cs: 
2057         - Handle a click on the form's icon to show the 
2058         system menu (when maximized). Fixes #79775.
2059         - Change the existing click handler for the form's
2060         icon when not maximized to show on MouseUp.
2061         Fixes #79776.
2062
2063         * Form.cs: In OnResize only layout the mdi child's
2064         parent if it actually has a parent. Might not if
2065         the window is closing.
2066
2067
2068 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2069
2070         * MdiClient.cs: Ignore active MDI client for text of parent, if
2071         child has no text set.
2072
2073 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2074
2075         * ToolBar.cs: Fixed ToString to match MS.
2076
2077 2006-11-22  Andreia Gaita  <avidigal@novell.com>
2078
2079         * NumericUpDown: 
2080         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
2081         update inner values on set. Fixes #79966.
2082         - Override OnLostFocus to update value on NET 2. Fixes #79950.
2083         - Fix hexadecimal parsing.
2084         
2085         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
2086         parent. Fixes #79957
2087
2088 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2089
2090         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
2091         the actual size has to be queried, since if height /
2092         width is negative Win32 changes it to 0. 
2093         Fixes #79999 on Windows.
2094         
2095         * XplatUIX11.cs: Set height / width to 0 if negative
2096         in SetWindowPos. Fixes #79999 on Linux.
2097         
2098 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
2099
2100         * ThemeWin32Classic.cs: Fix text redenring when button is
2101         pressed.
2102
2103 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
2104
2105         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
2106         and later navigate by mouse. Fixes #79528.
2107
2108 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
2109
2110         * ToolBar.cs: Set default value for TabStop to false in
2111         constructor, it fixes remaining behavior of bug #79863.
2112
2113 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2114
2115         * MdiWindowManager.cs:
2116         * InternalWindowManager.cs:
2117         - Moved a few methods specific to Mdi from 
2118         InternalWindowManager to MdiWindowManager.
2119         Fixes #79996.
2120         
2121 2006-11-21  Chris Toshok  <toshok@ximian.com>
2122
2123         * XplatUIOSX.cs: stub out InvalidateNC.
2124
2125         * XplatUIWin32.cs: implement InvalidateNC using the call I found
2126         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
2127
2128         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
2129
2130         * XplatUIDriver.cs: add InvalidateNC abstract method.
2131
2132         * XplatUI.cs: add InvalidateNC.
2133
2134 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
2135
2136         * ToolBar.cs: Invalidate complete button area when pressed status 
2137         was changed.
2138         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
2139         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
2140         by 1 when button is pressed.
2141
2142 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2143
2144         * ToolButton.cs: Invalidate middle of DropDown button when
2145         ToolBar theres DropDownArrows.
2146         * ThemeWin32Classic.cs: Change position of DropDown arrow and
2147         fix DropDown drawing operations.
2148
2149 2006-11-20  Chris Toshok  <toshok@ximian.com>
2150
2151         * NativeWindow.cs: fix the formatting of functions ('{' on the
2152         following line), and enable the thread exception dialog.
2153
2154         * Application.cs: remove the duplicate exception catching from
2155         here.
2156
2157 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2158
2159         * Toolbar.cs: Triggers button click event when click on icon
2160         of dropdown ToolBarButton. Fixes #79912.
2161         
2162 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2163
2164         * Theme.cs:
2165         * ThemeWin32Classic.cs:
2166         - Added a property WindowBorderFont to enable themeing
2167           of mdi child windows' Text.
2168           
2169 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2170
2171         * InternalWindowManager.cs:
2172         * Form.cs:
2173         * MdiClient.cs:
2174         * MdiWindowManager.cs: 
2175         - If mdi child is maximized, set mdi parent's
2176           text to "Parent - [Child]". Fixes #79770.
2177         - If there is any maximized mdi child windows, only the active 
2178           window (and any new windows) is maximized, the rest are normal.
2179         - On a WindowState change only save mdi child's window bounds 
2180           if the old window state was normal. Fixes #79774.
2181         - The scroll bars are now calculated on hopefully all
2182           necessary events. Fixed #79771 / #79844->6 / #79906.
2183         - MdiClient.SizeScrollBars() now takes into account docked 
2184           controls in the parent when calculating available space.
2185         - InternalWindowManager now always repaints the entire title
2186           area. Fixes #79844->1/4/5.
2187         - Added RequestNCRecalc on mdi child windowstate changes.
2188           Fixes #79772.
2189
2190 2006-11-20  Mike Kestner  <mkestner@novell.com>
2191
2192         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
2193         in the MouseUp handler of the listbox and move the return handling
2194         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
2195
2196 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2197
2198         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
2199
2200 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
2201
2202         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
2203           working in 1.2.x anymore. So, updated.
2204
2205 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
2206
2207         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
2208         NumberGroupSeparator of current culture instead of assuming en-US.
2209         Fixed bug #79967.
2210
2211 2006-11-17  Mike Kestner  <mkestner@novell.com>
2212
2213         * Control.cs: Add the concept of implicit bounds setting so that
2214         dock/undock round trips preserve explicitly set size/locations.
2215         Fixes #79313.
2216
2217 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
2218
2219         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
2220           can't handle those filters. (Fixes bug #79961)
2221
2222 2006-11-17  Chris Toshok  <toshok@ximian.com>
2223
2224         [ fixes the exit/crashes associated with #79835.  it's clearly
2225         suboptimal though, we need to figure out a better way to solve
2226         this. ]
2227         
2228         * PrintPreviewControl.cs: deal with the new invalid printer
2229         exceptions.
2230
2231         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
2232         and return false (so CommonDialog.ShowDialog doesn't actually show
2233         the form.)
2234
2235         * PrintDialog.cs: enable/disable the Ok button depending on
2236         whether or not the printer is valid.
2237
2238         * CommonDialog.cs (ShowDialog): only actually show the form if
2239         RunDialog returns true.
2240
2241 2006-11-17  Jackson Harper  <jackson@ximian.com>
2242
2243         * TextControl.cs: When soft splitting a line, mark it as a soft
2244         split line. Also carry over the current line break to the next
2245         line.
2246
2247 2006-11-17  Chris Toshok  <toshok@ximian.com>
2248
2249         * XplatUIX11.cs: when scrolling a window with an invalid area, we
2250         only want to shift the part of the invalid area that overlaps the
2251         area we're scrolling.  we also don't want to clear the invalid
2252         area unless the invalid area was entirely contained within the
2253         scrolling area.
2254
2255 2006-11-16  Chris Toshok  <toshok@ximian.com>
2256
2257         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
2258         also make sure to free the memory returned by XGetWindowProperty
2259         in GetText().
2260
2261         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
2262
2263 2006-11-16  Chris Toshok  <toshok@ximian.com>
2264
2265         * XplatUI.cs: add a new super secret way to get at the totally
2266         unsupported X11 backend.
2267
2268 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
2269
2270         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
2271
2272 2006-11-16  Jackson Harper  <jackson@ximian.com>
2273
2274         * TreeView.cs: Allow more explicit setting of top node position
2275         for scrollbars. Slower algo, but more accurate.
2276         - CollapseAll should maintain the current top node.
2277         * TextBoxBase.cs: When positioning the caret, use the line, pos
2278         method, since the x, y method does not grab the correct tag, and
2279         the caret height never gets set correctly. (Maybe I should just do
2280         away with the caret having its own height, and always use the
2281         carets current tag for height).
2282
2283 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
2284
2285         [Fixes 79778, 79923]
2286
2287         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
2288         Parent to the FosterParent instead.
2289
2290 2006-11-16  Jackson Harper  <jackson@ximian.com>
2291
2292         * TreeView.cs: Need to recalc the topnode when we expand or
2293         collapse. The scrolling methods can't handle this on their own,
2294         since they use differences between the last scroll position, and
2295         those difference get completely messed up since we are expanding
2296         nodes.  This problem should probably be fixed in the scrolling
2297         methods, so they can figure out exactly where they are, but this
2298         will slow things down a little.
2299         * ThemeWin32Classic.cs: Special case for groupboxes with empty
2300         strings, makes nunit-gui look a lot nicer.
2301
2302 2006-11-16  Chris Toshok  <toshok@ximian.com>
2303
2304         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
2305         the broken multithreaded event handling we have in here.  File
2306         this entry under "Why we should move to the new X11 backend".
2307
2308         Any thread can make it into UpdateMessageQueue, which gets events
2309         from the X socket - some of which could belong to hwnds being
2310         managed by a different thread.  We can also have multiple threads
2311         in UpdateMessageQueue at the same time, with each one reading from
2312         the X socket.  This leads to many problems, with the following
2313         solutions:
2314
2315         We can't use hwnd.Queue.Enqueue anywhere in here and must use
2316         EnqueueLocked.
2317
2318         The MotionNotify compression we do can't work across threads
2319         (without locking the entire queue, perhaps) since we call
2320         hwnd.Queue.Peek, so we just punt and don't compress motion events
2321         unless the owning thread is the one which got the X event.
2322
2323         ConfigureNotify is another fun one, since it modifies the hwnd's
2324         bounds and then enqueues the event.  We add a lock to Hwnd which
2325         is held when setting configure_pending to true (and enqueuing the
2326         event).
2327
2328         There is a race wrt the wake socket.  we need to make sure that
2329         only 1 thread is waiting on that socket, or else a thread could
2330         sleep waiting for data that never comes.  It's difficult (but not
2331         impossible) to make happen, because it seems to require something
2332         like the following:
2333
2334             1. Thread 1 polls on wake_receive
2335         
2336             2. poll returns saying there's data to be read on
2337                wake_receive.
2338         
2339             3. Thread 2 polls on wake_receive and immediately returns
2340                saying there's data to be read.
2341
2342             4. Thread 2 reads the wakeup byte from wake_receive
2343
2344             5. Thread 1 attempts to read the wakeup byte from
2345                wake_receive.
2346
2347             6. Thread 2 exits (due to a form closing, perhaps).
2348
2349             7. Thread 1 blocks forever.
2350         
2351         Fun, eh?
2352
2353         Fixing the Expose handling isn't done yet, and the races inherent
2354         in that piece of code are responsible for the drawing mistakes you
2355         see when generating expose events in a MT app (like NPlot).  This
2356         one is the likely to be the hardest to bandaid, and it doesn't
2357         appear to cause anything but drawing problems.  The other issues
2358         caused apps to exit or hang.
2359
2360         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
2361         called from a different thread than the one that should be calling
2362         these functions.
2363
2364         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
2365
2366 2006-11-15  Chris Toshok  <toshok@ximian.com>
2367
2368         * Application.cs: null out the context's MainForm when we exit
2369         RunLoop.  Fixes a newly checked in unit test as well as the last
2370         ODE from bug #79933.
2371
2372 2006-11-15  Chris Toshok  <toshok@ximian.com>
2373
2374         * Form.cs (set_Owner): allow a null value so we can clear the
2375         form's owner.
2376         (Dispose): set all our owned_form's Owner properties to null, and
2377         clear the owned_forms collection.
2378         (WM_CLOSE): clean up this a little bit.. still not right though.
2379
2380         * ApplicationContext.cs: OnMainFormClosed should only call
2381         ExitThreadCore if the main form isn't recreating.  Fixes unit
2382         test.
2383
2384 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2385
2386         [Fixes 78346]
2387
2388         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
2389
2390 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2391
2392         [Fixes 79433]
2393
2394         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
2395         keep popup window types from stealing focus from the main form
2396         on Windows.
2397
2398         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
2399
2400         * MenuAPI.cs: Set above flag to true.
2401
2402 2006-11-15  Chris Toshok  <toshok@ximian.com>
2403
2404         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
2405         the button being released is not in wParam.
2406
2407 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2408
2409         * Form.cs: Add the released button to MouseEventArgs.Button
2410         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
2411         on Win32.
2412
2413 2006-11-15  Chris Toshok  <toshok@ximian.com>
2414
2415         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
2416         GetText().  untested because it's unused in our implementation.
2417         Control.Text always caches the text, even if
2418         ControlStyles.CacheText is not set.
2419
2420         fixes bug #79939.
2421
2422 2006-11-15  Chris Toshok  <toshok@ximian.com>
2423
2424         [ fixes #79933 ]
2425         
2426         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
2427         message.  no hiding, no disposing.
2428
2429         in the WM_CLOSE handler, hide the form if it's modal.
2430
2431 2006-11-15  Chris Toshok  <toshok@ximian.com>
2432
2433         * XplatUIX11.cs: use AddExpose instead of sending a message.
2434         fixes textbox border drawing.
2435
2436 2006-11-15  Chris Toshok  <toshok@ximian.com>
2437
2438         * PropertyGridView.cs: keep from crashing on mouse move/down when
2439         the property grid is empty.
2440
2441 2006-11-14  Jackson Harper  <jackson@ximian.com>
2442
2443         * TextControl.cs: Make PageUp and PageDown more like the MS
2444         versions.
2445         * TextBoxBase.cs: When we set the text property position the
2446         cursor at the beginning of the document.
2447
2448 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2449
2450         * Form.cs: if a mdi child's WindowState has changed
2451         before it's creation, it would display wrong control
2452         buttons.
2453         
2454 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
2455
2456         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
2457           (Fixes bug #79927)
2458
2459 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2460
2461         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
2462         the window gets to paint its borders even if the window is
2463         getting smaller.
2464         
2465         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
2466         otherwise the old control buttons would still be painted 
2467         if the window gets bigger.
2468         
2469         * PaintEventArgs.cs: add an internal method so that the clip 
2470         rectangle can be changed.
2471         
2472 2006-11-13  Chris Toshok  <toshok@ximian.com>
2473
2474         [ fixes bug #79745 ]
2475         
2476         * NotifyIcon.cs: lots of cleanup.
2477
2478         * X11Structs.cs: add an enum for XEMBED messages.
2479
2480         * XplatUIX11.cs: reindent one of the giant switch statements, it
2481         was taking up an additional tab stop, and this file is already way
2482         too wide for my laptop's screen.
2483
2484         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
2485         we get it, resize the hwnd to the WMNormalHints max_width/height.
2486
2487 2006-11-13  Jackson Harper  <jackson@ximian.com>
2488
2489         * TextBoxBase.cs: Compute the value changes for the mouse wheel
2490         teh simple way.
2491
2492 2006-11-13  Chris Toshok  <toshok@ximian.com>
2493
2494         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
2495         #79898.  force a reference to the Region to stick around so the
2496         unmanaged object isn't collected (rendering our handle in the MSG
2497         stale).
2498
2499 2006-11-13  Chris Toshok  <toshok@ximian.com>
2500
2501         * XplatUIX11.cs: fix #79917 for window managers which support
2502
2503         using XStoreName on the raw utf8, and we need to convert to
2504         COMPOUND_TEXT if it's non-latin1.
2505
2506 2006-11-13  Chris Toshok  <toshok@ximian.com>
2507
2508         * Form.cs (set_DialogResult): we need to set closing to false if
2509         we're setting our result to None.  fixes bug #79908.
2510
2511 2006-11-13  Jackson Harper  <jackson@ximian.com>
2512
2513         * TextControl.cs: When formatting text, compute the adjusted tag
2514         lengths correctly, using FindTag for the end tag instead of trying
2515         to figure it out outselves.
2516         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
2517         the item, ItemHeight doesn't work, because trees with large
2518         imagelists use those for their height
2519         * TreeView.cs: ActualItemHeight factors in the image height
2520         - compute left edge of checkboxes correctly
2521         - when expanding/collapsing move the bottom down one pixel, so we
2522         aren't moving part of the node
2523
2524 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2525
2526         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
2527         stack in PaintEventStart so that it won't get disposed by the gc
2528         before reaching PaintEventEnd.
2529
2530 2006-11-13  Jackson Harper  <jackson@ximian.com>
2531
2532         * TextBoxBase.cs: Don't select the word if we are on a line with
2533         no text.
2534         - We don't need to position the caret on mouse up, since the mouse
2535         move handler should be doing this
2536         - When double clicking a blank line, the caret is advanced to the
2537         next line.
2538
2539 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
2540
2541         * TreeNodeCollection.cs: Avoid duplicating indexer code.
2542
2543 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
2544
2545         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
2546         Fixes part of bug #79910.
2547
2548 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
2549
2550         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
2551           (bug #79903). Some minor string updates to match ms.
2552
2553 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2554
2555         * FileDialog.cs: Don't add an extension if the filename
2556           already ends with that extension.
2557
2558 2006-11-10  Jackson Harper  <jackson@ximian.com>
2559
2560         * TreeView.cs: Use the currently highlighted node for the
2561         BeforeSelect event.
2562         * TextBoxBase.cs: There is no need to expand selection on
2563         MouseMove.
2564         - CanUndo means 'is there any undo operations', not 'is undo
2565         allowed on this textcontrol. Fixed ClearUndo unit test.
2566
2567 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
2568
2569         * Button.cs: only perform click when button is Selectable (so as 
2570         not to activate default buttons when they're disabled)
2571         
2572         * Control.cs: Rewrite of the SelectNextControl and related 
2573         methods. HandleClick now selects next control if the current one
2574         is being disabled.
2575         
2576         * Form.cs: OnActivated selects next active control only if Load 
2577         has already occurred. If Load hasn't run, there's no point in 
2578         selecting here, Load might change the state of controls.
2579         
2580         * FocusTest.cs: Tests marked as working again for these fixes
2581
2582 2006-11-10  Chris Toshok  <toshok@ximian.com>
2583
2584         * XplatUIX11.cs: a couple of fixes.
2585
2586         - use XInternAtoms with almost all the atoms we need to register,
2587         instead of many, many calls to XInternAtom.  should help a bit on
2588         startup time, at the expense of making the code look a little
2589         worse.
2590
2591         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
2592         isn't reparented (which seems to be a clue that we're running fon
2593         compiz) and they have an Owner form.  This fixes the tool windows
2594         in paint.net when running under compiz.
2595
2596         - when setting the opacity of a window, support both the case
2597         where the window has been reparented and also when it hasn't been.
2598         Since compiz/beryl doesn't seem to reparent windows, and these are
2599         the only window managers which support translucency, I'm not sure
2600         why we need the hwnd.reparented case at all.. but leave it in.
2601         now we get translucent windows in paint.net under compiz/beryl.
2602
2603 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2604
2605         * FileDialog.cs: Always return the value for FilterIndex that
2606           was set. Internally convert it to values that make sense.
2607
2608 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2609         
2610         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
2611
2612 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2613
2614         * Toolbar.cs: Change default value of DropDownArrows to true, the 
2615         signature still using false to make it compatible with MS but the 
2616         initial value is true. Fixes #79855.
2617
2618 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2619
2620         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
2621           only available on Linux.
2622
2623 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
2624
2625         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
2626         reduce number of calls to redraw method during toolbar creation.
2627
2628 2006-11-09  Mike Kestner  <mkestner@novell.com>
2629
2630         * ListView.cs : raise SelectedIndexChanged when an item is selected
2631         programmatically via the Item.Selected property.  Gert's nice 
2632         ListViewSelectedIndexChanged test fixture now runs clean.
2633
2634 2006-11-09  Mike Kestner  <mkestner@novell.com>
2635
2636         * ListView.cs : raise SelectedIndexChanged when a selected item is
2637         removed from the item collection using Remove or RemoveAt.
2638
2639 2006-11-09  Mike Kestner  <mkestner@novell.com>
2640
2641         * ListView.cs : raise SelectedIndexChanged once per selected item
2642         for compat with MS.  Fixes #79849+.
2643
2644 2006-11-09  Chris Toshok  <toshok@ximian.com>
2645
2646         * TabControl.cs: initialize row_count to 0, and set it to 1 when
2647         we need to (if we have any tab pages).  Fixes unit test.
2648
2649 2006-11-09  Chris Toshok  <toshok@ximian.com>
2650
2651         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
2652         width is 0, not 3.  Fixes a unit test.
2653
2654 2006-11-09  Mike Kestner  <mkestner@novell.com>
2655
2656         * ListView.cs : use Implicit scrollbars so that focus isn't 
2657         stolen from the listview when they are clicked. Fixes #79850.
2658
2659 2006-11-09  Chris Toshok  <toshok@ximian.com>
2660
2661         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
2662         have a root item.  Fixes #79879.
2663
2664 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
2665
2666         * FileDialog.cs:
2667           - Fix ToString ()
2668           - An ArgumentException is now thrown if a wrong filter
2669             is applied (matches ms). The previous filter doesn't change
2670             anymore if an exception is thrown.
2671           - Changing the FileName property also affects FileNames
2672         * ColorDialog.cs: The length of the CustomColors array is always
2673           16. It doesn't matter if we use a smaller array or null to update
2674           or change the custom colors property.
2675         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
2676           for RootFolder if we get a undefined value.
2677
2678 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2679
2680         * StatusBarPanel.cs: 
2681         - Width is set to MinWidth if Width is smaller than
2682         MinWidth. Fixes #79842.
2683         - MinWidth now always overrides Width (MSDN says MinWidth
2684         is set to Width when AutoSize = None, but they do not 
2685         behave like that).
2686         - Style has now the the correct default value.
2687         
2688 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2689  
2690         * TrackBar.cs: 
2691         - The control is completely invalidated on 
2692         Got/LostFocus to draw the focus rectangle correctly.
2693         - When AutoSize then height is always 45 (width for 
2694         vertical controls).
2695         
2696         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
2697         on the mouse when moved and it doesn't move when grabbed
2698         until the mouse moves as well. Also fixed some wrong 
2699         calculations when clicking on the thumb (control thought
2700         click was outside of thumb and didn't grab it).
2701         Fixes some of the issues in #79718.
2702
2703 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
2704
2705         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
2706
2707 2006-11-08  Chris Toshok  <toshok@ximian.com>
2708
2709         * PropertyGridView.cs: only call ToggleValue if the item is not
2710         readonly.
2711
2712 2006-11-08  Jackson Harper  <jackson@ximian.com>
2713
2714         * TextBoxBase.cs: The RichTextBox and textbox have very different
2715         word selection methods.  Implement the textbox's simple word
2716         selection here, and let the RichTextBox override and provide it's
2717         own.
2718         - Don't do extra selection on mouseup
2719         * RichTextBox.cs: Use the documents word selection algorithm, I
2720         think ideally, this function will be pulled into the
2721         RichTextBox.cs code someday.
2722
2723 2006-11-08  Chris Toshok  <toshok@ximian.com>
2724
2725         * RootGridEntry.cs: new class to represent GridItemType.Root.
2726
2727         * CategoryGridEntry.cs: reformat, and add boilerplate.
2728         
2729         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
2730         returns the UI parent anyway, and we need special handling to
2731         implement the GetTarget method in the face of it.  Also, implement
2732         Select().
2733
2734         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
2735         a root grid item, and use that instead of PropertyGrid.grid_items.
2736         Also, make use of TypeConverters (and add limitted support for
2737         ICustomTypeDescriptors) when initially populating the grid.
2738         Arrays now show up more or less properly.
2739
2740 2006-11-08  Chris Toshok  <toshok@ximian.com>
2741
2742         * Application.cs: set the modal dialog to non modal after we close
2743         it.  Fixes bug #79866.
2744
2745 2006-11-08  Jackson Harper  <jackson@ximian.com>
2746
2747         * TextControl.cs: When combining lines carry over the line end
2748         style from the end line.
2749         - Invalidate the selected area when setting it, if it is visible.
2750         * TextBoxBase.cs: Only rich text box can do full line selects.
2751         - Make sure to set the cursor position when there is a click,
2752         otherwise two clicks in separate areas could cause a large chunk
2753         to be selected.
2754
2755 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2756
2757         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
2758         Fixes #79863.
2759
2760 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2761
2762         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
2763         time. Remove tooltips when ToolButton click events.  Fixes #79856.
2764
2765 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2766
2767         * MenuAPI.cs: Ignore right click for menu actions and fixes
2768         menu border when clicked.  Fixes #79846.
2769
2770 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2771
2772         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
2773         MouseState after create wParam for message, this fixes mouse button 
2774         equal none in mouse up events.
2775         
2776 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
2777
2778         * Control.cs : Focus() now calls Select to set the Container's
2779         Active Control and to give it focus. To avoid infinite recursion
2780         (because ActiveControl also calls Focus at one point), a check 
2781         is made in Focus with the help of a new internal variable
2782         is_focusing.
2783
2784 2006-11-07  Mike Kestner  <mkestner@novell.com>
2785
2786         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
2787         if there's a selection.  Fixes #79849.
2788
2789 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
2790
2791         * PropertyGrid.cs: Avoid fixed height of help description label.
2792         Fixes part of bug #79829.
2793
2794 2006-11-07  Chris Toshok  <toshok@ximian.com>
2795
2796         * XplatUIX11.cs: fix #79790 again, by using the
2797         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
2798
2799 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2800
2801         * ToolBar.cs: Fix left click checking.
2802
2803 2006-11-07  Chris Toshok  <toshok@ximian.com>
2804
2805         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
2806
2807 2006-11-07  Chris Toshok  <toshok@ximian.com>
2808
2809         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
2810         PropertyManager unit tests.
2811
2812         * PropertyManager.cs: make property_name internal.
2813
2814 2006-11-07  Chris Toshok  <toshok@ximian.com>
2815
2816         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
2817         pass a unit test.  Also, don't set image_index to anything in
2818         response to setting the ImageList property.
2819
2820 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2821
2822         * ToolBar.cs: Ignore click events when mouse button is not a
2823         left button, only accepts other button for dropdown menus.  
2824         Fixes #79854.
2825
2826 2006-11-07  Chris Toshok  <toshok@ximian.com>
2827
2828         * DataGrid.cs: make the back and parent row buttons a little less
2829         ugly.
2830
2831 2006-11-07  Jackson Harper  <jackson@ximian.com>
2832
2833         * TextBoxBase.cs: When converting to Text don't put line breaks in
2834         for soft line breaks.
2835         * TextControl.cs: There is an initial "fake" line in the document,
2836         this is now a soft break line, so that an extra line feed doesn't
2837         get added to the end of documents.
2838
2839 2006-11-07  Chris Toshok  <toshok@ximian.com>
2840
2841         [ fix bug #79778 ]
2842         
2843         * CurrencyManager.cs: if the list is readonly, don't bother
2844         checking if IBindingList.AllowNew is true.
2845
2846         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
2847         for non-DataRowView datasources..  or rather, make it not crash.
2848         (DataGridPaintRelationRow): make sure we limit the row painting to
2849         the area not covered by the row header, and make our cell width at
2850         least large enough to cover the relation area.  This allows grids
2851         that have relations but no rows to render correctly.
2852         (DataGridPaintRowContents): same type of changes here.
2853         (SetDataSource): move back to always calling
2854         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
2855         navigating back through relations.
2856         (HitTest): handle the case where we have no cells but have
2857         relations.  Right now we generate a hit in cell 0 of whatever the
2858         row is, not sure if this is strictly correct, but it works for our
2859         purposes.
2860         
2861         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
2862         bother doing anything.
2863
2864 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
2865
2866         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
2867         early version of StatusStrip.  Not responsible for eaten
2868         application or firstborn children.
2869
2870 2006-11-06  Chris Toshok  <toshok@ximian.com>
2871
2872         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
2873         call GetTabRect with a -1 index.  Fixes #79847.
2874
2875 2006-11-06  Jackson Harper  <jackson@ximian.com>
2876
2877         * TreeNodeCollection.cs: Update scrollbars after clearing.
2878
2879 2006-11-06  Chris Toshok  <toshok@ximian.com>
2880
2881         * NumericUpDown.cs: fix the ToString method for some unit test
2882         love.
2883
2884 2006-11-06  Chris Toshok  <toshok@ximian.com>
2885
2886         * PropertyGrid.cs:
2887         - set the initial SelectedGridItem if we can.
2888
2889         - Exclude non-mergable properties only if we're merging > 1
2890         object.  Merging 1 object isn't really merging, obviously.
2891
2892         - Handle PropertySort.NoSort just like Alphabetical, which is
2893         wrong of course, but at least gets things on the screen.
2894         
2895         * PropertyGridView.cs:
2896         - Add method "FindFirstItem" which finds the first property grid
2897         item, so we can select it by default.
2898
2899         - make use of GridEntry.CanResetValue.
2900
2901         - Don't call RedrawBelowItemOnExpansion here anymore, the
2902         individual GridEntry's will do that.
2903
2904         - Remove the ITypeDescriptorContextImpl internal class.
2905         
2906         * GridEntry.cs:
2907         - this class needs to implement ITypeDescriptorContext, as it's
2908         what MS's PropertyDescriptorGridEntry does, which means we can
2909         remove the ITypeDescriptorContextImpl internal class from
2910         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
2911
2912         - keep a reference to our PropertyGridView, and move the call to
2913         RedrawBelowItemOnExpansion here from PGV.  This means
2914         programmaticly setting Expanded actually does something visible.
2915
2916         - add a CanResetValue() function which takes into account our
2917         possibly multiple "selected_objects" in the merged case.  Shifting
2918         PropertyGridView to use this method fixes another unreported
2919         crasher found running the test for #79829.
2920
2921         - when Top or Bounds is updated, make sure the PropertyGridTextBox
2922         is updated to reflect this.
2923
2924         * CategoryGridEntry.cs: the ctor takes the PGV now.
2925         
2926 2006-11-06  Jackson Harper  <jackson@ximian.com>
2927
2928         * TextControl.cs: These are 1 based.
2929         * TextBoxBase.cs: When setting the selected text, don't change the
2930         selected text tags, this is done by ReplaceText, just position the
2931         cursor at the end of the new text.
2932
2933 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2934
2935         * ListView.cs: Allow label edit only when, when LabelEdit is
2936           set to true.
2937
2938 2006-11-06  Jackson Harper  <jackson@ximian.com>
2939
2940         * TextControl.cs: If a suitable wrapping position isn't found,
2941         just wrap right in the middle of a word.
2942
2943 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2944
2945         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
2946           bug #79820.
2947
2948 2006-11-06  Jackson Harper  <jackson@ximian.com>
2949
2950         * TreeView.cs: Can't use the VisibleCount property when setting
2951         scrollbar heights, because this doesn't take into account whether
2952         or not the horz scrollbar just came visible.
2953
2954 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
2955
2956         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
2957         activated.  Fixes #79369, #79832.
2958
2959 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
2960
2961         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
2962           had to remove support for links that point to a directory. FileInfo
2963           returns no usefull information (means, the directory they point to)
2964           for such links. Replaced some empty string ("") with String.Empty.
2965
2966 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2967
2968         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
2969         NullReferenceException when attempting to remove node that is not in
2970         collection. Throw NullReferenceException when null is passed to 
2971         Remove. Allow first element of the collection to be removed. Fixes
2972         bug #79831.  In GetEnumerator ().Current return null if positioned 
2973         before the first element of the collection. In GetEnumerator ().Reset,
2974         position before first element of the collection.
2975
2976 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2977
2978         * PropertyGrid.cs: To match MS, remove default title and description
2979         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
2980         buttons.
2981
2982 2006-11-04  Chris Toshok  <toshok@ximian.com>
2983
2984         * Theme.cs: add a Clamp method, just for kicks.
2985
2986         * ThemeWin32Classic.cs: clamp all color components to [0..255].
2987
2988 2006-11-04  Chris Toshok  <toshok@ximian.com>
2989
2990         * Form.cs: if the form isn't visible, Close() does nothing.
2991
2992 2006-11-03  Chris Toshok  <toshok@ximian.com>
2993
2994         * Form.cs (Close): if the form is modal, don't Dispose of it, only
2995         Hide it.
2996         (WndProc): don't Dispose after handling the WM_CLOSE message.
2997
2998         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
2999         them as such, instead of using casts from Control to Form.  Also,
3000         don't Dispose of the modal dialog when we fall out of the loop -
3001         Close() it instead.
3002
3003         fixes bug #79813.
3004
3005 2006-11-03  Chris Toshok  <toshok@ximian.com>
3006
3007         * Control.cs (Dispose): only go through the dispose thing if we're
3008         @disposing, and we haven't already been disposed.  Fixes bug
3009         #79814.
3010
3011         * Form.cs: no reason to call "base.Dispose()" here instead of
3012         "Dispose()".
3013
3014 2006-11-03  Mike Kestner  <mkestner@novell.com>
3015
3016         * ComboBox.cs : use ToString instead of casts in AddItem for
3017         sorting functionality.  Fixes #79812.
3018
3019 2006-11-03  Chris Toshok  <toshok@ximian.com>
3020
3021         * Application.cs: pave the way for actually using the thread
3022         exception dialog.  it's ifdefed out at the moment.
3023
3024 2006-11-03  Chris Toshok  <toshok@ximian.com>
3025
3026         * ThreadExceptionDialog.cs: until we get a better layout, actually
3027         hide the details textbox and label when we shouldn't see them.
3028
3029 2006-11-03  Jackson Harper  <jackson@ximian.com>
3030
3031         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
3032         multiline textboxes anymore.  This method also determines the
3033         width/height of a textboxes canvas area.
3034         - Sorta a revert of the last patch.  For multiline just position
3035         the controls, then bail.  This way the scrollbar width won't be
3036         altered.
3037
3038 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
3039
3040         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
3041         it dont need.  Fixes #79537.
3042
3043 2006-11-02  Jackson Harper  <jackson@ximian.com>
3044
3045         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
3046         send the status after firing the DndOver event.
3047
3048 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3049
3050         * TrackBar.cs: Now orientation only switches height / width if
3051         the control's handle is created (Win32 does it like this). Also 
3052         fixed a typo in ToString() for a test to pass, changed the 
3053         exception thrown in set_LargeChange and set_SmallChange to 
3054         match Win32 behaviour, and added TrackBar tests to the unit 
3055         tests.
3056
3057 2006-11-02  Chris Toshok  <toshok@ximian.com>
3058
3059         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
3060         not _NET_WM_STATE_NO_TASKBAR.
3061
3062 2006-11-02  Jackson Harper  <jackson@ximian.com>
3063
3064         * TextControl.cs: Increment count by one, since in the update view
3065         count - 1 is used.
3066
3067 2006-11-02  Jackson Harper  <jackson@ximian.com>
3068
3069         * TextBoxBase.cs: Use client rectangle not bounds for checking if
3070         the mouse is in the client rectangle (duh).
3071
3072 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3073         
3074         * TrackBar.cs: Fixed trackbar jumping around when clicking
3075         on it - the trackbar was not detecting correctly at which
3076         side of the thumb the click was done. (fixes #79718)
3077
3078 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3079
3080         * ListBox.cs: scroll visible area when change SelectedIndex to
3081         a non visible area.  Fixes #79481.
3082
3083 2006-11-01  Jackson Harper  <jackson@ximian.com>
3084
3085         * TextControl.cs: When replacing the selection move the selection
3086         start/end/anchor to the end of the new text.
3087
3088 2006-11-01  Jackson Harper  <jackson@ximian.com>
3089
3090         * XplatUIWin32.cs: When setting the parent change the controls
3091         visibility to it's visibility flag, not to it's old parents
3092         visibility (.Visible walks the parent chain).
3093
3094 2006-11-01  Chris Toshok  <toshok@ximian.com>
3095
3096         * XplatUIX11.cs: revert the #79790 fix, as the simple.
3097         XSetTransientForHint fix breaks paint .net's tool windows.  more
3098         work needed for that one.
3099
3100 2006-11-01  Chris Toshok  <toshok@ximian.com>
3101
3102         * ScrollBar.cs: throw ArgumentException instead of Exception in
3103         LargeChange/SmallChange setters.  fixes unit tests.
3104
3105 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
3106
3107         * ContainerControl.cs: reverted rev.67183 (which was itself
3108         a reversion of rev.66853... eh).
3109         
3110         * Control.cs: Fixes Reflector hang by changing Focus() call
3111         to what it was before rev.66643 (calling Select() here sets 
3112         ActiveControl, which in some situations calls back Focus and 
3113         eventually does a stack overflow). Temp fix.    
3114         Changes to GetNextControl() to not look for children to select when
3115         parent cannot be selectable (so it looks for siblings instead)  
3116         
3117 2006-10-31  Mike Kestner  <mkestner@novell.com>
3118
3119         * CheckedListBox.cs : off by one error in returned index from
3120         ObjectCollection.Add.  Fixes #79758.
3121
3122 2006-10-31  Chris Toshok  <toshok@ximian.com>
3123
3124         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
3125         calls for the textbox/spinner, to keep from recursing to the point
3126         where we crash.  Fixes #79760.
3127
3128 2006-10-31  Chris Toshok  <toshok@ximian.com>
3129
3130         * ListControl.cs (set_SelectedValue): don't throw exceptions on
3131         null/"" value, just return.  matches ms's behavior and fixes some
3132         failing tests.
3133
3134 2006-10-31  Chris Toshok  <toshok@ximian.com>
3135
3136         * Control.cs (set_Capture): make a logic a little easier to
3137         follow.
3138
3139         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
3140         if it's being destroyed.  A necessary fix surely, but a bandaid
3141         also, to fix the stuck capture problem in bug #78413.
3142
3143 2006-10-31  Chris Toshok  <toshok@ximian.com>
3144
3145         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
3146         convention of clearing hwnd.ClientRect when we set the
3147         width/height (so it'll be recalculated by Hwnd).
3148
3149 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
3150
3151         * ContainerControl.cs: reversed Contains check from
3152         ActiveControl due to hanging problems. This fix
3153         partly regresses #79667 (button does not have
3154         initial focus), so this might be a symptom for 
3155         a larger parenting problem (set_ActiveControl
3156         is being called but the child control does
3157         not have the parent set yet?)   
3158         
3159 2006-10-31  Mike Kestner  <mkestner@novell.com>
3160
3161         * MenuAPI.cs : fix keynav when menu is click activated.
3162
3163 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
3164
3165         * ToolStrip*: Version 0.2.
3166
3167         * MenuStrip.cs: Version 0.1.
3168
3169         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
3170
3171 2006-10-30  Chris Toshok  <toshok@ximian.com>
3172
3173         [ fixes the oversized notify icon issue in bug #79745 ]
3174         
3175         * NotifyIcon.cs: scale the icon down to the size we're given by
3176         the XplatUI layer (this would be faster if we did it once instead
3177         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
3178         since it's never invoked.
3179
3180         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
3181         pixels high by default, so let's hardcode our systray icon to that
3182         size.  The SYSTEM_TRAY protocol should really have a way for
3183         client apps to query for the correct icon size.. but oh well.  A
3184         couple of patches to deal with the screwy client_window ==
3185         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
3186         instance, and also make sure we don't XSelectInput twice).
3187
3188 2006-10-30  Chris Toshok  <toshok@ximian.com>
3189
3190         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
3191         recreating forms.  Control recreation is the bane of my existence.
3192         Fix it in a way that keeps everyone happy.
3193
3194 2006-10-30  Chris Toshok  <toshok@ximian.com>
3195
3196         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
3197         just non-CHILD ones.  otherwise sometimes scrollbars end up with
3198         client_windows not being resized to the proper size (ReportBuilder
3199         shows this extremely well).
3200
3201 2006-10-30  Chris Toshok  <toshok@ximian.com>
3202
3203         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
3204         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
3205         showing up in the gnome taskbar.  Fixes bug #79790.
3206
3207 2006-10-30  Chris Toshok  <toshok@ximian.com>
3208
3209         * ApplicationContext.cs: guard against a NRE.
3210
3211         * Application.cs: null out the old MainForm for the context, so we
3212         don't try to use it again once it's disposed.  Fixes bug #79783.
3213
3214 2006-10-30  Chris Toshok  <toshok@ximian.com>
3215
3216         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
3217         BindingContext, set the data source directly, otherwise do the
3218         lazy approach - the actual ListManager will be created when we get
3219         a BindingContext. Fixes bug #79700.
3220
3221 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3222
3223         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
3224           XplatUIX11.cs: Remove old 2 parameter SetVisible.
3225
3226         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
3227
3228 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3229
3230         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
3231         of SetVisible that allows a window to be shown, but not activated.
3232         This is needed on Windows for MenuStrip, and can probably be used
3233         with MainMenu and ComboBox to fix the focus stealing issues on
3234         Windows.
3235
3236         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
3237
3238 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
3239
3240         * PictureBox.cs: Fix the output of the ToString method.
3241
3242 2006-10-29  Chris Toshok  <toshok@ximian.com>
3243
3244         * Control.cs (get_TopLevelControl): fix bug #79781.
3245
3246 2006-10-29  Chris Toshok  <toshok@ximian.com>
3247
3248         * ListControl.cs (set_DataSource): throw Exception here, not
3249         ArgumentException, to match MS behavior.
3250
3251 2006-10-29  Chris Toshok  <toshok@ximian.com>
3252
3253         * Form.cs: remove the try-catch's around calls to GetWindowState.
3254         We can just check the return value.
3255
3256         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
3257         Instead return -1.
3258
3259         * XplatUI.cs: Add note about additional return value for
3260         GetWindowState.
3261
3262 2006-10-29  Chris Toshok  <toshok@ximian.com>
3263
3264         * Control.cs (CreateHandle): when we create our handle, we also
3265         create the handles of our child controls.  Fixes one of the
3266         Control unit tests (CH11).
3267
3268 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3269
3270         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
3271
3272 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3273
3274         * ThemeClearlooks.cs: A little speedup.
3275
3276 2006-10-27  Chris Toshok  <toshok@ximian.com>
3277
3278         * Control.cs: implement Control.FromChildHandle in a way that
3279         matches the docs (and fixes the failed test.)
3280
3281 2006-10-27  Chris Toshok  <toshok@ximian.com>
3282
3283         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
3284         comments).
3285
3286         * DataGrid.cs: implement ResetForeColor such that the tests
3287         succeed.
3288         
3289 2006-10-27  Chris Toshok  <toshok@ximian.com>
3290
3291         * ToolBarButton.cs: setting text/tooltiptext to null results in it
3292         being set to "".  Fixes bug #79759.
3293
3294 2006-10-27  Jackson Harper  <jackson@ximian.com>
3295
3296         * TextControl.cs: We need to clear the entire selection area when
3297         setting the start, otherwise multiline selections are still
3298         visible.
3299
3300 2006-10-26  Chris Toshok  <toshok@ximian.com>
3301
3302         * PropertyGridView.cs: 
3303
3304         - ifdef all the code specific to the double
3305         buffer case, and provide some alternatives in the non-doublebuffer
3306         code, which makes heavy use of XplatUI.ScrollWindow to move things
3307         around without having to invalidate (and cause flicker).  There
3308         are still some drawing problems in the non-doublebuffered case, so
3309         DOUBLEBUFFER is defined by default.
3310
3311         - Fix the way dropdowns are handled.  now we explicitly watch for
3312         the events which might cause the dropdown to close, and break out
3313         of the nested event loop there.  This gets rid of all Capture
3314         code, at the expense of the Msg special casing.  Seems to work,
3315         though, and fixes bug #79743.
3316
3317 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
3318         * Control.cs: SetIsRecreating now recreates implicitly added
3319         child controls as well. Finally fixes #79629. The flag passed to 
3320         SetIsRecreating has also been removed since it wasn't used.
3321         
3322 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3323
3324         * PageSetupDialog.cs: Clean some code, fix some bits, 
3325         add some checks, and add a printer sub-dialog.
3326
3327 2006-10-26  Chris Toshok  <toshok@ximian.com>
3328
3329         * PropertyGrid.cs: make set_SelectedObject call
3330         set_SelectedObjects, and move the duplicate logic to the
3331         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
3332
3333         * PropertyGridView.cs: hide the textbox when we get a
3334         SelectedObjectsChanged event.
3335
3336         Fixes bug #79748.
3337
3338 2006-10-26  Chris Toshok  <toshok@ximian.com>
3339
3340         * PropertyGridView.cs: deal with the type converter not supporting
3341         GetStandardValues() or GetStandardValues() returning null, which
3342         is does in the default case.  Fixes #79742.
3343
3344 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3345
3346         * CheckedListBox.cs: nunit no longer crashes when selecting 
3347         Project/Edit menu option
3348         
3349 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3350
3351         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
3352         is no menu selected. fixes #79739
3353
3354 2006-10-25  Chris Toshok  <toshok@ximian.com>
3355
3356         * PropertyGridView.cs: factor out the splitter invalidation code
3357         into the SplitterPercent setter, and for kicks implement the
3358         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
3359         amount in either direction.
3360
3361 2006-10-25  Chris Toshok  <toshok@ximian.com>
3362
3363         * PropertyGridView.cs: do some cleanup of the brush used to draw
3364         text - read only fields should be grayed out.  not sure how to do
3365         this with the textbox, though.  but the textbox's should also be
3366         readonly now at least.  Also, hide/show the textbox when resizing
3367         the control.
3368         
3369         * CursorConverter.cs: use System.Reflection when getting the
3370         properties of Cursors, as TypeDescriptor.GetProperties isn't
3371         returning static properties.
3372
3373 2006-10-25  Chris Toshok  <toshok@ximian.com>
3374
3375         * PropertyGridView.cs: factor out the up/down handling, and reuse
3376         it for page up/down.  also add End/Home support.
3377
3378 2006-10-25  Chris Toshok  <toshok@ximian.com>
3379
3380         * PropertyGridView.cs:
3381
3382         - ensure the selected grid item is visible in the scrolled area,
3383         fixes bug #79572.
3384
3385         - fix Keys.Down handling when you're on the last item in the
3386         propertygrid.
3387
3388 2006-10-25  Mike Kestner  <mkestner@novell.com>
3389
3390         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
3391         clicks too.  Fixes #79725.
3392
3393 2006-10-24  Chris Toshok  <toshok@ximian.com>
3394
3395         * PropertyGrid.cs: use property.Converter instead of
3396         TypeDescriptor.GetConverter(property.PropertyType), so we catch
3397         TypeConverters declared on the property as well as on the
3398         PropertyType.  Fixes bug #79678.
3399
3400 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
3401
3402         * MimeIcon.cs, Mime.cs:
3403           Fallback to the default platform handler if no shared mime info
3404           stuff exists (fixes #79693).
3405
3406 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3407         * ContainerControl.cs: Incorrect contains check in ActiveControl 
3408         from previous fix (duh).
3409
3410 2006-10-20  Chris Toshok  <toshok@ximian.com>
3411
3412         * PropertyGridView.cs: the dropdown should be MIN(number of items
3413         in list, 15).  Fixes #79551.
3414
3415 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3416         Fixes #79384, #79394, #79652, #79667
3417         * Application.cs: 
3418         
3419         - Modal windows are now destroyed in the proper order for windows
3420         
3421         * ContainerControl.cs:
3422         
3423         - ActiveControl setter has more conditions on when to return:
3424                 - if we're reselecting the active control, but it actually
3425                 didn't have focus (window hidden or some such), it runs
3426                 - if the active control being selected doesn't actually 
3427                 exist in the container, it returns
3428         
3429         * Form.cs
3430         
3431         - The ShowDialog now gets the current form as the owner when
3432         invoking without parameters, and correctly activates the owner 
3433         when returning
3434         
3435         * MessageBox.cs
3436         
3437         - MessageBox now catches the Escape key to exit
3438
3439 2006-10-20  Chris Toshok  <toshok@ximian.com>
3440
3441         * PropertyGridView.cs: fix a number of issues (bug #78565, and
3442         most of bug #79676):
3443
3444         - you can navigate around the property grid with the arrow keys.
3445
3446         - the dropdown is sized properly when the pg has a vertical
3447         scrollbar.
3448
3449         - fix the indentation for subentries, and properly select the
3450         entire label rect.
3451
3452         - fix the gray bar's drawing (only draw it to the last element,
3453         not for the height of the control.  Also make sure we draw that
3454         last horizontal grid line.
3455
3456         - use the same mechanism the datagrid uses wrt the editing textbox
3457         when scrolling/resizing/etc.  Namely, we hide it first, do the
3458         operation, then show it again (if it's still visible).
3459         
3460         - aggressively remove a lot of unnecessary refreshes (and also
3461         calls to Invalidate(). call more limited variants, and only redraw
3462         what we need.)
3463         
3464         * PropertyGrid.cs:
3465
3466         - when we're populating the merged collection, fill in the UI
3467         parent with either the passed in item, or the category item we
3468         create.
3469
3470         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
3471
3472         * GridItem.cs: drop some fully qualified names.
3473         
3474         * GridEntry.cs: add a "UIParent", which is basically the parent
3475         treenode.
3476
3477         * GridItemCollection.cs: add an IndexOf method.
3478
3479 2006-10-20  Mike Kestner  <mkestner@novell.com>
3480
3481         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
3482         a working win32 NC invalidation mechanism, we can't invalidate
3483         menus.  [Fixes #79705]
3484
3485 2006-10-20  Mike Kestner  <mkestner@novell.com>
3486
3487         * ListBox.cs : don't update the VScrollbar if the list is empty,
3488         just hide it.  [Fixes #79692]
3489
3490 2006-10-20  Jackson Harper  <jackson@ximian.com>
3491
3492         * RichTextBox.cs: Handle some special chars better, and don't skip
3493         the entire group when we encounter a special char that we don't
3494         handle correctly.
3495
3496 2006-10-18  Chris Toshok  <toshok@ximian.com>
3497
3498         * PropertyGridView.cs: address a number of issues from bug #79676,
3499         mostly of the cosmetic variety.
3500
3501         - The highlight rectangle for indented items not extends all the
3502         way to the left.
3503
3504         - Indented items aren't indented so much.
3505
3506         - the dropdown is properly sized width-wise if the pg has a
3507         vertical scrollbar.
3508
3509 2006-10-18  Chris Toshok  <toshok@ximian.com>
3510
3511         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
3512         systray stuff is rather convoluted to begin with.
3513
3514         systray icons are a single window for some reason (that I haven't
3515         figured out yet), and for them, client_window == whole_window.
3516         Given the way the tests are structured elsewhere to determine
3517         which paints are pending (client vs. nc), that situation will
3518         always yield PAINT, not NCPAINT.  So, if we have a pending
3519         nc_expose and no pending expose, remove the hwnd from the paint
3520         queue, and also set nc_expose_pending to false, to keep us from
3521         blocking further expose's adding the hwnd to the paint queue.
3522
3523         phew.  like i said, a rather convoluted change.  Fixes the
3524         notifyicon repaint issues in bug #79645.
3525
3526 2006-10-18  Chris Toshok  <toshok@ximian.com>
3527
3528         * Form.cs: when getting the backcolor of the form, don't get
3529         base.BackColor, as this allows parents to influence the background
3530         color.  This breaks mdi forms.  Instead, if the background_color
3531         is empty, return the default.
3532
3533 2006-10-18  Chris Toshok  <toshok@ximian.com>
3534
3535         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
3536         to being private instead of internal static.
3537
3538         * Control.cs: remove all the stupid ParentWaitingOnRecreation
3539         crap, it wasn't working for more deeply nested controls anyway,
3540         and we already have the is_recreating flag - use that instead.
3541         Before calling DestroyHandle in RecreateHandle, recurse through
3542         the control tree setting it to true.  this returns the recreate
3543         code to much of its original simplicity, while now guaranteeing we
3544         actually recreate everything we're supposed to.  This change gets
3545         fyireporting actually showing mdi children.
3546
3547 2006-10-17  Chris Toshok  <toshok@ximian.com>
3548
3549         * Form.cs: remove some debug spew, and collapse some duplicate
3550         code at the end of SetClientSizeCore.
3551
3552         * XplatUIX11.cs: 
3553         - add some more debug spew here too wrt Destroy handling.
3554         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
3555         in Control's handling of WM_DESTROY.
3556         - Remove the handling of zombie window DestroyNotifies from the
3557         event loop - we don't need it.  Now the only DestroyNotifies we
3558         actually handle are ones generated by X.
3559         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
3560         match gtk's (functioning) handling of this. This keep metacity
3561         from leaving droppings in the form of wm borders with no window
3562         contents all over the place.
3563
3564         * Control.cs:
3565         - add a bunch of debug spew wrt control recreation.
3566         - fix a bug where we weren't tracking Visible properly on
3567         recreated hwnds.
3568         - fixed the WM_PAINT double buffer handling to support re-entrant
3569         calls (yes, i know it's gross, but it's happening to us).
3570
3571 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3572         * ThemeWin32Classic.cs: changed drawing of selected days
3573         to make them look better.
3574
3575 2006-10-16  Chris Toshok  <toshok@ximian.com>
3576
3577         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
3578         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
3579
3580         * XplatUIX11.cs: move away from using hwnd.client_dc and
3581         hwnd.non_client_dc and on to a stack of dc's (and in window's
3582         case, PAINTSTRUCT's), so we can deal with nested Paint calls
3583         without puking or not disposing of Graphics objects.
3584
3585         * XplatUIOSX.cs: same.
3586
3587         * XplatUIWin32.cs: same.
3588
3589 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3590
3591         * FileDialog.cs: Don't call on_directory_changed inside
3592           OnSelectedIndexChanged (it changes the SelectedIndex too).
3593           Instead move it to OnSelectionChangeCommitted.
3594
3595 2006-10-13  Chris Toshok  <toshok@ximian.com>
3596
3597         * XplatUIX11.cs: more Destroy work.  the current code does the
3598         following things, in order:
3599
3600         1. Enumerates all handles of all controls at or below the one
3601         being destroyed, in pre-order.  As it is doing this, it marks the
3602         handles as zombie and clears all references to them.
3603         
3604         2. calls XDestroyWindow on the window passed in.
3605
3606         3. SendMessage's WM_DESTROY to all he handles in the accumulated
3607         list.
3608
3609 2006-10-13  Chris Toshok  <toshok@ximian.com>
3610
3611         * XplatUIX11.cs: set hwnd.zombie to true before calling
3612         SendMessage (WM_DESTROY).  this keeps us from marking the new
3613         window a zombie, and also keeps us from calling sendmessage at
3614         all.
3615
3616 2006-10-13  Jackson Harper  <jackson@ximian.com>
3617
3618         * TextControl.cs: Do not show the caret and selection at the same
3619         time.  Reduces ugliness by 35%.
3620
3621 2006-10-13  Chris Toshok  <toshok@ximian.com>
3622
3623         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
3624         zombie after we do the recursive call, so we actually do call
3625         SendMessage on the children controls.
3626         (GetMessage): if we find a pending paint event for a zombie hwnd,
3627         remove the hwnd from the paint queue, or else it will always be
3628         there (and we'll effectively loop infinitely)
3629
3630 2006-10-13  Mike Kestner  <mkestner@novell.com>
3631
3632         * MenuItem.cs : add Selected format under keynav too.
3633         Fixes #79528.
3634
3635 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
3636
3637         * PropertyGrid.cs: Fixed some NRE's and small difference between our
3638         implementation and that of MS.
3639
3640 2006-10-13  Chris Toshok  <toshok@ximian.com>
3641
3642         * Control.cs (OnInvalidated) only futz with the invalid_region if
3643         the control is double buffered.  this fixes the apparent hang in
3644         the ListView unit tests.  Someone needs to make the
3645         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
3646
3647 2006-10-13  Chris Toshok  <toshok@ximian.com>
3648
3649         * PropertyGridView.cs:
3650
3651         - do a little refactoring so that only one place calls
3652         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
3653         else call that.  Also make it Refresh, since there are redraw bugs
3654         otherwise (we should take a look at that...)
3655
3656         - do a little more refactoring work to share the body of code
3657         involved with the drop down.  it was duplicated in the code
3658         dealing with the listbox handling and in the code dealing with the
3659         UITypeEditors.
3660
3661         - add a Capture to the dropdown form's control once it's
3662         displayed, and add a MouseDown handler that checks to make sure
3663         the position is inside the control.  If it's not, close the
3664         dropdown.  This fixes #78190.
3665
3666         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
3667         if the value is different than the initial value.
3668         
3669 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
3670
3671         * Control.cs: see #78650
3672         - Fixed GetNextControl for several cases:
3673                 - Changed FindFlatForward to return 
3674                 correct sibling control when more than one
3675                 control has same TabIndex as the currently 
3676                 focused one.
3677                 - Changed FindFlatBackward to loop children
3678                 from last to first and apply same logic as in
3679                 FindFlatForward
3680                 - Changed FindControlForward to search for
3681                 children when control is not a container
3682                 but has children, or search for siblings if
3683                 control is a container...
3684                 - Changed FindControlBackward   to continue
3685                 searching for child controls when hitting 
3686                 Panel-like parents
3687                 
3688         - Fixed Focus method to update ActiveControl
3689         (FocusTest.FocusSetsActive failure)
3690         
3691         * TabControl.cs:
3692         - Focus rectangle now refreshes when gaining
3693         or losing focus
3694         - Removed grab for Tab key on IsInputKey that 
3695         was keeping tab navigation from working (#78650)
3696
3697 2006-10-13  Chris Toshok  <toshok@ximian.com>
3698
3699         * PropertyGridView.cs:
3700         - Rewrite SetPropertyValue to loop over SelectedGridItem's
3701         SelectedObjects.
3702
3703         - Deal with GridItem.Value == null a few places.
3704
3705         * PropertyGrid.cs: 
3706         - replace the PopulateGridItemCollection with a pair of methods
3707         which compute the intersection of all the properties in the
3708         SelectedObjects array.  Fixes #79615.
3709
3710         - Throw ArgumentException from set_SelectedObjects if there's a
3711         null in the array.
3712
3713         - Add GetTarget method which can be used to traverse up the
3714         GridItem.Parent chain.  It depends on the assumption that
3715         selected_objects for different GridEntries are always in the same
3716         order (a safe assumption).  Use this method and loop over all the
3717         selected objects in the entry when calling RemoveValueChanged and
3718         AddValueChanged.
3719         
3720         * GridEntry.cs: Make this handle multiple selected objects.
3721         .Value returns null if not all the selected objects share the same
3722         value.
3723
3724 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
3725         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
3726           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
3727           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
3728           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
3729           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
3730         add additional functionality.
3731
3732 2006-10-12  Mike Kestner  <mkestner@novell.com>
3733
3734         * ErrorProvider.cs : new ToolTipWindow ctor sig.
3735         * HelpProvider.cs : new ToolTipWindow ctor sig.
3736         * ToolTip.cs : remove ToolTip param from Window sig since it is
3737         not used.
3738         * ToolBar.cs : add tooltip support.  Fixes #79565.
3739
3740 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3741
3742         * ComboBox.cs: move the events in set_SelectedIndex to 
3743         after the call to HighlightIndex in order to avoid 
3744         possible recursion and subsequent problems with the call
3745         to HighlightIndex and include a range check in 
3746         set_HighlightIndex. Fixes #79588
3747         
3748 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3749
3750         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
3751         to ui thread's settings instead of sunday. 
3752         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
3753
3754 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3755
3756         * DateTimePicker.cs
3757         * MonthCalendar.cs
3758         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
3759         and implement missing functionality (selecting different parts 
3760         of the date and edit them individually with the keyboard).
3761         
3762 2006-10-11  Chris Toshok  <toshok@ximian.com>
3763
3764         * Control.cs (OnInvalidated): fix NRE relating to last change.
3765
3766 2006-10-11  Chris Toshok  <toshok@ximian.com>
3767
3768         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
3769         atoms in _NET_WM_STATE here if the window is maximized.  We need
3770         to do this because we're *replacing* the existing _NET_WM_STATE
3771         property, so those atoms will be lost otherwise, and any further
3772         call to GetWindowState will return Normal for a window which is
3773         actually maximized.  Fixes #79338.
3774
3775 2006-10-11  Jackson Harper  <jackson@ximian.com>
3776
3777         * TextControl.cs: Special case for setting selection end to
3778         selection start, we basically kill the anchor.
3779         - some todo comments.
3780
3781 2006-10-11  Chris Toshok  <toshok@ximian.com>
3782
3783         * Control.cs: switch to using an "invalid_region" to track which
3784         parts of the image buffer need updating.  This is more code than
3785         the simple fix from r66532.  That version just attempted to always
3786         fill the entire buffer on redraw, which turns out to be
3787         inefficient when invalidating small rectangles.  This version
3788         simply adds the invalid rectangle to the invalid region.  When we
3789         get any WM_PAINT message we see if it can be filled using the
3790         image buffer, and if it can't (if the paint event's clip rectangle
3791         is visible in the invalid region) we first fill the image buffer.
3792         So, the image buffer is still a cache, we just fill it lazily.
3793
3794         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
3795         need it any longer.
3796
3797 2006-10-11  Chris Toshok  <toshok@ximian.com>
3798
3799         * XplatUIX11.cs (SetWindowPos): we need to update both position as
3800         well as size after calling XMoveResizeWindow.  This keeps us from
3801         ignoring future SetWindowPos calls.  Fixes the disappearing
3802         DateTimePicker in the ToolBarDockExample from bug #72499.
3803
3804 2006-10-11  Chris Toshok  <toshok@ximian.com>
3805
3806         * TextBoxBase.cs: reorder things a bit when it comes to
3807         resizing-causing-recalculation.  we were recalculating the
3808         document when our position was changed, which shouldn't happen.
3809         We only care about size changes.  Clear up some more redundant
3810         recalculation calls while I'm at it.  This makes the toolbar dock
3811         example snappy when you're just dragging toolbars around (since it
3812         causes a relayout whenever you move one.)
3813
3814 2006-10-11  Chris Toshok  <toshok@ximian.com>
3815
3816         * ToolBarButton.cs (get_Rectangle): this only returns
3817         Rectangle.Empty if Visible == false, or Parent == null.
3818         Parent.Visible doesn't matter.
3819
3820 2006-10-10  Chris Toshok  <toshok@ximian.com>
3821
3822         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
3823         by .net 1.1, so switch to an internal method instead.
3824
3825 2006-10-10  Chris Toshok  <toshok@ximian.com>
3826
3827         * Control.cs (WM_PAINT): when a control is double buffered we draw
3828         initially to the ImageBuffer and then copy from there.  But when a
3829         parent control which has child controls is double buffered, the
3830         initial drawing doesn't encompass the entire ClientRectangle of
3831         the parent control, so we end up with uninitialized bits (this is
3832         easily seen by dragging the top toolbar in
3833         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
3834         manually set the ClipRectangle of the paint_event (only the one we
3835         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
3836         of the nastiness in bug #72499.
3837
3838         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
3839         which we use in Control.cs's WM_PAINT handling.
3840
3841 2006-10-10  Jackson Harper  <jackson@ximian.com>
3842
3843         * TextBoxBase.cs: Finish off the autoscrolling stuff.
3844
3845 2006-10-10  Chris Toshok  <toshok@ximian.com>
3846
3847         * Cursor.cs: Apply a slightly different patch to the one suggested
3848         in #79609.
3849
3850 2006-10-10  Jackson Harper  <jackson@ximian.com>
3851
3852         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
3853         not the parent form.
3854         * TextControl.cs: use difference in old line count vs new count to
3855         calculate how many lines were added, this takes into account soft
3856         line breaks properly.
3857
3858 2006-10-10  Chris Toshok  <toshok@ximian.com>
3859
3860         * LinkLabel.cs: don't call MeasureCharacterRanges against a
3861         rectangle located at 0,0 and the size of the text.  Use
3862         ClientRectangle instead.  This fixes rendering of non-left aligned
3863         link labels.
3864
3865 2006-10-10  Jackson Harper  <jackson@ximian.com>
3866
3867         * TextBoxBase.cs: When we set the selection start position the
3868         caret.
3869         * TextControl.cs: Need to update the caret when we decrement it to
3870         zero.
3871         - Make sure that the selection_visible flag gets reset to false if
3872         the selection isn't visible.  Before this you could get it set to
3873         visible by changing the selection start, then changing the end to
3874         equal the start.
3875
3876 2006-10-09  Jackson Harper  <jackson@ximian.com>
3877
3878         * TreeView.cs: Don't update scrollbars when we aren't visible.
3879         * TreeNodeCollection.cs: Only need to update scrollbars if being
3880         added to an expanded visible node or the root node.
3881
3882 2006-10-09  Chris Toshok  <toshok@ximian.com>
3883
3884         * XplatUIX11.cs (SendMessage): fix NRE.
3885
3886 2006-10-09  Jackson Harper  <jackson@ximian.com>
3887
3888         * TextBoxBase.cs: Implement horizontal autoscrolling.
3889         * TextControl.cs: Add a movement types that allows moving forward
3890         and backwards without wrapping.
3891
3892 2006-10-09  Mike Kestner  <mkestner@novell.com>
3893
3894         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
3895         with focus "expansion" of labels.  Fixes #79532 and then some.
3896         * ThemeWin32Classic.cs : add LineLimit to ListView label format
3897         when wrapping.
3898
3899 2006-10-09  Jackson Harper  <jackson@ximian.com>
3900
3901         * TextBoxBase.cs: Set the default max values to MaxValue since
3902         we use the scrollbar for autoscrolling and the default value is
3903         100.  If we don't do this the caret won't keep up with typing
3904         after about 18 characters.
3905         * TextControl.cs: Make sure the selection is offset by the
3906         viewport x.  This fixes selection when using auto scrolling.
3907
3908 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
3909         
3910         * Form.cs: The active control should be selected after the 
3911         OnLoad so that any child control initialization that affects
3912         the selection is done. Fixes #79406
3913
3914 2006-10-06  Chris Toshok  <toshok@ximian.com>
3915
3916         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
3917         to have no evil effects.
3918
3919         - Stop selecting StructureNotifyMask on non-toplevel windows.
3920
3921           The only way children should be resized is by using the SWF api,
3922           and we already send WM_WINDOWPOSCHANGED messages in those cases.
3923           Toplevel windows can be interacted with via the window manager,
3924           and so we keep the input mask there.
3925
3926           The other event StructureNotifyMask gives us (that we care
3927           about) is DestroyNotify.  The code is already structured such
3928           that it assumes we won't be getting a DestroyNotify event for
3929           the window we pass to XDestroyWindow (which is what
3930           StructureNotifyMask is supposed to guarantee.)  So, that code
3931           shouldn't be affected by this either.
3932
3933         - Stop selecting VisibilityChangeMask altogether.
3934
3935           We weren't doing anything with the resulting events anyway.
3936         
3937         This vastly reduces the number of X requests and events we see
3938         when resizing/laying out a large ui.
3939
3940 2006-10-06  Chris Toshok  <toshok@ximian.com>
3941
3942         * ScrollableControl.cs (DisplayRectangle): we need to take into
3943         account the DockPadding regardless of whether or not auto_scroll
3944         == true.  rework this slightly to this effect, and fix bug #79606,
3945         and part of #72499 (you can now see the drag handles and drag
3946         toolbars around).
3947
3948 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
3949
3950         * ListViewItem.cs: Collections of selected and checked items are now
3951         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
3952         we mark the collection "dirty".
3953         * ListView.cs: Marked collections readonly. Modified UpdateSelection
3954         to only clear SelectedItems when a new item is selected and MultiSelect
3955         is enabled. CheckedItems and SelectedItems now subscribe to Changed
3956         event of ListViewItemCollection, and mark its list dirty whenever
3957         that event is fire. This allows us to return selected/checked items 
3958         in the same order as they are in the Items collection. This matches
3959         the MS behavior.
3960
3961 2006-10-06  Chris Toshok  <toshok@ximian.com>
3962
3963         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
3964         right mouse clicks.  Fixes bug #79593.
3965
3966 2006-10-06  Chris Toshok  <toshok@ximian.com>
3967
3968         * Splitter.cs: doh, fix splitters that don't want to cancel the
3969         movement when you drag them.  Also, impose the limits on the
3970         values we send to the SplitterMovingEvent.  Fixes #79598.
3971
3972 2006-10-06  Jackson Harper  <jackson@ximian.com>
3973
3974         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
3975         since we use this for auto scrolling also.
3976
3977 2006-10-05  Chris Toshok  <toshok@ximian.com>
3978
3979         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
3980         beginning to think that most datagrid column types don't need this
3981         method.  Fixes bug #79392.
3982
3983 2006-10-05  Chris Toshok  <toshok@ximian.com>
3984
3985         * DataGrid.cs: move back to a more lazy scheme for creating the
3986         CurrencyManager, so we aren't updating it every time you set
3987         either DataSource or DataMember.  Also, don't call
3988         RecreateDataGridRows if the currency manager hasn't changed.
3989
3990 2006-10-05  Chris Toshok  <toshok@ximian.com>
3991
3992         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
3993         emitted, SelectedIndex should already be updated.  Fixes bug
3994         #78929.
3995
3996 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
3997
3998         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
3999           ToolStripTextBox.cs: Initial commit.
4000         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
4001
4002 2006-10-05  Jackson Harper  <jackson@ximian.com>
4003
4004         * TabControl.cs: We need to invalidate the tab control area when
4005         new ones are added (duh).
4006
4007 2006-10-03  Chris Toshok  <toshok@ximian.com>
4008
4009         * Form.cs (ProcessDialogKey): if the focused control is in this
4010         form and is a button, call its PerformClick method here.  Fixes
4011         #79534.
4012
4013 2006-10-04  Jackson Harper  <jackson@ximian.com>
4014
4015         * TabPage.cs: Ignore setting of Visible, and add an internal
4016         method for setting the controls visibility.  TabPage's Visible
4017         property is a little strange on MS, this seems to make us
4018         compatible, and fixes cases where people set all the tab pages to
4019         visible.
4020         * TabControl.cs: Use the new internal setting on tab pages
4021         visibility.
4022
4023 2006-10-03  Mike Kestner  <mkestner@novell.com>
4024
4025         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
4026
4027 2006-10-03  Mike Kestner  <mkestner@novell.com>
4028
4029         * ListView.cs : use is_visible instead of Visible to check if 
4030         scrollbars should be placed/sized.  Also some max_wrap_width
4031         love for LargeIcon view.  [Fixes #79533]
4032
4033 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
4034
4035         * TextControl.cs :
4036           Make set_TextAlign() do actually update the align. Fixed #78403.
4037
4038 2006-10-03  Chris Toshok  <toshok@ximian.com>
4039
4040         * DataGrid.cs: fix a crash when switching datasources if the
4041         vertical scrollbar is at someplace other than Value = 0.  Also,
4042         reduce the number of recalculation passes we do in SetDataSource
4043         from 2 to 1.
4044
4045 2006-10-03  Jackson Harper  <jackson@ximian.com>
4046
4047         * TextBoxBase.cs: Move the if value the same bail check up, we
4048         don't want to empty the document if it is already empty, this
4049         seems to severly mess up the caret.  TODO: I should probably fix
4050         the empty statement to update teh caret somehow.
4051
4052 2006-10-03  Chris Toshok  <toshok@ximian.com>
4053
4054         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
4055         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
4056         reflection, an internal row type, properties on said type, etc.)
4057         will work with our datagrid.  Fixes #79531.
4058
4059 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
4060
4061         * FileDialog.cs: Don't crash if a path is not accessible
4062           (System.UnauthorizedAccessException). Fixes #79569.
4063         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
4064           a ':' too. Return unknown icon for those paths/files.
4065
4066 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
4067
4068         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
4069         GetContainerControl returns null.
4070
4071 2006-10-02  Chris Toshok  <toshok@ximian.com>
4072
4073         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
4074         call to XGetWindowAttributes instead of "handle".  fixes an X
4075         error using notifyicon after the NotifyIconWindow to Form base
4076         class switch.
4077
4078 2006-10-02  Chris Toshok  <toshok@ximian.com>
4079
4080         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
4081         server grab and looping we need to do to get down to the most
4082         deeply nested child window.
4083         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
4084         QueryPointer again after the WarpPointer so we can generate a
4085         proper (fake) MotionNotify event to be enqueued in the destination
4086         window's queue.
4087         (GetCursorPos): call QueryPointer.
4088
4089         Fixes #79556.
4090
4091 2006-10-02  Jackson Harper  <jackson@ximian.com>
4092
4093         * NotifyIcon.cs: Derive the notify icon from a form, so things
4094         like FindForm work on it.
4095         - Swallow the WM_CONTEXTMENU message, since that is generated on
4096         mouse down, and context menu is a mouse up kinda guy.  I believe
4097         the correct fix here is probably to make the notify icon entirely
4098         NC area, but this seems to work fine for anyone not manipulating
4099         WndProc.
4100
4101 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
4102
4103         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
4104           ToolStripItemCollection.cs, ToolStripLabel.cs,
4105           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
4106           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
4107           Initial implementation.
4108         * TextRenderer.cs: Provide padding to MeasureText.
4109
4110 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
4111
4112         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
4113         of ButtonBaseAccessibleObject. Fix bug #79552.
4114
4115 2006-10-02  Jackson Harper  <jackson@ximian.com>
4116
4117         * MdiWindowManager.cs: When maximizing use the containers client
4118         rect, not it's bounds, so nc area is accounted correctly.
4119         - Use the parent form's size for the menu position, since the
4120         client isn't always the full form size.
4121
4122 2006-10-01  Chris Toshok  <toshok@ximian.com>
4123
4124         * ScrollableControl.cs: make sure neither right_edge or
4125         bottom_edge are < 0, since they're used as LargeChange for the
4126         horiz/vert scrollbars respectively.  Fixes #79539.
4127
4128 2006-10-01  Chris Toshok  <toshok@ximian.com>
4129
4130         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
4131         the xplatuix11 code can cause us to destroy/recreate our handle.
4132
4133         * XplatUIX11.cs
4134         (SystrayAdd):
4135         - this code can be invoked many times for the same Hwnd.  Make
4136           sure we only destroy the client window once (the first time this
4137           method is called).  This fixes bug #79544.
4138         - Remove the call to the improperly bound XSync.  why we had two
4139           bindings to this, I will never know, but this call resulted in
4140           events being discarded from the queue(!).
4141         - correct a misunderstanding of _XEMBED_INFO - the second atom is
4142           not our current state but the state we wish to be in.  So, 0 if
4143           we don't want to be mapped.  Change it to 1.
4144         (SystrayRemove): The XEMBED spec makes mention of the fact that
4145         gtk doesn't support the reparent of client windows away from the
4146         embedder.  Looking at gtksocket-x11.c seems to agree with this.
4147         The only avenue we have for removing systray icons is to destroy
4148         them.  We don't want the handle to go away for good, though, so
4149         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
4150         #79545.
4151         
4152 2006-10-01  Chris Toshok  <toshok@ximian.com>
4153
4154         * Form.cs (WndProc): inline the native_enabled variable usage into
4155         the cases in which it's used.  Fixes #79536.
4156
4157 2006-09-29  Mike Kestner  <mkestner@novell.com>
4158
4159         * ListView.cs : toggle the selection state for ctrl clicks in 
4160         multiselect mode. [Fixes #79417]
4161
4162 2006-09-29  Mike Kestner  <mkestner@novell.com>
4163
4164         * ListView.cs : kill CanMultiSelect and refactor the selection
4165         code to support multiselection in the absence of mod keys. Steal
4166         arrow/home/end keys by overriding InternalPreProcessMessage to
4167         restore regressed keynav behavior.
4168         [Fixes #79416]
4169
4170 2006-09-29  Jackson Harper  <jackson@ximian.com>
4171
4172         * MdiClient.cs: Repaint the titlebars when the active window is
4173         changed.
4174
4175 2006-09-29  Chris Toshok  <toshok@ximian.com>
4176
4177         * Application.cs: when entering a runloop with a modal, make sure
4178         the hwnd is enabled.  Fixes #79480.
4179
4180 2006-09-29  Chris Toshok  <toshok@ximian.com>
4181
4182         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
4183         when ListManager.CanAddRows == false, bump us back one.
4184
4185         * DataGridColumnStyle.cs (ParentReadOnly): remove the
4186         listmanager.CanAddRows check.  This makes ArrayLists uneditable
4187         using a datagrid, which is not right.
4188         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
4189         is an IEditable, but call property_descriptor.SetValue regardless.
4190         fixes #79435.
4191
4192 2006-09-29  Chris Toshok  <toshok@ximian.com>
4193
4194         * DataGridBoolColumn.cs: we need to test equality in the face of
4195         possible null values (as is the case with the default NullValue).
4196         This patch keeps us from crashing in that case.
4197
4198 2006-09-29  Jackson Harper  <jackson@ximian.com>
4199
4200         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
4201         here, since it will get called for every node collection in the
4202         tree. This is now done in the treeview once the sorting is
4203         finished.
4204         * TreeView.cs: Recalculate the visible order, and update the
4205         scrollbars after sorting, set the top nope to the root so that the
4206         recalc actually works.
4207
4208 2006-09-29  Chris Toshok  <toshok@ximian.com>
4209
4210         * LinkLabel.cs: more handling of the default link collection in
4211         the face of LinkArea manipulation.  The default link collection
4212         contains 1 element (start=0,length=-1).  If the user sets LinkArea
4213         to anything and the links collection is the default, clear it.
4214         Then only add the link if its nonempty.  Fixes #79518.
4215
4216 2006-09-29  Chris Toshok  <toshok@ximian.com>
4217
4218         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
4219         piece correctly when we hit a '\n'.  Fixes #79517.
4220
4221 2006-09-29  Chris Toshok  <toshok@ximian.com>
4222
4223         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
4224         change the binding of gdk_init_check to take two IntPtr's, and
4225         pass IntPtr.Zero for both of them.  Fixes #79520.
4226
4227 2006-09-29  Mike Kestner  <mkestner@novell.com>
4228
4229         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
4230         [Fixes #78779]
4231
4232 2006-09-28  Jackson Harper  <jackson@ximian.com>
4233
4234         * XplatUIX11.cs: When translating NC messages make sure we go from
4235         whole window to screen, not client window to screen.
4236         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
4237         method doesn't exist
4238         - Skip over controls that aren't forms when arranging.
4239
4240 2006-09-28  Jackson Harper  <jackson@ximian.com>
4241
4242         * XplatUIWin32.cs: Clip the rect to the parent window.
4243         * XplatUIStructs.cs: Add clipping modes struct.
4244         * InternalWindowManager.cs: New private method that factors title
4245         bar heights in when calculating the pos of an NC mouse message.
4246         - Use SendMessage to force a paint when the form's size is changed
4247         instead of painting the decorations immediately.
4248         - Don't let the NC button click messages get to DefWndProc,
4249         because they will attempt to handle windowing themself, and this
4250         messes up z-order (it will put them in front of the scrollbars).
4251         * XplatUIX11.cs: Make sure that we don't reset window managers if
4252         we already have one (ie the window is an MDI window).
4253
4254 2006-09-28  Chris Toshok  <toshok@ximian.com>
4255
4256         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
4257         menu code really needs going over.
4258
4259 2006-09-27  Chris Toshok  <toshok@ximian.com>
4260
4261         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
4262         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
4263         window is maximizable.  So, we need to make sure that even if we
4264         clear the border/wm frame of those functions, they're still
4265         available (basically, we remove the decoration without removing
4266         the function).  Half the fix for #79338.
4267
4268 2006-09-27  Chris Toshok  <toshok@ximian.com>
4269
4270         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
4271         Fixes bug #79515.
4272
4273 2006-09-27  Chris Toshok  <toshok@ximian.com>
4274
4275         * Splitter.cs: reorder things a bit so that we don't actually
4276         draw/move the splitter until after calling OnSplitterMoving.  This
4277         lets users cancel/disallow the movement by explicitly setting
4278         event.SplitX/SplitY.  Fixes #79372.
4279
4280 2006-09-27  Jackson Harper  <jackson@ximian.com>
4281
4282         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
4283         because it is most likely on a window being destroyed, and that
4284         will give us an X11 error.
4285
4286 2006-09-27  Chris Toshok  <toshok@ximian.com>
4287
4288         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
4289         the dropdown button now toggles between showing and hiding the
4290         dropdown.  Also, get rid of dropdown_form_showing and just use
4291         dropdown_form.Visible.  We still don't do a grab, but I'll leave
4292         that part to someone who has handled Capture-fu before.
4293
4294 2006-09-27  Chris Toshok  <toshok@ximian.com>
4295
4296         * DataGrid.cs: return false if alt isn't pressed when '0' is
4297         pressed.  this keeps the '0' key from being swallowed, and fixes
4298         bug #79350.
4299
4300 2006-09-27  Chris Toshok  <toshok@ximian.com>
4301
4302         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
4303         Calling Refresh (in response to a scrollbar event) screws up the
4304         scrollbar painting.  Fixes bug #78923.
4305
4306 2006-09-27  Chris Toshok  <toshok@ximian.com>
4307
4308         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
4309         then insert into hashtable" blocks threadsafe.
4310
4311 2006-09-27  Chris Toshok  <toshok@ximian.com>
4312
4313         * MessageBox.cs (CreateParams): the styles should be |'ed with our
4314         baseclass's, since otherwise the
4315         ControlBox/MinimizeBox/MaximizeBox assignments above have no
4316         effect.  This gets the close button back in messageboxes.
4317
4318 2006-09-27  Chris Toshok  <toshok@ximian.com>
4319
4320         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
4321         flag, not just != 0.  this makes flags that are actually multiple
4322         bits (like WS_CAPTION) work.  fixes bug #79508.
4323
4324 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
4325
4326         * PageSetupDialog.cs: add support for getting and settings the 
4327         paper size, source and orientation.
4328
4329 2006-09-26  Chris Toshok  <toshok@ximian.com>
4330
4331         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
4332         and caption == "", we need to remove the resize handles as well as
4333         the title bar.
4334
4335         * Control.cs (set_Text): turns out that setting Text on a form
4336         should change the WM styles on the window, since if ControlBox ==
4337         false, the only way to get a window border is to have a non-""
4338         Text property.  check winforms/forms/text.cs for an example.  so,
4339         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
4340         update both window styles and title.  This fixes a lot of dialogs
4341         (including the preferences dialog in MonoCalendar.)
4342
4343 2006-09-26  Chris Toshok  <toshok@ximian.com>
4344
4345         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
4346         control isn't a Form), call Win32ShowWindow to hide the window,
4347         but don't update the control Visible property.  When we reparent
4348         back to a parent control, call SetVisible in order for the
4349         window's visibility to be reinstated.
4350
4351         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
4352         the FosterParent.
4353
4354         * Control.cs (ControlCollection.Remove): remove that value.Hide()
4355         call for good, since it breaks MonoCalendar (and other things I'm
4356         sure.) Also, set all_controls to null *after* the owner calls,
4357         which end up regenerating it.
4358         (ChangeParent): allow new_parent to be == null, passing
4359         IntPtr.Zero down to XplatUI.
4360
4361         this fixes #79294 the right way.
4362
4363 2006-09-26  Mike Kestner  <mkestner@novell.com>
4364
4365         * GridEntry.cs : internal SetParent method.
4366         * PropertyGrid.cs : attach to property changed on the proper
4367         target if we have a hierarchical grid with subobjects. Setup
4368         GridItem.Parent for hierarchical items.
4369         * PropertyGridView.cs : Set value on the correct target for
4370         hierarchical grids. [Fixes #78903]
4371
4372 2006-09-26  Chris Toshok  <toshok@ximian.com>
4373
4374         * Control.cs (ChildNeedsRecreating): this should return true if
4375         either we're being recreated and the child is in our list, or our
4376         parent is waiting for our recreation.
4377
4378 2006-09-26  Chris Toshok  <toshok@ximian.com>
4379
4380         * Control.cs (ControlCollection.Remove): reinstate the
4381         value.Hide() call as suggested in bug #79294.
4382
4383 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
4384
4385         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
4386         coordinates (versus a relative move).
4387
4388 2006-09-26  Chris Toshok  <toshok@ximian.com>
4389
4390         * Control.cs: rework child recreation a little bit.  It turns out
4391         that we race between the DestroyNotify the WM_DESTROY message.  If
4392         the parent gets its DestroyNotify before the child gets the
4393         WM_DESTROY message, the child ends up not recreating (since the
4394         parent finishes its recreation on DestroyNotify, and the child
4395         checks ParentIsRecreating.)
4396
4397         So, instead we store off a list of all the child controls which
4398         need to be recreated when the parent control starts to recreate
4399         itself.  Then, when child controls get their WM_DESTROY message we
4400         check to see if they're in the parent's pending recreation list,
4401         and if so, we recreate.  This removes all dependency on ordering
4402         from the code and fixes the initial MonoCalendar upgrade dialog.
4403         
4404 2006-09-26  Jackson Harper  <jackson@ximian.com>
4405
4406         * TextControl.cs: Use the Line to get the length of the line,
4407         since soft line breaks can change the end line.
4408
4409 2006-09-26  Chris Toshok  <toshok@ximian.com>
4410
4411         * Control.cs (ControlCollection.AddImplicit): don't add the
4412         control again if it's already in one of our lists.  This keeps us
4413         from adding controls over and over again for comboboxes when their
4414         handle gets recreated (as the combobox adds implicit controls in
4415         OnHandleCreated).  Fixes the X11 errors in bug #79480.
4416
4417 2006-09-26  Jackson Harper  <jackson@ximian.com>
4418
4419         * TextControl.cs: When deleting characters make sure that any
4420         orphaned zero lengthed tags get deleted.
4421         - Fix ToString for zero lengthed tags.
4422
4423 2006-09-25  Jackson Harper  <jackson@ximian.com>
4424
4425         * TextControl.cs: When getting a tag at the location there can be
4426         multiple tags at the same spot, these are 0-lengthed tags that
4427         appear when extra formatting has been stuck in a location.  We
4428         need to pull out the last of these 0 lengthed tags.
4429
4430 2006-09-25  Jackson Harper  <jackson@ximian.com>
4431
4432         * TextControl.cs: Fix print out in debug method.
4433         * TextBoxBase.cs: When text is set bail if we are setting to the
4434         previous value.
4435         
4436 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
4437
4438         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
4439           It is now possible to change the selected index in a FontXXXListBox
4440           with the up and down arrow keys from the FontXXXTextBoxes.
4441           Also, send the FontXXXTextBox mouse wheel event to the corresponding
4442           FontXXXListBoxes to match ms.
4443
4444 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
4445
4446         * SystemInformation.cs: Return a clone of the theme's MenuFont because
4447         anyone can dispose it, anytime. All other properties returns enums, 
4448         structs or basic types so they don't need such tricks.
4449
4450 2006-09-22  Jackson Harper  <jackson@ximian.com>
4451
4452         * XplatUI.cs:
4453         * XplatUIWin32.cs:
4454         * Clipboard.cs:
4455         * DataFormats.cs:
4456         * XplatUIOSX.cs:
4457         * XplatUIDriver.cs: Update interface to add a primary selection
4458         flag, so the driver can use the primary selection buffer if
4459         needed.
4460         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
4461
4462         * RichTextBox.cs: We need to supply the data object to paste now
4463         (so we can choose to supply CLIPBOARD or PRIMARY).
4464         * TextBoxBase.cs: Supply data object to paste (see above).
4465         - Middle click uses the primary selection data object.
4466         
4467 2006-09-21  Chris Toshok  <toshok@ximian.com>
4468
4469         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
4470         of SetWMStyles.  It's still a rat's nest and is largely
4471         order-dependent which I dislike immensely.  This also fixes the X
4472         button disappearing from toplevel forms.
4473
4474 2006-09-21  Mike Kestner <mkestner@novell.com>
4475
4476         * ListBox.cs: move Jordi's click/dblclick raising code to the
4477         mouse up handler.
4478
4479 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4480
4481         * ListBox.cs: Fixes 79450
4482
4483 2006-09-21  Mike Kestner <mkestner@novell.com>
4484
4485         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
4486         to deal with people updating the TreeNodeCollection after the tree
4487         is disposed.  "Fixes" 79330.
4488
4489 2006-09-20  Jackson Harper <jackson@ximian.com>
4490
4491         * TextControl.cs: Push the cursor record onto the undo stack
4492         before the delete action. This fixes 78651.
4493
4494 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
4495
4496         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
4497         CreateParams. Fixes 79329.
4498
4499 2006-09-19  Chris Toshok  <toshok@ximian.com>
4500
4501         * XplatUIX11.cs: a couple of blanket code massage passes to clean
4502         things up a bit.  First, get rid of the NetAtoms array (and the NA
4503         enum), and just embed the atoms as static fields.  Also, add a
4504         couple of functions (StyleSet and ExStyleSet) to clean up all the
4505         bitmask testing of styles.
4506
4507         * X11Structs.cs: remove the NA enum, not needed anymore.
4508         
4509 2006-09-19  Chris Toshok  <toshok@ximian.com>
4510
4511         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
4512         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
4513         added cleanup to get MessageBox titles appearing again, which were
4514         broken by my earlier fix for caption-less/ControlBox-less windows.
4515
4516 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
4517
4518         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
4519           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
4520           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
4521           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
4522           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
4523           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
4524           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
4525           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
4526           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
4527           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
4528           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
4529             Inital import.
4530         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
4531           ToolStripButton.cs: Stubs needed for above.
4532         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
4533
4534 2006-09-15  Chris Toshok  <toshok@ximian.com>
4535
4536         * XplatUIX11.cs:
4537         - make the MessageQueues hashtable Synchronized.
4538         
4539         - SendMessage: if the Hwnd is owned by a different thread, use the
4540         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
4541         thread.  Fixes bug #79201.
4542
4543 2006-09-15  Chris Toshok  <toshok@ximian.com>
4544
4545         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
4546         ControlBox == false, we disallow maximize/minimize/close.  If the
4547         form Caption is "" we also disallow move (and get rid of the Title
4548         decoration).  Unfortunately, regardless of how things are set,
4549         we're stuck with the Title and WM menu.
4550
4551 2006-09-15  Chris Toshok  <toshok@ximian.com>
4552
4553         * Application.cs: add locking around the static message_filters
4554         ArrayList, part of #79196.
4555
4556 2006-09-15  Chris Toshok  <toshok@ximian.com>
4557
4558         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
4559         Form.ControlBox == false, the window has no titlebar nor resize
4560         handles.  fixes bug #79368.
4561
4562 2006-09-15  Chris Toshok  <toshok@ximian.com>
4563
4564         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
4565         >= 0.  Fixes bug #79370.
4566
4567 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
4568         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
4569         * Control.cs:
4570             Add properties: LayoutEngine, Margin, DefaultMargin.
4571             Add method: GetPreferredSize.
4572             Move layout logic from PerformLayout to layout engines. 
4573
4574 2006-09-13  Chris Toshok  <toshok@ximian.com>
4575
4576         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
4577         fix for #79326 broke #78718, so this change addresses that.
4578
4579         - in SendWMDestroyMessages remove the call to
4580         CleanupCachedWindows, since we might be recreating the control and
4581         need to maintain the references to right Hwnd handles.  Also, set
4582         the zombie flag to true for each of the children in the hierarchy
4583         instead of calling hwnd.Dispose.  This will cause GetMessage to
4584         ignore all events for the window except for DestroyNotify.
4585
4586         - In GetMessage, ignore messages except for DestroyNotify for
4587         zombie hwnds.
4588         
4589         * Control.cs: revert the is_recreating fix from the last
4590         ChangeLog.  It's definitely "right", but it breaks switching from
4591         an MDI form to a non-MDI form.  Will need to revisit that.
4592
4593         * Hwnd.cs: add a zombie flag, which means "the
4594         client_window/whole_window handles are invalid, but we're waiting
4595         for the DestroyNotify event to come in for them".  Set the flag to
4596         false explicitly if setting WholeWindow/ClientWindow, and also
4597         when Disposing.
4598         
4599 2006-09-13  Chris Toshok  <toshok@ximian.com>
4600
4601         * XplatUIX11.cs: rework window destruction slightly.
4602
4603         - when destroying the windows associated with a control, we don't
4604         need 2 separate XDestroyWindow calls.  Just the one for the
4605         whole_window (or for client_window if whole_window is somehow
4606         IntPtr.Zero -- can this happen?) is enough.
4607
4608         - reworked SendWMDestroyMessages slightly, so we always dispose
4609         the child control hwnd's after sending the messages.
4610         
4611         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
4612         the two places it was used (one was even using hwnd.Handle and the
4613         other hwnd.client_window.  ugh), adding another call in
4614         SendWMDestroyMessages.  We need this new call because now the
4615         DestroyNotify events in the queue will be ignored for the child
4616         controls (as their hwnd's were disposed, and the window id's
4617         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
4618
4619         - this fixes bug #79326.
4620
4621 2006-09-13  Chris Toshok  <toshok@ximian.com>
4622
4623         * Control.cs: don't always set is_recreating to false at the end
4624         of RecreateHandle, since sometimes we're not done (and won't be
4625         until WndProc handles the WM_DESTROY message).  Also, set
4626         is_recreating to false in the WM_DESTROY handling code.  Part of
4627         the fix for bug #79326.
4628
4629 2006-09-13  Miguel de Icaza  <miguel@novell.com>
4630
4631         * X11DesktopColors.cs: Start the droppage of debugging messages.
4632
4633         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
4634
4635 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
4636
4637         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
4638
4639 2006-09-12  Chris Toshok  <toshok@ximian.com>
4640
4641         * DataGrid.cs (get_ListManager): if the list_manager is null, try
4642         to create it using SetDataSource.  Fixes bug #79151.
4643
4644 2006-09-11  Chris Toshok  <toshok@ximian.com>
4645
4646         * XEventQueue.cs: add a DispatchIdle property.
4647
4648         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
4649         either the queue is null, or the queue has DispatchIdle set to
4650         true.
4651         (DoEvents): set queue.DispatchIdle to false around the
4652         peek/translate/dispatch message loop in this method.  This keeps
4653         Application.Doevents from emitting idle events.  Part of the fix
4654         for #78823.
4655
4656 2006-09-11  Chris Toshok  <toshok@ximian.com>
4657
4658         * DataGrid.cs (set_DataSource): make this work for both the
4659         winforms/datagrid test and ReportBuilder.  It seems as though when
4660         we've created a ListManager (or maybe it's if we have a
4661         BindingContext?), when we set the DataSource it clears the
4662         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
4663         #79333.
4664
4665 2006-09-11  Chris Toshok  <toshok@ximian.com>
4666
4667         * XplatUIX11.cs: deal with queue being null, which happens in all
4668         the Clipboard functions.  Fixes one of the two problems mentioned
4669         in #78612.
4670
4671 2006-09-11  Chris Toshok  <toshok@ximian.com>
4672
4673         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
4674         button on various spots (including outside the menu) works closer
4675         to MS, and doesn't crash.  Fixes #79343.
4676
4677 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
4678
4679         * ListView.cs: Do not initialize item_sorter in init. To match MS,
4680         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
4681         and the internal comparer is set. When a new ListViewItemSorter is set,
4682         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
4683         was specified. No further processing is necessary if SortOrder is set
4684         to it's current value. If Sorting is modified to None, and View is
4685         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
4686         (either custom or our internal ItemComparer) to null, on 1.0 profile
4687         only set item_sorter to null if its our internal IComparer. If Sorting
4688         is modified to Ascending or Descending, then use our internal IComparer
4689         if none is set, and if the current IComparer is our internal one then:
4690         on 2.0 profile always replace it with one for new Sorting, and on 1.0
4691         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
4692         Enum.IsDefined to verify whether a valid View value is specified in
4693         its setter. Automatically sort listview items when listview is
4694         created. In Sort, do nothing if ListView is not yet created, or if
4695         no item_sorter is set (no Sorting was set, Sorting was explicitly set
4696         to None or ListViewItemSorter was set to null). Added Sort overload
4697         taking a bool to indicate whether the ListView should be redrawn when
4698         items are sorted (we use this in ListViewItemCollection to avoid double
4699         redraws). Modified our internal IComparer to take the sort order into
4700         account. In Add and AddRange methods of ListViewItemCollection, also
4701         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
4702         view), but use overload with noredraw option to avoid double redraw.
4703         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
4704         true when View is Tile, and do the same when attempting to set View to
4705         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
4706         for selected/checked indices, as it involves overhead when sorting is
4707         done while these collections are not used all that often. Instead
4708         we'll build the indices on demand. Modified IList implementation of
4709         CheckedIndexCollection to use public methods if object is int.
4710         Modified CheckedListViewItemCollection to hide checked items if
4711         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
4712         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
4713         IList implementation in SelectedIndexCollection to use public methods
4714         if object is int. Modified SelectedListViewItemCollection to hide
4715         selected items if listview is not yet created.
4716         * ListViewItem.cs: CheckedIndices list no longer needs to be
4717         maintained separately (see ListView changes). Also clone font, fixes
4718         test failure.
4719
4720 2006-09-11  Mike Kestner  <mkestner@novell.com>
4721
4722         * ComboBox.cs: if we are updating the contents of the currently
4723         selected index, refresh the control or the textbox selection.
4724         [Fixes #79066]
4725
4726 2006-09-11  Mike Kestner  <mkestner@novell.com>
4727
4728         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
4729         the 'specified' logic has been moved there.  This seems like a bug 
4730         in Control.cs, since our current SetBoundsCore completely ignores 
4731         the specified parameter.  Peter's commit seems to indicate that is 
4732         the way the MS control implementation works.  [Fixes #79325]
4733
4734 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
4735
4736         * XplatUI.cs: Set default_class_name to be composed
4737         of current domain id. This allows MWF to be loaded in multiple
4738         domains on Win32.
4739
4740 2006-09-09  Miguel de Icaza  <miguel@novell.com>
4741
4742         * X11Keyboard.cs: If we are unable to obtain the input method, do
4743         not call CreateXic to create the input context.   Should fix
4744         #78944/79276.
4745
4746 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
4747
4748         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
4749           Simplified gnome support by adding more pinvokes to get the
4750           icon for a file or mime type.
4751
4752 2006-09-08  Jackson Harper  <jackson@ximian.com>
4753
4754         * MenuAPI.cs: Deslect popup context menu items before closing the
4755         window, so that you don't see the previously selected item
4756         selected when you reopen the menu.
4757         * TextControl.cs: Update the cursor position even if we don't have
4758         focus.  This fixes typing in things like the ComboBox.  I'm not
4759         totally sure we should always set the visibility if we don't have
4760         focus, but couldn't find any corner cases where the cursor showed
4761         up when it shouldn't.
4762
4763 2006-09-08  Chris Toshok  <toshok@ximian.com>
4764
4765         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
4766         our arrays are length 256.  & 0xff before indexing.  Fixes the
4767         crash in bug #78077.
4768         
4769 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4770
4771         * ThemeWin32Classic.cs: 
4772         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
4773         is true. Handle that check box too.
4774
4775 2006-09-07  Chris Toshok  <toshok@ximian.com>
4776
4777         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
4778         79244.
4779
4780 2006-09-07  Chris Toshok  <toshok@ximian.com>
4781
4782         * Control.cs: in set_BackColor only do the work if
4783         background_color != value.
4784
4785         * XplatUIX11.cs: move the clearing of invalid areas (both client
4786         and nc) to the same block of code where we set (nc_)expose_pending
4787         to false.  That is, move it from PaintEventEnd to PaintEventStart,
4788         so things that cause invalidates from within OnPaint will trigger
4789         another call to OnPaint.  Fixes bug #79262.
4790
4791 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
4792
4793         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
4794         * FileDialog.cs: Fix typo
4795
4796 2006-09-07  Jackson Harper  <jackson@ximian.com>
4797
4798         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
4799         for tab pages if they have any.
4800
4801 2006-09-06  Mike Kestner  <mkestner@novell.com>
4802
4803         * Splitter.cs: use the "current" rect when finishing drag handle
4804         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
4805
4806 2006-09-06  Mike Kestner  <mkestner@novell.com>
4807
4808         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
4809         support offset splitters. [Fixes #79298]
4810
4811 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
4812
4813         * Mime.cs: Fixed a bug that could override the global mime type
4814           result.
4815
4816 2006-09-05  Jackson Harper  <jackson@ximian.com>
4817
4818         * TabControl.cs: Better calculation method for setting the slider
4819         pos. Prevents crashes on really wide tabs.
4820         - Draw Image on tab pages if an image list is used.
4821
4822 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4823
4824         * MonthCalendar.cs: When Font changes, the Size should be
4825         updated to fit the new font's space requirements.
4826
4827 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
4828
4829         * ListBox.cs: If the items are cleared with Items.Clear set
4830           top_index to 0.
4831
4832 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4833
4834         * MonthCalendar.cs: Handle arrow keys as input keys. Also
4835         fire DateChanged event instead of DateSelected event when
4836         the date was changed by keyboard interaction.
4837
4838 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4839
4840         * DateTimePicker.cs: Handle DateChanged for the associated
4841         month_calendar control, and set month_calendar.Font from 
4842         OnFontChanged method, as well as resize the height of the
4843         control when needed. Make PreferredHeight proportional.
4844
4845 2006-09-01  Chris Toshok  <toshok@ximian.com>
4846
4847         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
4848         properties.
4849
4850         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
4851
4852 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
4853
4854         * FileDialog.cs: Set ClientSize instead of window size, to allow space
4855           for decorations (Fixes #79219)
4856
4857 2006-09-01  Mike Kestner  <mkestner@novell.com>
4858
4859         * ComboBox.cs: first stab at sorting plus some selection handling
4860         fixes to bring us more in line with MS behavior.  Also switches back
4861         to index based selection.  Alternative patches for index-based 
4862         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
4863         and latency@gmx.de on bug 78848.  I assume they were similar to this
4864         code I've had simmering in my tree forever.
4865         [Fixes #78848]
4866
4867 2006-09-01  Chris Toshok  <toshok@ximian.com>
4868
4869         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
4870         when setting list position guard against ending up with a -1 index
4871         (the other part of the fix for #78812).  Should probably make sure
4872         we don't need the analogous fix in the ItemDeleted case.
4873
4874         * DataGrid.cs:
4875         - in SetDataSource, work around the fact that the way
4876         OnBindingContextChanged is invoked will cause us to re-enter this
4877         method.  I'll remove the hack once I investigate
4878         OnBindingContextChanged.
4879
4880         - fix the logic in set_DataSource and set_DataMember (basically
4881         what to do if the other of the two is null.)
4882         
4883         - in OnListManagerItemChanged, we need to take into account the
4884         edit row when deciding whether or not to call RecreateDataGridRows
4885         (part of the fix for #78812).
4886
4887 2006-09-01  Jackson Harper  <jackson@ximian.com>
4888
4889         * Splitter.cs: Don't do anything if there is no control to affect
4890         (prevents us from crashing in weird tet cases).
4891         * TreeView.cs: Bounding box for the mouse movement reverting
4892         focus/selection back to previously selected node.  This matches
4893         MS, and makes the tree a lot more useable.
4894         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
4895         use clipping so they are not drawn.  This fixes when the control
4896         is set to have a transparent background, or if it was over an
4897         image.
4898
4899 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
4900
4901         * MimeIcon.cs: Improved handling for reading default icons when
4902           using gnome (2.16 made it necessary). Check and read svg icons
4903           first, then 48x48 and then 32x32 icons.
4904
4905 2006-08-31  Chris Toshok  <toshok@ximian.com>
4906
4907         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
4908         visible.
4909
4910         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
4911         ProcessKeyPreview.  Fixes part of #77806.
4912
4913         * DataGrid.cs: big patch.
4914
4915         - revert the queueing up of DataSource/DataMember if inside
4916         BeginInit/EndInit calls.  That's not the way the datagrid achieves
4917         its delayed databinding.  Instead, call SetDataSource in
4918         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
4919         #78811.
4920
4921         - Also, it wasn't mentioned in #78811, but the test case exhibits
4922         behavior that was lacking in our datagrid implementation - Columns
4923         that have mapping names that don't exist in the datasource's
4924         properties aren't shown.  Yuck.  To fix this I added the bound
4925         field to the column style, and basically any calculation to figure
4926         out anything about columns uses a loop to find the bound columns.
4927         still need to investigate if I can cache an array of the bound
4928         columns or if the indices must be the same.
4929
4930         - When setting CurrentCell, we no longer abort if the cell being
4931         edited was in the add row.  This fixes the other part of #77806.
4932
4933         - The new code also fixes #78807.
4934         
4935         * ThemeWin32Classic.cs: perpetrate the same disgusting
4936         column.bound field hack, and only render bound fields.
4937
4938 2006-08-31  Chris Toshok  <toshok@ximian.com>
4939
4940         * DataGridColumnStyle.cs: add bound field.  this field is true if
4941         the datasource has a property corresponding to the mapping name.
4942
4943         * DataGridTableStyle.cs: set the bound field on the column styles
4944         depending on whether or not we have a column for that property.
4945
4946 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
4947
4948         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
4949           splitter control (fixes #79228)
4950
4951 2006-08-31  Chris Toshok  <toshok@ximian.com>
4952
4953         * DataGridColumnStyle.cs: we need to delay the assignment of
4954         property descriptor until the last possible moment due to the lazy
4955         databinding stuff in the datagrid.  Also, fix the exceptions
4956         thrown by CheckValidDataSource to match MS.
4957
4958 2006-08-31  Jackson Harper  <jackson@ximian.com>
4959
4960         * Form.cs: When activated select the active control, if there is
4961         no active control, we select the first control.
4962         * XplatUIX11.cs: If there is no focus control when we get a
4963         FocusIn event, find the toplevel form and activate it.  This
4964         occurs when you popup a window, it becomes the focus window, then
4965         you close that window, giving focus back to the main window.
4966
4967 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4968
4969         * MonthCalendar.cs: 
4970         * ThemeWin32Classic.cs: Cache Font in bold style, as well
4971         as StringFormat with Center alignments in MonthCalendar,
4972         instead of creating new ones when drawing the control. 
4973         Also, draw the month name in bold style.
4974
4975 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4976
4977         * Control.cs:
4978           - PerformLayout(): It would seem MS performs the fill even if the 
4979             control is not visible (part of #79218 fix)
4980           - ResetBackColor(): Use the setter to reset the color, to allow
4981             overriders to catch the change.
4982         * Form.cs:
4983           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
4984           - CreateHandle(): dito (part of $79218 fix)
4985           - Don't set an icon if we have a dialog
4986         * ScrollableControl.cs:
4987           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
4988           - ScrollIntoView(): No need to scroll if control is already visible
4989             (resolves fixme and fixes #79218)
4990
4991 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4992
4993         * MonthCalendar.cs: Change proportions in SingleMonthSize
4994         to match the aspect of the original control.
4995
4996 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
4997
4998         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
4999           get updated when they get maximized.
5000
5001 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
5002
5003         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
5004
5005 2006-08-29  Chris Toshok  <toshok@ximian.com>
5006
5007         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
5008
5009 2006-08-29  Jackson Harper  <jackson@ximian.com>
5010
5011         * TreeView.cs: Need to track selected node and highlighted node,
5012         they aren't always the same thing, when the mouse is down on a
5013         node it is hilighted, but not selected yet.
5014         - Do the HideSelection stuff right
5015         - Need to focus on rbutton mouse down. And redraw selection when
5016         right click is mouse upped.
5017
5018 2006-08-29  Mike Kestner  <mkestner@novell.com>
5019
5020         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
5021         when SubItems.Count < Columns.Count.  [Fixes #79167]
5022
5023 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
5024
5025         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
5026
5027 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
5028
5029         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
5030           from X. Only send based on ConfigureNotify if we don't have the
5031           correct location in hwnd (if the window manager moved us)
5032
5033 2006-08-28  Mike Kestner  <mkestner@novell.com>
5034
5035         * ListView.cs: remove a TODO. 
5036         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
5037         [Fixes ListView part of #79166]
5038
5039 2006-08-28  Mike Kestner  <mkestner@novell.com>
5040
5041         * ListView.cs: move wheel handler to parent since it is focused
5042         instead of the item_control now.  [Fixes #79177]
5043
5044 2006-08-28  Mike Kestner  <mkestner@novell.com>
5045
5046         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
5047         when the control is focused. [Fixes #79171]
5048
5049 2006-08-28  Mike Kestner  <mkestner@novell.com>
5050
5051         * ListView.cs: size the item and header controls for empty and
5052         unscrollable views.
5053         * ThemeWin32Classic.cs: draw disabled backgrounds.
5054         [Fixes #79187]
5055
5056 2006-08-28  Chris Toshok  <toshok@ximian.com>
5057
5058         * Form.cs: remove unused "active_form" static field.
5059
5060         * Hwnd.cs: lock around accesses to static windows collection.
5061
5062         * Application.cs: lock threads in Exit ().
5063
5064 2006-08-28  Chris Toshok  <toshok@ximian.com>
5065
5066         * NativeWindow.cs: lock around accesses to window_collection.
5067         
5068 2006-08-28  Chris Toshok  <toshok@ximian.com>
5069
5070         * Control.cs: err, fix this the right way, by locking on controls
5071         when using it.  not by making it synchronized.
5072
5073 2006-08-28  Chris Toshok  <toshok@ximian.com>
5074
5075         * Control.cs: make the static "controls" field synchronized, as it
5076         gets updated from multiple threads.
5077
5078 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
5079
5080         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
5081           Prevent other threads from exiting when calling thread sets quit state.
5082         * XEventQueue.cs: Added PostQuitState property
5083
5084 2006-08-27  Chris Toshok  <toshok@ximian.com>
5085
5086         * AsyncMethodData.cs: add a slot for the window handle.
5087
5088         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
5089         window (the destination control's window, not the foster window).
5090
5091         * Control.cs (BeginInvokeInternal): store the window's handle in
5092         the AsyncMethodData.
5093         
5094
5095 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
5096
5097         * XplatUIX11.cs:
5098           - PostQuitMessage: Removed resetting S.D display handle, we might have
5099             another loop started after calling PostQuitMessage (Fixes #79119)
5100           - Created destructor to reset S.D handle
5101
5102 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
5103
5104         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
5105
5106 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5107
5108         * TextControl.cs (Insert): Update the caret position even if we don't
5109           have a handle yet, just don't call the driver in that case.
5110         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
5111           to the end of the new selection text (Fixes #79184)
5112
5113 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5114
5115         * Form.cs (Activate): Only activate if the handle is created)
5116         * Control.c:
5117           - Mark window as invisible when it's disposed
5118           - Check if window handle is created when setting window visible, 
5119             instead of relying just on the is_created variable
5120           - Check if object is disposed when creating the control (Fixes #79155)
5121
5122 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5123
5124         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
5125           when allowing layout again. Otherwise we re-generate the anchoring 
5126           distance to the border again and actually alter what the user wanted
5127           This is ugly, it'd be better if we used DisplayRectangle instead of
5128           ClientRectangle for Control.UpdateDistances, but that causes us to
5129           have other problems (initial anchoring positons would be wrong)
5130           (Fixes #78835)
5131
5132 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5133
5134         * Control.cs:
5135           - The size and location setters shouldn't go directly to 
5136             SetBoundsCore, but to SetBounds, which triggers layout on the
5137             parent, then calls SetBoundsCore. (Related to fix for #78835)
5138           - SetBounds: Moved actual location update code into this function
5139             from SetBoundsCore, to match MS. Added call to PerformLayout if
5140             we have a parent (to trigger resizing of anchored parents if the 
5141             child size has changed (see testcase for #78835) 
5142         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
5143           new control code
5144         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
5145
5146 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5147
5148         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
5149           System.Drawing when a toplevel window gets closed; there might
5150           be other toplevel windows belonging to the same app (Fixes #78052)
5151
5152 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
5153
5154         * FileDialog.cs: After reading FileDialog settings from mwf_config
5155           use Desktop prefix only if a real folder doesn't exist anymore.
5156         * FontDialog.cs: Added char sets.
5157           It is now possible to select the font, size or style with the
5158           textboxes.
5159
5160 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
5161
5162         * PrintPreviewDialog.cs: Use assembly name constants.
5163
5164 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5165
5166         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
5167           scrollbar from whacking it's buttons)
5168
5169 2006-08-24  Chris Toshok  <toshok@ximian.com>
5170
5171         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
5172         in this patch (aggregating setting Left/Top/Width/Height to
5173         setting Bounds on the scrollbars), but the crux of the fix is in
5174         Recalculate, where we scroll by the remaining scroll_position if
5175         we're hiding a scrollbar.  The 2*$5 reward in the comment is
5176         serious.
5177
5178 2006-08-24  Jackson Harper  <jackson@ximian.com>
5179
5180         * MdiClient.cs:
5181         * MdiWindowManager.cs: If the form is made a non-mdi window we
5182         need to remove the form closed event so that closing forms works
5183         correctly.
5184
5185 2006-08-24  Jackson Harper  <jackson@ximian.com>
5186
5187         * Control.cs: Make IsRecreating internal so that the driver can
5188         check it
5189         - Temporarily remove the Hide when controls are removed, its
5190         making a whole bunch of things not work because visibility isn't
5191         getting reset elsewhere correctly
5192         * Form.cs: Need to do a full handle recreation when the mdi parent
5193         is set.
5194         * XplatUIX11.cs: If we are recreating handles don't dispose the
5195         HWNDs.  What was happening is the handles were being recreated in
5196         SendWMDestroyMessages, but then flow continued on in that method
5197         and destroyed the new handles.
5198
5199 2006-08-23  Jackson Harper  <jackson@ximian.com>
5200
5201         * Form.cs: MdiClient is always at the back of the bus
5202         * Control.cs: When the order of items in the collection is changed
5203         we need to reset the all_controls array
5204         - do the same sorta setup thats done when adding a control when a
5205         control is set on the collection.
5206
5207 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5208
5209         * TextBoxBase.cs (get_Text): Return an empty array if our document
5210           is empty (fixes #79052)
5211
5212 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5213
5214         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
5215           on WM_SYSCHAR messages (fixes #79053)
5216
5217 2006-08-23  Chris Toshok  <toshok@ximian.com>
5218
5219         * DataGrid.cs: fix flickering when scrolling vertically.
5220
5221 2006-08-23  Chris Toshok  <toshok@ximian.com>
5222
5223         * DataGrid.cs (EndEdit): only invalidate the row header when we
5224         need to.
5225
5226 2006-08-23  Chris Toshok  <toshok@ximian.com>
5227
5228         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
5229         methods.  fixes the flicker when scrolling around.
5230
5231 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5232
5233         * FileDialog.cs: Making sure the control is created before we get a 
5234           chance to use it with BeginInvoke (Fixes #79096)
5235
5236 2006-08-23  Chris Toshok  <toshok@ximian.com>
5237
5238         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
5239         width to use when painting the rows.
5240
5241 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5242
5243         * TextBoxBase.cs:
5244           - Throw ArgumentException if a negative value is passed to SelectionLength
5245           - Update the selection end if start is moved. end needs to be always
5246             after start. (Fixes #79095)
5247           - Track selection length; MS keeps the selection length even if start
5248             is changed; reset on all other operations affection selection
5249
5250 2006-08-22  Jackson Harper  <jackson@ximian.com>
5251
5252         * TreeView.cs: Make sure both scrollbars get displayed and sized
5253         correctly when the other bar is visible.
5254         - Use the original clip rectangle for checking if the area between
5255         the two scrollbars is visible, not the viewport adjusted clipping
5256         rectangle.
5257
5258 2006-08-22  Jackson Harper  <jackson@ximian.com>
5259
5260         * Binding.cs: We don't use IsBinding because it requires the
5261         control to be created, which really shouldn't be necessary just to
5262         set a property on the control.
5263
5264 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5265
5266         * ComboBox.cs: Some CB.ObjectCollection methods must throw
5267         ArgumentNullReferenceException when the argument is null.
5268
5269 2006-08-21  Jackson Harper  <jackson@ximian.com>
5270
5271         * Timer.cs: Track the thread that the timer is started in (NOT
5272         CREATED), this way messages for it will only be triggered on its
5273         queue.
5274         * XEventQueue.cs: Track the timers here, this makes timers per
5275         thread, like MS.
5276         * XplatUIX11.cs: The timers are moved to the XEventQueue.
5277
5278 2006-08-19  Chris Toshok  <toshok@ximian.com>
5279
5280         * XplatUIX11.cs: after further communication with pdb, we get the
5281         best of both worlds.  SetZOrder working for un-Mapped windows, and
5282         no X errors for un-mapped windows.
5283
5284 2006-08-19  Chris Toshok  <toshok@ximian.com>
5285
5286         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
5287         as it was causing pdn toolbars to not have the correct stacking.
5288
5289 2006-08-18  Mike Kestner  <mkestner@novell.com> 
5290
5291         * ListView.cs : guard against negative ClientArea.Width in scrollbar
5292         calculation.  Not sure why control should ever be setting a negative
5293         width though.  Fixes #78931.
5294
5295 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5296
5297         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
5298         null items in ObjectCollection class.
5299         * ListBox.cs.: Likewise.
5300
5301 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
5302
5303         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
5304           as the base method in ThemeWin32Classic should work fine.
5305           Fixed bug #78607.
5306
5307 2006-08-18  Jackson Harper  <jackson@ximian.com>
5308
5309         * Binding.cs: When validating if the value entered doesn't convert
5310         properly reset to the old value.
5311         * RadioButton.cs: Don't fire click when we get focus.
5312
5313 2006-08-18  Jackson Harper  <jackson@ximian.com>
5314
5315         * FileDialog.cs: Paint the selection on the directory combobox the
5316         same way as on MS. 
5317
5318 2006-08-17  Jackson Harper  <jackson@ximian.com>
5319
5320         * ErrorProvider.cs: Don't allow the error control to be selected.
5321         * Control.cs: Don't send the SetFocus messages, the control
5322         activation will do this, and if we do it blindly here validation
5323         does not work.
5324
5325 2006-08-17  Jackson Harper  <jackson@ximian.com>
5326
5327         * Control.cs:
5328         * ContainerControl.cs: Make validation events fire in the correct
5329         order.  TODO: For some reason the first validation event is not
5330         getting fired.
5331
5332 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5333
5334         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
5335
5336 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5337
5338         * ComboBox.cs : implement scroll wheel support for popped-down
5339         state. Fixes #78945. 
5340
5341 2006-08-17  Jackson Harper  <jackson@ximian.com>
5342
5343         * TreeView.cs: Specify treeview actions (old patch that didn't get
5344         committed for some reason).
5345         - Don't let the mouse wheel scroll us too far.  Just want to make
5346         the bottom node visible, not scroll it all the ways to the top.
5347
5348 2006-08-17  Jackson Harper  <jackson@ximian.com>
5349
5350         * XplatUIX11.cs: Mouse wheel events go to the focused window.
5351
5352 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5353
5354         * ComboBox.cs : don't do mouseover selection in simple mode.
5355
5356 2006-08-16  Jackson Harper  <jackson@ximian.com>
5357
5358         * Form.cs: Fire the closing events for all the mdi child windows
5359         when a window is closed.  If the cancel args are set to true, the
5360         main window still gets the event fired, but it doesn't not close.
5361         * MdiWindowManager.cs: Do this closing cleanup in a Closed
5362         handler, instead of when the button is clicked, so cancelling the
5363         close works correctly.
5364         * ComboBox.cs: Send the mouse down to the scrollbar.
5365
5366 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5367
5368         * ListBox.cs: When passing 'null' to SelectedItem,
5369         set SelectedIndex to -1, to unselect items. This is the
5370         observed behaviour in .Net.
5371
5372 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
5373
5374         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
5375           MS flags saying there won't be any. (fixes #78800)
5376         * Control.cs (HandleClick): Made virtual
5377
5378 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5379
5380         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
5381           cultures. Fixed bug #78399.
5382
5383 2006-08-16  Jackson Harper  <jackson@ximian.com>
5384
5385         * Form.cs: Use the MdiClients MdiChildren property to access
5386         MdiChildren instead of creating the array from the child controls.
5387         * MdiClient.cs: Maintain a separate array of the mdi children, so
5388         that insertion order is maintained when the Z-order is changed.
5389
5390 2006-08-16  Mike Kestner  <mkestner@novell.com> 
5391
5392         * ListView.cs : add an ItemComparer and default to it for sorting.
5393         Fixes #79076, but sorting needs a complete overhaul to be compat with
5394         MS.
5395
5396 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5397
5398         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
5399
5400 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5401
5402         * Hwnd.cs (Mapped): Properly traverse the tree
5403
5404 2006-08-15  Chris Toshok  <toshok@ximian.com>
5405
5406         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
5407         pass manager.Current.GetType() to ParseData.  It has to be the
5408         property type.  So, hold off doing the ParseData until we're in
5409         SetPropertyValue where we know the type.  This fixes the crash in
5410         #78821 but the textbox is still empty.
5411
5412 2006-08-15  Chris Toshok  <toshok@ximian.com>
5413
5414         * DataGrid.cs:
5415         - when we're scrolling, only call Edit() again if the
5416         current cell is still unobscured. Fixes bug #78927.
5417         - when handling mousedown on a cell, ensure the cell is visible
5418         before calling Edit.
5419         - remove the properties from DataGridRow, and remove the
5420         DataGridParentRow class altogether.
5421         
5422
5423 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5424
5425         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
5426           fire OnTextChanged by ourselves. There's no point calling base,
5427           we don't set the base value anywhere else. Fixes #78773.
5428
5429 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5430
5431         * ListBox.cs: Call CollectionChanged when modifying
5432         an item from Items indexer, to update the actual items
5433         in the list box.
5434
5435 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5436
5437         * PrintDialog.cs: Small fixes for focus and a pair of checks,
5438         to match .Net behaviour.
5439
5440 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5441
5442         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
5443
5444 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5445
5446         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
5447
5448 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5449
5450         * MessageBox.cs: Prevent potential NRE exception.
5451         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
5452
5453 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5454
5455         * MessageBox.cs: Calculate the owner of a messagebox, also make
5456           it topmost. Fixes #78753
5457
5458 2006-08-14  Chris Toshok  <toshok@ximian.com>
5459
5460         * XplatUIX11.cs: A couple of fixes so that metacity will let us
5461         programmatically move windows.  first, set the PPosition hint as
5462         well as the USPosition hint.  Second include some code from pdb
5463         that sets the window type to NORMAL when we set the transient for
5464         hint.  This is because, in the absence of a window type, metacity
5465         thinks any window with TransientFor set is a dialog, and refuses
5466         to let us move it programmatically.  fascists.
5467
5468 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5469
5470         * XplatUIX11.cs: When setting normal hints, take into consideration
5471           an different hints previously set so we don't delete them (fixes #78866)
5472
5473 2006-08-12  Chris Toshok  <toshok@ximian.com>
5474
5475         * ToolBarButton.cs: make Layout return a boolean, if something to
5476         do with the button's layout changed.
5477
5478         * ToolBar.cs:
5479         - add another parameter to Redraw, @force, which all existing
5480           calls set to true.
5481         - make the Layout function return a boolean which is true if the
5482           layout has actually changed.  Redraw now uses this (and @force)
5483           to determine when to invalidate.  At present the only place
5484           where @force can be false is the call from OnResize, when
5485           background_image == null.  So, resizing a toolbar when the
5486           layout doesn't change results in no drawing.
5487
5488 2006-08-12  Chris Toshok  <toshok@ximian.com>
5489
5490         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
5491         the VScrollBar and HScrollbar reversed.  oops.
5492
5493         * DataGrid.cs: fix the logic that assigns sizes to the implicit
5494         scrollbars.  we were assigning them twice (once in
5495         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
5496         therefore causing two scrollbar resizes (and redraws?) to happen
5497         per grid resize.
5498
5499 2006-08-12  Chris Toshok  <toshok@ximian.com>
5500
5501         * ToolBarButton.cs: redraw the entire button if the theme tells us
5502         to.
5503
5504         * Theme.cs: add ToolBarInvalidateEntireButton.
5505
5506         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
5507         buttons, just the border.
5508
5509         * ThemeNice.cs: redraw the entire toolbar button since we need to
5510         draw the highlight image.
5511
5512         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
5513         we need to redraw the entire button (not just the border).
5514
5515 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5516
5517         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
5518           for vertical bars. Fixes the mismatches shown by #78513
5519
5520 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
5521
5522         * FileDialog.cs: If a saved/remembered path doesn't exist
5523           anymore, fall back to "Desktop".
5524
5525 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5526
5527         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
5528           parent. It's apparently legal to not have one
5529         * XplatUIX11.cs:
5530           - SetZOrder: Don't try to set Z-Order on an unmapped window
5531           - CreateWindow: 0,0 are legal coordinates for a window. don't move
5532             it unless the coordinates are negative
5533
5534 2006-08-10  Mike Kestner  <mkestner@novell.com>
5535
5536         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
5537         when setting to null per msdn docs.  Fixes #78854.
5538
5539 2006-08-10  Chris Toshok  <toshok@ximian.com>
5540
5541         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
5542         flickering by setting a clip rectangle on the Graphics when we
5543         need to redraw just a particular menuitem.  Also, rename "OnClick"
5544         to "OnMouseDown" to reflect what it actually is.
5545         
5546         * Form.cs: track the OnMouseDown change.
5547
5548 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
5549
5550         * CommonDialog.cs: Properly inherit the CreateParams from the form
5551           and only change what we need. Fixes #78865
5552
5553 2006-08-10  Chris Toshok  <toshok@ximian.com>
5554
5555         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
5556         flickering in flat mode (and most of the flickering in general) by
5557         only invalidating the button border (and not the entire rectangle)
5558         when the state changes.  A couple of cases still flicker:
5559         ToggleButtons, and the dropdown arrow case when the user mouse
5560         ups.
5561
5562 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
5563
5564         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
5565           for german keyboards. Numlock state shouldn't affect the behaviour
5566           of the Del key. Fixes bug #78291.
5567
5568 2006-08-10  Chris Toshok  <toshok@ximian.com>
5569
5570         * ListControl.cs: remove the items.Clear line from BindDataItems,
5571         as this is the first thing done by both subclasses in their
5572         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
5573         passed -1, refresh the list.  This gets databinding working when
5574         the datasource is set on the list before the datasource is
5575         populated (as in wf-apps/ReportBuilder.)
5576
5577         * ComboBox.cs: remove the argument to BindDataItems.  This call
5578         should really go away, and be initiated by the ListControl code.
5579
5580         * ListBox.cs: same.
5581
5582 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5583
5584         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
5585           if no data is in the document when the control is displayed
5586
5587 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
5588
5589         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
5590           yes (fixes #78806)
5591         * TextControl.cs: 
5592           - PositionCaret: Allow positioning of caret but don't call methods 
5593             requiring a handle if the window isn't created yet
5594           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
5595           - owner_HandleCreated: Don't position the caret, just update it's 
5596             location. User might have already set a different position
5597
5598 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5599
5600         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
5601           windows. Screws up the returned coordinates for child windows. 
5602           Fixes #78825. I'm hoping this doesn't break something, since the
5603           code was explicitly put in 8 months ago, but no bug was attached.
5604           Menus still seem to work properly.
5605
5606 2006-08-08  Chris Toshok  <toshok@ximian.com>
5607
5608         * DataGrid.cs: make BeginInit/EndInit actually do what they're
5609         supposed to do - delay data binding until the EndInit call.  Also,
5610         make the table style collection's CollectionChangeAction.Refresh
5611         work properly.
5612
5613         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
5614         (with action = Refresh) when a consituent table's MappingName is
5615         changed.
5616
5617 2006-08-08  Chris Toshok  <toshok@ximian.com>
5618
5619         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
5620         Invalidate, since changing the text can change the size of the all
5621         toolbar buttons.
5622
5623 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5624
5625         * Form.cs (AddOwnedForm): Still need to add the form to our listif
5626           we don't have it yet
5627
5628 2006-08-08  Chris Toshok  <toshok@ximian.com>
5629
5630         * PrintControllerWithStatusDialog.cs: don't .Close() the status
5631         dialog, as this causes X errors later on, since we actually
5632         destroy the window.  Instead, .Hide() it.
5633
5634 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5635
5636         * ComboBox.cs: Added focus reflection for popup window
5637         * XplatUIX11.cs: 
5638           - Removed transient setting for non-app windows for now, not sure it
5639             was needed
5640           - Fixed logic checking if we have captions when deciding 
5641             override_redirect, WS_CAPTION is two bits and a 0 check was not
5642             sufficient
5643           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
5644             complicated
5645         * Form.cs: 
5646           - AddOwnedForm: Don't just add the form to the list, call the property
5647             to ensure the driver is informed about the ownership as well
5648           - CreateHandle: Set the TopMost status in the driver if we have an owner
5649         * XplatUI.cs: Fixed debug statement
5650
5651 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
5652         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5653           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
5654           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
5655           TrackBarRenderer.cs: Make constructor private.
5656         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
5657         * ProfessionalColorTable.cs: Make properties virtual.
5658
5659 2006-08-06  Duncan Mak  <duncan@novell.com>
5660
5661         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
5662         is not changing.
5663
5664 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5665         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5666           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
5667           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
5668           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
5669           Initial import of new 2.0 classes.
5670
5671 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5672         * Application.cs: Add 2.0 VisualStyles properties.
5673
5674 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5675         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
5676           XplatUIX11.cs: Create property to allow access to existing private
5677           variable "themes_enabled"
5678
5679 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5680
5681         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
5682         file size, as otherwise our class libraries fail using windows. Fixes
5683         bug #78759.
5684
5685 2006-08-04  Jackson Harper  <jackson@ximian.com>
5686
5687         * Form.cs:
5688         * XplatUIX11.cs: Move the toolwindow window manager creation into
5689         the X11 driver, this way on win32 we can let windows create/handle
5690         the toolwindows.
5691
5692 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5693
5694         * PrintDialog.cs: Remove some redundant checks, add some others,
5695         clean some code, and move the focus to the text boxes when the
5696         values are incorrect.
5697
5698 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
5699
5700         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
5701
5702 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5703
5704         * NumericUpDown.cs: Setting the Minimum and Maximum is now
5705           handled correctly. Fixes bug #79001.
5706
5707 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5708
5709         * PrintDialog.cs: The "Copies" numeric up down must have
5710         set the Minimum property to 1; only if the value is bigger
5711         than 1, activate "Collate" check box. This is the behaviour of .Net.
5712         Also modify the Document elements only if it is not null.
5713
5714 2006-08-03  Jackson Harper  <jackson@ximian.com>
5715
5716         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
5717         length. (We have a larger array then actual node count).
5718                 
5719 2006-08-03  Jackson Harper  <jackson@ximian.com>
5720
5721         * ComboBox.cs: Don't show selection by default.
5722         - The SelectAll isn't needed here, since the focus code should do
5723         that
5724         - DDL style lists to manual selection drawing, so when they
5725         get/lose focus they have to invalidate.
5726
5727 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
5728
5729         * TextBoxBase.cs: Don't always show all selections by default.
5730
5731 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
5732         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
5733           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
5734           Fixed various typos.
5735
5736 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5737
5738         * Control.cs: Removing the controls in a ControlCollection with
5739           Clear now hides the controls as expected. Fixes bug #78804. 
5740
5741 2006-08-03  Jackson Harper  <jackson@ximian.com>
5742
5743         * Control.cs: Revert previous focus patch, it breaks reflector.
5744
5745 2006-08-03  Jackson Harper  <jackson@ximian.com>
5746
5747         * ComboBox.cs: Cleanup selection and focus with the combobox.
5748         This also eliminates some duplicated keyboard code, since now
5749         everything is handled by the main class.
5750         - Make list selection work on mouse up instead of down, to match
5751         MS.
5752
5753 2006-08-02  Jackson Harper  <jackson@ximian.com>
5754
5755         * Control.cs: Setting focus needs to go through the whole
5756         selection mechanism.
5757
5758 2006-08-02  Chris Toshok  <toshok@ximian.com>
5759
5760         * PrintPreviewDialog.cs: change MinimumSize to use
5761         base.MinimumSize so it works.
5762
5763 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
5764
5765         * TextControl.cs:
5766           - UpdateCaret: Added sanity check in case caret isn't defined yet
5767           - Line.Delete: Now updating selection and caret markers if we're
5768             transfering a node (Properly fixes #78323)
5769           - SetSelectionEnd: Added sanity check
5770         * TextBoxBase.cs: Removed broken attempt to fix #78323
5771
5772 2006-08-01  Chris Toshok  <toshok@ximian.com>
5773
5774         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
5775         Close() call is handled in Form, not here.
5776
5777 2006-08-01  Chris Toshok  <toshok@ximian.com>
5778
5779         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
5780         layout/rendering.
5781
5782         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
5783         for sizes < 100% zoom.  The code now aggressively attempts to keep
5784         from calling document.Print (), and tries not to use the scaling
5785         g.DrawImage whenever possible (it still does if you scale to >
5786         100%, since usually that involves huge images).
5787
5788         * PrintPreviewControl.cs: hook up the close button.
5789
5790 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
5791         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
5792           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
5793           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
5794           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
5795           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
5796           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
5797           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
5798           Removed [Serializable] for 2.0 Event Handlers.
5799
5800 2006-07-31  Jackson Harper  <jackson@ximian.com>
5801
5802         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
5803         * TextControl.cs: Uncomment out the body of this method.
5804
5805 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
5806
5807         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
5808           standard cursors.
5809
5810 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5811
5812         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
5813           that embed TextBox and need selections visible even if textbox is not
5814           focused to enforce that behaviour.
5815         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
5816           selection drawing
5817
5818 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5819
5820         * TextControl.cs:
5821           - Added new SetSelectionStart/SetSelectionEnd overloads
5822           - Fixed viewport width assignment to be accurate
5823           - Adjusted alignment line shift calculations to allow cursor on right
5824             aligned lines to be always visible at the right border (like MS)
5825         * TextBoxBase.cs:
5826           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
5827           - TextBoxBase_SizeChanged: recalculating canvas on size changes
5828           - CalculateScrollBars: Use ViewPort size instead of window size, to
5829             properly consider space occupied by the border and scrollbars 
5830             (Fixes #78661)
5831           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
5832             calculations; no longer leaves artifacts
5833           - CaretMoved: Adjusted window scrolling to match MS and fixed several
5834             calculation bugs (Still missing right/center align calculations)
5835
5836 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
5837
5838         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
5839           use of both scroll rect and clip rect, as they do the same.
5840
5841 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5842
5843         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
5844           in the event handler (fixes #78912)
5845
5846 2006-07-31  Chris Toshok  <toshok@ximian.com>
5847
5848         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
5849         grid.ListManager.Count, since grid.ListManager might be null.
5850         This of course begs the question "why are we drawing rows for a
5851         grid with no list manager (and therefor no rows)?"  Fixes the
5852         crash in bug #78929.
5853
5854 2006-07-31  Chris Toshok  <toshok@ximian.com>
5855
5856         * RelatedPropertyManager.cs: Don't always chain up to the parent
5857         ctor.  instead, call SetDataSource if the parent's position is !=
5858         -1.  Fixes the crash in #78822.
5859
5860 2006-07-31  Chris Toshok  <toshok@ximian.com>
5861
5862         * DataGrid.cs (get_ListManager): use field instead of property
5863         accessors for datasource and datamember.
5864         (RowsCount): make internal again.
5865         (OnMouseDown): end edits before resizing columns/rows.
5866         (OnMouseUp): restart edits after resizing columns/rows.
5867
5868 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
5869
5870         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
5871           This fixes the situation where the last set cursor is displayed
5872           whenever the mouse is over scrollbars.
5873
5874 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5875
5876         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
5877         Document properties, as well as initial values.
5878
5879 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
5880
5881         * XplatUIWin32.cs (SetBorderStyle): Setting both border
5882           and ClientEdge results in a 3-pixel border, which is
5883           wrong.
5884
5885 2006-07-28  Jackson Harper  <jackson@ximian.com>
5886
5887         * TreeNodeCollection.cs: Fix the clear method.
5888         - Fix the Shrink also
5889
5890 2006-07-27  Jackson Harper  <jackson@ximian.com>
5891
5892         * TreeView.cs: Make sure the visible order is computed when we
5893         attempt to size the scrollbars (for trees that mess with the
5894         scrolling when they shouldn't.
5895         - Make sure to give the scrollbars valid values.
5896
5897 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5898
5899         * XplatUIX11.cs: Move motion compression code to where it
5900           has less performance impact
5901
5902 2006-07-26  Jackson Harper  <jackson@ximian.com>
5903
5904         * UpDownBase.cs: When the control is selected make the child
5905         controls non selectable, so that a click on them won't do a
5906         focus/unfocus cycle.
5907         - Don't give focus to the text box when the spinner is selected.
5908         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
5909
5910 2006-07-26  Chris Toshok  <toshok@ximian.com>
5911
5912         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
5913         satisfied with this solution.  If the bitmaps are small, we should
5914         just cache them in the PrintPreviewDialog and draw them here.
5915         Also, the layout is broken for the 2-up and 3-up cases.
5916
5917         * Theme.cs: add PrintPReviewControlPaint.
5918
5919         * PrintPreviewDialog.cs: first pass implementation.
5920
5921         * PrintPreviewControl.cs: first pass implementation.  No
5922         scrollbars yet.
5923
5924         * PrintDialog.cs: only validate fields if that particular portion
5925         of the UI is enabled.  Also, set the document's controller to a
5926         PrintControllerWithStatusDialog wrapping the document's print
5927         controller.
5928
5929         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
5930         bring up a SaveFileDialog (i hope we don't want to match the
5931         behavior of the crappy windows file entry) and set the
5932         PrinterSettings.PrintFileName accordingly.
5933
5934 2006-07-26  Jackson Harper  <jackson@ximian.com>
5935
5936         * ContainerControl.cs: Add a field that disables auto selecting
5937         the next control in a container when the container is activated.
5938         * UpDownBase.cs: Don't select the text box when the up down is
5939         selected.
5940
5941 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5942
5943         * XEventQueue.cs: Added methods for peeking (used for compression
5944           of successive events)
5945         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
5946           mouse move events (fixes #78732)
5947
5948 2006-07-25  Jackson Harper  <jackson@ximian.com>
5949
5950         * UpDownBase.cs: Use an internal class for the textbox so that we
5951         can control focus.  the updown control should always have focus,
5952         if either the text area or the buttons are clicked.
5953         - Send the key messages to the textbox, since it never actually
5954         has focus
5955         - Activate and decativate the textbox caret.
5956
5957 2006-07-24  Jackson Harper  <jackson@ximian.com>
5958
5959         * Control.cs: Use the directed select when selecting a control,
5960         this way the container controls override will get called and the
5961         whole ActiveControl chain will get triggered.  TODO: probably need
5962         to make sure this gets done everywhere instead of the old
5963         Select(Control).
5964         * ContainerControl.cs: Implement the directed Select method to
5965         find and activate the correct child control.    
5966         
5967 2006-07-22  Mike Kestner  <mkestner@novell.com>
5968
5969         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
5970         menu handling code so that clicks without a grab work too.
5971         [Fixes #78914]
5972
5973 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
5974
5975         * FileDialog.cs: Enable the BackButton when dirstack has one element.
5976           Added some small optimizations.
5977
5978 2006-07-21  Matt Hargett  <matt@use.net>
5979
5980         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
5981
5982 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
5983
5984         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
5985           tests pass and match MS in some strange border cases.
5986
5987 2006-07-21  Chris Toshok  <toshok@ximian.com>
5988
5989         * ThemeWin32Classic.cs: handle drawing of the relation links and
5990         parent row buttons.
5991
5992         * Theme.cs: change args to DataGridPaintParentRow.
5993
5994         * DataGrid.cs: Don't use controls for the relation links and
5995         parent buttons, so we have to handle all their interactions in
5996         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
5997         when we're navigating through child tables, so we can reinstate
5998         selection, expanded state, current cell, etc.
5999
6000 2006-07-20  Chris Toshok  <toshok@ximian.com>
6001
6002         * ToolBar.cs: When we redraw a button, for whatever reason,
6003         there's no reason to redraw the entire toolbar.  Also, don't call
6004         Control.Refresh from within Redraw, as it's much heavier than
6005         Invalidate (which is really what we want).
6006
6007 2006-07-20  Chris Toshok  <toshok@ximian.com>
6008
6009         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
6010         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
6011         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
6012         traces from within a debug IBindingList datasource
6013         (in mono/winforms/datagrid) for *days*, I've finally gotten things
6014         to work in a similar fashion.
6015
6016 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6017
6018         * ListBox.cs: Don't call Sort () when setting 
6019         the Sorted property to false (avoid an unnecessary sort).
6020
6021 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6022
6023         * ListControl.cs: DataSource should throw an ArgumentException
6024         instead of a normal exception when the argument is not of the 
6025         correct type.
6026
6027 2006-07-20  Mike Kestner  <mkestner@novell.com>
6028
6029         * Control.cs: add InternalPreProcessMessage to allow us to steal
6030         key events before MWF gets its paws on them.  Adapted from a
6031         suggestion by eno.
6032         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
6033         up/down/left/right navigation. Override the new internal control
6034         method to steal the events since they never make it to WndProc.
6035         * ToolBarButton.cs: don't worry about pushed when setting hilight
6036         since the drawing code prefers pushed to hilight. Invalidate on 
6037         Hilight changes. Fixes #78547 and #78525.
6038
6039 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
6040
6041         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
6042           the canvas size. Fixes #78868
6043
6044 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
6045
6046         * Splitter.cs: Track requested split position until first layout
6047           is performed. Fixes #78871
6048
6049 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
6050
6051         * Application.cs: Removed code that forces 1.x for the version
6052           number if the version started with 0. Not sure why that code was
6053           there and I couldn't find any bugs that indicated we needed it.
6054           Fixes #78869
6055
6056 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
6057
6058         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
6059           ResetDefaults(), just write some output to the console until it's
6060           implemented. Fixes bug #78907 for now. Eliminated two warnings.
6061
6062 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
6063
6064         * PropertyGridView.cs: set StartPosition of drop down forms
6065         so they appear in correct initial spot.  Fixes #78190.
6066
6067 2006-07-19  Mike Kestner  <mkestner@novell.com>
6068
6069         * ThemeWin32Classic.cs: use parent background color when drawing
6070         flat toolbars.  Restructure the conditionals to make sure non-flat
6071         non-Divider toolbars are filled too.  Fixes #78837.
6072
6073 2006-07-19  Mike Kestner  <mkestner@novell.com>
6074
6075         * ListBox.cs: Sort on collection changes even if the handle
6076         isn't created yet.  Fixes #78813.
6077
6078 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6079
6080         * ListControl.cs: DisplayMember should never be null,
6081         and now we assign String.Empty when null is passed to it (this
6082         is the .Net way).
6083
6084 2006-07-17  Mike Kestner  <mkestner@novell.com>
6085
6086         * ListViewItem.cs: restructure Font and subitem Font handling 
6087         to hold a specific font and refer back to owner on null.
6088         Fixes #78761.
6089
6090 2006-07-17  Mike Kestner  <mkestner@novell.com>
6091
6092         * ToolBar.cs: bandaid for side-effect of previous patch which was
6093         discarding explicit heights for non-AutoSize toolbars.  Need to
6094         extend my format tester to deal with AutoSize=false. Fixes #78864.
6095
6096 2006-07-15  Jackson Harper  <jackson@ximian.com>
6097
6098         * LabelEditTextBox.cs:
6099         * TreeView.cs: Use a new LabelEdit class for node editing, this
6100         class automatically 'closes' itself when it gets the enter key or
6101         loses focus.
6102         - Use the client rectangle when setting the trees scrollbars, so
6103         border style is taken into account.
6104         
6105 2006-07-14  Jackson Harper  <jackson@ximian.com>
6106
6107         * TreeNode.cs:
6108         * TreeView.cs: Make the editing work similar to MSs, firing the
6109         events correctly and ending edits correctly.
6110
6111 2006-07-14  Mike Kestner  <mkestner@novell.com>
6112
6113         * ToolBarButton.cs:
6114         * ToolBar.cs: layout restructuring and redraw enhancements to support
6115         formatting changes gracefully, like setting TextAlign, ImageList, 
6116         ButtonSize, and Appearance.  Handles explicit button sizing quirks
6117         of the MS controls.  Things like flat toolbars ignoring button size
6118         but becoming constant sized at the largest button's size.  Normal
6119         toolbars with an image set cannot be shrunk smaller than the image,
6120         but text can be clipped/ignored.
6121         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
6122         is zero.  Seems like DrawString should be smart enough to not put
6123         anything on screen though. Also trim labels and ellipsize at the char
6124         boundary, not word.
6125         Fixes #78711 and #78483.
6126
6127 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6128
6129         * FolderBrowserDialog.cs: Disable "New Folder" button and
6130           "New Folder" contextmenu menuitem if a folder like "My Computer"
6131           is selected.
6132
6133 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6134
6135         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
6136         * FolderBrowserDialog.cs:
6137           - Use MWFConfig to store and read size and position settings
6138           - Added code to create a new folder (button or context menu).
6139             Use TreeView labeledit to change the name of the new folder.
6140
6141 2006-07-14  Jackson Harper  <jackson@ximian.com>
6142
6143         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
6144         when the tree is scrolled we end editing.
6145
6146 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6147
6148         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
6149           Down arrows
6150
6151 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
6152
6153         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
6154         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
6155         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
6156         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
6157         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
6158         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
6159         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
6160         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
6161         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
6162         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
6163         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
6164         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
6165         ListViewItemSelectionChangedEventHandler.cs,
6166         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
6167         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
6168         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
6169         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
6170         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
6171         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
6172         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
6173         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
6174         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
6175         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
6176         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
6177         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
6178         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
6179         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
6180         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
6181         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
6182         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
6183         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
6184         WebBrowserNavigatingEventHandler.cs, 
6185         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
6186
6187 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
6188
6189         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
6190         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
6191         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
6192         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
6193         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
6194         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
6195         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
6196         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
6197         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
6198         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
6199         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
6200         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
6201         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
6202         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
6203         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
6204         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
6205         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
6206         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
6207         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
6208         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
6209         ListViewItemStates.cs, MaskFormat.cs: Added
6210
6211 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
6212
6213         * PropertyGridView.cs: Fix keyboard navigation of drop down.
6214         Patch from eno for bug 78558.
6215         
6216 2006-07-13  Jackson Harper  <jackson@ximian.com>
6217
6218         * TreeView.cs: When an edit is finished make sure that the
6219         selected node is visible.
6220         - When setting the top/bottom use the scrollbars is_visible, so
6221         everything will be set correctly even if the tree isn't visible
6222         yet.
6223
6224 2006-07-13  Jackson Harper  <jackson@ximian.com>
6225
6226         * ComboBox.cs: Revert the item->index part of my previous patch.
6227         * TreeView.cs: Use LostFocus instead of Leave for detecting when
6228         the edit box has lost focus (duh).
6229         - Just make the edit box not visible when we get return, that will
6230         take the focus, which will call EndEdit
6231         * TreeNode.cs When we start editing, notify the treeview.
6232
6233 2006-07-12  Jackson Harper  <jackson@ximian.com>
6234
6235         * ComboBox.cs: Clear out old items before setting the item list.
6236         This prevents databound controls from having their items added
6237         twice.
6238         - Switch the combobox to use indices whereever possible instead of
6239         using Item's.  This allows usto navigate through lists that have
6240         more then one item with the same string value (ie a, b, b, a).
6241         - Scroll the listboxes scrollbar when a non visible item is
6242         highlighted
6243         - Allow keypress to cycle through all the possible values. For
6244         example if you have b1, b2, b3 and hold down the B key all the
6245         values will be cycled through.
6246         
6247 2006-07-12  Jackson Harper  <jackson@ximian.com>
6248
6249         * TextBoxBase.cs:
6250         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
6251         this using the internal methods.
6252         * Control.cs: Add OnGotFocusInternal.  A new method that allows
6253         controls to "override" OnGotFocus and change focus behavior if
6254         needed.
6255         - Same thing for LostFocus
6256         * ComboBox.cs: Pass off focus to the text control properly.
6257
6258 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
6259
6260         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
6261         * FolderBrowserDialog.cs: Almost a complete rewrite.
6262           - Better support for Environment.Specialfolders
6263           - Added support for MWFVFS
6264           - Made setting SelectedPath work
6265
6266 2006-07-12  Jackson Harper  <jackson@ximian.com>
6267
6268         * Control.cs: Optimze getting all the controls.
6269
6270 2006-07-11  Jackson Harper  <jackson@ximian.com>
6271
6272         * ContainerControl.cs: Override SETFOCUS in the container control,
6273         so that it is not selected on mouse click.
6274
6275 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
6276
6277         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
6278           Hopefully we will have a better way once all of focus is complete.
6279
6280 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
6281
6282         * ThemeWin32Classic.cs: Commented out some debug code and fixed
6283           a compile error with csc.
6284
6285 2006-07-11  Jackson Harper  <jackson@ximian.com>
6286
6287         * Control.cs: When hiding a control only select the next control
6288         if the current control was focused.
6289         - Don't handle enter/leave when setting/killing focus, this is
6290         done by the container control.
6291         - Remove is_selected, it's not needed anymore.
6292         - Add utility methods for selecting a child control, and for
6293         firing the Enter/Leave events.
6294         * ContainerControl.cs: When a control is activated fire the
6295         enter/leave events.
6296         - Don't wrap when processing the tab key, so that focus can be
6297         moved outside of the container.
6298         - Use the correct active control
6299
6300 2006-07-11  Jackson Harper  <jackson@ximian.com>
6301
6302         * ComboBox.cs: Remove some debug code that was blinding me.
6303         * UpDownBase.cs: These controls actually aren't implicit, they are
6304         visible to the user.
6305
6306 2006-07-10  Chris Toshok  <toshok@ximian.com>
6307
6308         * DataGrid.cs: move back to the is_adding boolean field.  god i
6309         hate this is_editing/is_adding/is_changing stuff.
6310
6311 2006-07-10  Chris Toshok  <toshok@ximian.com>
6312
6313         * DataGridTableStyle.cs: just check if the property type is bool.
6314         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
6315         Don't use CanRenderType.
6316
6317         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
6318         if our text == NullText.  Remove CanRenderType.
6319
6320         * DataGridBoolColumn.cs: nuke CanRenderType.
6321
6322         * DataGrid.cs: reenable some code to end the current edit inside
6323         of set_CurrentCell.  This fixes the other 1.1.16 regression.
6324         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
6325         Also, remove the visible_row_count arg from CalcRowHeaders, since
6326         we don't need to worry about the actual height of the area.
6327
6328 2006-07-10  Chris Toshok  <toshok@ximian.com>
6329
6330         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
6331         mode, just return.
6332
6333         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
6334         the real sense of the IsInEditOrNavigateMode property (true =
6335         navigate, false = edit).  Also, update OnKeyPress to reflect this.
6336
6337         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
6338         column style exists, we still need to set its property descriptor
6339         to match up with our list manager.
6340
6341 2006-07-10  Chris Toshok  <toshok@ximian.com>
6342
6343         * ThemeWin32Classic.cs: implement the new row/header painting
6344         approach.  The parent row painting will likely go away and
6345         replaced with label controls, but the rest seems to work ok (and
6346         efficiently).
6347
6348         * Theme.cs: change the way we draw datagrid rows.  we don't draw
6349         the row headers as a block now.  Instead we draw them in the
6350         normal draw-row loop.  Add some calls for drawing parent rows and
6351         relation rows.
6352
6353         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
6354         a default table style.  Set the defaults from ThemeEngine.Current,
6355         not SystemColors.  Fix lots of misc issues with property setters.
6356
6357         * DataGrid.cs: move loads of style information out of this class
6358         as it's being duplicated with DataGridTableStyle.  keep track of a
6359         special DataGridTableStyle for the properties we used to mirror
6360         here.  Switch all the style properties to access this table style
6361         instead of instance fields of this class.  Also add a internal
6362         class to represent parent rows (more needs to be stored here, like
6363         the selection state from the parent table, as well as the
6364         expansion state.)  Also, for datasources with relations, do the
6365         right thing for collapse/expand, and add support for the
6366         navigation/parent row buttons.
6367
6368         Lastly, fix the crash in the 1.1.16 build.
6369
6370         * GridTableStylesCollection.cs: make the explicit interface
6371         implementations call the class's methods as opposed to duplicating
6372         them.
6373
6374         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
6375         0 so the text doesn't jump around when we move the cursor.
6376
6377 2006-07-10  Jackson Harper  <jackson@ximian.com>
6378
6379         * TextBoxBase.cs:
6380         * ListBox.cs: Match MS's ToString (this makes debugging focus
6381         stuff infinitely easier).
6382
6383 2006-07-10  Jackson Harper  <jackson@ximian.com>
6384
6385         * Control.cs (SelectNextControl): When checking the control's
6386         parent use this instead of ctrl.parent so that null can be passed
6387         to SelectNextControl. (I have unit tests for this).
6388         - Remove unused var.
6389
6390 2006-07-10  Chris Toshok  <toshok@ximian.com>
6391
6392         * CurrencyManager.cs: correct one regression, the removal of the
6393         finalType field.  Also, add a MonoTODO on CanAddRows, implement
6394         Refresh() correctly, and fix some event emission in
6395         ListChangedHandler.
6396
6397 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6398
6399         * FileDialog.cs: Don't use brackets for new folders if they exist
6400           under *nix. Instead use -(number of existing folders +1).
6401
6402 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6403
6404         * FileDialog.cs:
6405           - Fixed really nasty bug #78771
6406           - Don't block the whole GUI when reading directories with a lot of
6407             entries. Use an other thread instead and call BeginInvoke to
6408             update the ListView in MWFFileView
6409
6410 2006-07-07  Chris Toshok  <toshok@ximian.com>
6411
6412         * Control.cs (Dispose): release any Capture when disposing.
6413
6414 2006-07-07  Chris Toshok  <toshok@ximian.com>
6415
6416         * LinkLabel.cs (Select): if we chain up to the parent, set
6417         focused_index to -1 so we'll search for the first available link
6418         the next time the user tabs into us.  Also, if the direction is
6419         backward and focused_index == -1, start the search from the last
6420         element.
6421
6422 2006-07-07  Chris Toshok  <toshok@ximian.com>
6423
6424         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
6425         is beyond the end of the text, don't do anything.
6426         (CreateLinkPieces): set our ControlStyles.Selectable based on
6427         whether or not we have any links.
6428         (Link.Invalidate): use a loop instead of foreach.
6429         (Link.set_Start): null out owner.sorted_links so it'll be
6430         recreated by CreateLinkPieces.
6431
6432 2006-07-06  Chris Toshok  <toshok@ximian.com>
6433
6434         * LinkLabel.cs: revert the SetStyle change.
6435
6436 2006-07-06  Chris Toshok  <toshok@ximian.com>
6437
6438         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
6439         (OnEnableChanged): s/Refresh/Invalidate
6440         (OnGotFocus): if we have a focused index already, refocus it (so
6441         if we mouse out/in to the window it'll focus the right link).
6442         (OnKeyDown): move the tab handling out of here.
6443         (OnLostFocus): don't set focused_index to -1, so we can refocus it
6444         when we lose focus.
6445         (OnMouseDown): don't Capture here - Control handles it.  Also,
6446         focus the active link.
6447         (OnMouseUp): don't deal with Capture.
6448         (OnPaintBackgroundInternal): remove.
6449         (OnTextAlignChanged): CreateLinkPieces before calling the
6450         superclass's method.
6451         (OnTextChanged): call CreateLinkPieces before calling superclass's
6452         method.
6453         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
6454         move around.
6455         (Select): implement this, moving the selection between different
6456         links, and call parent.SelectNextControl if we don't have another
6457         link to focus in the given direction.
6458         (CreateLinkPieces): call Invalidate instead of Refresh.
6459         
6460 2006-07-06  Chris Toshok  <toshok@ximian.com>
6461
6462         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
6463         new LinkLabel internals.
6464
6465         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
6466         over pieces looking for active/focused/etc links.  also, deal with
6467         runs of text (and links) with embedded \n's in them, and use
6468         MeasureCharacterRanges instead of MeasureString to figure out the
6469         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
6470         two-step.
6471
6472 2006-07-04  Jackson Harper  <jackson@ximian.com>
6473
6474         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
6475         XKB or key auto repeat, do it manually.  Without key auto repeat,
6476         when a key is held down we get key press, key release, key press,
6477         key release, ... with auto repeat we get key press, key press, key
6478         press ..., and then a release when the key is actually released.
6479
6480 2006-07-03  Jackson Harper  <jackson@ximian.com>
6481
6482         * TabControl.cs:
6483         * ThemeWin32Classic.cs: Tabs do not obey normal background color
6484         rules, they are always control color regardless of the background
6485         color.
6486
6487 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
6488
6489         * FileDialog.cs: Added internal class MWFConfig.
6490           Removed Registry support and replaced it with support for the new
6491           MWFConfig class. See MWFConfig comments for more information.
6492
6493 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
6494
6495         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
6496           rectangle. Added some patches from eno from bug #78490 and fixed
6497           the arrow position for small up and down CPDrawScrollButtons.
6498
6499 2006-06-30  Jackson Harper  <jackson@ximian.com>
6500
6501         * InternalWindowManager.cs: Remove some debug code.
6502         * Form.cs: When an MdiParent is set to null, the window is
6503         "detatched" and becomes a normal window.
6504         * MdiClient.cs: Don't bring the new child form to the front until
6505         it is activated (setting it as active does this), this makes the
6506         previously active forms titlebar get redrawn as inactive.
6507
6508 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
6509
6510         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
6511           with later controls
6512
6513 2006-06-29  Mike Kestner  <mkestner@novell.com>
6514
6515         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
6516         arrow in keynav state.  Fixes #78682.
6517
6518 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6519
6520         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
6521           order (fixes #78393)
6522
6523 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
6524
6525         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
6526           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
6527           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
6528           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
6529           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
6530           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
6531           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
6532           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
6533           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
6534           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
6535           enumerations (FlagsAttribute, SerializableAttribute, added/removed
6536           values)
6537
6538 2006-06-28  Mike Kestner  <mkestner@novell.com>
6539
6540         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
6541
6542 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6543
6544         * PropertyGrid.cs,
6545           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
6546           item lines from other area (It also makes BackColor consistent and
6547           compatible with .NET). Fixed bug #78564.
6548
6549 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
6550
6551         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
6552         Patch from Eno for #78555.
6553
6554 2006-06-27  Chris Toshok  <toshok@ximian.com>
6555
6556         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
6557
6558         * DataGridColumnStyle.cs: same.
6559
6560         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
6561         
6562         * DataGridDrawingLogic.cs: nuke.
6563
6564 2006-06-27  Chris Toshok  <toshok@ximian.com>
6565
6566         * DataGridTableStyle.cs: clean up the constructors, and build the
6567         list of child relations for this table.  I have no idea if this is
6568         where we should be doing it (it probably isn't), but since we're
6569         already iterating over the properties..
6570
6571         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
6572         struct and array for keeping track of row information, similar to
6573         what's shown in a hack on
6574         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
6575
6576         * Theme.cs: be consistent about the naming of DataGrid methods,
6577         prefering ColumnWidths and RowHeights over columnsWidths and
6578         RowsHeights.
6579
6580         * ThemeWin32Classic.cs: same, and also add support for variable
6581         sized rows (and the +/- expansion icons for related rows).
6582
6583 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6584
6585         * TextBoxBase.cs: Applied Eno's patch from #78660
6586
6587 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6588
6589         * Form.cs (ScaleCore): We don't want to scale our form if it's
6590           state is minimized or maximized, but we still need to scale our
6591           child windows. Also, added try/finally block to ensure layout
6592           gets reset (Fixes #78697)
6593
6594 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6595
6596         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
6597
6598 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6599
6600         * Form.cs: Fixed c+p error and added check to resize form if minimum
6601           size is bigger than current size (Fixes #78709)
6602
6603 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
6604
6605         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
6606
6607 2006-06-26  Mike Kestner  <mkestner@novell.com>
6608
6609         * ComboBox.cs: only do Keypress handling in the combo when there  
6610         are items in the collection. Fixes #78710.
6611
6612 2006-06-26  Chris Toshok  <toshok@ximian.com>
6613
6614         * Binding.cs: make this work bi-directionally.  also, clear up
6615         other mixups between Push/Pull Data (e.g. we're supposed to pull
6616         data when validating).
6617
6618         * BindingManagerBase.cs: trim some fully qualified collection
6619         types.
6620
6621         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
6622
6623 2006-06-23  Chris Toshok  <toshok@ximian.com>
6624
6625         * PropertyManager.cs: It appears (according to the unit tests)
6626         that PropertyManager doesn't use
6627         PropertyDescriptor.AddValueChanged to track propery value changes
6628         in its datasource, but uses the same scheme as Binding, where it
6629         looks for a <Property>Changed event and binds to it.
6630
6631         Also, according to the docs, IsSuspended always returns false for
6632         a property manager with a non-null datasource.
6633
6634 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
6635
6636         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
6637           need to update the actual DialogResult. (Fixes #78613)
6638
6639 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
6640
6641         * Form.cs (ShowDialog): Release any captures before running the
6642           new message pump (fixes #78680)
6643
6644 2006-06-22  Mike Kestner  <mkestner@novell.com>
6645
6646         * ListView.cs: Layout column widths properly in details mode even 
6647         if HeaderStyle.None is set.  Fixes #78691.
6648
6649 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
6650
6651         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
6652
6653 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
6654
6655         * Control.cs (ContainsFocus): Using new driver method to get focused
6656           window, instead of trying to use internal tracking var, which can
6657           recursion issues (Fixes #78685)
6658         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
6659           XplatUIWin32.cs: Added GetFocus method to return focused window
6660
6661 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6662
6663         * ColorDialog.cs: when the mouse button is pressed inside the color
6664         matrix, don't let the cursor move out of it until the button is
6665         released, which is the behavior on windows. Changed 'colours' by
6666         'colors' to use the same word consistently.
6667
6668 2006-06-21  Chris Toshok  <toshok@ximian.com>
6669
6670         * DataGrid.cs: add in some basic navigation stuff (navigating to a
6671         child relation and back, using a stack).  Also, remove
6672         GetDataSource and the code that calls it - it's not needed.  Also,
6673         track CurrencyManager.ListName's removal.
6674
6675 2006-06-21  Chris Toshok  <toshok@ximian.com>
6676
6677         * CurrencyManager.cs: push some of the original type checking from
6678         BindingContext.CreateBindingManager to here, and remove some of
6679         the finalType stuff.  Need more tests to make sure I've got the
6680         ListName part right, and we might need more in SetDataSource.
6681
6682         * PropertyManager.cs: add a ctor that takes just the datasource,
6683         and no property name.  Make SetDataSource work with a null
6684         property_name, and make Current return the data_source if the
6685         property descriptor is null.  this makes 'string foo = "hi";
6686         BindingContext[foo].Current' return "hi" as it should.
6687
6688         * RelatedCurrencyManager.cs: make this code more generic - there's
6689         no reason the parent manager has to be CurrencyManager, and
6690         there's no reason to pass the DataRelation.  It suffices to use a
6691         BindingManagerBase and PropetyDescriptor.
6692
6693         * RelatedPropertyManager.cs: make a similar change here.
6694         
6695         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
6696         flower I knew it could be.
6697
6698 2006-06-20  Chris Toshok  <toshok@ximian.com>
6699
6700         * PropertyManager.cs: the PropertyChangedHandler is invoked when
6701         data in the source has changed and we need to update the control,
6702         so s/PullData/PushData.
6703
6704         * CurrencyManager.cs: Refresh is meant to update the control from
6705         data in the datasource.  So, s/PullData/PushData.
6706
6707         * BindingContext.cs: add more ugliness (we weren't handling the
6708         case where data_source = DataTable and data_member = column_name).
6709
6710         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
6711         from the perspective of the datasource.  PullData pulls from the
6712         control, PushData pushes to the control.
6713
6714 2006-06-20  Chris Toshok  <toshok@ximian.com>
6715
6716         * BindingContext.cs: rewrite the CreateBindingManager code to
6717         handle navigation paths more or less properly.  This could
6718         definitely stand some more work, in particular to push the
6719         recursion up to the toplevel.  But that relies on fixes in other
6720         places (System.Data comes to mind).
6721
6722         Also, move to a flat hashtable (and encode the twolevel nature of
6723         the dictionary into the hash key).  This lets us implement the
6724         IEnumerable.GetEnumerator method.
6725
6726         * RelatedCurrencyManager.cs: new class.  Update our view based on
6727         our relation and our parent CurrencyManager's position.
6728
6729         * CurrencyManager.cs: split out some logic from the ctor into
6730         SetView, so it can be called from the new RelatedCurrencyManager
6731         subclass.
6732
6733         * RelatedPropertyManager.cs: new class.  Update our datasource
6734         based on the position of our parent CurrencyManager.
6735
6736         * PropertyManager.cs: split out some logic from the ctor into
6737         SetDataSource, so it can be called from the new RelatedDataSource
6738         subclass.  Also, make the Current getter return the value
6739         of the PropertyDescriptor, not the data_source.
6740
6741         * Binding.cs: no need to duplicate the string splitting code here.
6742
6743 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6744
6745         * Control.cs:
6746           - set_Enabled: OnEnabledChanged is not called if the inherited state 
6747             of the control is not altered, even though  we might be changing the
6748             internal state of the control (#78458)
6749           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
6750             OnEnabledChanged, to allow easy altering of any child window state
6751           - OnEnabledChanged: Added code to enable/disable driver window state
6752           - OnParentEnabledChanged: Instead of firing the event, call 
6753             OnEnabledChanged, which will fire the event and also a) set driver
6754             window state and pass the enabled state to any grandchildren (#78458)
6755
6756 2006-06-19  Jackson Harper  <jackson@ximian.com>
6757
6758         * InternalWindowManager.cs: We don't set the cursor explicitly
6759         thats done via the response to NCHITTESTs.
6760         - Don't need to adjust for titlebar heights anymore, the
6761         coordinates are coming in the correct coordinates now (see peters
6762         last patch).
6763
6764
6765 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6766
6767         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
6768           being translated relative to whole window, instead of client window.
6769           That caused broken offsets on mouseclick (and caused gas for our
6770           InternalWindowManager)
6771
6772 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6773
6774         * TextControl.cs:
6775           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
6776           - Undo(): Added replay of cursor move on DeleteChars action; added
6777             calling Undo() again if a recorded cursor move is invalid (to
6778             ensure that some action is performed on Undo)
6779         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
6780
6781 2006-06-16  Jackson Harper  <jackson@ximian.com>
6782
6783         * MdiClient.cs: Instead of just sizing maximized windows when
6784         there is a resize we also have to adjust the Y of minimized
6785         windows, so they stay pinned to the bottom of the mdi container.
6786         - Eliminate separate tracking of the active control, we can just
6787         get this from the controls collection.
6788         - Paint the decorations for the newly activated titlebar so we get
6789         a pretty blue bar.
6790         * InternalWindowManager.cs:
6791         * ThemeWin32Classic.cs: Minimized windows get all three buttons
6792         even if they are a tool window.
6793         
6794 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6795
6796         * TextControl.cs (Undo): Handle non-existent cursor locations in the
6797           undo buffer, these can happen when text was deleted and the cursor
6798           was recorded first. Since we will also have a recorded cursor
6799           after the delete this is not an issue. (Fixes #78651)
6800
6801 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
6802
6803         * AccessibleObject.cs: Remove dependence on Control.is_selected;
6804           instead properly track control states internally (allows us to
6805           remove is_selected from Control)
6806
6807 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6808
6809         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
6810         whose width is not a multiple of 8.
6811
6812 2006-06-13  Jackson Harper  <jackson@ximian.com>
6813
6814         * MdiClient.cs:  Only maximize the next child if the current one
6815         is maximized.
6816
6817 2006-06-13  Chris Toshok  <toshok@ximian.com>
6818
6819         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
6820         modified.  Also, guard against grid or grid_drawing being null in
6821         Invalidate.
6822
6823         * DataGrid.cs: Reformat tons of getters/setters.  In the
6824         DataMember setter, just call SetNewDataSource instead of
6825         duplicating some of its functionality.  In SetNewDataSource, don't
6826         check ListManager for null, since the property getter creates the
6827         object if needed.
6828
6829         * DataGridTableStyle.cs: don't set TableStyle or call
6830         SetDataGridInternal on the column here, it's done in
6831         GridColumnStylesCollection.Add.
6832
6833         * GridColumnStylesCollection.cs: fix all the explicit interface
6834         implementations to just call our methods.  Nuke AddInternal() and
6835         move the body of it to Add().  Also, add a call to
6836         column.SetDataGridInternal to Add().
6837
6838         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
6839         base()+duplicate code.  Also, use the Format property instead of
6840         format to generate an Invalidate ala MS.  Lastly, create the
6841         textbox here, unconditionally.
6842         (set_Format): call Invalidate.
6843         (get_TextBox): no need to call EnsureTextBox.
6844         (Commit): remove the message box.
6845         (Edit) remove the call to EnsureTextBox.
6846         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
6847         (EnterNullValue): no need to check textbox for null.
6848         (HideEditBox): no need to check textbox for null.
6849         (SetDataGridInColumn): add the textbox to the grid's controls.
6850         (EnsureTextBox): nuke.
6851         
6852 2006-06-13  Jackson Harper  <jackson@ximian.com>
6853
6854         * MdiWindowManager.cs: Hook up to the maximized menus paint event
6855         and redraw the buttons when needed. Unhook when the window is
6856         unmaximized.
6857         * MainMenu.cs: Add an internal Paint event, the mdi window manager
6858         needs this so that it can redraw its buttons when the menu is
6859         repainted.
6860         * InternalWindowManager.cs:
6861         * Form.cs: The method order has changed for DrawMaximizedButtons,
6862         so that it can be a PaintEventHandler.
6863         
6864 2006-06-13  Jackson Harper  <jackson@ximian.com>
6865
6866         * MdiClient.cs: When we close a maximized mdi window, the next mdi
6867         window is activated and maximized, even if it wasn't before.
6868         - When  a new window is activated repaint the decorations of the
6869         old one, so that it no longer has the Active "look" (the blue
6870         titlebar).
6871         * InternalWindowManager.cs: Open up CreateButtons to base classes
6872         so they can recreate the buttons on state changes.
6873         - If a window is maximized give it all three buttons
6874         * MdiWindowManager.cs: Create the titlebar buttons when the state
6875         is changed, this is needed because a toolwindow will not have all
6876         three buttons until it is maximized.
6877
6878 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
6879
6880         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
6881           Fixed bug #78609.
6882
6883 2006-06-12  Jackson Harper  <jackson@ximian.com>
6884
6885         * KeysConverter.cs: Make sure we handle the Ctrl special case
6886         if its the only key.
6887         
6888 2006-06-12  Jackson Harper  <jackson@ximian.com>
6889
6890         * Theme.cs: Add a method to get the size of a managed window
6891         toolbar button.
6892         * InternalWindowManager.cs: Remove the ButtonSize property, this
6893         should be retrieved from the theme.
6894         * MdiWindowManager.cs: Get the button size from the theme
6895         * ThemeWin32Classic.cs: Make the method to get the managed window
6896         titlebar button size public.
6897         - Handle the different button sizes of maximized toolwindows
6898         (should match any maximized window).
6899         - Get the titlebar height from the theme, not the WM (which gets
6900         it from the theme).
6901
6902 2006-06-12  Jackson Harper  <jackson@ximian.com>
6903
6904         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
6905         event down to the mdi window manager.
6906         - Expose some extra stuff to base classes
6907         - Make sure to end the Capture on an NC Mouse up, so that we can
6908         get double clicks properly, and the sizing doens't stick.
6909         - When doing PointToClient contain it in the workable desktop
6910         area, this prevents windows from changing size when the cursor is
6911         pulled outside of the working area while sizing.
6912         * MdiWindowManager.cs: When we get a double click maximize the
6913         window.
6914         - Reset the cursor after handling mode changes.
6915
6916 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
6917
6918         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
6919           current desktop, instead of just assuming a 0, 0 origin. This
6920           is needed for our internal window manager, to know the top
6921           margin of the desktop
6922
6923 2006-06-12  Chris Toshok  <toshok@ximian.com>
6924
6925         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
6926         we need this to get rid of the selected background in the bool
6927         column.
6928         (CancelEditing): move the ConcedeFocus call to above the Abort
6929         call.  Also, set is_changing to false and invalidate the row
6930         header if we were changing before.
6931         (ProcessKeyPreviewInternal): remove, since noone outside this
6932         class calls it anymore.  Roll the code into ProcessKeyPreview.
6933         (EndEdit): remove the internal version.
6934         (InvalidateCurrentRowHeader): make private.
6935
6936         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
6937         Keys.Escape handling (and with it the last call to
6938         DataGrid.EndEdit from outside the class.)
6939
6940
6941 2006-06-12  Chris Toshok  <toshok@ximian.com>
6942
6943         * DataGridTextBox.cs (.ctor): isedit defaults to false.
6944         (OnKeyPress): set isedit to true.
6945         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
6946         already handled by the grid.
6947
6948         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
6949         right.  ugh.
6950         (set_DataSource): SetDataSource always returns true, so stop
6951         putting it in an if statement.
6952         (EndEdit): get rid of some {}'s
6953         (ProcessGridKey): return true in case Keys.Escape.
6954         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
6955         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
6956         PositionChanged, stopped connecting to CurrentChanged.
6957         (GetDataSource): simplify this a bunch.
6958         (SetDataSource): change return type from bool to void.
6959         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
6960         to this, and make sure we don't set ListManager.Position inside
6961         set_CurrentCell.
6962         (OnListManagerItemChanged): if we're passed an actual index,
6963         redraw that row.
6964
6965         * CurrencyManager.cs (set_Position): don't call PullData here.
6966
6967 2006-06-09  Jackson Harper  <jackson@ximian.com>
6968
6969         * TreeNode.cs:  Recalculate the visible order before doing the
6970         Expand/Collapse Below calls, because those calls generate an
6971         expose.
6972         - Reduce calls to the TreeView property, which is mildly expensive
6973         by using a local var.
6974         * Form.cs: Layout the MDI child windows when creating the parent
6975         form.
6976         - Don't use the internal constructor anymore
6977         * MdiClient.cs: use the parent form width/height (if available)
6978         when laying out the child windows, we do this because the
6979         mdiclient isn't docked yet when the initial layout is done.
6980         - Don't need an internal constructor anymore.
6981
6982 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6983
6984         * FileDialog.cs: handle access errors when trying to create a folder
6985         or changing to a directory. No need to initialize out parameters.
6986
6987 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6988
6989         * FileDialog.cs: Append a number when creating a new folder if the
6990           folder already exists (use parenthesis instead of square brackets)
6991
6992 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6993
6994         * FileDialog.cs:
6995           - Disabled registry support for windows and added better registry
6996             error checking for other systems (need to investigate why it
6997             works perfectly on my system)
6998           - If a folder already exist show an error MessageBox instead of
6999             trying to create an indexed name.
7000           - Fixed a non intentional typo.
7001
7002 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7003
7004         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
7005
7006 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7007
7008         * FileDialog.cs: When creating a new folder don't crash if the
7009           folder already exists.
7010
7011 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7012
7013         * FileDialog.cs: Allmost a complete rewrite.
7014           - added a "virtual" file system that handles the differences
7015             between unix and windows file systems (especially the directory
7016             structure). Moved most of the directory and file handling code
7017             into the vfs.
7018             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
7019             UnixFileSystem and FSEntry.
7020           - Recently used folder/directory, size, location and used file names
7021             (file name ComboBox) are now stored in the registry and get read
7022             before the dialog shows up (fixes part 6 of bug #78446).
7023           - Creation of new folders/directories is now possible (context menu
7024             or ToolBar). Added TextEntryDialog for this that fills in the gap
7025             until ListView.LabelEdit works.
7026           - Fixed cursor handling (bug #78527) and focus handling for
7027             PopupButtonPanel
7028           - Various "Search in" ComboBox enhancements. The content of the
7029             dropdown listbox now almost matches ms.
7030           - Changed the behaviour when the user switches to SpecialFolder
7031             Recent to show the ListView in View.Details.
7032           - Beside using the ToolBar to change the View property of the
7033             file ListView it is now possible to use the context menu too.
7034
7035 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7036
7037         * ComboBox.cs: Don't create a new ObjectCollection when an item
7038           gets inserted. Just insert the item in the existing object_items
7039           ArrayList.
7040
7041 2006-06-08  Jackson Harper  <jackson@ximian.com>
7042
7043         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
7044         that the treeview and root node checks are done also, this fixes a
7045         regression i caused in the unit tests.
7046
7047 2006-06-07  Wade Berrier <wberrier@novell.com> 
7048
7049         * RichTextBox.cs: More ISO8859-1 -> unicode
7050
7051 2006-06-07  Mike Kestner  <mkestner@novell.com>
7052
7053         * ComboBox.cs : use items to hold highlight/selection so that
7054         collection insertions don't require synchronization.
7055
7056 2006-06-07  Jackson Harper  <jackson@ximian.com>
7057
7058         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
7059         routine.  We now always keep the sized edge at the cursor instead
7060         of computing movement and adjusting rects.  There is one buglet
7061         with this method though when the cursor is moved over area that
7062         the window can not expand too (such as the toolbars on the desktop).
7063
7064 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7065
7066         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
7067         here. Fixes crash on startup in AlbumSurfer.
7068
7069 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
7070
7071         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
7072           values
7073
7074 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7075
7076         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
7077         statement to avoid calling XNextEvent which will block if another thread
7078         took the event that we were expecting. Fixes bug #78605.
7079
7080 2006-06-07  Mike Kestner  <mkestner@novell.com>
7081
7082         * ListView.cs : isolated checkbox clicking from the selection logic.
7083         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
7084
7085 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7086
7087         * Form.cs: Check that the value passed to Form.DialogResult
7088         is a valid enum value.
7089
7090 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7091
7092         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
7093         Computer'. Clicking it in the network view goes to 'My Computer'.
7094         Added CIFS filesystem type. Display the mount point of filesystems.
7095         Avoid duplicate mount points (happens for me with CIFS);
7096
7097 2006-06-06  Jackson Harper  <jackson@ximian.com>
7098
7099         * InternalWindowManager.cs: Draw the maximized windows buttons
7100         when resizing.
7101
7102 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7103
7104         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
7105         all other dialogs. Fixes bug #78585.
7106
7107 2006-06-06  Mike Kestner  <mkestner@novell.com>
7108
7109         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
7110         Only invalidate checkbox on checkstate changes to avoid flicker.
7111         * ListBox.cs : avoid unselect/select when clicking selected item.
7112         avoid reselection flicker for already multiselected items.
7113         Fixes #78382.
7114
7115 2006-06-06  Jackson Harper  <jackson@ximian.com>
7116
7117         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
7118         the parent form so that the menu is removed if needed.
7119
7120 2006-06-06  Mike Kestner  <mkestner@novell.com>
7121
7122         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
7123         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
7124
7125 2006-06-06  Mike Kestner  <mkestner@novell.com>
7126
7127         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
7128
7129
7130 2006-06-06  Jackson Harper  <jackson@ximian.com>
7131
7132         * Control.cs: Use the property (instead of the field) to get the
7133         default cursor so it is instantiated correctly.
7134         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
7135         resizes so we need to manually repaint the window decorations here.
7136         - Set the titlebar button locations as soon as they are created,
7137         otherwise they are not set correctly on win32.
7138         
7139 2006-06-06  Chris Toshok  <toshok@ximian.com>
7140
7141         * CurrencyManager.cs (set_Position): call PullData before
7142         OnCurrentChanged.
7143         (AddNew): after calling IBindingList.AddNew, update our
7144         listposition, and call OnCurrentChanged/OnPositionChanged (without
7145         calling PullData).
7146         (OnCurrentChanged): remove the call to PullData from here.
7147         (OnItemChanged): remove the call to PushData from here.
7148         (OnPositionChanged): change the test from == null to != null to
7149         match the other methods.
7150         (ListChangedHandler): the grossest part of the patch.  Implement
7151         this such that it passes the unit tests in CurrencyManagerTest and
7152         the output more or less matches that of MS's implementation.
7153  
7154 2006-06-06  Mike Kestner  <mkestner@novell.com>
7155
7156         * ListView.cs : only update check state on single click.
7157         * ThemeWin32Classic.cs : fix focus drawing for details view without
7158         fullrowselect.  Fixes #78454.
7159         * XplatUIX11.cs : fix for double click emission.
7160
7161 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
7162
7163         * PropertyGridView.cs : Applied Atsushi's patch to fix
7164         font dialog bug  (#78197).
7165
7166 2006-06-05  Jackson Harper  <jackson@ximian.com>
7167
7168         * TreeNode.cs: Compute the next node for expanding/collapsing
7169         correctly. We now factor in nodes without a NextNode
7170         correctly. (Fixes somes cases in nunit-gui).
7171         * InternalWindowManager.cs: Set the bounds when updating the
7172         virtual position of a tool window.
7173         
7174 2006-06-05  Chris Toshok  <toshok@ximian.com>
7175
7176         * DataGrid.cs: rename cached_currencymgr to list_manager.
7177         (set_CurrentCell): move SetCurrentCell code here, and clean it up
7178         some.
7179         (CurrentRow, CurrentColumn): single accessors so we can make the
7180         cursor movement code a lot easier to understand.
7181         (CurrentRowIndex): implement this in terms of CurrentRow.
7182         (BeginEdit): clean this up a bit.
7183         (CancelEditing): sort out the is_editing/is_changing/is_adding
7184         stuff a little.
7185         (EndEdit): minor changes.
7186         (OnKeyDown): add a comment about a (most likely) unnecessary
7187         check.
7188         (OnMouseDown): cancel editing when we click on a row header.  And
7189         use the CurrentRow setter, not CurrentCell.
7190         (ProcessDialogKey): directly call ProcessGridKey.
7191         (UpdateSelectionAfterCursorMove): factor out this common block of
7192         code (it's used everywhere that we move the cursor by updating row
7193         or column).
7194         (ProcessGridKey): pretty substantial overhaul.  Use the
7195         CurrentRow/CurrentColumn properties to make the code a lot more
7196         readable.  Only use the CurrentCell property when we have to
7197         modify both row and column at once.  Tab behavior is still broken,
7198         and Delete is untested.
7199         (Select): if we have no selected rows, set selection_start to
7200         @row.
7201         (EditCurrentCell): rename EditCell this.  It was only ever invoked
7202         with CurrentCell as the arg, so drop the arg and rename it.
7203
7204         * DataGridColumnStyle.cs: clean up the constructors a little, and
7205         drop CommonConstructor().
7206
7207         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
7208         actually get notified when the user hits it.
7209         (ProcessKeyMessage): *substantially* simplify this method.
7210         There's no reason (that I can see) for the textbox to be making
7211         calls into the datagrid at all.  Remove all of them but the ones
7212         for Enter handling.  those will take some more work.
7213
7214         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
7215         calling HideEditBox.
7216         (HideEditBox): if we have an active textbox, render it invisible
7217         without causing a re-layout of the datagrid.
7218
7219 2006-06-05  Mike Kestner  <mkestner@novell.com>
7220
7221         * ListView.cs : fix NRE crasher when focuseditem is cleared by
7222         collection changes by resetting it to Items[0].  Fixes #78587.
7223
7224 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7225
7226         * MessageBox.cs: if the height of the text is larger than the icon_size,
7227         use that. Fixes bug #78575.
7228
7229 2006-06-05  Jackson Harper  <jackson@ximian.com>
7230
7231         * TreeView.cs: Fix line drawing when scrolling.  To do this each
7232         node is basically responsible for drawing its entire horizontal
7233         area.  When drawing a node it draws its parent node lines if
7234         needed.
7235         - Adjust the clip area to the viewport rectangle
7236         - Fix Left/Right key handling to match MS. (It expand/collapses
7237         and moves to parents/first child but does not move selection to
7238         sibling nodes).
7239         - Fix SetTop to work with new bound calculation code
7240         - When scrollbars are no longer needed we need to reset scrolling
7241         vars and recalculate the visible order so the redraw is correct
7242         * TreeNode.cs: We can't expand/collapse nodes with no children.
7243
7244 2006-06-03  John Luke  <john.luke@gmail.com> 
7245
7246         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
7247         so the colors work without dev packages
7248         
7249 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
7250
7251         * Control.cs 
7252           - Select: Implemented to just use activate. Seems to match MS 
7253             behaviour closest. Documented to only do actual control walking 
7254             based on it's parameters if in a container control so I moved 
7255             the code there.
7256           - Removed selection check logic from our internal Select() method
7257         * ContainerControl.cs:
7258           - Select: Moved selection logic from Control here, since MS documents
7259             that containers obey the bool arguments. No longer calling base
7260
7261 2006-06-02  Jackson Harper  <jackson@ximian.com>
7262
7263         * TreeView.cs: If the selected node isn't changed when we get
7264         focus update the previously selected node so that we see the
7265         selection box.
7266
7267 2006-06-02  Mike Kestner  <mkestner@novell.com>
7268
7269         * ComboBox.cs: restructure grab and general mouse event handling.
7270         Make the composite control raise mouse events like it was a single
7271         control for leaves/enters/motion/up/down events.  fix dropdown list
7272         coordinate mangling and refactor it into the scrollbar subclass to
7273         reduce code duplication.  Fixes #78282 #78361 and #78457.
7274
7275 2006-06-02  Mike Kestner  <mkestner@novell.com>
7276
7277         * ScrollBar.cs: remove Capture setting/clearing, as it happens
7278         automatically in the Control.WndProc.
7279
7280 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7281
7282         * FileDialog.cs: fix crash when running SharpChess, which sets the
7283         FilterIndex to 2 with only one Filter.
7284
7285 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7286
7287         * ToolBar.cs: add SizeSpecified property.
7288         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
7289         try to figure out our real size, otherwise fallback to what the
7290         container says.
7291
7292 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7293
7294         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
7295         * Control.cs (WndProc): MS always calls the DefWndProc to pass
7296           up the event
7297
7298 2006-06-01  Mike Kestner  <mkestner@novell.com>
7299
7300         * ListView.cs: revamp the focus management in ListView.  It still
7301         causes churn of LostFocus/GotFocus emissions on clicks, but it's
7302         better than not handling focus at all.  Will revisit when pdb feels
7303         the general focus handling is solid.  Fixes #78526.
7304
7305 2006-06-01  Jackson Harper  <jackson@ximian.com>
7306
7307         * TreeView.cs: Set the default border style in the constructor.
7308         - Move painting to use OnPaintInternal instead of capturing
7309         WM_PAINT, this is the correct way of doing things
7310         - UpdateBelow shouldn't invalidate the scrollbar area
7311         - Cap the top on update below in case the node was above the top
7312         of the viewport rectangle.
7313         - ExpandBelow and Collapse below need to obey Begin/End Update.
7314         * TreeNode.cs: Make is_expanded internal so the treenode
7315         collection can change it without firing the whole event chain.
7316         * TreeNodeCollection.cs: When clearing all the child nodes make
7317         sure to recalc the visible order.
7318         - Improve algo for remove the top node
7319
7320 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7321
7322         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
7323           SendMessage directly calling window procedures, which in turn might
7324           call SetFocus()
7325
7326 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
7327
7328         * Control.cs: Don't handle WM_SETFOCUS if the same window already
7329           has focus (works around X11 sending a FocusIn after our SetFocus)
7330         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
7331
7332 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
7333
7334         * Mime.cs: Fix for the NET_2_0 build.
7335           NameValueCollection needs StringComparer now.
7336
7337 2006-05-31  Chris Toshok  <toshok@ximian.com>
7338
7339         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
7340         return (via an out parameter) the starting X of the column.
7341         (UpdateVisibleColumn): track change to FromPixelToColumn.
7342         (HitTest): add a ColumnResize case here.
7343         (DrawResizeLine): new function, probably poorly named.
7344
7345         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
7346         only need to keep one reference.
7347         (set_ListManager): same.
7348         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
7349         Also, add support for HitTestType.ColumnResize.
7350         (OnMouseMove): add column resize behavior here, and change the
7351         cursor to the correct one as we move around the datagrid.
7352         (OnMouseUp): terminate the column resize if we're resizing.
7353         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
7354         for the current cell.
7355         (ConnectListManagerEvents): use cached_currencymgr.
7356         (DisconnectListManagerEvents): fill this in, using
7357         cached_currencymgr.
7358         (SetCurrentCell): remove cached_currencymgr_events handling.
7359         (SetDataMember): only call DisconnectListManagerEvents if
7360         cached_currencymgr is != null.
7361         (SetDataSource): same.
7362         (OnListManagerCurrentChanged): cached_currencymgr_events ->
7363         cached_currencymgr.
7364
7365 2006-05-31  Jackson Harper  <jackson@ximian.com>
7366
7367         * BindingManagerBase.cs: Remove somedebug code that creeped into
7368         SVN.
7369         * TreeNode.cs: We get the indent level dynamically right now, so
7370         don't track it as a member.
7371         * TreeNodeCollection.cs: Make sure all nodes added to the list
7372         have parents, treeviews/topnodes setup properly.
7373         - Don't attempt to track indent level.
7374
7375 2006-05-30  Jackson Harper  <jackson@ximian.com>
7376
7377         * BindingContext.cs: Create the currency manager tables here.
7378         This allows us to more easily create null tables (when bad data
7379         members are used), and more easily create related currency
7380         managers.
7381         * CurrencyManager.cs: All the table creation stuff is done by the
7382         binding context now.
7383         - Current should throw an exception if listposition is -1.
7384         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
7385         been bound yet.
7386
7387 2006-05-30  Mike Kestner  <mkestner@novell.com>
7388
7389         * ListView.cs: allow reexpansion of zero-width column headers.
7390         Fixes #78528.
7391
7392 2006-05-28  Chris Toshok  <toshok@ximian.com>
7393
7394         * CurrencyManager.cs (get_Current): after the late binding
7395         listposition = -1 fix, we need to guard against it here and return
7396         null, otherwise we raise an exception (which is swallowed
7397         elsewhere, and breaks datagrid databinding.)
7398
7399 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7400
7401         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
7402           than WM_SYSKEY, don't throw if get something unexpected (#78507)
7403
7404 2006-05-26  Jackson Harper  <jackson@ximian.com>
7405
7406         * ControlPaint.cs:
7407         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
7408         values, it's faster and it's all we care about (we don't care if
7409         the names aren't equal).
7410         * KeyboardLayouts.cs: Eliminate some dead code.
7411         - Lazy init things
7412         * X11Keyboard.cs: Lazy init keyboard detection.
7413         - Cleanup access modifiers a little.
7414
7415 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7416
7417         * XplatUIX11.cs: Once again, attempting to get layout just right.
7418
7419 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
7420
7421         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
7422           the sizes of each link section, that will result in sizes that
7423           match DrawString's layout (Fixes #78391)
7424
7425 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
7426
7427         * FileDialog.cs: If AddExtension property is true autocomplete the
7428           extensions in SaveFileDialog correctly. Fixes bug #78453.
7429           Set MyNetwork and MyComputer to "C:\" for windows. This should
7430           fix part 8 of bug #78446 for now.
7431
7432 2006-05-26  Chris Toshok  <toshok@ximian.com>
7433
7434         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
7435         invalidate the current row header if we need to, but presumably
7436         we'll invalidate the row corrsponding to the bounds or
7437         editingControl.
7438         (GridHScrolled): switch back to this method, as it's part of the
7439         public api.  *sigh*.
7440         (GridVScrolled): same.
7441         (OnMouseWheel): hack up something that more or less works.  Call
7442         GridHScrolled/GridVScrolled directly, instead of duplicating much
7443         of their code here.
7444         (EnsureCellVisibility): reinstate a bunch of this code, since we
7445         can't just set the scrollbar Value and expect to do all the work
7446         in the ValueChanged handler.  Also, Call Update() after scrolling
7447         in one direction so the other XplatX11.ScrollWindow call has the
7448         proper stuff in the proper places.
7449         (EditCell): set is_editing to true before calling .Edit.
7450
7451         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
7452         don't bother comparing first.
7453         (OnKeyPress): call grid.ColumnStartedEditing before calling
7454         base.OnKeyPress.  this will set is_changing and invalidate the row
7455         header if necessary.
7456         (ProcessKeyMessage): for WM_CHAR messages, call
7457         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
7458         and WM_KEYDOWN.
7459         
7460         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
7461         it's done in the DataGrid.
7462         (NextState): call grid.ColumnStartedEditing, which takes care of
7463         invalidating the row header (and setting is_changing).
7464
7465         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
7466         here.  it's done in the DataGrid.
7467
7468 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7469
7470         * Control.cs: allow changing the cursor when the mouse position is
7471         out of bounds but Capture is set.
7472         * LinkLabel.cs: handle the case when the mouse button is pressed on the
7473         linklabel but released somewhere else.
7474
7475 2006-05-25  Jackson Harper  <jackson@ximian.com>
7476
7477         * TreeView.cs: When we get focus if there is no selected node make
7478         it the top node
7479         - Remove some uneeded setup code from Draw.
7480         * TreeNodeCollection.cs: If the tree doesn't have a top node when
7481         a new node is inserted make the new node the top.
7482         * XplatUIX11.cs:
7483         * Timer.cs: Use Utc time so that no local time zone stuff needs to
7484         be used (should be faster).
7485         
7486 2006-05-25  Chris Toshok  <toshok@ximian.com>
7487
7488         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
7489         problem with the last commit.
7490
7491 2006-05-25  Chris Toshok  <toshok@ximian.com>
7492
7493         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
7494         need the invalidate call here, while scrolling right-to-left via
7495         the left arrow key (i.e. moving the editing cell while scrolling).
7496
7497         * DataGrid.cs (.ctor): remove the initialization of
7498         ctrl_pressed/shift_pressed.  We no longer track them using key
7499         up/down handlers, but by using Control.ModifierKeys.  Also, switch
7500         to using ValueChanged handlers on the scrollbars instead of
7501         Scrolled event handlers.  This simplifies a bunch of the scrolling
7502         code.
7503         (GridHValueChanged): rename from GridHScrolled, and change it to
7504         work with the new event args.
7505         (GridVValueChanged): same.
7506         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
7507         (OnMouseWheel): actually scroll the datagrid.  Don't change the
7508         selected cell.
7509         (ProcessGridKey): correct all the keyboard navigation stuff I
7510         could find.  Ctrl up/down/left/right/home/end work now.
7511         (EnsureCellVisibility): correct method name spelling.  Also,
7512         simplify this a touch by not explicitly calling the
7513         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
7514         scrollbar value.
7515         (OnKeyUpDG): no need for this method now.
7516         
7517 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7518
7519         * LinkLabel.cs: display the OverrideCursor when hovering the label.
7520         Fixes bug #78392.
7521
7522 2006-05-25  Chris Toshok  <toshok@ximian.com>
7523
7524         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
7525         r61019.
7526
7527 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7528
7529         * Application.cs: Moved setting of is_modal and closing to before
7530           we create the control, to allow the event handlers called as a
7531           result of creation affect closing. Also removed Gonzalo's previous
7532           change to setting DialogResult, the behaviour has been moved to 
7533           Form.ShowDialog()
7534         * Form.cs: 
7535           - ShowDialog(): Removed explicit creation of the form, let RunLoop
7536             handle it instead
7537           - ShowDialog(): If no dialog result is set, we need to return Cancel
7538           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
7539             the close is cancelled
7540
7541 2006-05-25  Jackson Harper  <jackson@ximian.com>
7542
7543         * StatusBar.cs: We only need to update the sizes of the other
7544         panels when we have auto size contents.  Also we are only updating
7545         the contents of the panel, not the borders, so compensate for the
7546         border width (TODO: get this width from the theme somehow).
7547         * TreeView.cs: Scrollable is true by default
7548         - Use invalidate instead of refresh where needed
7549         - Factor the scrollable value into scrollbar updating
7550         - Update the scrollbars if the Scrollable property is altered
7551         - Update the selected node if its ImageIndex is changed
7552         - Handle null nodes in UpdateNode (mainly so we don't have to
7553         check if selected is null when updating it
7554         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
7555         are factored into the visible count
7556         - Use VisibleCount for clarity in the code
7557         - When the font is changed we need to recurse through all the
7558         nodes and invalidate their sizes
7559         
7560 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7561
7562         * Application.cs: set the DialogResult to fixed when the main form is
7563         hidden or destroyed while being modal.
7564
7565 2006-05-25  Miguel de Icaza  <miguel@novell.com>
7566
7567         * Theme.cs: Use Tangoified messagebox icons. 
7568
7569         (GetSizedResourceImage): Also cope with width = 0 and do not
7570         trigger a warning in that case (0 means "give me your icon from
7571         the resouce, no special size needed).
7572
7573 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7574
7575         * Application.cs: Leave runloop if the the main modal form is 
7576           hidden (fixes #78484)
7577
7578 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7579
7580         * BindingContext.cs : reject null datasource in Contains() and
7581           Item[].
7582         * CurrencyManager.cs : check data_member validity when data_source
7583           is dataset. When it is late binding, the initial position is -1.
7584
7585 2006-05-24  Jackson Harper  <jackson@ximian.com>
7586
7587         * TreeNodeCollection.cs: Dont't recalculate the visible order on
7588         inserted nodes that aren't visible.  This changes the
7589         max_visible_order which confuses scrollbar settings.
7590         - Use the enumerator to get the prev node instead of duplicating
7591         code.
7592         * TreeView.cs: Use new method for setting scrollbar values
7593         - Don't set the bounds every time the scrollbar is updated
7594         - When updating below the root node use an invalidate instead of a
7595         refresh to prevent the child controls (scrollbars) from being
7596         refreshed. (UpdateBelow still needs to be reworked anyways).
7597         - Reenable SetBottom now that visible orders are set correctly,
7598         added some debug code incase we ever get bad values there again.
7599         - Set the scrollbar max to 2 less then the max value, this
7600         compensates for the max value being one above the node count, and
7601         for scrollbars adding one extra "notch".
7602         - When drawing image nodes if there is an imagelist we draw the
7603         first image in the list if the supplied image index is out of the
7604         image list's bounds.
7605         
7606 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7607
7608         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
7609           we receive a size change from the WM (Fixes #78503)
7610
7611 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
7612
7613         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
7614           rectangle (Fixes #78501)
7615
7616 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7617
7618         * ButtonBase.cs: 
7619           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
7620             as a bitfield.
7621           - Fixed MouseMove to no longer switch pressed state unless the left
7622             mouse button is pressed. Atsushi provided the original patch (#78485)
7623           
7624 2006-05-24  Jackson Harper  <jackson@ximian.com>
7625
7626         * ScrollBar.cs: New internal methods that allow us to change a
7627         couple values on the scrollbar (the most common case is maximum
7628         and large change) without getting multiple invalidates.
7629
7630 2006-05-24  Chris Toshok  <toshok@ximian.com>
7631
7632         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
7633         (Edit): save off the original state in oldState, and set
7634         grid.is_editing to true.
7635         (OnKeyDown): abort editing if escape is pressed.  also, call
7636         NextState if space is pressed.
7637         (OnMouseDown): call NextState.
7638         (NextState): factor out shared code from OnKeyDown and OnMouseDown
7639         here.  Also, only invalidate the row header once (on the initial
7640         is_changing switch) to save on redraws.
7641
7642 2006-05-24  Chris Toshok  <toshok@ximian.com>
7643
7644         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
7645         if the value in the cell is different than it was before.  This
7646         keeps us from triggering a layout when we move around a datarid
7647         with a highlighted cell.
7648         (Edit): suspend layout when creating/positining the text box, and
7649         resume passing false so we don't ever actually re-layout.
7650         (ReleaseHostedControl): same.
7651         (EnsureTextBox): reformat slightly, and set WordWrap to false.
7652
7653         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
7654         control-key sequences should go to the datagrid - remove that
7655         lock.  Also, modify the conditions under which we move between
7656         cells when moving the cursor within a cell, and remove the "this"
7657         and "base" from field accesses.  We weren't even consistent, given
7658         they all were in the base class.
7659
7660 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
7661
7662         * Binding.cs : (.ctor)
7663           An obvious NRE fix for BindingTest.CtorNullTest().
7664
7665 2006-05-23  Chris Toshok  <toshok@ximian.com>
7666
7667         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
7668         them between lines.  This fixes some quirks editing cells in the
7669         datagrid.
7670
7671 2006-05-23  Jackson Harper  <jackson@ximian.com>
7672
7673         * TreeView.cs: Use begin/end update when doing expand/collapse all
7674         so that we don't get flicker on the scrollbar.
7675
7676 2006-05-23  Jackson Harper  <jackson@ximian.com>
7677
7678         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
7679         treenode calculations to be independant of the painting code. To
7680         do this nodes track a visible order which is calculated by the
7681         treeview.
7682         - Call new methods for expanding/collapsing nodes.  These methods
7683         use scrollwindow so we don't have to update everything below the
7684         node.
7685         * TreeView.cs: Refactored drawing and scrolling code.  We don't
7686         need to update nodes when drawing anymore or calculate scrollbar
7687         stuff.
7688         - Added new methods for expanding/collapsing nodes. These methods
7689         use ScrollWindow so as to not have to redraw all the nodes below.
7690         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
7691         we add/remove nodes or sort.
7692         - Handle removing the selected and the top node properly.
7693
7694 2006-05-23  Chris Toshok  <toshok@ximian.com>
7695
7696         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
7697         maybe this should actually happen in the datagrid code?
7698         (EndEdit): no need to invalidate anything, given that
7699         ReleaseHostedControl causes the datagrid to relayout, which
7700         invalidates everything anyway.
7701
7702         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
7703         in SetCurrentCell).
7704         (set_SelectionBackColor): call InvalidateSelection instead of
7705         Refresh.
7706         (set_SelectionForeColor): same.
7707         (BeginEdit): Flesh this out a bit.
7708         (CancelEditing): only do any of this if we're editing/adding.
7709         (EndEdit): same.
7710         (OnMouseDown): there's no need to cancel editing here, it's done
7711         in SetCurrentCell.
7712         (SetCurrentCell): only invalidate the current row header if it's a
7713         different row than the new one.
7714         (ShiftSelection): fix this to work like MS does.
7715         (ResetSelection): factor out the invalidation of selected_rows to
7716         InvalidateSelection.
7717         (SetDataSource): cancel any editing that's going on.
7718
7719         * DataGridColumnStyle.cs
7720         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
7721         call the non-interface version.
7722
7723         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
7724         header rectangle with the clip rectangle so we don't redraw the
7725         entire header for just a small area.  Gets rid of the last flicker
7726         when horizontally scrolling.
7727         (DataGridPaintRow): same.
7728
7729 2006-05-23  Mike Kestner  <mkestner@novell.com>
7730
7731         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
7732         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
7733         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
7734         Critical bug report.
7735
7736 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7737
7738         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
7739           and this fixes #78493
7740
7741 2006-05-23  Miguel de Icaza  <miguel@novell.com>
7742
7743         * Theme.cs (GetSizedResourceImage): Scale images if the proper
7744         size is not found.  
7745         
7746         * FileDialog.cs: Do not change the background for the side bar as
7747         it wont work nicely with the theme, and also reduces the artifacts
7748         in rendering the icons (which I want to fix too).
7749
7750         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
7751         resources, not resgen resources. 
7752
7753         (PlatformDefaultHandler): Pull images using the new API.
7754
7755 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7756
7757         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
7758           a reference to the hwnd and will not remove it unless there are
7759           no pending exposures (fixes #78341)
7760         * XplatUI.cs: Improved debug
7761
7762 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
7763
7764         * MenuAPI.cs : don't handle OnClick event when it was not the left
7765           button. Fixed bug #78487.
7766
7767 2006-05-23  Mike Kestner  <mkestner@novell.com>
7768
7769         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
7770         prefer submenus to the top menu for item lookup, to avoid popping down
7771         top-row items.
7772
7773 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
7774
7775         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
7776           Graphics.FillRectangle as the visual results are really bad (even
7777           on win). We now draw perfect arrows (and perfect shadows when the
7778           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
7779           Pen.DashPattern to draw the dots of each line.
7780
7781 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
7782
7783         * FileDialog.cs: Update the filename combobox when navigating through
7784           the ListView with the cursor keys. Fixes part 7 of bug #78446.
7785
7786 2006-05-22  Mike Kestner  <mkestner@novell.com>
7787
7788         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
7789         Fixes #78463.
7790
7791 2006-05-22  Mike Kestner  <mkestner@novell.com>
7792
7793         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
7794         requests. Fix a misspelled parameter and a copy paste exception error
7795         in Select.
7796
7797 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
7798
7799         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
7800           to get the same width/height (5/13) on X11 as the default font has on
7801           win32. This means that our DefaultFont emSize is smaller than the 
7802           the MS SWF equivalent (even thought the width/height stays the same)
7803
7804 2006-05-20  Jackson Harper  <jackson@ximian.com>
7805
7806         * MdiClient.cs:
7807         * MdiWindowManager.cs:
7808         * InternalWindowManager.cs: Make sure to use the border width from
7809         the theme.
7810
7811 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
7812
7813         * PrintDialog.cs: Implements printer details
7814
7815 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
7816
7817         * FileDialog.cs: Added focus handling for PopupButtonPanel.
7818           Fixes part 1 and 2 of bug #78446
7819
7820 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
7821
7822         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
7823           instead of sticking to the first ever calculated value
7824
7825 2006-05-19  Mike Kestner  <mkestner@novell.com>
7826
7827         * ComboBox.cs: fix mouse motion selection to use MousePosition and
7828         PointToClient, since Capture is set. Fixes #78344.
7829
7830 2006-05-19  Mike Kestner  <mkestner@novell.com>
7831
7832         * ListView.cs: match MS behavior in Details view where items are not
7833         drawn if Columns.Count == 0. 
7834         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
7835         Use a separate pen to draw the check, since changing the width affects
7836         the box as well.  Fixes #78454.
7837
7838 2006-05-18  Miguel de Icaza  <miguel@novell.com>
7839
7840         * ListView.cs: ArgumentOutOfRangeException, single versions of the
7841         exception should throw the name of the invalid argument.
7842
7843         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
7844         there are no files listed. 
7845
7846 2006-05-18  Jackson Harper  <jackson@ximian.com>
7847
7848         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
7849         up.
7850
7851 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7852
7853         * Control.cs: Brought back our old UpdateZOrder method as a private
7854           function and switched our calls from UpdateZOrder to the new one.
7855           This fixes the Paint.Net canvas disappearing bug.
7856
7857 2006-05-18  Jackson Harper  <jackson@ximian.com>
7858
7859         * Theme.cs:
7860         * ThemeWin32Classic.cs:
7861         * InternalWindowManager.cs: Move the drawing into the theme,
7862         expose everything the theme should need from the window manager.
7863
7864 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7865
7866         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
7867           from the call to NativeWindow to avoid walking up the parent chain
7868           further than needed (speeds up setting cursors and avoids setting
7869           the wrong cursor if a parent has another cursor defined)
7870         * Cursor.cs: When loading an icon as cursor, MS uses the center of
7871           the icon as hotspot, not what's contained as hotspot in the icon
7872           file. This fixes the perceived drawing offset seen with Paint.Net
7873         
7874 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7875
7876         * XplatUIX11.cs: 
7877           - Store the calculated rectangle in Hwnd object and use it when 
7878             setting the client size
7879           - Force Toolwindows to always be type Dock, to ensure they're on top
7880
7881 2006-05-18  Mike Kestner  <mkestner@novell.com>
7882
7883         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
7884         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
7885         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
7886         Substantial refactoring to remove confusing nested classes. Coding
7887         standard and Get+Set->property refactorings.  Shift to index based
7888         highlighting in ComboListBox instead of constantly using IndexOf and
7889         Items[]. Add invalidations on resize for DropDownList to fix ugliness
7890         in FileDialog growth.  Draw borders manually since Simple mode needs
7891         to look like two independent controls.  Make listbox border
7892         conditional to DropDownStyle.  Improved OwnerDraw support.
7893
7894 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
7895
7896         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
7897         Don't set the disposed graphics to null, so we can throw the "right"
7898         exception if the graphics is reused later (added a flag to avoid 
7899         double disposing). Some behaviours are different under 2.0 and are
7900         filled under bug #78448.
7901
7902 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7903
7904         * Control.cs: When double-buffering is enabled, we need to reset
7905           our graphics context between paint calls. Otherwise, any 
7906           transformations and other alterations on the context will 
7907           become cumulative (#77734)
7908
7909 2006-05-18  Mike Kestner  <mkestner@novell.com>
7910
7911         * ListView.cs: do focused item selection like MS on clicks. 
7912         Rework focus handling for ItemControl so LostFocus invalidates as
7913         well.
7914         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
7915         the ListView ItemControl has focus.
7916
7917 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
7918
7919         * XplatUIX11.cs: If client_window ends up being width or height zero
7920           due to border settings, move it off window inside whole_window (#78433)
7921
7922 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7923
7924         * Mime.cs: Shrink the mime file cache correctly.
7925
7926 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7927
7928         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
7929
7930 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7931
7932         * XplatUIX11.cs (AddExpose): More sanity checks
7933
7934 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7935
7936         * XplatUIX11.cs:
7937           - AddExpose: Don't add expose ranges outside the size of our
7938             window
7939           - Cast opacity values to Int32 to avoid crashes with certain
7940             values
7941           - Added disabled code paths that protect against illegal cross-
7942             thread painting (Developers.exe)
7943
7944 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7945
7946         * ProgressBar.cs: Invalidate the control when it's resized
7947           since block size is based on control size. (#78388)
7948
7949 2006-05-16  Miguel de Icaza  <miguel@novell.com>
7950
7951         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
7952         of setting the incoming argument to the "reset" value, we set the
7953         this.datamember to string.empty (before we were invalidating the
7954         incoming data).   
7955
7956         Fixes 78420
7957
7958 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7959
7960         * Form.cs: Only apply transparency settings after the form
7961           is created. (Fixes #77800)
7962
7963 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7964
7965         * ApplicationContext.cs: Grab the HandleDestroyed event so
7966           we know when to fire OnMainFormClosed 
7967
7968 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7969
7970         * Application.cs: Introduced sub-class to allow tracking of
7971           threads and centralized triggering of the event mess for
7972           ThreadExit, AppExit, etc..  (#76156)
7973
7974 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
7975
7976         * MimeIcon.cs:
7977           - Do not return a null icon index value for a mime subclass.
7978             Instead try the main mime type class too.
7979           - Seems that some newer distributions don't have a link to some
7980             gnome default icons anymore. So check the default gnome dir too.
7981           
7982
7983 2006-05-16  Jackson Harper  <jackson@ximian.com>
7984
7985         * MdiClient.cs: Don't paint the parent background image if we have
7986         our own background image.
7987
7988 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7989
7990         * Control.cs:
7991           - PerformLayout: Do not shrink space filled by DockStyle.Fill
7992             controls, all filled controls are supposed to overlap (#78080)
7993           - UpdateZOrder is supposed to update the control's z-order in the
7994             parent's z-order chain. Fixed to behave like that
7995           - BringToFront: Removed obsolete code
7996           - SendToBack: Simplyfied
7997           - SetChildIndex: Trigger layout calculations when Z-order changes
7998             since layout is done by z-order
7999
8000 2006-05-16  Chris Toshok  <toshok@ximian.com>
8001
8002         [ fixes bug #78410 ]
8003         * DataGrid.cs (set_AlternatingBackColor): use
8004         grid_drawing.InvalidateCells instead of Refresh().
8005         (set_BackColor): call grid_drawing.InvalidateCells.
8006         (set_BackgroundColor): use Invalidate instead of Refresh.
8007
8008         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
8009         invalidate the cell area.
8010
8011 2006-05-15  Chris Toshok  <toshok@ximian.com>
8012
8013         [ fixes bug #78011 ]
8014         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
8015         on to DataGridPaintRow.
8016         (DataGridPaintRow): take a clip argument, and only draw the cells
8017         which intersect it.  same with the not_usedarea.
8018
8019         * Theme.cs (DataGridPaintRow) add @clip parameter.
8020
8021         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
8022         XplatUI.ScrollWindow.
8023         (ScrollToRow): same.
8024
8025         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
8026         with last column which was causing a gray swath to appear with the
8027         XplatUI.ScrollWindow code.
8028
8029 2006-05-15  Chris Toshok  <toshok@ximian.com>
8030
8031         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
8032         use XplatUI.ScrollWindow.
8033         (VerticalScrollEvent): use XplatUI.ScrollWindow.
8034
8035 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
8036
8037         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
8038
8039 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
8040
8041         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
8042           file since there are no equivalent X11 cursors
8043
8044 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
8045
8046         * MonthCalendar.cs : DateTimePicker should reflect selected date
8047           on mouse*up*, not mouse*down*. Fixed originally reported part of
8048           bug #76474.
8049
8050 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
8051
8052         * TabControl.cs : When argument index is equal or more than tab
8053           count, just ignore. Fixed bug #78395.
8054
8055 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
8056
8057         * Control.cs: Dispose all child controls when control is diposed (#78394)
8058
8059 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8060
8061         * ColorDialog.cs: Finally it is possible to select the color with
8062           the text boxes
8063
8064 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8065
8066         * PrintDialog.cs: Fix typo
8067
8068 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8069
8070         * PrintDialog.cs: PrintDialog is not resizable
8071         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
8072           color. Made some ToolBar drawing methods protected virtual.
8073
8074 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
8075
8076         * PrintDialog.cs: Implementation of the PrintDialog
8077
8078 2006-05-12  Chris Toshok  <toshok@ximian.com>
8079
8080         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
8081         thumb, instead use MoveThumb.  This has the side effect of making
8082         most of the other thumb moving machinery use MoveThumb as well.
8083         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
8084         need to actually invalidate the rectangle where the new thumb will
8085         go.
8086         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
8087         We force an Update() after, so it's not as fast as it could be,
8088         but at least there's zero flicker and no droppings.
8089         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
8090         (UpdateThumbPos): add another argument (dirty), which says whether
8091         or not to calculate/add dirty regions which we later invalidate.
8092         For cases where we know we're going to use MoveThumb, we pass
8093         false for this.  Otherwise, pass true.
8094
8095 2006-05-12  Jackson Harper  <jackson@ximian.com>
8096
8097         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
8098         the status bar.
8099         
8100 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
8101
8102         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
8103           and GetClipRegion methods and UserClipWontExposeParent property.
8104         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
8105           overriding UserClipWontExposeParent property, setting to false, since
8106           Win32 handles the required expose messages to draw our clipped parent
8107           areas internally
8108         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
8109           PaintEventStart to set the user clip region if set.
8110         * Control.cs: 
8111           - Now internally tracking the Region for the control since we need to
8112             store it if the handle is not yet created and only set it when it
8113             becomes created. Before setting the region forced handle creation
8114           - Added code to draw the parents underneath a user-clipped region
8115         * Hwnd.cs: Added UserClip property
8116
8117 2006-05-12  Chris Toshok  <toshok@ximian.com>
8118
8119         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
8120         (set_Maximum): same.
8121         (set_Minimum): same.
8122         (set_SmallChange): same.
8123         (OnMouseUpSB): remove the call to refresh when releasing the
8124         thumb.  We shouldn't need it.
8125         
8126 2006-05-12  Miguel de Icaza  <miguel@novell.com>
8127
8128         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
8129         AutoSize set to None, we do not need to relayout everything, we
8130         just need to invalidate the current region.
8131
8132         (Draw): Do not draw the entire ClientArea, just redraw the
8133         clip area being passed.
8134
8135         * MdiClient.cs: Make MdiClient constructor with the Form argument
8136         internal. 
8137
8138 2006-05-12  Jackson Harper  <jackson@ximian.com>
8139
8140         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
8141         parents background image,  but strangely not their own.
8142         - (DrawStatusBarPanel): Take into account horizontal alignment
8143         when drawing the strings and icons.
8144
8145 2006-05-12  Mike Kestner  <mkestner@novell.com>
8146
8147         * ListBox.cs: avoid invalidations for focus when the collection is
8148         empty. 
8149
8150 2006-05-12  Chris Toshok  <toshok@ximian.com>
8151
8152         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
8153         invalidate the entire thumb area.  Call InvalidateDirty which
8154         limits the redraw to the thumb itself and surrounding pixels.
8155
8156         * XplatUIX11.cs (ScrollWindow): optimize copying.
8157         
8158 2006-05-12  Chris Toshok  <toshok@ximian.com>
8159
8160         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
8161         Figure out the positioning/layout in a single pass instead of
8162         multiple recursive invocations.  Speeds up the initial display of
8163         the data grid.  Also, make many things private that were
8164         originally public but unused outside this class.
8165
8166 2006-05-11  Jackson Harper  <jackson@ximian.com>
8167
8168         * MdiClient.cs: Improved layout code.
8169
8170 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
8171
8172         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
8173           not SelectedObject.
8174
8175 2006-05-11  Chris Toshok  <toshok@ximian.com>
8176
8177         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
8178         union of that will always be {0,0,width,height}.
8179
8180 2006-05-11  Jackson Harper  <jackson@ximian.com>
8181
8182         * Form.cs: Match MS's DefaultSize for forms (they must have
8183         changed the size in sp2).
8184
8185 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
8186
8187         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
8188
8189 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
8190
8191         * TextControl.cs : Fixed bug #78109. This incorrect position
8192           comparison caused crash on automatic line split.
8193         * TextBoxBase.cs : reduce duplicate code.
8194
8195 2006-05-10  Jackson Harper  <jackson@ximian.com>
8196
8197         * MdiClient.cs: Active form is only sent to the back when using
8198         the Next form functionality, when a form is clicked the current
8199         active shouldn't be sent to the back.
8200         - Layout the mdi windows when the container is first made visible.
8201         * Form.cs: Give the MdiClient a ref to the containing form when we
8202         create it.
8203         
8204 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
8205
8206         * LinkLabel.cs : link_font could be uninitialized, so populate one
8207           before actual use. Fixed bug #78340.
8208
8209 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
8210
8211         * XplatUIX11.cs : clipboard format native value is IntPtr.
8212           Fixed bug #78283.
8213
8214 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8215
8216         * Control.cs: 
8217           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
8218             which is passed up the parent chain by DefWndProc
8219           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
8220             to DefWndProc (#77956)
8221         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
8222
8223 2006-05-10  Jackson Harper  <jackson@ximian.com>
8224
8225         * MdiClient.cs: We need to remove the controls from the mdi
8226         collection, when we close the window.
8227         * MdiWindowManager.cs: Special handling of closing mdi windows.
8228         * InternalWindowManager.cs: Make the close method virtual so the
8229         mdi window manager can handle it specially.
8230
8231 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
8232
8233         * DataGrid.cs:
8234           - Recalculate grid when the data source has changed
8235           - Matches styles provided by user from all data sources types
8236         * DataGridTableStyle.cs: For columns that provided by the user set the
8237         with the preferred value is there was unassigned.
8238         * CurrencyManager.cs: throw OnItemChanged event
8239
8240 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
8241
8242         * PictureBox.cs: Don't animate until handle is created. Start animation
8243           when handle is created.
8244
8245 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8246
8247         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
8248           current codebase.
8249         * XEventQueue.cs: We don't need to provide the extra info
8250
8251 2006-05-10  Jackson Harper  <jackson@ximian.com>
8252
8253         * MdiClient.cs: If the mdi clients parent form has a background
8254         image set, we draw that background image for the mdi area's
8255         background.
8256
8257 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8258
8259         * TextBoxBase.cs: Set IBeam cursor (#78347)
8260
8261 2006-05-10  Mike Kestner  <mkestner@novell.com>
8262
8263         * ToolBar.cs: fix some text padding issues with ButtonSize
8264         calculation. Update the default size to match MS documentation.
8265         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
8266         button size. Fixes #78296.
8267
8268 2006-05-10  Mike Kestner  <mkestner@novell.com>
8269
8270         * ListBox.cs: use is_visible for scrollbar positioning in case the
8271         control isn't on screen yet.  Fix off by one with Right vs Width
8272         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
8273         
8274 2006-05-10  Jackson Harper  <jackson@ximian.com>
8275
8276         * X11Dnd.cs: Drop to a control with another control on top of it.
8277         * ToolBar.cs: Work on a copy of the buttons list, so that it can
8278         be modified in click handlers. TODO: Look for similar problems in
8279         other controls.
8280
8281 2006-05-09  Jackson Harper  <jackson@ximian.com>
8282
8283         * Form.cs: Window managers need the old window state when setting
8284         window state now.
8285         * InternalWindowManager.cs: Allow the base mdi window manager to
8286         handle more of the MDI only stuff (like maximize buttons).
8287         * MdiWindowManager.cs: Fix some snafus in changing the window
8288         state.  Add all the menu functionality, for both popup and
8289         maximized menus.
8290         * MdiClient.cs: When a new form is selected the currently
8291         activated form is sent to the back, this matches MS.
8292         - Implement a new method to activate the next mdi child window.
8293
8294 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
8295
8296         * Control.cs: 
8297           - Added new InternalCapture method to allow controls to prevent
8298             the capture behaviour on the click handlers
8299           - Switched to use InternalCapture
8300         * ComboBox.cs:
8301           - Using InternalCapture to prevent mouse captures from being released
8302             on mouse button release (Fixes #78100)
8303         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
8304           returns Form borders if a caption is present. (Fixes #78310)
8305
8306 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
8307
8308         * TreeNode.cs: Changed serialization .ctor to not require every field
8309           to be present. (#78265)
8310         * OwnerDrawPropertyBag.cs: Added serialization .ctor
8311
8312 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
8313
8314         * MimeIcon.cs: for is faster than foreach for strings.
8315
8316 2006-05-05  Mike Kestner  <mkestner@novell.com>
8317
8318         * CheckedListBox.cs: update check handling code to not use selected.
8319         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
8320         behavior for visual feedback, motion response, shift/ctrl handling,
8321         and properly deal with all 4 selection modes. Updates to bounds
8322         handling logic.  Add scroll wheel support. [Fixes #77842]
8323
8324 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8325
8326         * ListView.cs:
8327           - Moved adding of Implicit controls into .ctor. That way, subsequent
8328             creation of the controls will not cause them to think they are 
8329             toplevel windows (fixes #78200 header problem)
8330           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
8331           - Switched visibility setting of header control to use internal field
8332             to avoid triggering handle creation
8333           - Now checking if handle is created before causing a refresh when items
8334             are added (This makes us now match handle creation time with MS)
8335         * Splitter.cs: Removed loading of private splitter cursor, switched to
8336           Cursors version now that that is loading the right ones
8337         * Cursors.cs: Load proper splitter cursors from resources
8338         * Cursor.cs: Added second method of loading resource cursors for the 
8339           VS.Net users amongst us
8340
8341 2006-05-05  Mike Kestner  <mkestner@novell.com>
8342
8343         * ListView.cs: give header_control a minimum size based on the
8344         ListView size.
8345
8346 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8347
8348         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
8349           window seems to do that with metacity, so set that type. (#78120)
8350
8351 2006-05-05  Mike Kestner  <mkestner@novell.com>
8352
8353         * ListViewItem.cs: fix Details mode checkbox layout bug.
8354         * ThemeWin32Classic.cs: draw a ListView column header for unused space
8355         at the end of the header, if it exists. [Fixes for #78200]
8356
8357 2006-05-04  Jackson Harper  <jackson@ximian.com>
8358
8359         * MdiClient.cs: Add a helper property to get the container form.
8360         * MdiWindowManager.cs: We have to make sure to use the menu origin
8361         when drawing the icons and buttons, this fixes maximized window
8362         icons/buttons on win32.
8363         * InternalWindowManager.cs: Reset the restore captions when a
8364         window goes from Maximized to Minimized and vice versa. Move the
8365         DrawMaximizedButtons into the MdiWindowManager source, tool
8366         windows can't be maximized. NOTE: This could use a little
8367         refactoring if time ever permits.
8368         
8369 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8370
8371         * TextBox.cs: Add MWFCategoryAttributes
8372         * TextBoxBase.cs: Add MWFCategoryAttributes
8373         * Form.cs: Add MWFCategoryAttributes
8374
8375 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8376
8377         * Control.cs: Add MWFCategoryAttributes
8378         * ScrollableControl.cs: Add MWFCategoryAttributes
8379
8380 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
8381
8382         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
8383           Divider is true. Fix a little glitch in PropertyToolBar
8384           drawing code
8385
8386 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
8387
8388         * Control.cs:
8389           - Dispose: Call base.Dispose, this causes the disposed event
8390             to be fired (and probably other, more important stuff)
8391           - SetVisibleCore: Set is_visible to true after creating the
8392             window so that the window still gets created invisible (if
8393             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
8394             to generate a WM_ACTIVE message
8395         * Form.cs: Call Dispose when we want to destroy the window, instead of
8396           just destroying the handle (Dispose will do that for us)
8397         * XplatUIX11.cs:
8398           - RootWindow also needs a queue, so we can properly process the
8399             property change events from RootWindow (like Activate)
8400           - Generatic synthetic WM_ACTIVE message when the active window is
8401             being destroyed
8402
8403 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8404
8405         * LinkLabel.cs: Trigger a recalc of our label dimensions when
8406           bounds are changed
8407
8408 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
8409
8410         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
8411           for determining width and height (image might not be assigned if
8412           we're drawing an imagelist)
8413
8414 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8415
8416         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
8417         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
8418           height from system
8419         * Theme.cs: No longer returns hardcoded menu height, instead calls
8420           new driver method
8421         * Form.cs (OnLoad): Scaling happens before triggering Load events 
8422           on MS (# 78257)
8423
8424 2006-05-01  Mike Kestner  <mkestner@novell.com>
8425
8426         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
8427
8428 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
8429
8430         * TextBoxBase.cs: Removed Fixme
8431         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
8432
8433 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
8434
8435         * XplatUIX11.cs:
8436           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
8437             the rectangle relative to the parent, considering borders. We
8438             don't really want that.
8439           - ScrollWindow: Fixed warning to be more understandable
8440         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
8441           scrollbars and scroll only the visible area
8442         * RichTextBox.cs: Removed debug output
8443
8444 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8445
8446         * NumericUpDown.cs (Text): Just use base
8447         * UpDownBase.cs: Ensure txtView is created before using it
8448
8449 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8450
8451         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
8452           casting to IntPtr to avoid 64bit overflow errors
8453
8454 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8455
8456         * Control.cs:
8457           - AllowDrop: Don't force handle creation.
8458           - CreateHandle: Added call to tell driver if we're allowed to drop
8459
8460 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8461
8462         * FileDialog.cs: Remember the last directory not only for the
8463           current instance but also for new FileDialog instances.
8464
8465 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8466         
8467         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
8468           broke sending async messages
8469
8470 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8471
8472         * XplatUIX11.cs:
8473           - ScrollWindow: Fixed method. We finally generate expose events again
8474             for scrolled areas. This was causing 'garbage' when scrolling
8475             textbox and other controls that used ScrollWindow
8476           - Switched from using the regular queue for paint events to the MS 
8477             model of 'generating' paint events when the queue is empty.
8478             We use the new XQueueEvent.Paint subclass to store which windows
8479             need painting.
8480           - AddExpose now takes the x/y/width/height of the exposed area
8481             and inserts the window into the paint queue if not already there
8482           - InvalidateWholeWindow: Switched to use new AddExpose method
8483           - UpdateMessageQueue: Added which queue to monitor for paint events
8484           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
8485             the unlikely case nothing above handles it. We reset the expose
8486             pending states to get them off the queue.
8487           - GetMessage: Now pulls a paint event if no other events are in the
8488             queue
8489           - Invalidate: Switched to new AddExpose method
8490           - PeekMessage: Updated to understand pending paint events
8491           - UpdateWindow: Fixed logic bug. We were only updating if the window
8492             didn't need updating. Also switched to sending WM_PAINT directly,
8493             like MS does.
8494         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
8495           and random access Remove(). The random access is needed to handle
8496           UpdateWindow() where a WM_PAINT is sent directly without accessing
8497           the queue.
8498         * ScrollBar.cs: Added Update() calls to cause immediate updates to
8499           allow for better feedback when scrolling. Scrollbars are small and
8500           the immediate update should make it 'feel' more responsive without
8501           slowing things down. ScrollBar still needs it's invaliate logic
8502           updated to not always invalidate the whole bar on certain changes.
8503
8504 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8505
8506         * Control.cs:
8507         (BackColor): if the control does not support a transparent background,
8508         return the default backcolor when the parent backcolor is transparent.
8509
8510 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
8511
8512         * Application.cs: Updated to new StartLoop/GetMessage API
8513         * RichTextBox.cs: Provide some output on RTF parsing errors
8514         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
8515           new queue_id argument to GetMessage and PeekMessage to allow faster
8516           handling of per-thread queues in drivers.
8517         * Hwnd.cs: Added Queue tracking and property
8518         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
8519         * XEventQueue.cs: Added thread trackingA
8520         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
8521         * XplatUIX11.cs:
8522           - Implemented new per-thread queue
8523           - GetMessage: Fixed return/break behaviour on several cases. We were
8524             returning stale messages in some cases, instead of just processing
8525             the next message
8526
8527 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8528
8529         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
8530
8531 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
8532
8533         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
8534           fixed off-by-one comparisons between Width/Height and Right/Bottom.
8535
8536 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8537
8538         * PropertyGridView.cs: Fix drop down width.
8539
8540 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8541
8542         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
8543           a mess in DrawToolBar, so I removed one of them.
8544
8545 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8546
8547         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
8548           needed (clip). Otherwise we get artifacts.
8549
8550 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8551
8552         * FixedSizeTextBox.cs: Added constructor to allow specifying which
8553           dimension is fixed
8554         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
8555           and switched FixedSizeTextBox to only be fixed vertical (#78116)
8556         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
8557           if it matches the scale base font (avoids unneeded scaling)
8558
8559 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8560
8561         * X11DesktopColors.cs: One gtk_init_check should be enough
8562
8563 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
8564
8565         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
8566           match MS behaviour
8567
8568 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8569
8570         * TextBoxBase.cs: 
8571           - Generate OnTextChanged for Backspace even if we're only deleting
8572             the current selection
8573           - When setting the Text property, only select all text if the
8574             control does not have focus when it is being set. Otherwise
8575             just place the cursor at the beginning of the control
8576
8577 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8578
8579         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
8580           Added a little helper to draw PropertyGrid ToolBar with a different
8581           border and a different BackColor.
8582         * PropertyGrid.cs: Some background parts didn't get painted with the
8583           correct background color. Added a class that helps us to draw the
8584           correct border for PropertyGridView and a class that helps us to
8585           draw ToolBars with a different backcolor
8586         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
8587
8588 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
8589
8590         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
8591         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
8592
8593 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8594
8595         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
8596           into the palette entries. Also, since we're working on a copy
8597           we needed to copy the palette back onto the bitmap.
8598         * Cursor.cs: Same fix as XplatUIWin32.cs.
8599
8600 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
8601
8602         * ImageListStreamer.cs: Need to read the var (or we're off)
8603
8604 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8605
8606         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
8607           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
8608           TextBoxBase.cs: Unused var fixes
8609         * AxHost.cs: Small 2.0 fix
8610         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
8611           as it seems that is what at least Metacity expects. This will make
8612           icons show up on 64bit platforms. We still have some 64bit size
8613           issues, though, since the startup app window size still won't match.
8614
8615 2006-04-25  Mike Kestner  <mkestner@novell.com>
8616
8617         * *.cs: cleanup newly reported exception var unused warnings.
8618
8619 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8620
8621         * ThemeWin32Classic.cs: Button image alignment now matches exactly
8622           ms
8623
8624 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8625
8626         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
8627           image. The image position is always the same, no matter if the
8628           button is pressed or not.
8629
8630 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8631
8632         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
8633           selection and set the correct filename for SaveFileDialog.
8634           Patch by Emery Conrad.
8635
8636 2006-04-24  Mike Kestner  <mkestner@novell.com>
8637
8638         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
8639         check for item.X outside the ClientRect instead of item.Y. Fixes
8640         #78151.
8641
8642 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8643
8644         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
8645         trust that value blindly and do some sanity check. Fixes bug #77814.
8646
8647 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8648
8649         * ImageListStreamer.cs: save the mask as a 1bpp image.
8650
8651 2006-04-21  Mike Kestner  <mkestner@novell.com>
8652
8653         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
8654         pass Checked and Indeterminate to the Theme Engine. Improve
8655         encapsulation with ListBox.
8656         * ListBox.cs: Keep a StringFormat instead of calculating it every item
8657         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
8658         nested types.  Move all CheckState functionality to CheckedListBox.
8659         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
8660         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
8661         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
8662         single base list. Fix scrollbar sizing and placement to mirror MS.
8663         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
8664         used.
8665         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
8666         for CheckedListBox by using new DrawItemState info.  Center the
8667         checkboxes on the items. Use new StringFormat property.
8668
8669 2006-04-18  Jackson Harper  <jackson@ximian.com>
8670
8671         * Form.cs: MdiChildren don't do default locations the same way as
8672         regular forms.  This prevents a crash when trying to position the
8673         mdi windows.
8674
8675 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
8676
8677         * PropertyGridTextBox.cs: Formatting, copyright
8678         * PropertiesTab.cs: Formatting
8679         * PropertyGrid.cs: Formatting
8680         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
8681           click toggling of values
8682           
8683 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
8684
8685         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
8686         * Control.cs (.ctor): verify_thread_handle is static, don't reset
8687           every time a control is created
8688         * Application.cs: Removed obsolete EnableRTLMirroring method
8689
8690 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
8691
8692         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
8693         SelectedIndex to -1. Fixes bug #78121.
8694
8695 2006-04-17  Jackson Harper  <jackson@ximian.com>
8696
8697         * Binding.cs: Handle null values for Current and BindingContext.
8698         This occurs when binding is a little delayed.
8699         * CurrencyManager.cs: return null for Current when there are no
8700         items in the list.
8701         - Hookup to the listchanged event on the DataView and update
8702         bindings when the list is changed.  This fixes late binding of
8703         controls.
8704
8705 2006-04-17  Jackson Harper  <jackson@ximian.com>
8706
8707         * X11Dnd.cs:
8708         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
8709         Ringenbach.
8710
8711 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
8712
8713         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
8714           place
8715         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
8716           with the correct ButtonState
8717
8718 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
8719
8720         * XplatUIX11.cs: Improved distinguishing between window types to
8721           tell the WM a type closer to what the app wants (Fixes #78107)
8722
8723 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8724
8725         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
8726           GrabHandle
8727
8728 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8729
8730         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
8731           drawing code to reflect the size grip changes
8732
8733 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8734
8735         * ImageListStreamer.cs: fix handling of the mask that follows the main
8736         bitmap when deserializing and serialize it properly. The generated mask
8737         should better be a 1bpp image, but I'll do that later.
8738
8739 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8740
8741         * FileDialog.cs: Show something in the DirComboBox on *nix if the
8742           path doesn't fit into some of our Current.Places
8743
8744 2006-04-13  Jackson Harper  <jackson@ximian.com>
8745
8746         * ComboBox.cs: Use borders instead of drawing our own decorations,
8747         try to obey correct rules for heights.
8748         * Theme.cs:
8749         * ThemeNice.cs:
8750         * ThemeClearLooks.cs:
8751         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
8752         this is now handled by borders.
8753         - Remove unused DrawListBoxDecorationSize method.
8754         
8755 2006-04-13  Mike Kestner  <mkestner@novell.com>
8756
8757         * MenuAPI.cs: null guarding for the disbled click check fixes crash
8758         reported by Alex.
8759
8760 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8761
8762         * ThemeWin32Classic.cs: 
8763           - Fixed CPDrawStringDisabled
8764           - Corrected drawing of disabled menu items
8765           - Fixed drawing of disabled radio buttons (bug #78095)
8766           - Draw check in a disabled CheckBox with color ControlDark 
8767
8768 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8769
8770         * Form.cs: Use the provided width when calculating the menu size;
8771           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
8772           and ClientSize.Width won't be updated yet
8773         * Application.cs: Use Visible instead of Show() to make form visible,
8774           this way we create the handle later and menusize is considered
8775
8776 2006-04-12  Mike Kestner  <mkestner@novell.com>
8777
8778         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
8779         reporting.
8780
8781 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8782
8783         * TextBox.cs: Implemented context menu
8784
8785 2006-04-12  Mike Kestner  <mkestner@novell.com>
8786
8787         * ListView.cs: implement box selection. fixes #77838.
8788         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
8789
8790 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8791
8792         * XplatUIX11.cs: Added setting of window type when transient window
8793           is created (metacity would move it otherwise)
8794         * X11Structs.cs: Added WINDOW_TYPE atoms
8795         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
8796           background (the control is Opaque but still wants transparent
8797           backgrounds)
8798
8799 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8800
8801         * Control.cs: Added OnPaintBackgroundInternal to allow controls
8802           that set Opaque but don't mean it (like all ButtonBase-derived
8803           controls) to still draw their background
8804         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
8805           the background
8806
8807 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8808
8809         * Control.cs (PaintControlBackground): Set the graphics object
8810           on our PaintEvent to null to prevent it from being disposed
8811           when the PaintEvent gets disposed
8812
8813 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
8814
8815         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
8816         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
8817
8818 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8819
8820         * Control.cs: 
8821           - Added transparency check to BackColor property. Transparent
8822             backgrounds are only allowed if the control styles permit it
8823           - Added recursive painting of parent control background and
8824             foreground if a control with a transparent backcolor is drawn
8825             (Thanks to Tim Ringenback for providing his 'hack' as a base
8826              for this patch) Fixes #77985 and #78026.
8827           - Added Opaque style check before calling OnPaintBackground, no
8828             need to draw the background if the control is opaque
8829           - Removed ControlAccessibleObject owner variable (inherited from
8830             base, no need to define again)
8831           - Added some documentation links explaining the drawing events
8832             and styles
8833
8834 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8835
8836         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
8837           that the affected control is the located at the left border of our
8838           parent (Fixes #77936)
8839
8840 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8841
8842         * TextBoxBase.cs: When rendering disabled or readonly controls,
8843           draw the background with 'Control' instead of 'Window' color as
8844           long as the user hasn't specifically set a color
8845
8846 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8847
8848         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
8849           since that won't be updated if the user types text (only if it's
8850           programatically set)
8851
8852 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8853
8854         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
8855           layout changes do to app-triggered resizes will have the proper
8856           display rectangle for layout
8857
8858 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
8859
8860         * ThemeWin32Classic.cs:
8861           - Make use of the SystemBrushes and SystemPens wherever possible
8862           - Corrected some highlight colors
8863           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
8864             drawing
8865         * Theme.cs: Added Empty field to CPColor struct
8866
8867 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8868
8869         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
8870           is displayed when calculating the display rectangle. Thanks to Mike
8871           for teaching me the err of my ways.
8872
8873 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
8874
8875         * ScrollableControl.cs:
8876           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
8877             (instead of 0,0) and we now return the real width/height instead of
8878             just the clientrectangle, adjusted for padding. The rectangle is
8879             now cached and created by the new CalculateDisplayRectangle method.
8880           - Created new CalculateDisplayRectange method, which basically does
8881             what get_DisplayRectangle() did originally, but now using the 
8882             right edge instead of DisplayRectangle to determine the size of
8883             our scrollbars
8884           - get_Canvas(): Fixed it to properly calculate canvas for 
8885             right/bottom controls which seem to be placed to the right/bottom
8886             of any controls that have a fixed location
8887           - Removed TODO that's taken care of
8888           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
8889             and SetDisplayRectLocation according to new MSDN2 docs
8890           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
8891             event when that is called, this is added for compatibility
8892           - ScrollControlIntoView(): Implemented.
8893           - Switched scrollbars to be implicit, they shouldn't be selectable
8894         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
8895           call it when the active control is set/changed
8896         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
8897         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
8898           implicit_control variable (used for native Win32 message generation)
8899         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
8900           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
8901         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
8902         * XplatUIStructs.cs: Added ScrollBarCommands enum
8903
8904 2006-04-10  Jackson Harper  <jackson@ximian.com>
8905
8906         * ButtonBase.cs:
8907         * CheckedListBox.cs:
8908         * ComboBox.cs:
8909         * DataGrid.cs:
8910         * DataGridView.cs:
8911         * Form.cs:
8912         * GroupBox.cs:
8913         * ListBox.cs:
8914         * PrintPreviewControl.cs:
8915         * ProgressBar.cs:
8916         * PropertyGrid.cs:
8917         * Splitter.cs:
8918         * StatusBar.cs:
8919         * TrackBar.cs:
8920         * UpDownBase.cs: Fixup base event overrides.
8921         
8922 2006-04-06  Mike Kestner  <mkestner@novell.com>
8923
8924         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
8925         all user-initiated value changes to min <= value <= max-thumbsz+1.
8926         (set_Value): check for vert/horiz when calculating new thumb position.
8927         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
8928         like MS does.
8929         (OnMouseMoveSB): refactor the thumb dragging code and refine
8930         invalidation logic to reduce flicker.
8931         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
8932         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
8933         (UpdateThumbPosition): small code readability cleanup
8934
8935 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
8936
8937         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
8938           different
8939
8940 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8941
8942         * ThemeNice.cs: Use a better graphics effect when a button is pressed
8943
8944 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8945
8946         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
8947         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
8948           This dramatically reduces the number of Pen.Dispose calls. 
8949           Where possible call ResPool methods only once instead of calling it
8950           over and over again (for example for the same color).
8951
8952 2006-04-06  Mike Kestner  <mkestner@novell.com>
8953
8954         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
8955         Also remove an unused private field on the collection. Fixes #77972.
8956
8957 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8958
8959         * ThemeNice.cs: Added ToolBar drawing code
8960
8961 2006-04-06  Mike Kestner  <mkestner@novell.com>
8962
8963         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
8964         I'm assuming that means we need to look up the toplevel for the
8965         provided control. Fixes the crash trace in #77911 but exposes another
8966         crash in some strange reflection usage in NDocGui.
8967
8968 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8969
8970         * ThemeNice.cs: Gave it a little silver touch and added Images
8971           method
8972         * FontDialog.cs: FontDialog is not resizable
8973         * FileDialg.cs: Added SizeGripStyle.Show
8974
8975 2006-04-05  Jackson Harper  <jackson@ximian.com>
8976
8977         * KeyboardLayouts.cs: Remove warning.
8978
8979 2006-04-05  Jackson Harper  <jackson@ximian.com>
8980
8981         * Control.cs: Enable OnPaintInternal so we can use it for drawing
8982         all of our controls instead of Paint +=.
8983         * ListBox.cs:
8984         * ListView.cs:
8985         * MenuAPI.cs:
8986         * MessageBox.cs:
8987         * NotifyIcon.cs:
8988         * ProgressBar.cs:
8989         * ScrollBar.cs:
8990         * Splitter.cs:
8991         * StatusBar.cs:
8992         * TabControl.cs:
8993         * TextBoxBase.cs:
8994         * ToolBar.cs:
8995         * TrackBar.cs:
8996         * UpDownBase.cs:
8997         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
8998         use OnPaintInternal. Remove Width/Height and Visible checks in
8999         paint handler, this is done at a higher level now.
9000         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
9001         * PaintEventArgs.cs: Add a handled flag so controls that don't
9002         want anymore painting after OnPaintInternal can make sure OnPaint
9003         isn't called.
9004
9005 2006-04-05  Mike Kestner  <mkestner@novell.com>
9006
9007         * Form.cs: fix the menu WndProc hacks to respect the native enabled
9008         state of the form, so that we don't process events when Modal dialogs
9009         are up. Fixes #77922.
9010
9011 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
9012
9013         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
9014           checking is done.
9015
9016 2006-04-05  Mike Kestner  <mkestner@novell.com>
9017
9018         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
9019
9020 2006-04-05  Mike Kestner  <mkestner@novell.com>
9021
9022         * ListView.cs (HeaderMouseMove): null guarding for the over column
9023         when setting up the drag_to_index.  Fixes #78015.
9024
9025 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
9026
9027         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
9028           in the taskbar. Transient windows seem to accomplish that.
9029
9030 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
9031
9032         * Form.cs:
9033           - Re-enabled CreateParams.X/Y code for FormStartPosition
9034           - Added code for manual placement when creating the Control
9035           - Incomplete patch to treat MDI forms differently when
9036             setting the ClientSizeCore. (Still need to figure out handling
9037             x/y coords there)
9038         * XplatUIX11.cs:
9039           - When we're explicitly setting the X/Y position of a non-Child
9040             window, let the WM know. Metacity really wants this.
9041
9042 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9043
9044         * ThemeNice.cs: Added CPDrawButton
9045
9046 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9047
9048         * ThemeNice.cs: Changed the color for focused buttons and activated
9049           the arrows for small scroll buttons.
9050
9051 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9052
9053         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
9054           anymore. Changed some method modifiers to protected (virtual)
9055         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
9056           changes
9057         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
9058           Updated drawing of menus, buttons and progressbars; added
9059           CPDrawBorder3D 
9060
9061 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9062
9063         * ImageListStreamer.cs: implemented serialization/deserialization
9064         of the images.
9065
9066 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
9067
9068         * ThemeWin32Classic.cs:
9069           - Removed all the DrawFrameControl stuff; CPDrawButton,
9070             CPDrawCheckBox and CPDrawRadioButton are now handled directly
9071             inside the methods
9072           - Updated and corrected the drawing code of CPDrawButton,
9073             CPDrawCheckBox and CPDrawRadioButton to better match ms
9074           - Updated theme checkbox and radiobutton code to use the CP*
9075             methods
9076
9077 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
9078
9079         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
9080           bug is fixed
9081
9082 2006-03-31  Jackson Harper  <jackson@ximian.com>
9083
9084         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
9085         sometimes.
9086         * UpDownBase.cs: Don't CreateGraphics manually, use a
9087         Refresh. Ideally we would invalidate the correct areas here.
9088
9089 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
9090
9091         * XplatUIX11.cs: 
9092           - We now track the mapping state of windows. If a window (or 
9093             one of it's parents) is not mapped we no longer permit
9094             WM_PAINT messages to be generated since we'd otherwise get 
9095             lots of BadMatch X errors. Jackson did all the work figuring
9096             out the problem.
9097           - Destroying the caret if the window it's contained in is 
9098             destroyed. Can't use regular DestroyCaret method since it
9099             might fall into a drawing function (trying to remove the
9100             caret) and with that generate new BadMatch errors. Again,
9101             Jackson tracked this down.
9102           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
9103             make sure we send the messages to all windows. (The old code
9104             would send the WM_DESTROY to the window, and then all child
9105             windows would be 'gone' because the WM_DESTROY handle lookup
9106             would no longer find the destroyed window)
9107         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
9108         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
9109
9110 2006-03-31  Jackson Harper  <jackson@ximian.com>
9111
9112         * ScrollableControl.cs: Dont recalc if we are not visible.
9113
9114 2006-03-31  Mike Kestner  <mkestner@novell.com>
9115
9116         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
9117         the visibility branch.
9118
9119 2006-03-31  Jackson Harper  <jackson@ximian.com>
9120
9121         * ScrollBar.cs: Cap values when incrementing/decrementing.
9122
9123 2006-03-31  Mike Kestner  <mkestner@novell.com>
9124
9125         * MenuAPI.cs: setup menu.tracker for popup/context menus.
9126         * ToolTip.cs: guard against timer expirations with no active control.
9127         Not sure why it happened.
9128
9129 2006-03-31  Mike Kestner  <mkestner@novell.com>
9130
9131         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
9132         text.
9133         * ToolTip.cs: Position the tooltip based on where the cursor is at
9134         popup time, not at MouseEnter time.  Add a Down state so that we don't
9135         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
9136         positioning offset. Lookup DisplaySize at positioning time, since it
9137         can theoretically change during invocation.
9138         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
9139         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
9140
9141 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9142
9143         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
9144           Fixes behaviour when the Text property of the box is String.Empty
9145
9146 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
9147
9148         * XplatUIX11.cs: Only send mouseleave for our client windows, not
9149           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
9150           a window)
9151
9152 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9153
9154         * FileDialog.cs: Visual enhancement for the popup buttons in 
9155           PopupButtonPanel
9156
9157 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9158
9159         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
9160           code
9161
9162 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
9163
9164         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
9165           highlighted menu items to match ms
9166
9167 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
9168
9169         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
9170
9171 2006-03-30  Mike Kestner  <mkestner@novell.com>
9172
9173         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
9174         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
9175         go active to account for HotLight to Selected transition.
9176         * MenuItem.cs: add internal Selected prop. Fill out the Status
9177         property by calculating it from item info. Add HotLight,
9178         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
9179
9180 2006-03-30  Mike Kestner  <mkestner@novell.com>
9181
9182         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
9183
9184 2006-03-29  Jackson Harper  <jackson@ximian.com>
9185
9186         * Form.cs: Implement TODO.
9187
9188 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
9189
9190         * PrintPreviewDialog.cs: Implemented missing methods and events; still
9191           missing proper dialog setup in the constructor
9192
9193 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
9194
9195         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
9196         * Control.cs:
9197           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
9198           - Fixed ResetBindings and removed TODO
9199           - Added check for cross-thread calls to get_Handle()
9200           - Added Marshaller attribute for set_Font to satisfy class status
9201         * FontDialog.cs: Removed TODOs that seemed implemented
9202         * UpDownBase.cs: Removed unneeded TODO and Fixme
9203         * MessageBox.cs: Implemented support for Default button and removed TODO
9204         * FileDialog.cs: Removed obsolete TODO
9205         * DomainUpDown.cs: Removed obsolete TODO
9206         * ButtonBase.cs: Removed obsolete TODO
9207         * XplatUIWin32.cs: Removed obsolete TODO
9208         * Form.cs:
9209           - Removed obsolete TODO
9210           - Calling CheckAcceptButton when the acceptbutton is changed to allow
9211             internal status updates
9212           - Making sure the active control is selected when the control is created
9213         * CurrencyManager.cs: Removed obsolete TODO
9214
9215 2006-03-29  Mike Kestner  <mkestner@novell.com>
9216
9217         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
9218         of PrintPreviewDialog and RichTextBox.
9219
9220 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9221
9222         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
9223           DarkDark, Light and LightLight colors for a specific color
9224         * ThemeWin32Classic.cs:
9225           - Use Button drawing code to draw RadioButtons and CheckBoxes with
9226             Appearance = Button 
9227           - Make use of the new ResPool helper CPColor
9228           - Draw ProgressBar and StatusBar with correct 3D borders
9229
9230 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9231
9232         * ColorDialog.cs: Return selected color. Fixes bug #77940.
9233
9234 2006-03-28  Mike Kestner  <mkestner@novell.com>
9235
9236         * ListView.cs: fix Icon layout to plan for scrollbar widths when
9237         calculating col/row counts.
9238
9239 2006-03-28  Mike Kestner  <mkestner@novell.com>
9240
9241         * ColumnHeader.cs:
9242         * ListView.cs:
9243         * ListViewItem.cs:
9244         * Menu.cs: 
9245         switch to explicit interface method implementation for some methods
9246         corcompare identifies as inconsistent with MS.
9247
9248 2006-03-28  Mike Kestner  <mkestner@novell.com>
9249
9250         * MainMenu.cs: 
9251         * Menu.cs:
9252         add a few missing methods from the class status output.
9253
9254 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
9255
9256         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
9257           correct.
9258
9259 2006-03-28  Mike Kestner  <mkestner@novell.com>
9260
9261         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
9262
9263 2006-03-27  Mike Kestner  <mkestner@novell.com>
9264
9265         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
9266         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
9267
9268 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
9269
9270         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
9271
9272 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9273
9274         * ThemeWin32Classic.cs:
9275           - GroupBox: Inserted a little gap between the text and the lines
9276             on the right side
9277           - Made the code in CPDrawBorder3D more readable
9278           - Corrected the drawing location of the up and down arrows in 
9279             CPDrawScrollButton
9280
9281 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9282
9283         * ControlPaint.cs: Corrected line widths in DrawBorder for
9284           ButtonBorderStyle Inset and Outset
9285
9286 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9287
9288         * ThemeWin32Classic.cs:
9289           - Rewrote the totally broken CPDrawBorder3D method. That was
9290             one of the main problems for the terrific ThemeWin32Classic
9291             look
9292           - Updated and corrected Button drawing
9293           - Correct the dimensions of the SizeGrip to match ms ones
9294           - Removed a small drawing glitch in DrawComboBoxEditDecorations
9295         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
9296           Border3DStyle.Sunken to match ms.
9297
9298 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9299
9300         * ThemeWin32Classic.cs: First small part of the "de-uglify
9301           ThemeWin32Classic" effort, SizeGrip
9302
9303 2006-03-24  Jackson Harper  <jackson@ximian.com>
9304
9305         * XplatUIX11.cs: Give a max idle time of one second, this matches
9306         MS and forces an Idle event every second when there are no other
9307         events in the queue.
9308
9309 2006-03-24  Mike Kestner  <mkestner@novell.com>
9310
9311         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
9312         * ListView.Item.cs: fix layout issues with null image lists and images
9313         smaller than checkbox size.
9314         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
9315         mode like MS does.  It's weird, but consistent.  ;-)
9316         Fixes #77890.
9317
9318 2006-03-24  Mike Kestner  <mkestner@novell.com>
9319
9320         * ListView.cs: Scroll wheel support for the item control.  Fixes
9321         #77839.
9322
9323 2006-03-23  Jackson Harper  <jackson@ximian.com>
9324
9325         * ScrollableControl.cs: Special case negative sized areas, not
9326         zero.
9327         * MonthCalendar.cs: Save the rect of the clicked date so we can
9328         use it for invalidation.
9329         - Try to cut down on the number of invalidates
9330         - Invalidate the rect the mouse is over and was over when moving
9331         the mouse, so we get the focus box following the cursor.
9332
9333 2006-03-23  Mike Kestner  <mkestner@novell.com>
9334
9335         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
9336         focus rectangle drawing. Fixes #77835.
9337
9338 2006-03-23  Mike Kestner  <mkestner@novell.com>
9339
9340         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
9341         the if and else if and reverting back to the original == check on the
9342         None conditional.
9343
9344 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9345
9346         * FontDialog.cs: Update the example panel if the selected index of
9347           the fontListBox changes.
9348
9349 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9350
9351         * FileDialog.cs: Make FileDialog remember which directory it was in
9352           last in the same execution.
9353
9354 2006-03-22  Mike Kestner  <mkestner@novell.com>
9355
9356         * FileDialog.cs: make the DropDownMenu on the toolbar display
9357         RadioChecks since they are mutually exclusive and that's what MS does.
9358
9359 2006-03-22  Mike Kestner  <mkestner@novell.com>
9360
9361         * Theme.cs: add Color param to CPDrawMenuGlyph.
9362         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
9363         checks and radio marks and arrows are visible on highlighted items.
9364         * ControlPaint.cs: update to use new Theme signature.
9365
9366 2006-03-22  Mike Kestner  <mkestner@novell.com>
9367
9368         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
9369         is active. Fixes #77870.
9370
9371 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9372
9373         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
9374           to be focused/selected after startup
9375
9376 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9377
9378         * ColorDialog.cs: 
9379           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
9380             CustomColors and ShowHelp properties
9381           - Some internal rewrites to get better results when using the
9382             ColorMatrix
9383
9384 2006-03-22  Mike Kestner  <mkestner@novell.com>
9385
9386         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
9387         HoverSelection.  Fixes #77836.
9388
9389 2006-03-22  Mike Kestner  <mkestner@novell.com>
9390
9391         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
9392         ToggleButtons.  (De)Sensitize the Back button around a stack count of
9393         1, not 0.  Update ButtonSize based on a pixel count of the win32
9394         control.  Adjust the toolbar size/location for new button size.
9395
9396 2006-03-22  Jackson Harper  <jackson@ximian.com>
9397
9398         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
9399         true.
9400         * ScrollBar.cs: When doing increments and decrements we need to
9401         set the Value property so that ValueChanged gets raised. A
9402         possible optimization here would be to make an internal SetValue
9403         that doesn't invalidate immediately.
9404         * ToolTip.cs: Tooltips get added to their container (when
9405         supplied) so they get disposed when the container is disposed.
9406         - Don't create tooltips for String.Empty. This prevents all these
9407         little 2-3 pixel windows from showing up when running nunit-gui
9408         and driving me mad.
9409         * Form.cs: Don't set topmost when setting the owner if the handles
9410         haven't been created yet.  The topmost set will happen when the
9411         handles are created.
9412
9413 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
9414
9415         * XplatUIX11.cs:
9416           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
9417           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
9418             visible (to allow them to recalculate their sizes)
9419
9420 2006-03-21  Mike Kestner  <mkestner@novell.com>
9421
9422         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
9423         methods. Removed a ton of redundant code.  Still not really happy with
9424         the border rendering, but I think that's mainly because of the
9425         ControlDarkDark being black instead of a dark grey. Depending on how 
9426         close we want to be, we might want to revisit those color choices.
9427         Among the new features added during the refactor were DropDownArrow
9428         pressed rendering, Disabled image rendering.  Proper flat appearance
9429         boundary rendering.  Removed the Divider and Wrapping dividers since I
9430         can't figure out any combination of themes and conditions to make the
9431         MS control draw a horizontal line on a toolbar despite what the
9432         Divider property docs indicate.
9433         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
9434         conditions and incorrect layout.  Updated to coding standard.
9435         * ToolBarButton.cs: refactored layout and positioning code from
9436         ToolBar to here.  Invalidate wherever possible instead of forcing
9437         redraws of the whole toolbar. 
9438         (Known remaining issues: explicit ButtonSize smaller than provided
9439         images.)
9440
9441 2006-03-21  Mike Kestner  <mkestner@novell.com>
9442
9443         * ContextMenu.cs (Show): use the position parameter instead of just
9444         showing at the MousePosition.
9445
9446 2006-03-21  Jackson Harper  <jackson@ximian.com>
9447
9448         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
9449         control handle this.
9450         * TreeNodeCollection.cs: If we are clearing the root node we need
9451         to reset top_node so calcs can still happen.
9452         * ThemeWin32Classic.cs: This is a Flags so we need to check
9453         properly.
9454         
9455 2006-03-21  Jackson Harper  <jackson@ximian.com>
9456
9457         * DataGrid.cs: Create columns when the binding context has been
9458         changed.
9459         * X11Structs.cs: Keysyms are uints.
9460         - Add size to fix build.
9461
9462 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
9463
9464         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9465           XplatUIOSX.cs: 
9466           - Added ResetMouseHover method to allow controls to retrigger
9467             hovering if they need it more than once
9468           - Implemented MouseHoverTime and MouseHoverSize properties
9469         * Timer.cs: Start() must reset the interval
9470         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
9471           properties
9472
9473 2006-03-21  Jackson Harper  <jackson@ximian.com>
9474
9475         * X11Keyboard.cs: improved layout detection. Move the nonchar
9476         tables into this file.
9477         * KeyboardLayouts.cs: Move the tables into resource files.
9478
9479 2006-03-21  Mike Kestner  <mkestner@novell.com>
9480
9481         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
9482
9483 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
9484
9485         * Mime.cs: Various speed optimizations. Looking up mime types
9486           is now 2 times faster than before
9487
9488 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
9489
9490         * CreateParams.cs: Added internal menu field
9491         * Control.cs: 
9492           - Switched call order for UpdateBounds; now we always call
9493             the one that also takes ClientSize, and we're calculating the 
9494             client size via driver method in the others. The previous
9495             method of tracking client size by difference wasn't working
9496             for forms where even the starting client size wouldn't match
9497             the overall form size (due to borders) (Part of fix for #77729)
9498           - CreateParams(): Do not use parent.Handle unless the handle is
9499             already created. Causes havoc with Nexxia and throws off our
9500             creation of controls
9501         * XplatUIX11.cs:
9502           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
9503           - Switched handling of ConfigureNotify over to new PerformNCCalc 
9504             method (consolidates code)
9505           - Changed RequestNCRecalc to use new PerformNCCalc method
9506           - Added calls to RequestNCRecalc when menus and borders are changed
9507             to allow app to set NC size. (Part of fix for #77729) This matches
9508             when MS send a WM_NCRECALC on Win32 windows.
9509           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
9510             (Part of fix for #77729). This matches what MS does, they also
9511             send that message when the form is made visible.
9512           - XException.GetMessage: Improved usability of X errors by including
9513             a translation of the window into Hwnd and Control class
9514           - Improved debug info for window creation, reparenting and destruction
9515           - Created helper method WindowIsMapped() [Currently not used]
9516         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
9517         * Form.cs:
9518           - CreateParams: Now setting our menu on the new internal menu field
9519           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
9520             avoid calculating the same property twice
9521         * Hwnd.cs:
9522           - Improved usability of ToString() for debugging purposes
9523           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
9524             determine the height of the menu, instead of just the font. This
9525             required to also create a graphics context and to keep a bmp 
9526             around (for performance reasons)
9527
9528 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
9529
9530         * MenuAPI.cs: Added OnMouseUp method
9531         * Form.cs:
9532           - Now remembering the requested client size, avoids size errors
9533           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
9534             instead of base if the menu is active. This is required due to
9535             control now capturing and releasing on down/up and it would
9536             prematurely release our menu capture
9537
9538 2006-03-17  Jackson Harper  <jackson@ximian.com>
9539
9540         * KeyboardLayouts.cs: Add the czech layouts.
9541
9542 2006-03-16  Jackson Harper  <jackson@ximian.com>
9543
9544         * Control.cs: Use the viewport space when sizing not the controls
9545         client size, so things like ScrollableControl that effect the
9546         viewport size (when scrollbars are added) are computed correctly.
9547         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
9548         of ManagerEntrys.
9549         - Handle creating BindingManagers for null data sources.
9550         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
9551         source, otherwise when rows are added they are added to the 'fake'
9552         datasource and we will crash when trying to set the position in
9553         those rows.
9554         - Use Implicit scrollbars on the datagrid so they arent
9555         selectable.
9556         
9557 2006-03-16  Jackson Harper  <jackson@ximian.com>
9558
9559         * Binding.cs:
9560         * InternalWindowManager.cs:
9561         * MdiWindowManager.cs:
9562         * X11Keyboard.cs: I really want Mike to love me again (fix
9563         compiler warnings).
9564
9565 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
9566
9567         * DataGrid.cs:
9568           - OnMouseDown: Switch to editing mode when clicking on the cell
9569                          even if we're clicking on the cell that's currently 
9570                          selected
9571           - ProcessGridKey: Left/Right now wrap like MS.Net does
9572           - ProcessGridKey: Tab now knows to add a new row when tab is
9573                             pressed in the cell of the last column of the 
9574                             last row
9575           - ProcessGridKey: Enter now adds another row  if pressed in the last
9576                             row and selectes the new row, same column cell
9577           - ProcessGridKey: Home/End navigate columns, not rows, like 
9578                             originally implemented
9579           - Broke ProcessKeyPreview code out into an extra Internal method
9580             so it can be called from the edit code
9581         * DataGridTextBox.cs (ProcessKeyMessage):
9582           - Switched to accept Tab keypresses
9583           - Added F2 handling to allow jumping to the end of the edited cell
9584           - Added logic to allow moving caret left/right inside edited cell
9585             and making the edited cell jump when the caret hits cell borders
9586           - Tab and Enter are now passed to the datagrid after being handled
9587         * TextBoxBase.cs:
9588           - Removed capture code now that Control handles it
9589           - set_SelectionStart now ensures caret is visible
9590
9591 2006-03-16  Jackson Harper  <jackson@ximian.com>
9592
9593         * TrackBar.cs: Debackwards the increment/decrement for handling
9594         mouse clicks on the bar with vertical trackbars.
9595         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
9596         bottom to match MS.
9597
9598 2006-03-16  Mike Kestner  <mkestner@novell.com>
9599
9600         * ListView.cs: make shift/ctrl keyboard and mouse selection 
9601         consistent with the MS control. Fix a bug in
9602         SelectedListViewItemCollection.Clear that was pissing me off for the
9603         better part of a day because the collection was being altered
9604         underneath us as we walked the list.
9605
9606 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
9607
9608         * Control.cs: Not sure how we could miss this so long, but it seems
9609           that MS.Net has Capture set all the way from before calling 
9610           OnMouseDown through sending the mouse events until after
9611           OnMouseUp. This will fix DataGrid's selection being set to end
9612           at the location of the MouseUp.
9613
9614 2006-03-15  Jackson Harper  <jackson@ximian.com>
9615
9616         * BindingContext.cs: Check the binding after its added so that it
9617           can initialize the binding managers and hookup to events.
9618         * Binding.cs: Data members seem to sometimes include rows/cols in
9619           the format Row.Column we now take this into account.
9620           - Hookup to the position changed event so we can update the
9621           control when the position has changed in the data set.
9622         * CurrencyManager.cs: Take into account the row/col naming
9623           convention when creating dataset tables.
9624         * BindingContext.cs: Using a newer better way of storing
9625           datasource/datamember pairs.  Hopefully this better matches MS for
9626           looking up binding managers.
9627
9628
9629 2006-03-15  Jackson Harper  <jackson@ximian.com>
9630
9631         * BindingContext.cs: The currency manager needs the data member
9632         name, if the member is a data set we use the name to find the
9633         correct table.
9634         * CurrencyManager.cs: When creating the list prefer an IList over
9635         an IListSource.
9636         - Attempt to create a DataTable from a DataSet (TODO: might need
9637         some better error checking here, although MS doesn't seem to have much)
9638         - If we have a DataTable create a view and use it as our list.
9639
9640 2006-03-15  Mike Kestner  <mkestner@novell.com>
9641
9642         * ListView.cs: keep a matrix of the icon mode layout to facilitate
9643         keyboard navigation. Support Up/Down/Left/Right selection correctly
9644         for all 4 View modes.
9645         * ListViewItem.cs: add internal row/col fields for icon layouts.
9646
9647 2006-03-15  Jackson Harper  <jackson@ximian.com>
9648
9649         * TabControl.cs: Redraw the tabs when we resize so their newly
9650         calculated sizes are drawn on screen.
9651         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
9652         composite characters.
9653         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
9654         - filter events so that composite characters can be created
9655         patches by peter
9656         * X11Structs.cs: Add XIMProperties enum.
9657
9658 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9659
9660         * Control.cs (BringToFront, SendToBack): Don't use window or handle
9661           unless it's created
9662
9663 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9664
9665         * Control.cs (PerformLayout): We don't need to consider visiblity
9666           for anchoring, only for docking. This fixes 'whacky' alignment
9667           in listbox and other controls that use implicit scrollbars after
9668           the previous PerformLayout patch
9669         * ListBox.cs: Switched to use implicit scrollbars
9670           
9671 2006-03-14  Mike Kestner  <mkestner@novell.com>
9672
9673         * ToolBar.cs: 
9674         * VScrollBar.cs:
9675         - chain up the "new event" overrides to base and use
9676         OnEvent to raise them.  Part of fix for bug #76509.
9677
9678 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
9679
9680         * FileDialog.cs: Do not select an item in the parent directory
9681           on backspace
9682
9683 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9684
9685         * Control.cs (PerformLayout): It would seem that we considered
9686           invisible windows for our layout. Not quite the right thing
9687           to do. Now we don't any longer, thereby fixing bug #76889.
9688
9689 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9690
9691         * Control.cs (CanFocus): I goofed. A control can have focus 
9692           even though it's not selectable. Made it match MS docs.
9693
9694 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9695
9696         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
9697           center by default (fixes #76895)
9698         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
9699           all uses of Border3DSides.All with the explicit ORd together
9700           Left|Right|Top|Bottom because I assume that nobody was aware 
9701           that All also implies a center fill. Most places I checked had
9702           a fill right above.
9703         * ProgressBarStyle.cs: Added
9704
9705 2006-03-13  Mike Kestner  <mkestner@novell.com>
9706
9707         * ListView.cs: fix breakage in drag shadow header positioning 
9708         from Peter's csc compilation fix.
9709
9710 2006-03-13  Mike Kestner  <mkestner@novell.com>
9711
9712         * ListView.cs: fix NRE produced by backspacing twice in a focused
9713         FileDialog.
9714
9715 2006-03-13  Mike Kestner  <mkestner@novell.com>
9716
9717         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
9718
9719 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9720
9721         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
9722           be changed
9723         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
9724           the allowed size before making programmatic size changes
9725
9726 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
9727
9728         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
9729           set, metacity is broken and will still use the emty sizes in 
9730           the struct. (Fix for #77089)
9731
9732 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9733
9734         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
9735           WindowExStyles and marked both enums as Flags
9736         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
9737           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
9738           to match WindowStyles split
9739         * XplatUIX11.cs:
9740           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
9741           - Updated to match WindowStyles split
9742         * XplatUIWin32.cs:
9743           - Fixed FosterParent creation, was using ExStyle on the Style field
9744             (This should help with Popup focus issues)
9745           - Updated to match WindowStyles split
9746
9747 2006-03-13  Jackson Harper  <jackson@ximian.com>
9748
9749         * MdiWindowManager.cs: Use the system menu height. Fixes some
9750         strange sizing issues.
9751
9752 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
9755         * TextBoxBase.cs:
9756           - Scroll to caret after inserting text (#77672)
9757           - Make scroll range one pixel higher, fixes off-by-one error (and
9758             makes underlines visible on the last line)
9759
9760 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
9761
9762         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
9763           the keyboard state from being stuck with keys in 'pressed' state when
9764           focus is switched away via keyboard
9765         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
9766           reset the keyboard if no X11 KeyUp events are expected to come
9767         * X11Structs.cs: Switched type of Visible to bool to match driver
9768
9769 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9770
9771         * TextControl.cs:
9772           - Switched caret to be just 1 pixel wide, matches MS and looks less
9773             clunky
9774           - Moved caret display 1 pixel down from the top of the control
9775             to improve view
9776           - InsertCharAtCharet: Update the selection start if moving the caret
9777             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
9778           - No longer always creating the caret when the caret methods are
9779             called. Only the actual ShowCaret/HideCaret will do that now
9780           - Only setting caret visible if the owner control has focus
9781           - UpdateView: Added invalidation-shortcut logic for center and right 
9782             aligned text. Previously we'd update all according to the left
9783             logic which caused drawing errors. Also fixed height of invalidated
9784             areas, now properly invalidating the whole area (was off-by-one)
9785           - owner_HandleCreated: Always generate the document when the
9786             handle is created; this ensures that 
9787         * TextBoxBase.cs:
9788           - Fixed situation where caret would disappear under the right
9789             window border, also improved scrolling behaviour on left-
9790             aligned textboxes
9791           - Fixed right-aligned textboxes to have a border to the
9792             right instead of the caret being under the right border
9793         * XplatUIX11.cs:
9794           - Switched from 'nested' to simple visible/not visible tracking 
9795             for caret (part of fix for #77671)
9796           - No longer passing through translated FocusIn/FocusOut messages
9797             since we were notifying too often and the wrong windows. Instead
9798             we just notify our focussed window of receiving or loosing focus
9799         * XplatUIWin32.cs: Switched from 'nested' show/hide 
9800           counting for caret to simple visible yes/no behaviour (part of 
9801           fix for #77671)
9802
9803 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9804
9805         * Mime.cs: Remove debug code...
9806
9807 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9808
9809         * MimeGenerated.cs: Removed
9810         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
9811           and subclasses) from /usr/(local/)share/mime and
9812           $HOME/.local/share/mime.
9813
9814 2006-03-10  Jackson Harper  <jackson@ximian.com>
9815
9816         * MdiWindowManager.cs: Recalc the NC area when a window is
9817         maximized/restored so that the menu area is drawn on forms that
9818         don't have a menu.
9819
9820 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9821
9822         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9823           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
9824           us to force a WM_NCCALCRESIZE message being sent. This is needed
9825           for MDI maximizing.
9826
9827 2006-03-10  Jackson Harper  <jackson@ximian.com>
9828
9829         * Form.cs: We need to use the ActiveMenu when calculating menu
9830         height.
9831         - Fix nullref when the window manager hasn't been created yet.
9832         * Control.cs: Fix nullref when we try to bring a control to the
9833         front that has no parent.
9834         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
9835         height.
9836         - Add a dummy item to the maximized menu so it always has the
9837         correct height. Otherwise when there are no menus we don't get our
9838         icon and buttons.
9839         
9840
9841 2006-03-10  Jackson Harper  <jackson@ximian.com>
9842
9843         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
9844         stuff.
9845         * Form.cs: Make the window_state internal so the window managers
9846         can track it.
9847         - When an MDI child is maximized let its window manager create the
9848         main menu (so it can add its icon).
9849         - Notify the window managers of state changes
9850         - Let the window manager paint its buttons and handle button
9851         clicks on the menu when it is maximized.
9852         * InternalWindowManager.cs: Move the prev_bounds into the mdi
9853         window manager, since tool windows don't use it, only mdi windows.
9854         - Tell the main form that we don't want it to handle NCPAINT
9855         itself to avoid extra painting.
9856         - Handle clicks on a maximized windows menu.
9857         - Handle window state changes
9858         - Handle minimize/maximize clicks correctly by setting the window state.
9859         * MdiWindowManager.cs: Add an icon menu that (the menu you get
9860         when clicking on the forms icon).
9861         - New method to create a forms maximized menu. This is its normal
9862         menu + an icon.
9863         - Handle window state changes.
9864         - Handle sizing of maximized windows.  Maximized windows are just
9865         drawn bigger then the parent visible area. All controls are still
9866         there, they are just outside the visible area (this matches windows).
9867         * MdiClient.cs: No scrollbars when a child window is maximized.
9868         - Let the children windows figure out how big they should be when
9869         sizing maximized windows.
9870         - Implement a version of ArrangeIconicWindows somewhat similar to
9871         Windows version.  There are some little differences, but I don't
9872         think any app will rely on the layout of minimized mdi windows.
9873
9874 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9875
9876         * Padding.cs: Several fixes to allow compiling with csc 2.0
9877
9878 2006-03-09  Jackson Harper  <jackson@ximian.com>
9879
9880         * Menu.cs:
9881         * MenuItem.cs: Cheap hack so we can add items to the list without
9882         the events being raised.  This allows adding mdi items during
9883         drawing. TODO: Should probably find a better time to add the items.
9884
9885 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9886
9887         * ThemeWin32Classic.cs:
9888           - CheckBox_DrawText: Added logic to not wrap if not enough space
9889             is available (Fix for bug #77727)
9890           - RadioButton_DrawText: Added logic not to wrap if not enough
9891             space is available (Fix for bug #77727). Also removed some
9892             duplicate code, DrawString always drawing the regular text
9893             before hitting the if statement.
9894
9895 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
9896
9897         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
9898
9899 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9900
9901         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
9902         * ContainerControl.cs: Partial implementation of some 2.0 scaling
9903           methods. Moved the new 2.0 properties into alphabetical order with
9904           other properties and added MonoTODO tags
9905
9906 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9907
9908         * AutoScaleMode.cs: Added. Fix build.
9909
9910 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9911
9912         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9913           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
9914           and was requiring premature handle creation for calls from above
9915         * Form.cs, Control.cs: Removed handle arguments from calls to
9916           CalculateClientRect()
9917
9918 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9919
9920         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
9921           drag_column.column_rect is MarshalByRef and can't be used that way
9922
9923 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9924
9925         * AxHost.cs: Added deserialization constructor for 
9926           AxHost+State (fixes 77743)
9927
9928 2006-03-09  Mike Kestner  <mkestner@novell.com>
9929
9930         * ListView.cs: 
9931         - Added column drag reordering for details view.
9932         - fixed behavior when mouse is dragged off column and
9933         AllowColumnReorder is false.
9934         * ColumnHeader.cs: clone the format too in Clone.
9935         * Theme.cs: add DrawListViewHeaderDragDetails method.
9936         * ThemeWin32Classic.cs:
9937         - impl new method for drawing drag column shadows and targets.
9938         - support column offset for details mode in DrawListViewItem.
9939
9940 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9941
9942         * TextControl.cs: Reset the char_count when the document is cleared
9943           (Fixes bug reported on mono-winforms mailing list)
9944
9945 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9946
9947         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
9948           of calling base we simply process the key ourselves, since both
9949           DefWindowProc and the handled method would set m.Result. 
9950           (Fixes #77732)
9951
9952 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9953
9954         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
9955           method also moves the window; instead implemented a copy of
9956           Control.ScaleCore (Part of fix for #77456)
9957         * TextBoxBase.cs: 
9958           - Created new CreateGraphicsInternal method to allow providing
9959             a graphics context when no handle is created without triggering
9960             handle creation. (Part of fix for #77456)
9961           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9962         * TextControl.cs: 
9963           - Switched Constructor to require TextBoxBase instead of Control (to
9964             allow uncast access to CreateGraphicsInternal)
9965           - Safeguarded use of owner.Handle property. No longer accessing it
9966             unless the handle is already created.
9967           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9968           - Now triggering a recalc when owning control becomes visible
9969         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
9970           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
9971           premature handle creation (Part of fix for #77456)
9972         * Control.cs:
9973           - We now only destroy our double-buffering buffers when the
9974             control is resized or disposed, but not when visibility
9975             changes. (The code even re-created them twice every time)
9976           - Now requiring a redraw of the buffer on visibility changes
9977             (fixes bug 77654 part 2)
9978           - Not passing OnParentVisibleChanged up unless the control
9979             is visible
9980           - CanFocus: Fixed to match MS documentation
9981           - Focus: Fixed to return actual focus state and to check if
9982             setting focus is legal before setting it
9983
9984 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
9985
9986         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
9987           when to draw focus rectangle by looking at parent focus and
9988           selected state instead. This fixes TabPages on Linux sometimes
9989           having none or multiple focus rectangles.
9990         * XplatUIX11.cs (SetFocus): 
9991           - Don't set the focus if the same window already has focus
9992           - Use SendMessage instead of PostMessage (like it's Win32
9993             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
9994             to match MS behaviour
9995         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
9996           are not selectable.
9997
9998 2006-03-07  Jackson Harper  <jackson@ximian.com>
9999
10000         * PictureBox.cs: Revert line I accidently committed last week.
10001
10002 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10003
10004         * Control.cs: 
10005           - Added new IsRecreating and ParentIsRecreating properties to
10006             allow testing if RecreateHandle has been called on ourselves
10007             or one of our parents
10008           - WndProc(WM_DESTROY): If our control handle is being recreated
10009             we immediately need to create the handle when receiving the
10010             destroy, that way our child windows find a valid parent handle
10011             when they themselves are being recreated upon WM_DESTROY receipt
10012             (fix for bug #77654 part 1)
10013         * XplatUIX11.cs:
10014           - DestroyWindow: WM_DESTROY must be sent to our own window before
10015             notifying any child windows. MS documents that child windows
10016             are still valid when WM_DESTROY is received. (Control now relies on
10017             this behaviour)
10018           - Added some fine-grain debug options
10019
10020 2006-03-06  Jackson Harper  <jackson@ximian.com>
10021
10022         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
10023         box and base calculations off this.
10024         * MdiChildContext.cs:
10025         * MdiWindowManager.cs: Don't need to ensure scrollbars here
10026         anymore.
10027         
10028 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
10029
10030         * Splitter.cs: In situations where the affected control is added
10031           to the parent's control list after the splitter, we would not
10032           populate affected. Now we try populating it on mousedown, if
10033           it's not already set, and force it to be re-set whenever our
10034           parent changes.
10035
10036 2006-03-03  Matt Hargett  <matt@use.net>
10037
10038         * Control.cs: implement Control.Padding
10039         * Padding.cs: -Padding.All returns -1 when constructing with the
10040         implicit default ctor
10041         -Padding.ToString() matches MS.NET
10042         * ContainerControl.cs: implement
10043         ContainerControl.AutoScaleDimensions
10044         * ListControl.cs: implement ListControl.FormattingEnabled
10045         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
10046         * ButtonBase.cs:
10047         * TabPage.cs: Implement UseVisualStyleBackColor.
10048         * PictureBox.cs: Implement PictureBox.InitialImage.
10049
10050 2006-03-03  Mike Kestner  <mkestner@novell.com>
10051
10052         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
10053         event declarations to proxy to base event.
10054         * ListViewItem.cs: update to use ItemControl.
10055         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
10056         * ThemeWin32Classic.cs: update to new ListView theme API and fix
10057         column header label rendering for 0 width columns.
10058
10059 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
10060
10061         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
10062           that causes the control to be created. Fixes #77476.
10063
10064 2006-03-02  Jackson Harper  <jackson@ximian.com>
10065
10066         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
10067         expose_pending.
10068
10069 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
10070
10071         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
10072           passed in for the EventArgs (fixes #77690)
10073
10074 2006-03-01  Jackson Harper  <jackson@ximian.com>
10075
10076         * ScrollBar.cs: Refresh afterbeing resized.
10077
10078 2006-02-28  Mike Kestner  <mkestner@novell.com>
10079
10080         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
10081         Clean up a tracker compile warning.
10082         * MenuItem.cs: add internal PerformPopup method.
10083         [Fixes #77457]
10084
10085 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
10086
10087         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
10088           implicit expose) when the text is set to null
10089
10090 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
10091
10092         * RichTextBox.cs (FlushText): When newline is true, we always
10093           need to split the line, even if no text is on it and we may
10094           never eat newlines. (Fixes #77669)
10095
10096 2006-02-28  Mike Kestner  <mkestner@novell.com>
10097
10098         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
10099         and set Selected instead.
10100         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
10101         collections.
10102
10103 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
10104
10105         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
10106
10107 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
10108
10109         * FontDialog.cs:
10110           - Got rid of the panel. All controls are now directly added to
10111             the dialog form
10112           - It is now possible to set a font with the Font property
10113           - MinSize and MaxSize property do now what they should
10114           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
10115           - Searching and selecting a font with the font textbox works now,
10116             the same applies to the style and size textbox
10117           - Draw the correct 3D border in the example panel
10118           - Fixed a little mem leak (unused fonts didn't get disposed)
10119           - Many other internal updates/rewrites...
10120           - Fix typo
10121
10122 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
10123
10124         * TextControl.cs: 
10125           - InsertRTFFromStream: Added 'number of characters inserted' argument
10126           - set_SelectedRTF: Now using the number of characters to calculate
10127             the new location for the selection and cursor (x/y cannot be used
10128             due to potentially already wrapped text)
10129
10130 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
10131
10132         * TextControl.cs: Added property and implemented means to allow 
10133           disabling recalculation of a document (can be used to speed up
10134           multiple inserts and is needed to make RTF inserts predictable, see
10135           bug #77659)
10136         * RichTextBox.cs: Using the new NoRecalc property of Document to
10137           keep x/y insert locations predictable. Also makes it faster inserting
10138           large chunks of RTF
10139
10140 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
10141
10142         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
10143           it's easier for a child control to handle the other messages without
10144           having to duplicate the special functionality
10145         * TextBoxBase.cs
10146           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
10147             code to handle processing the key ourselves, in order to get 
10148             access to the result of KeyEventArgs.Handled. We now only call 
10149             ProcessKey if they key hasn't been handled already. Fixes #77526.
10150           - set_Text: If null or empty string is given, just clear the 
10151             document. Fixes part of #77526
10152
10153 2006-02-27  Jackson Harper  <jackson@ximian.com>
10154
10155         * SizeGrip.cs: Paint the background color before painting the grip
10156         so things look right.
10157         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
10158
10159 2006-02-27  Mike Kestner  <mkestner@novell.com>
10160
10161         * ListView.cs:
10162           - Restructure layout and invalidation model to remove a ton of
10163           flicker from the control and speed up performance in general.
10164           - Add manual column resize, flickers like crazy, but I already have
10165           some ideas on how I'll fix that. (#76822)
10166           - Merge the three Icon-based views into a single layout method.
10167           - Move item selection interaction logic from the item since 
10168           interaction with the collections is more appropriate to the view.
10169           - Deselection on non-item clicks.
10170         * ListViewItem.cs:
10171           - Encapsulate most of the layout. Add some internal props to trigger
10172           layout.  Move to a model where Items invalidate themselves instead
10173           of just invalidating the whole control every time something changes.
10174           - Invalidate on Text/Caption changes.
10175           - switch to an offset based layout model to avoid having to absolute
10176           position every element on item moves.
10177           - correct checkbox layout to conform to MS layout.
10178         * ThemeWin32Classic.cs:
10179           - refactor some column header drawing code.
10180           - fix string justification for column headers (#76821)
10181           - make SmallIcon labels top justified for compat with MS impl.
10182         * ThemeClearlooks.cs:
10183           - adjust to new ListViewItem internal checkbox bounds api.
10184
10185 2006-02-27  Jackson Harper  <jackson@ximian.com>
10186
10187         * Control.cs:  Change where implicit controls fall in the zorder.
10188         They are now on top of all children.
10189         - Synced AddImplicit code with Add
10190         - Removed unused enumerator.
10191         * SizeGrip.cs: Remove the TODO as its been TODONE.
10192
10193 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
10194
10195         * TextControl.cs(Insert): Combine the last lines unless the insertion
10196           string ends with \n\n, otherwise we leave one line too many (Fixes
10197           something I noticed with the testapp for #77526; the bug itself was
10198           already fixed in the previous checkin)
10199
10200 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
10201
10202         * RichTextBox.cs:
10203           - SelectionColor and SelectionFont methods no longer set absolute
10204             styles. Instead, the keep font or color respectively (This 
10205             resolves a long-standing FIXME in the code)
10206           - When flushing RTF text, the insert code now considers text trailing
10207             behind the insertion point (Fixes the bug where when replacing
10208             the selected text via SelectedRTF the remainder of the line behind 
10209             the selection would stay on the first insertion line)
10210         * TextBoxBase.cs:
10211           - AppendText now updates the selection points after inserting text
10212           - AppendText now ensures that the last tag (sometimes 0-length) of
10213             the document is used for the style information (Fixes part of 
10214             bug #77220)
10215         * TextControl.cs:
10216           - Created new FontDefiniton class to allow describing partial style
10217             changes
10218           - StreamLine() now takes a lines argument, to allow it to decide
10219             whether an encountered zero-length tag is the last in the document
10220             (which must be kept to not loose the font/color contained in it,
10221             for later appends)
10222           - Created Combine() and Split() methods for Marker structs, to 
10223             support marker updates due to reformatted documents (soft line
10224             wraps)
10225           - Implemented Document.CaretTag setter
10226           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
10227             of the last line (Not the cause, but also exposed by bug #77220)
10228           - Added LineTag argument to InsertString method, to allow callers
10229             to force a certain tag to be used (required to force use of the
10230             trailing zero-length tag of a document)
10231           - Now updating markers in Combine(), to avoid stale tag markers
10232           - Added some method descriptions to aid maintenance
10233           - Implemented new FormatText concept, allowing additive/subtractive
10234             formatting by only specifying the components that are to be 
10235             changed. This was needed for resolving the RTB.SelectedColor/
10236             RTB.SelectedFont fixmes
10237           - Added Break() support method to allow breaking up linetags (used
10238             for partial formatting)
10239           - Added GenerateTextFormat() method. It is used for partial 
10240             formatting and allows to generate a full font/color from given
10241             attributes and an existing tag.
10242
10243 2006-02-26  Jackson Harper  <jackson@ximian.com>
10244
10245         * XplatUIX11.cs:  Use the correct caption height.
10246         - Translate hittest coordinates to screen coords to match MS.
10247         * XplatUIWin32.cs: When we create MDI windows we need to reset
10248         some of the style flags, so we get a nice blank window, and can
10249         draw all the decorations ourselves.
10250         - Set a clipping rectangle on the non client paint event, the
10251         window manager drawing code needs one.
10252         * Form.cs: The window manager needs to know when the window state
10253         has been updated.
10254         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
10255         don't need to factor in border and title sizes in these
10256         methods. TODO: Remove the args and fix the call points.
10257         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
10258         properly.
10259         - Let the driver set the cursors.
10260         - Improve active window handling
10261         - Correct sizes for title bars and buttons.
10262         - Match MS drawing better
10263         * MdiWindowManager.cs: We don't need to handle border style
10264         updates specially anymore.
10265         - Check for scrollbars when windows are done moving
10266         - Handle Active properly.
10267         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
10268         correctly. I am spewing the exception though, so we don't hide the
10269         bugs.
10270         
10271 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
10272
10273         * DataGridViewRowPostPaintEventArgs.cs,
10274           DataGridViewCellPaintingEventArgs.cs,
10275           DataGridViewRowCollection.cs,
10276           DataGridViewRowPrePaintEventArgs.cs,
10277           DataGridViewCell.cs: Clear a few warnings and implement a few
10278           exceptions that should be thrown.
10279
10280 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10281
10282         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
10283           'inheriting' our parent's (non-default) cursor. (Part of
10284            the fix for #77479)
10285
10286 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
10287
10288         * XplatUIX11.cs: Fixed cast to make csc happy
10289
10290 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10291
10292         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
10293           it's for the client area (part of fix for #77479 and needed
10294           for MDI window cursor handling)
10295         * XplatUIX11.cs
10296           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
10297             the appropriate default cursors and also passing the message
10298             up the parent chain 
10299           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
10300             for non-client areas
10301
10302 2006-02-15  Jackson Harper  <jackson@ximian.com>
10303
10304         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
10305         is a real MDI window
10306
10307 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
10308
10309         * X11DesktopColors.cs: Instead of checking the desktop session
10310           string for "KDE" check if it starts with "KDE"
10311
10312 2006-02-10  Jackson Harper  <jackson@ximian.com>
10313
10314         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
10315         systems).
10316
10317 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10318
10319         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
10320           errors
10321         * ColorDialog.cs:
10322           - Got rid of the panel. All controls are now directly added to
10323             the dialog form
10324           - Changed to mono coding style
10325
10326 2006-02-10  Jackson Harper  <jackson@ximian.com>
10327
10328         * InternalWindowManager.cs: We don't need the set visibility to
10329         false hack anymore now that peter has written beautiful shutdown
10330         code.
10331
10332 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
10333
10334         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
10335           where already explicitly destroyed
10336
10337 2006-02-10  Jackson Harper  <jackson@ximian.com>
10338
10339         * MdiClient.cs: Handle the case where windows are too high or to
10340         the left and we need scrollbars.
10341
10342 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10343
10344         * MimeIcon.cs: Added some icons
10345         * FileDialog.cs:
10346           - Fixed bug #77477
10347           - Got rid of the panel. All controls are now directly added to
10348             the dialog form
10349           - Changed to mono coding style
10350           - On Linux "My Computer" and "My Network" will now show some
10351             more usefull information. A new class, MasterMount, gathers
10352             this information from /proc/mount. Updated MWFFileView to make
10353             use of this information
10354           - Fixed a bug that caused FileDialog to crash when
10355             ".recently_used" file had a zero size
10356           - FilterIndex does now what it should
10357           - Some Refactoring
10358         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
10359             FileDialog changes
10360
10361 2006-02-09  Jackson Harper  <jackson@ximian.com>
10362
10363         * ComboBox.cs: Don't touch if null.
10364
10365 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
10366
10367         * Cursor.cs: 64bit safeness fix
10368         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
10369
10370 2006-02-09  Jackson Harper  <jackson@ximian.com>
10371
10372         * Form.cs: If a form is made into an MDI form update the styles so
10373         all the props can get set correctly.
10374         - Kill the mdi_container when we dont need it anymore.
10375         * InternalWindowManager.cs: Add missing NOT
10376
10377 2006-02-08  Jackson Harper  <jackson@ximian.com>
10378
10379         * InternalWindowManager.cs: Respek clipping when drawing MDi
10380         decorations.
10381
10382 2006-02-08  Jackson Harper  <jackson@ximian.com>
10383
10384         * Hwnd.cs: Add bits to track non client expose events.
10385         * XplatUIX11.cs: Track non client expose events on the hwnd. This
10386         gives us a proper invalid rect and will allow for some nice
10387         optimizations with NC client drawing
10388         - MDI windows are children windows, so move their style handling
10389         into the child window block.
10390         * InternalWindowManager.cs: Remove a state reset that was
10391         getting invoked at the wrong time. Fixes managed windows getting
10392         into a 'stuck' captured state.
10393
10394 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10395
10396         * TextControl.cs (Document.ctor): Now initializing 
10397           selection_anchor. Fixes #77493
10398
10399 2006-02-07  Jackson Harper  <jackson@ximian.com>
10400
10401         * TrackBar.cs: The increment/decrements were backwards.
10402
10403 2006-02-07  Mike Kestner  <mkestner@novell.com>
10404
10405         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
10406         to the instance itself.
10407
10408 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10409
10410         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
10411           on ulongs and pointers, the size differs between 32bit and 64bit
10412           systems. 
10413
10414 2006-02-07  Mike Kestner  <mkestner@novell.com>
10415
10416         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
10417         for 64 bit platforms to work around a metacity bug. 
10418
10419 2006-02-07  Jackson Harper  <jackson@ximian.com>
10420
10421         * TrackBar.cs: Process the input keys we need, and hookup to
10422         KeyDown instead of using WndProc, so we get key messages.
10423
10424 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
10425
10426         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
10427           machine we're on. 
10428         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
10429           we need to translate the XdndVersion atoms array before sending it
10430
10431 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
10432
10433         * XplatUIX11.cs: 
10434           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
10435             number of bits for the property, not the number of bytes. The
10436             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
10437             but would not crash since it specified 8 bits instead of 4 bits)
10438           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
10439             defined as XID -> long in the C headers)
10440           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
10441             references since those are now IntPtr to begin with
10442           - Switched all Atom.XXX 'int' casts to IntPtr casts
10443           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
10444           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
10445           - Added XChangeActivePointerGrab DllImport (for X11DnD)
10446         * X11Structs.cs:
10447           - Changed 'int' type for Atoms in XEvent structures to IntPtr
10448           - Changed atom in HoverStruct to be IntPtr
10449         * X11DnD.cs:
10450           - Removed local DllImports, switched code to use those from XplatUIX11
10451           - Removed/fixed casts related to the switch of Atom to be a IntPtr
10452
10453 2006-02-06  Mike Kestner  <mkestner@novell.com>
10454
10455         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
10456         method signatures in the import region.  There may still be some
10457         lingering struct marshaling issues, as I didn't drill down into those.
10458         Yet.
10459
10460 2006-02-06  Jackson Harper  <jackson@ximian.com>
10461
10462         * ComboBox.cs: Dont manually set the top_item, this is computed
10463         when the scrollbar position is set.
10464
10465 2006-02-06  Mike Kestner  <mkestner@novell.com>
10466
10467         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
10468         startup crashes on amd64.  There's other fixes needed.  All pinvoke
10469         usage of Atom needs to be mapped to IntPtr for example.  And there are
10470         likely other int/long issues to be addressed.
10471
10472 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
10473
10474         * FileDialog.cs: One more...
10475
10476 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10477
10478         * FileDialog.cs: Next try
10479
10480 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10481
10482         * FileDialog.cs: First part of fix for #77464
10483
10484 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10485
10486         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
10487           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
10488           AcceptButton border drawing.
10489
10490 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
10491
10492         * Form.cs: Moved positioning of form after auto scaling is applied,
10493           otherwise it would possibly use wrong form size.
10494
10495 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
10496
10497         * Control.cs (RecreateHandle): No need to re-create any child
10498           controls, the child windows will get destroyed automatically by
10499           the windowing system or driver, and re-created when the handle
10500           is being accessed the first time. Fixes #77456
10501         * Form.cs: No longer setting the form to closing if the handle is 
10502           being recreated. This seems like the right thing to do, don't
10503           have a bug or testcase for this, though.
10504
10505 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10506
10507         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
10508           controls to avoid unwanted side effects
10509
10510 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
10511
10512         * Control.cs: 
10513           - ScaleCore needs to scale the bounds, not the ClientSize of the 
10514             control. Fixes #77416.
10515           - DefaultSize is 0,0 for control
10516         * TextBoxBase.cs: 
10517           - DefaultSize is 100, 20
10518           - SetBoundsCore: Now enforcing the height, no matter if the provided
10519             height is more or less than the preferred one, as long as AutoSize
10520             is on
10521         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
10522
10523 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10524
10525         * Control.cs:
10526           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
10527             call unless both performLayout is true *and* we have a pending
10528             layout change
10529           - ResumeLayout: MS does not completely nest Suspend and Resume,
10530             they bottom out at 0, fixed our code to match that.
10531           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
10532             SetBoundsCore, we were updating even when we shouldn't. This fixes
10533             swf-anchors mis-anchoring when resizing the app fast and lots.
10534           - UpdateDistances: Now only setting the left and top distance if 
10535             we have a parent and are not suspended, this is based on
10536             a suggestion by Don Edvaldson in bug #77355.
10537           - OnVisibleChanged: Fixed logic when to create the control. We may
10538             not create the control if we have no parent or if it's not visible;
10539             switched to using Visible property instead of is_visible field 
10540             since the property also considers parent states. This fixes a bug
10541             when starting Paint.Net
10542
10543 2006-02-02  Jackson Harper  <jackson@ximian.com>
10544
10545         * Form.cs: If the forms handle hasn't been created yet don't call
10546         into xplatui to make it top most, just set the topmost flag on the
10547         form in CreateParams
10548         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
10549
10550 2006-02-01  Jackson Harper  <jackson@ximian.com>
10551
10552         * ScrollableControl.cs: Refactored the Recalculate method a
10553         little, this wasn't handling all the variants of bottom and right
10554         bars needed to be added and added/removed based on their
10555         counterparts being added/removed (which changes the drawable
10556         size). Also we special case client widths and heights of 0 and
10557         don't add the scrollbar for those.
10558
10559 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
10560
10561         * XplatUIX11.cs: 
10562           - Added method to get AbsoluteGeometry(); currently unused, but might
10563             be used in the future, if we try again to figure out toplevel
10564             coordinates with some more crappy window managers
10565           - Added FrameExtents() method to retrieve the WM set decoration size
10566           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
10567             to deal with at least KDE, FVWM and metacity (Fixes #77092)
10568         * Hwnd.cs: 
10569           - Added whacky_wm tracking var for metacity
10570           - Added logic to have default menu height if the actual menu height
10571             has not yet been calculated (part of fix for #77426)
10572         * Form.cs: Keep track whether client size has been set and re-set 
10573           it if a menu is added/removed afterwards (Fixes #77426)
10574
10575 2006-01-31  Jackson Harper  <jackson@ximian.com>
10576
10577         * Control.cs: When a new Site is set on the component attempt to
10578         pull the AmbientProperties from it.
10579
10580 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
10581
10582         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
10583           in the background of the owning form. Fixes #77332
10584
10585 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10586
10587         * MimeIcon.cs: Fix for #77409
10588
10589 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10590
10591         * XplatUIX11GTK.cs: Initial import
10592
10593 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
10594
10595         * FixedSizeTextBox: fixes class signature
10596
10597 2006-01-30  Jackson Harper  <jackson@ximian.com>
10598
10599         * FixedSizeTextBox.cs: New internal class that represents a
10600         textBox that will not be scaled.
10601         * TreeView.cs:
10602         * ComboBox.cs:
10603         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
10604         standard TextBox.
10605                 
10606 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
10607
10608         * XplatUIX11.cs: Retrieve default screen number instead of
10609           assuming 0. Attempted fix for #77318
10610
10611 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
10612
10613         * XplatUIWin32.cs: 
10614           - GetWindowPos: When a window is parented by FosterParent, use 
10615             the desktop instead of FosterParent as the base to get coordinates
10616           - CreateWindow: Don't make FosterParent the parent window for Popups
10617             if we don't want a taskbar entry, Popups automatically don't get one
10618         * Hwnd.cs: Need to call remove to actually remove the key from the
10619           hash table
10620
10621 2006-01-30  Mike Kestner  <mkestner@novell.com>
10622
10623         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
10624
10625 2006-01-30  Jackson Harper  <jackson@ximian.com>
10626
10627         * TreeView.cs:
10628         * TreeNode.cs: Raise events no matter how the treenode is
10629         checked. Patch by Don Edvalson.
10630
10631 2006-01-30  Jackson Harper  <jackson@ximian.com>
10632
10633         * TreeNode.cs: Signature fix.
10634
10635 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
10636
10637         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
10638
10639 2006-01-20  Mike Kestner  <mkestner@novell.com>
10640
10641         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
10642         event forwarding when menus are active.
10643         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
10644         Most of the patch is pdb's with a little rework.
10645
10646 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10647
10648         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
10649           Removed GetMenuDC and ReleaseMenuDC methods; replaced
10650           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
10651         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
10652         * InternalWindowManager.cs: Added use of PaintEventStart/End to
10653           handling of WM_NCPAINT message, now passing the PaintEventArgs to
10654           the PaintWindowDecorations method
10655         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
10656         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
10657         * MenuAPI.cs: Made tracker window invisible
10658         * XplatUIWin32.cs:
10659           - Removed GetMenuDC and ReleaseMenuDC methods
10660           - Implemented the client=false path for PaintEventStart and
10661             PaintEventEnd
10662
10663 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10664
10665         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
10666         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
10667           styles
10668         * Form.cs: 
10669           - MaximizeBox, MinimizeBox: Recreate the handle when setting
10670             the style
10671           - CreateParams: Reworked the styles to match MS look'n'feel,
10672             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
10673             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
10674
10675 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10676
10677         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
10678           window is not mapped, since otherwise every form that's being 
10679           created is considered minimized, which is wrong.
10680         * Form.cs: Catching the exception and returning our internal value
10681           instead
10682
10683 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10684
10685         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
10686           SetWindowMinMax() to have means to tell the driver about the minimum,
10687           maximum and maximized state window sizes. (Part of the fix for #76485)
10688         * Form.cs:
10689           - Implemented tracking of minimum and maximum window size, now calling
10690             new SetWindowMinMax() driver method to tell the driver (Part of the
10691             fix for #76485)
10692           - Finished handling of WM_GETMINMAXINFO method, now setting all values
10693             (Completes fix for #76485)
10694           - Calling new SetWindowMinMax driver method when the handle for a 
10695             form is created, to make sure the driver knows about it even if
10696             the values have been set before the window was created
10697           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
10698             to avoid messing up our anchoring calculations (partial fix
10699             for #77355)
10700         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
10701         * XplatUIX11.cs:
10702           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
10703           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
10704             (and presumably other freedesktop.org compliant WMs). Left the
10705             assumption unmapped=minimized, needed for SetVisible to work.
10706           - Now setting the window state when creating windows
10707           - Fixed SetVisible to consider/set the window state when mapping
10708             a Form. We cannot set the state before it's mapped, and we cannot
10709             use Form.WindowState once it's mapped (since it would ask the
10710             driver and get 'normal'. Therefore, we grab the state before
10711             mapping, map, and then set state.
10712           - Implmemented SetWindowMinMax method; Metacity does not seem to
10713             honor the ZoomHints, though.
10714         * XplatUIWin32.cs:
10715           - Removed MINMAXINFO (moved to XplatUIStructs)
10716           - Added SetWindowMinMax stub (on Win32 the only way to set that
10717             information is in response to the WM_GETMINMAXINFO message, which
10718             is handled in Form.cs)
10719           - Added logic to SetVisible to set the proper window state when a 
10720             form is made visible (fixes #75720)
10721
10722 2006-01-26  Jackson Harper  <jackson@ximian.com>
10723
10724         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
10725         same way we handle them with Invoke.
10726
10727 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
10728
10729         * Form.cs:
10730           - Added tracking of window state so CreateParams can return
10731             the appropriate style
10732           - Moved setting of WS_CAPTION style in CreateParams to allow
10733             styles without caption
10734         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
10735           control if the TextBox property is accessed. Fixes #77345
10736         * Control.cs:
10737           - get_Created: now uses is_disposed and is_created to determine
10738             return value (suggested by Jackson)
10739           - CreateHandle: No longer exits if the handle is being recreated
10740           - RecreateHandle: If the handle is not yet created call the 
10741             appropriate method to create either control or handle. If the
10742             control is already created CreateHandle will simply exit instead
10743             of just creating the handle
10744         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
10745           now SendMessage WM_DESTROY directly to the control when DestroyWindow
10746           is called.
10747         * XplatUIX11.cs: 
10748           - When DestroyWindow is called, instead of waiting for the 
10749             DestroyNotification from X11, we directly post it to the WndProc
10750             and immediately dispose the hwnd object.
10751             Same applies to DestroyChildWindows, and this obsoletes the
10752             expose_pending tracking. Contrary to Win32 behaviour we destroy our
10753             child windows before our own, to avoid X11 errors.
10754           - Removed the direct sending of WM_PAINT on UpdateWindow
10755         * XplatUIWin32.cs:
10756           - Reworked DoEvents and GetMessage to allow access to internal queue
10757             even when trying non-blocking access to the queue.  Fixes #77335. 
10758             Based on a patch suggestion by Don Edvalson. The new private
10759             GetMessage can now also be used as a backend for a PeekMessage
10760             frontend version.
10761         * XplatUI.cs: Improved debug output for CreateWindow
10762
10763 2006-01-25  Jackson Harper  <jackson@ximian.com>
10764
10765         * Help.cs: Allow param to be null. Patch by Don Edvalson.
10766
10767 2006-01-24  Jackson Harper  <jackson@ximian.com>
10768
10769         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
10770         when we have a MaxDropItems lower then the selected index.
10771
10772 2006-01-24  Jackson Harper  <jackson@ximian.com>
10773
10774         * Control.cs: Don't allow selection of non visible controls, allow
10775         selection of controls without parents.
10776
10777 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10778
10779         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
10780         * DataGridDrawingLogic.cs: Add editing row only when is necessary
10781
10782 2006-01-23  Jackson Harper  <jackson@ximian.com>
10783
10784         * UpDownBase.cs: Make the textbox handle all the selection and
10785         tabbing. This fixes tabing to updown controls.
10786
10787 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10788
10789         * TextBoxBase.cs: fixes exception thown the object was null
10790
10791 2006-01-23  Jackson Harper  <jackson@ximian.com>
10792
10793         * ButtonBase.cs: Just use the base CreateParams. They set
10794         visibility and enabled correctly.
10795         * ComboBox.cs:
10796         * TrackBar.cs:
10797         * MonthCalendar.cs: Lets let the base set as much of the
10798         createparams as possible so we don't have duplicate code all over
10799         the place.
10800
10801 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
10802
10803         * ThemeGtk.cs: Added TrackBar and some experimental code to
10804           get double buffering back
10805
10806 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10807
10808         * DataGrid.cs: Allows row number set internally higher than the last
10809         when creating a new row. Restores the editing functionality.
10810
10811 2006-01-20  Mike Kestner  <mkestner@novell.com>
10812
10813         * MimeIcon.cs: delay Image creation until the icons are accessed
10814         instead of creating 190 scaled images on GnomeHandler startup.
10815
10816 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
10817
10818         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
10819           first call base before processing the event. Fixes #77279
10820
10821 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
10822
10823         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
10824           that the stride for the GDI bitmap would match the stride of
10825           a DIB or a Cursor.
10826
10827 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
10828
10829         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
10830
10831 2006-01-19  Jackson Harper  <jackson@ximian.com>
10832
10833         * ComboBox.cs: Hookup the text controls keydown event so we get
10834         those when the text control has the focus.
10835
10836 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10837
10838         * Label.cs: Now using the base events instead of defining new ones;
10839           this allows us to just call the base properties without having to
10840           duplicate all base property logic 
10841
10842 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10843
10844         * Label.cs: A label by default is not a tabstop (Fixes one of our
10845           failing nunit tests)
10846
10847 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10848
10849         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
10850         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
10851
10852 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10853
10854         * Cursor.cs: Reimplemented creating cursor bitmaps without using
10855           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
10856           This fixes #77218
10857         * XplatUIWin32.cs: 
10858           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
10859             constructor creates images that can't be saved. Part of the fix
10860             for #76103
10861           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
10862           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
10863             bug fix for handling window state in forms properly)
10864
10865 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10866
10867         * ThemeGtk.cs: Simplify ScrollBar drawing
10868
10869 2006-01-18  Jackson Harper  <jackson@ximian.com>
10870
10871         * Splitter.cs: Set the default dock style for the splitter control
10872         in the constructor.
10873
10874 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10875
10876         * ThemeGtk.cs: Corrected StateType and ShadowType for
10877           gtk_paint_box
10878
10879 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10880
10881         * Control.cs: Make use of Theme.DoubleBufferingSupported
10882         * ThemeGtk.cs:
10883           - Added drawing for flat style buttons
10884           - Added ScrollBar drawing
10885
10886 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10887
10888         * ThemeClearlooks.cs: Removed some unneeded code.
10889         * ThemeGtk.cs: First part of ThemeGtk enhancements.
10890
10891 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10892
10893         * LinkLabel.cs: We need to update the hover drawing when
10894           leaving the control as well.
10895
10896 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
10897
10898         * DataGrid.cs: Clicking on non empty areas in the columns
10899            area was giving an exception
10900
10901 2006-01-17  Jackson Harper  <jackson@ximian.com>
10902
10903         * ThemeWin32Classic.cs:
10904         * ListView.cs: Do not draw/clip the headers when the header style
10905         is None.
10906
10907 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10908
10909         * DataGrid.cs: Fixes 77260
10910         
10911 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10912
10913         * DataGrid.cs: Clicking on a column on a empty grid was giving
10914           an exception
10915
10916 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10917
10918         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
10919           or any keypress will crash the grid.
10920
10921 2006-01-17  Mike Kestner  <mkestner@novell.com>
10922
10923         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
10924         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
10925         invisible/previously-visible items.
10926         [Fixes #76909]
10927
10928 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
10929
10930         * ThemeClearlooks.cs:
10931         - Added CL_Draw_Button method; now other theme controls that are 
10932           not derived from button or do not have a button can draw buttons
10933           too
10934         - Updated ComboBox drawing
10935         - Beautified RadioButton drawing
10936         - Corrected drawing of bottom and left tabs
10937         - Beautified DateTimePicker and MonthCalendar
10938         - Added CPDrawButton and CPDrawRadioButton
10939
10940 2006-01-16  Jackson Harper  <jackson@ximian.com>
10941
10942         * ComboBox.cs: Set the initial value of the scrollbar to the
10943         current index. Reduce the numbers of refreshs and IndexOfs called.
10944
10945 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
10946
10947         * FileDialog.cs: When the file listview is focused hitting the
10948           backspace key moves the fileview to the parent directory
10949
10950 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10951
10952         * Form.cs: 
10953           - Added RecreateHandle call when changing taskbar visibility to 
10954             trigger reparenting in Win32 driver (Fixes #75719)
10955           - If a window has minimize or maximize buttons, it cannot have
10956             a help button
10957         * XplatUIWin32.cs:
10958           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
10959             the toplevel form with FosterParent (A toolwindow not on the
10960             taskbar) (Fixes #75719)
10961           - Made FosterParent a toolwindow
10962
10963 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10964
10965         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
10966
10967 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10968
10969         * ToolTip.cs: If SetToolTip is called from a control and the mouse
10970           is currently over that control, make sure that tooltip_window.Text
10971           gets updated
10972
10973 2006-01-13  Mike Kestner  <mkestner@novell.com>
10974
10975         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
10976
10977 2006-01-13  Jackson Harper  <jackson@ximian.com>
10978
10979         * TreeView.cs: On MS GetNodeAt never actually factors in the X
10980         value passed.  Also redraw the selected node when we recieve
10981         focus, so tabbing between trees works correctly.
10982
10983 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10984
10985         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
10986           ~/.gconf/%gconf-tree.xml, so use
10987           .gconf/desktop/gnome/interface/%gconf.xml
10988
10989 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10990
10991         * TextControl.cs: Draw text in gray if control is disabled
10992
10993 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10994
10995         * TreeView.cs: Draw the focus rectangle outside the highlight, to
10996           make sure it's always visible. Fixes #76680.
10997
10998 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10999
11000         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
11001
11002 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
11003
11004         * PageSetupDialog.cs: Added.
11005         * PrintDialog.cs: Attributes.
11006         * PrintPreviewControl.cs: Updates.
11007         * PrintPreviewDialog.cs: Updates.
11008         
11009 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11010
11011         * Control.cs: Undid my selection check fix, since it's not needed
11012         * TextBoxBase.cs:
11013           - Now considering the presence of hscroll/vscroll when sizing
11014             vscroll/hscroll respectively. Fixed bug #77077
11015           - Added Left/Up/Down/Right to IsInputKey list to prevent
11016             ContainerControl from stealing them. This fixes what I broke
11017             with my last checkin.
11018
11019 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
11020
11021         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
11022           I finally understand how the property can be set without a setter :-)
11023
11024 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11025
11026         * Application.cs:
11027           - Switched RunLoop to use static Message.Create to create a 
11028             Message object
11029           - Added PreProcessMessage call in runloop for keyboard events; this
11030             is part of the fix for #77219, I overlooked this originally in the
11031             MSDN doc for PreProcessMessage
11032         * Control.cs:
11033           - Removed call to PreProcessMessage from handling of keyboard 
11034             messages; it's supposed to be done in the message pump
11035           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
11036             per MSDN documentation.
11037           - IsInputChar: All chars are input chars by default; removed the 
11038             parent calling chain, MS does not document that
11039           - PreProcessMessage: If IsInputChar is true, we want to return false
11040             to allow dispatching of the message
11041           - When selecting the next control, now also check that we're not
11042             selecting ourselves again and therefore return a false positive.
11043         * TextBoxBase.cs:
11044           - Tried to match return values for IsInputKey and ProcessDialogKey
11045             to what MS returns; moved processing of our special keys outside
11046             ProcessDialogKey since MS does not seem to return true on those.
11047           - Moved code that previously was in ProcessDialogKey into new private
11048             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
11049           - Reworked handling of WM_CHAR to not have to duplicate code from
11050             Control.cs anymore, instead we simply call down to base.
11051            
11052 2006-01-12  Jackson Harper  <jackson@ximian.com>
11053
11054         * ComboBox.cs: We always need to refresh the text area when
11055         EndUpdate is called. Fixes the combobox in the file dialog.
11056         * Control.cs: Don't create the creator_thread until the controls
11057         handle is created.  Also in InvokeRequired we check if the
11058         creator_thread is null. This gives the effect of InvokeRequired
11059         returning true if the controls handle is not created yet, and
11060         matches MS.
11061
11062 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11063
11064         * XplatUI.cs:
11065           - Added StartLoop() driver method. This is used to allow drivers to
11066             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
11067             loop for a particular thread
11068           - Added EndLoop() driver method. This is called once the message
11069             pump for the thread is shut down
11070           - Added SupportsTransparency method to allow the driver to indicate
11071             opacity support for windows
11072         * Form.cs:
11073           - Removed TODO attribute, completed AllowTransparency property
11074           - Added documented logic to Opacity
11075         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
11076           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
11077           versions of CompatibleTextRendering
11078         * X11Structs.cs: Added opacity atom to our atom enumeration
11079         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
11080           of a form might be set before it's reparented by the WM, and we need
11081           the opacity value without calling up to Form)
11082         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
11083           SupportsTransparency() driver methods
11084         * Application.cs: Now calling StartLoop and EndLoop driver methods
11085         * XplatUIX11.cs:
11086           - Added opacity atom registration
11087           - Added StartLoop()/EndLoop() methods. They're empty right now but
11088             will need to get implemented when we switch to a per-thread queue
11089           - Implemented SupportsTransparency() method
11090           - Implemented SetWindowTransparency() method
11091           - Added support for setting the opacity value when a window is
11092             reparented (since the opacity needs to be set on the WM frame)
11093         * XplatUIOSX.cs, XplatUIWin32.cs:
11094           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
11095
11096 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
11097
11098         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
11099
11100 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
11101
11102         * FileDialog.cs: Added ToolTip for MWFFileView
11103         * MimeIcon.cs: Rewrote GnomeHandler.
11104           - Get currently used gnome icon theme from
11105             ($HOME)/.gconf/%gconf-tree.xml
11106           - Make use of inherited icon themes
11107           - Support SVG icon themes like Tango via librsvg
11108
11109 2006-01-12  Miguel de Icaza  <miguel@novell.com>
11110
11111         Revert's Jackson's revert which broke 2.0 builds.   Fix both
11112         builds. 
11113         
11114         * Application.cs: Move the use_compatible_text_rendering outside
11115         the NET_2_0 define.  If we ever need to use the
11116         use_compatible_text_rendering on the individual controls they will
11117         access the variable from the common shared code paths.
11118
11119 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11120
11121         * XplatUI.cs:
11122           - Added more granular debug options
11123           - Added method to print both window text and id
11124           - Switched debug output to use new Window() debug method
11125           - Added IsEnabled() driver method
11126           - Added EnableWindow() driver method
11127         * Form.cs:
11128           - Removed end_modal; no longer needed, new loop handles termination
11129             via 'closing' variable
11130           - If form is modal, setting DialogResult will now initiate loop
11131             termination via 'closing' variable
11132           - Added support for is_enabled/WS_DISABLED to CreateParams
11133           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
11134             does all the work
11135           - Removed code that's now in RunLoop from ShowDialog()
11136           - Added various documented sanity checks to ShowDialog()
11137           - Added handling of WM_DESTROY message; we set 'closing' on getting
11138             the message to indicate the message pump to terminate
11139           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
11140             send by the Application.ExitThread method. (We send the message
11141             to destroy the window after all other events have been
11142             processed through the queue, instead of destroying the handle 
11143             directly)
11144           - Moved code from Close() method to WM_CLOSE handler; added logic
11145             to only send close-related events if the form is not displayed
11146             modal
11147         * Splitter.cs (..ctor): Fixed typo in resource name
11148         * Control.cs:
11149           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
11150             brush now
11151           - set_Cursor: Now only setting calling into XplatUI if the handle for
11152             the control is already created; this avoids implict handle creation
11153             or crashes if it's not created
11154           - set_Enabled: Now setting the enabled state via the new driver method
11155             instead of just tracking it
11156           - CreateParams: Added logic to set WS_DISABLED based on enabled state
11157           - CreateControl: Reordered event firing and method calls to more
11158             closely fire events in the order MS does. Now setting the
11159             enabled state in the driver when creating the control.
11160           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
11161             match MS order
11162         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
11163           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
11164         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
11165         * Hwnd.cs:
11166           - Added tracking of window enabled state (get_Enabled/set_Enabled)
11167           - Added EnabledHwnd property to easily allow a driver to find the
11168             handle of the first enabled window in the parent chain (this is
11169             used by drivers to pass up input events of disabled windows)
11170         * XplatUIDriver.cs: Added IsEnabled() method
11171         * Application.cs:
11172           - Removed crude and obsolete exiting tracking variable
11173           - Removed internal ModalRun(); replaced by RunLoop()
11174           - Implemented private CloseForms() method to allow closing all 
11175             windows owned by a particular (or all) threads
11176           - Exit() now properly closes all windows without forcing the message
11177             pump to quit
11178           - Removed obsolete InternalExit() method
11179           - Changed Run() methods to use new RunLoop() message pump
11180           - Implemented new RunLoop() method for both modal and non-modal forms
11181         * CommonDialog.cs:
11182           - get_CreateParams: Added setting of WS_DISABLED
11183           - Simplified ShowDialog(); now all the work is done in RunLoop(),
11184             invoked via Form.ShowDialog()
11185         * NativeWindow.cs: We don't remove the window from the collection when
11186           the handle is destroyed; there might still be messages for it in the
11187           queue (mainly the resulting WM_DESTROY); instead it will be removed
11188           when Control calls InvalidateHandle in the WM_DESTROY handler
11189         * XplatUIX11.cs:
11190           - CreateWindow: Added logic to handle the WS_DISABLED window style
11191           - EnableWindow: Implemented based on Hwnd.Enabled
11192           - GetMessage: Reset PostQuitState so the method can be called again
11193           - Implemented support for disabled windows (passing messages to the
11194             first enabled parent) in handling all input messages
11195           - Added optimizations for handling Expose events
11196           - Implemeted new driver method IsEnabled()
11197           - Now always resetting paint pending tracking vars when we start paint
11198           - Re-implemented UpdateWindow via just sending a WM_PAINT message
11199         * XplatUIOSX.cs: Added IsEnabled method stub
11200         * XplatUIWin32.cs: Implemented new IsEnabled() method
11201
11202 2006-01-11  Jackson Harper  <jackson@ximian.com>
11203
11204         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
11205         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
11206         variables a little.
11207         * ColorDialog.cs: Clear out the old form before adding the new
11208         panel.  
11209
11210 2006-01-11  Jackson Harper  <jackson@ximian.com>
11211
11212         * X11Dnd.cs: Make sure to add all the text formats when adding
11213         strings to the data object.
11214         * TreeNodeCollection.cs: When adding to a sorted tree we need to
11215         do some redrawing too.  Also change the UpdateNode to an
11216         UpdateBelow so the newly added node gets painted.
11217         
11218 2006-01-11  Miguel de Icaza  <miguel@novell.com>
11219
11220         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
11221         LinkLabel.cs, PropertyGrid.cs: Implement the
11222         UseCompatibleTextRendering property for 2.x
11223
11224         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
11225
11226 2006-01-11  Jackson Harper  <jackson@ximian.com>
11227
11228         * TreeView.cs: Use the property for setting the selected node so
11229         the correct events get raised.
11230         * TreeNode.cs: Update the tree when the fore/back colours of a
11231         node are set.
11232
11233 2006-01-10  Jackson Harper  <jackson@ximian.com>
11234
11235         * TreeView.cs: Allow setting SelectedNode to null.
11236
11237 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11238
11239         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
11240
11241 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11242
11243         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
11244
11245 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11246
11247         * PrintDialog.cs: Added attributes and set default property values.
11248
11249 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11250
11251         * PrintControllerWithStatusDialog.cs: 
11252         Added PrintControllerWithStatusDialog.
11253
11254 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11255
11256         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
11257         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
11258
11259 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11260
11261         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
11262
11263 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11264
11265         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
11266         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
11267
11268 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11269
11270         * MimeIcon.cs: Added internal class SVGUtil.
11271
11272 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11273
11274         * FileDialog.cs: Don't crash if there are two files with the
11275           same name but different locations.
11276
11277 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
11278
11279         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
11280         dates across multiple month grids. Used to not highlight entire 
11281         month, but does now.
11282         
11283 2006-01-06  Jackson Harper  <jackson@ximian.com>
11284
11285         * MonthCalendar.cs: Removed DoEvents call to prevent a running
11286         message loop. Change timer intervals to numbers that seem more
11287         natural.
11288
11289 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
11290
11291         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
11292           object for location info since screen object is now implemented.
11293
11294 2006-01-05  Jackson Harper  <jackson@ximian.com>
11295
11296         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
11297         * AsyncMethodResult.cs: We no longer use a WeakReference for the
11298         AsyncMethodResult, this is because we ALWAYS want the
11299         ManualResetEvent to get set.
11300         * Control.cs: When disposing use an async invoke to call shutdown
11301         code, so that thigns don't block on the finalizer thread.  Also
11302         check if we even have a message loop before trying to send
11303         messages, if we don't then don't bother sending messages.
11304         - No more weak references for async methods
11305         * XplatUIDriver.cs: No more weak references for async methods.
11306
11307 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11308
11309         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
11310           returns two FontFamily with the same name
11311
11312 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11313
11314         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
11315           drawing disabled text. Instead using the ColorGrayText color
11316
11317 2006-01-04  Jackson Harper  <jackson@ximian.com>
11318
11319         * TreeNode.cs: redraw the node when its image index is changed.
11320
11321 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11322
11323         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
11324           time I checked there are no others like it.
11325
11326 2006-01-04  Jackson Harper  <jackson@ximian.com>
11327
11328         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
11329         this gives the behavoir I was looking for.
11330         * Control.cs: Special case Invoking EventHandlers, this matches MS
11331         and fixes part of bug #76326.
11332
11333 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11334
11335         * ThemeClearlooks.cs, FileDialog.cs:
11336           - Reflect the latest Theme class changes
11337           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
11338             with DateTime
11339             
11340 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11341
11342         * Theme.cs: Cache UI resource images and resize them if needed
11343
11344 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11345
11346         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
11347           is called. This fixes the crash in Nexxia when setting the font
11348           attributes in the chat. [However, RTF needs a look-over to make sure
11349           that all SelectionXXX methods handle the special case that selection
11350           is empty and therefore the change must be applied to all text starting
11351           at the cursor/selection start]
11352
11353 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
11354
11355         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11356           XplatUIOSX.cs: Added SendMessage and PostMessage methods
11357         * X11Keyboard.cs: Switched to new way of calling PostMessage
11358
11359 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11360
11361         * Theme.cs: Added theme interface for images to allow the theme to
11362           control what images are used for things like FileDialog, MessageBox
11363           icons, etc.
11364         * MessageBox.cs: Now uses the new Theme icon/image interfaces
11365
11366 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
11367
11368         * FileDialog.cs:
11369           - Removed some dead code
11370           - Opening a recently used file does work now
11371           - Small UI enhancements
11372           - Refactoring
11373
11374 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11375
11376         * FileDialog.cs: Forgot too add __MonoCS__
11377
11378 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11379
11380         * FileDialog.cs: We are able to read recently used files now let's
11381           go on and write them.
11382
11383 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
11384
11385         * FileDialog.cs: Breathe some life into "last open"/"recently used"
11386           button
11387         * MimeIcon.cs: Do a check for the top level media type also
11388
11389 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11390
11391         * ThemeClearlooks.cs:
11392           - Added CPDrawStringDisabled
11393           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
11394             some chars if the text doesn't fit into text_rect
11395           - DrawListViewItem: If View = View.LargeIcon center the image;
11396             rewrote the drawing of ListViewItem.Text if View = 
11397             View.LargeIcon
11398
11399 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11400
11401         * MimeIcon.cs: Use default KDE icon theme if there is no
11402           "48x48" directory for the current icon theme, fixes #77114
11403         * Mime.cs: Disable not working and actually not used code. 
11404         * ThemeWin32Classic.cs:
11405           - Replace "new SolidBrush" in GetControlBackBrush and
11406             GetControlForeBrush with ResPool.GetSolidBrush
11407           - Changed DrawListViewItem from private to protected virtual
11408         * FileDialog.cs:
11409           - Added form.MaximizeBox = true
11410           - Don't throw an exception if there is a broken symbolic link
11411
11412 2005-12-23  Jackson Harper  <jackson@ximian.com>
11413
11414         * TabControl.cs: Give the panels focus, keyboard navigation is
11415         fixed so this works correctly now.
11416         - We need these key events also.
11417         * ToolBar.cs: Remove some of the poor mans double buffering.
11418         
11419 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
11420
11421         * ComboBox.cs: The internal TextBox now returns the focus.
11422
11423 2005-12-23  Jackson Harper  <jackson@ximian.com>
11424
11425         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
11426
11427 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11428
11429         * Control.cs: Removed debug code
11430         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
11431           implicit children
11432
11433 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
11434
11435         * Control.cs: When creating the control, update the Z-order after
11436           all it's children are created, too. (Fixes nexxia not showing
11437           picturebox bug)
11438
11439 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11440
11441         * Control.cs: Do not update the anchoring distances if layout is
11442           suspended, instead do it once layout is resumed
11443
11444 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
11445
11446         * Control.cs: 
11447           - After many hours of debugging, for both Jackson and
11448             myself, it turns out that it helps to set the parent of a control
11449             if you want to actually see it onscreen. In the spirit of that
11450             discovery, we're now setting the parent of the control and
11451             it's children when the control's handle is created. This fix
11452             will make Lutz Roeder's Reflector run happily. 
11453           - now just creating the handle instead of the whole control when
11454             getting a graphics context for the control.
11455
11456 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11457
11458         * ScrollableControl.cs: When calculating the canvas, don't consider
11459           the scrollbar widths. Instead, predict if horizontal scrollbar
11460           will affect canvas when deciding on vertical display and vice versa.
11461
11462 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11463
11464         * RichTextBox.cs: Set default RTF font for documents that don't
11465           have a font table (Fixes #77076)
11466
11467 2005-12-22  Jackson Harper  <jackson@ximian.com>
11468
11469         * TextBoxBase.cs: It's difficult to do, but you can have an empty
11470         clipboard. This prevents a NullRef in that case.
11471         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
11472         clipboard. PRIMARY is for the currently selected text only. (We
11473         should implement PRIMARY at some point.
11474
11475 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11476
11477         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
11478           a Unicode function with a structure that was defined in Ansi way.
11479           This fixes #76942.
11480
11481 2005-12-21  Jackson Harper  <jackson@ximian.com>
11482
11483         * StatusBar.cs: Statusbar handles its fore/back colours on it's
11484         on. Because thats how it rolls. (and this avoids it using ambient
11485         colours).
11486         * ThemeWin32Classic.cs: Use the proper back color for filling.
11487         * Menu.cs: Use the system menu bar color for drawing menu
11488         bars. Using the window back color will bring ambient colours into
11489         the picture.
11490
11491 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
11492
11493         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
11494           Bitmaps were created and not disposed.
11495
11496 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11497
11498         * Control.cs (CreateControl): Don't do anything if the control is
11499           already created, otherwise we'd fire the OnCreated event more than
11500           once
11501
11502 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11503
11504         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
11505           will always match. Instead return -1. Fixes #76464.
11506
11507 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11508
11509         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
11510           neither the beginning nor the end of the line (Fixes bug #76479)
11511
11512 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11513
11514         * Control.cs:
11515           - ControlNativeWindow.ControlFromHandle(): Now handling situation
11516             where handle is invalid
11517           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
11518             instead of slower linear search
11519         * NativeWindow.cs: Don't remove the window from the hashtable until
11520           after the driver has destroyed it (since the driver might use
11521           Control.FromHandle to lookup the control object
11522         * Hwnd.cs: Added DestroyPending property to track if a window is 
11523           already destroyed as far as the driver is concerned and only hasn't
11524           yet notified the control
11525         * XplatUIX11.cs:
11526           - Activate(): Check if the window is still valid before using the 
11527             handle
11528           - Implemented DestroyChildWindow() method to mark child windows as
11529             destroyed when a window is destroyed. This prevents situations 
11530             where we might call an X method based on queued events for a
11531             window that already has been destroyed but we haven't yet pulled
11532             the destroy method from the queue.
11533           - Added a call to the new DestroyChildWindow() method to the drivers
11534             DestroyWindow code. Also now marking the destroyed window itself
11535             as pending
11536
11537 2005-12-20  Jackson Harper  <jackson@ximian.com>
11538
11539         * StatusBar.cs:
11540         * StatusBarPanel.cs: Don't calculate panel sizes on draw
11541         anymore. Just do them when needed, also track the rects of panels
11542         so that we can optimize refreshing more in the future.
11543
11544 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
11545
11546         * ColorDialog.cs: Fixed focus drawing in small color controls
11547
11548 2005-12-19  Jackson Harper  <jackson@ximian.com>
11549
11550         * InternalWindowManager.cs:
11551         * MdiWindowManager.cs: Cleanup some coordinate system changes so
11552         moving windows works properly.
11553
11554 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
11555
11556         * Control.cs: 
11557           - Removed call to InitLayout() from SetBoundsCore(); doc says
11558             it's only called when a control is added to a container
11559           - Split InitLayout logic, moved to separate UpdateDistances() method
11560             since we need to perform those calculations more often than just
11561             when adding the control to a container. (Needed to fix #77022)
11562           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
11563           - Reduced the OnBindingContextChanged events count, don't send them
11564             unless the control is created, we still aren't totally matching
11565             MS, but I can't quite figure out some of their rules
11566
11567 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11568
11569         * ThemeClearlooks.cs: Corrected distance between ProgressBar
11570           stripes
11571
11572 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11573
11574         * ThemeClearlooks.cs:
11575           - Updated ProgressBar drawing
11576           - Corrected drawing of ScrollBars and scroll buttons
11577           - Some temporary fixes for minor pixel artefacts
11578
11579 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
11580
11581         * Control.cs:
11582           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
11583             cause events to be sent in the same order as MS does.
11584           - Added ChangeParent() method to trigger various OnXXXChanged events
11585             that need to be fired when a parent changes (This is a reworking
11586             of the patch from r54254, with the X11 errors fixed)
11587           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
11588             since on MS we get OnLayoutChanged events when calling Clear()
11589           - Changed Enabled property to consider parent state as well, if a
11590             parent is not enabled, the control will not be either
11591           - Changed Parent property to simply call Controls.Add() since that
11592             now does all the work required, this way we avoid code duplication
11593           - Threw in a few OnBindingsContextChanged calls to try and match
11594             when MS sends them. We seem to send a few too many, though.
11595           - Added call to CreateControl when adding the control to a parent.
11596             We were never calling CreateControl. Still needs some work, in
11597             some places we treat HandleCreated and ControlCreated as equal, 
11598             which is wrong
11599           - Removed obsolete commented out code from UpdateZOrder()
11600
11601 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11602
11603         * ThemeClearlooks.cs: Updated TrackBar drawing.
11604
11605 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11606
11607         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
11608
11609 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11610
11611         * FileDialog.cs: Add the Help button and the open readonly
11612           checkbox only if needed
11613
11614 2005-12-16  Jackson Harper  <jackson@ximian.com>
11615
11616         * Control.cs: Make sure we have an active menu before trying to
11617         process commands on it. Prevents menu-less forms from crashing
11618         when Alt is pressed.
11619         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
11620         Dieter Bremes.
11621         * RichTextBox.cs: Expand statement to help out gmcs and fix the
11622         2.0 build.
11623
11624 2005-12-16  Jackson Harper  <jackson@ximian.com>
11625
11626         * InternalWindowManager.cs: Don't translate tool windows screen
11627         coordinates. This fixes windows 'bouncing' around when being moved.
11628
11629 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11630
11631         * TextBoxBase.cs:
11632           - MaxLength now treats 2^31-1 equal to unlimited length (this is
11633             not quite MS compatible, MS uses that number only for single line
11634             and 2^32-1 for multi-line, but I figure it won't hurt keeping
11635             the limit at 2GB)
11636           - Now enforcing the MaxLength limit when entering characters
11637           - Added argument to internal Paste() method to track if it's called
11638             from programatically or via keyboard, since keyboard driven pastes
11639             need to enforce max-length
11640           - Added logic to Paste to only paste as many chars as MaxLength 
11641             allows
11642         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
11643         * TextControl.cs:
11644           - Added Length property to return number of characters in document
11645           - Added private CharCount property which only tracks actual chars
11646             in the document (no linefeeds) and fires event when CharCount
11647             changes
11648           - Added tracking of character count to all methods that alter it
11649           - Added LengthChanged event to allow applications to subscribe
11650             to any changes to the document
11651
11652 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11653
11654         * TextBox.cs: 
11655           - Removed local password_char field (moved to TextBoxBase)
11656           - Now setting the document's password var when password is
11657             set
11658         * TextBoxBase.cs:
11659           - Added password_char field (needed here so MultiLine can
11660             access it)
11661           - Added logic to MultiLine property setter to set the document's
11662             variable when password display is allowed
11663           - Removed debug code and made some debug code conditional
11664         * TextControl.cs:
11665           - Added RecalculatePasswordLine() method to handle special password
11666             char only lines
11667           - Added PasswordChar property, also added related tracking vars
11668           - Draw() method now uses local text var for grabbing text to draw,
11669             this var is set to line.text unless we're doing password display,
11670             then it is set to the pre-generated all-password-chars line
11671           - Added calling RecalculatePasswordLine() method for password lines
11672
11673 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11674
11675         * Hwnd.cs: 
11676           - Added Reparented property to allow tracking of Window Manager
11677             reparenting actions (which affect X/Y calculations of toplevel 
11678             windows)
11679           - Made ToString() print window handles in hex
11680         * XplatUIX11.cs:
11681           - AddConfigureNotify(): Now uses reparented state off Hwnd to
11682             determine if X/Y needs offsetting
11683           - AddConfigureNotify(): Fixed offset calculations
11684           - Now adds ReparentNotify messages into the queue
11685           - Now processes ReparentNotify messages and causes a 
11686             WM_WINDOWPOSCHANGED message to be sent upstream if a window
11687             is reparented (as most likely it's X/Y coordinates are changed
11688             due to that)
11689
11690 2005-12-14  Jackson Harper  <jackson@ximian.com>
11691
11692         * XplatUIX11.cs: Tool windows still need to respek focus.
11693
11694 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11695
11696         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
11697           have a working release
11698
11699 2005-12-13  Jackson Harper  <jackson@ximian.com>
11700
11701         * Form.cs: Update styles after setting the border style regardless
11702         of whether or not the window is using a window manager.
11703
11704 2005-12-13  Jackson Harper  <jackson@ximian.com>
11705
11706         * Form.cs: We now hook into an internal window manager instead of just an
11707         MDI subsystem, this is so we can have properly behaving tool windows.
11708         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
11709         * InternalWindowManager.cs: New internal class that acts as a
11710         window manager for tool windows and as a base for mdi windows.
11711         * MdiWindowManager.cs: New class that acts as a window manager for
11712         mdi windows.
11713
11714 2005-12-12  Jackson Harper  <jackson@ximian.com>
11715
11716         * Control.cs: Updates so we match behavoir for for implicit
11717         controls. Fixes explosions in MDI.
11718
11719 2005-12-12  Jackson Harper  <jackson@ximian.com>
11720
11721         * Control.cs: Implement Invalidate (Region).
11722
11723 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
11724
11725         * Control.cs: 
11726           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
11727             the same events as MS does. MS fires events for each property 
11728             except, for unknown reasons, Cursor, when the control is reparented. 
11729             I can't seem to totally match add/remove since MS also fires some 
11730             VisibleChanged events, which makes no sense. Consolidated the
11731             parenting code into a separate method so it can be called from
11732             both Add and Remove. set_Parent no longer needs any special logic
11733             as it calls the parent's add method which implicitly fires
11734             all events
11735           - Removed some obsolete code and debug output
11736           - Enabled state is inherited from parents, if this is enabled
11737
11738 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
11739
11740         * Form.cs: Removed commented out code
11741
11742 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
11743
11744         * Control.cs:
11745           - Added internal version of Invoke, with additional argument 
11746             indicating if we're calling it from a Dispose() handler. That
11747             way we can avoid BeginInvoke throwing an exception if we're
11748             calling for an already destroyed window.
11749           - Added a dispose argument to BeginInvokeInternal, and made the
11750             check if a valid window handle chain exists conditional on
11751             it not being a dispose call
11752           - Removed code in DestroyHandle to destroy our children. Since we
11753             now handle the WM_DESTROY message we will catch all our children
11754             being destroyed.
11755           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
11756         * Form.cs:
11757           - Added a field to track the application context of the form.
11758           - No need to set closing variable as response to WM_CLOSE, instead
11759             we destroy the window. We also call PostQuitMessage if the form
11760             has an application context (which makes it the main app form,
11761             which, when closed terminates the app)
11762         * XplatUI.cs:
11763           - Dropped Exit() method, it's naming was confusing
11764           - Added PostQuitMessage() which causes GetMessage to return false
11765             once the message queue is empty
11766         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
11767           PostQuitMessage()
11768         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
11769           no longer a valid XplatUI method, but left it in since it's used
11770           internally. Added empty PostQuitMessage() method.
11771         * MenuAPI.cs: Replaced call to Exit() with call to
11772           PostQuitMessage, even though this is probably no longer needed.
11773         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
11774         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
11775         * Application.cs:
11776           - Replaced call to XplatUI.Exit() with PostQuitMessage()
11777           - Removed old debug code that would call XplatUI for exception
11778             display, enabled standard exception handling (Still not enabled
11779             though, until NativeWindow's ExternalExceptionHandler define
11780             is removed
11781         * NativeWindow.cs:
11782           - Added internal method to allow control to update NativeWindow
11783             after a window has been destroyed
11784           - Added handling of already destroyed windows when calling i
11785             DestroyWindow
11786           - Added removal of handle from list on ReleaseHandle
11787         * XplatUIX11.cs:
11788           - Dropped GetMessageResult var and related code
11789           - Added PostQuitState to field to track if PostQuitMessage has been
11790             called
11791           - Dropped Exit() method
11792           - Added PostQuitMessage() method
11793           - GetMessage now will return false if PostQuitState is set and no
11794             more messages are in the queue.
11795           - Expose handler will no longer generate WM_PAINT messages if we are
11796             in PostQuitState since it's very likely any windows have already
11797             been destroyed, and since Hwnd won't get updated until we have
11798             processed the DestroyNotify we'd be causing X errors.
11799         
11800 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11801
11802         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
11803           Thanks to Mike for pointing out the err of my ways.
11804
11805 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11806
11807         * Control.cs(PreProcessMessage): Moved menu handling back, but
11808           after all other key handling, to match MS (who handles Menu in
11809           DefWndProc)
11810         * Menu.cs (WndProc): Removed my brainfart
11811
11812 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11813
11814         * Control.cs(PreProcessMessage): Removed special menu handling 
11815         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
11816
11817 2005-12-07  Mike Kestner  <mkestner@novell.com>
11818
11819         * Control.cs : special case SYSKEYUP so that we can adjust keynav
11820         state according in tracker.
11821         * Menu.cs : promote tracker field to base class and provide a tracker
11822         lookup capability.  Add/Remove shortcuts dynamically if the top menu
11823         has a tracker. Unparent items that are removed from the collection.
11824         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
11825         * Theme*.cs: add always_show_hotkeys field to support configurability
11826         of mnemonic display.  win32 doesn't show mnemonics until Alt is
11827         pressed.
11828
11829 2005-12-07  Jackson Harper  <jackson@ximian.com>
11830
11831         * MdiChildContext.cs: Use Control.ResetCursor.
11832         * Control.cs: ResetCursor needs to set the property so that the
11833         correct XplatUI call gets made.
11834
11835 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11836
11837         * Control.cs: More fixes to make our key events match MS. We
11838           were not setting the modifier state on KeyData, and we were
11839           not generating any events when Alt was pressed with a key
11840           since handling of WM_SYSxxx was missing for the OnKey methods.
11841
11842 2005-12-07  Jackson Harper  <jackson@ximian.com>
11843
11844         * MdiChildContext.cs: reenable the sizing code.
11845         - When the mouse leaves a window reset its cursor.
11846
11847 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11848
11849         * ThemeClearlooks.cs: Reflect latest Hwnd changes
11850
11851 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11852
11853         * Hwnd.cs: Now using the theme 3d bordersize to calculate
11854           widths of Fixed3D borders
11855
11856 2005-12-07  Jackson Harper  <jackson@ximian.com>
11857
11858         * MdiClient.cs: Fix warnings. Earn Mike's love.
11859
11860 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11861
11862         * ThemeClearlooks.cs:
11863           - Adjusted mouse over button color
11864           - Added first parts of CheckBox drawing
11865           - Added correct color for selected text background
11866           - Fixed ComboBox drawing
11867           - Added CPDrawBorder3D and CPDrawBorder
11868
11869 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11870
11871         * XplatUIX11.cs: Added call to XBell for AudibleAlert
11872
11873 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
11874
11875         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11876           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
11877           alert users via sound. We could add an enum arg with different
11878           types of alerts in the future
11879
11880 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11881
11882         * Control.cs: Fix behaviour problems pointed out by Mike
11883
11884 2005-12-05  Mike Kestner  <mkestner@novell.com>
11885
11886         * StatusBarPanel.cs: add Invalidate method and hook it into all the
11887         prop setters.  Calls parent.Refresh for now, but could be maybe be
11888         optimized with an internal method on StatusBar at some point.
11889         [Fixes #76513]
11890
11891 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
11892
11893         * RichTextBox.cs: Implemented get_SelectionColor
11894
11895 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
11896
11897         * ThemeClearlooks.cs:
11898           - Removed dead code
11899           - Draw black button border only if button is Form.AcceptButton
11900           - Draw correct button color for pressed RadioButton if the mouse 
11901             has entered the button
11902           - Updated ProgressBar drawing!
11903           - Updated CPDrawSizeGrip drawing
11904           - Updated StatusBarPanel drawing
11905
11906 2005-12-05  Mike Kestner  <mkestner@novell.com>
11907
11908         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
11909         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
11910
11911 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
11912
11913         * ThemeClearlooks.cs: Initial check-in, activate with
11914           export MONO_THEME=clearlooks
11915         * ThemeEngine.cs: Added ThemeClearlooks
11916
11917 2005-12-03  Mike Kestner  <mkestner@novell.com>
11918
11919         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
11920         [Fixes #76897]
11921
11922 2005-12-02  Jackson Harper  <jackson@ximian.com>
11923
11924         * Form.cs: If the child form has no menu the default main menu is
11925         used as the active menu.
11926
11927 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
11928
11929         * ListBox.cs: Check if any items exist before trying to resolve 
11930           coordinates into items
11931
11932 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11933
11934         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
11935           as the second color for the background hatch
11936
11937 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11938
11939         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
11940         * RichTextBox.cs: FormatText position arguments are 1-based, now making
11941           sure that what we pass to FormatText is always 1-based. Fixes #76885
11942
11943 2005-11-29  Miguel de Icaza  <miguel@novell.com>
11944
11945         * NumericUpDown.cs (EndInit): When we are done initializing,
11946         reflect any updates on the UI.
11947
11948 2005-12-02  Jackson Harper  <jackson@ximian.com>
11949
11950         * ImplicitHScrollBar.cs:
11951         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
11952         their container controls.
11953         * TreeView.cs: Use the new implicit scrollbars.
11954
11955 2005-12-02  Jackson Harper  <jackson@ximian.com>
11956
11957         * TreeView.cs: Make top_node internal so the TreeNodeCollections
11958         can play with it.
11959         * TreeNodeCollection.cs: If we remove the topnode we need to
11960         update topnode to the next node in line.
11961         - When clearing nodes go through the same process as removing
11962         them, so they get depareneted and checked if they are top node.
11963
11964 2005-12-01  Jackson Harper  <jackson@ximian.com>
11965
11966         * TreeView.cs: When imagelists are used the image area is
11967         selectable as well as the text.
11968         - If there are no selected nodes select the first one.
11969         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
11970         so don't do it more then we need to.
11971
11972 2005-12-01  Jackson Harper  <jackson@ximian.com>
11973
11974         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
11975         that arrows can be scaled.
11976
11977 2005-12-01  Jackson Harper  <jackson@ximian.com>
11978
11979         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
11980         fail. Patch by Dieter Bremes
11981
11982 2005-11-30  Jackson Harper  <jackson@ximian.com>
11983
11984         * Form.cs: Property is 2.0 only
11985         * PrintDialog.cs: Signature fix.
11986
11987 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11988
11989         * TextControl.cs: 
11990           - No longer artificially moves text 2 pixels down (now that we have
11991             borders this is no longer needed)
11992           - Added calcs for left, hanging and right indent
11993
11994 2005-11-23  Mike Kestner  <mkestner@novell.com>
11995
11996         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
11997
11998 2005-11-30  Jackson Harper  <jackson@ximian.com>
11999
12000         * MdiChildContext.cs: Set the cloned menus forms, as these don't
12001         get cloned as part of CloneMenu ().
12002         * Menu.cs: Make sure the parent of the items get set correctly
12003         when they are added.  And the owners are notified of the changes.
12004         * Form.cs: Create an ActiveMenu property, so that when MDI is used
12005         we can change the menu being displayed/handled by the form without
12006         changing the menu assosciated with the form.
12007         - Don't let Mdi children draw/handle menus.
12008         
12009 2005-11-30  Jackson Harper  <jackson@ximian.com>
12010
12011         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
12012         a MenuChanged event. Just to make the API a little more
12013         consistent.
12014         * MainMenu.cs:
12015         * MenuItem.cs: Use the new OnMenuChanged
12016         * MdiChildContext.cs: Handle menu merging.
12017         * Form.cs: Implement MergedMenu.
12018         
12019 2005-11-30  Jackson Harper  <jackson@ximian.com>
12020
12021         * Menu.cs: We were misusing Add. Add goes behind the specified
12022         index according to the docs, and does not replace the specified
12023         index. So I added an Insert method.
12024
12025 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
12026
12027         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
12028           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
12029           is for Jackson
12030         * RichTextBox.cs: Added calls to base for DnD events
12031
12032 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
12033
12034         * TextControl.cs:
12035           - Fixed drag-selection related crash; style fixes
12036           - Implemented undo class
12037             o Implemented method to capture document state for specified
12038               range in document tree
12039             o Implemented method to restore captured document state
12040             o Implemented cursor tracking
12041             o Implemented basic undo stack
12042           - Added undo cursor tracking to methods altering cursor location
12043           - Added undo tracking to selection deletion (still missing
12044             other text-altering hookups)
12045         * RichTextBox.cs:
12046           - Added SelectionLength property
12047           - Implemented CanPaste()
12048           - Implemented Paste()
12049           - Added missing protected methods
12050           - Fixed RTF->Document conversion; now uses font index 0 and color 
12051             index 0 as the default font for the parsed text
12052           - Fixed RTF<->Document font size translation
12053           - Fixed RTF generation, now properly handles cross-tag boundaries
12054             for single line selection
12055           - No longer always appends blank line to generated RTF
12056           - Removed TODOs
12057           - Added missing attributes
12058           - Hooked up undo-related methods
12059         * TextBoxBase.cs:
12060           - Implemented Copy()
12061           - Implemented Paste()
12062           - Implemented Cut()
12063           - Fixed caret mis-behaviour on backspace across line-boundaries
12064
12065 2005-11-29  Jackson Harper  <jackson@ximian.com>
12066
12067         * MdiClient.cs: Add a method for activating mdi children. Very
12068         basic right now. I imagine someday it might need more girth.
12069         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
12070         children windows names are added to the menu item.
12071         * ThemeWin32Classic.cs: Draw the arrow if the item is an
12072         mdilist. This happens regardless of whether or not there are any
12073         mdi windows to see in the list, and according to my tests happens
12074         before the items are even added. Also happens if there isn't even
12075         an mdi client to get windows from.
12076
12077 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
12078
12079         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
12080         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
12081
12082 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
12083
12084         * DataGridTableStyle.cs:
12085           - Create always the styles for the missing columns even if they are
12086             provided by the user (not default table style)
12087         * DataGrid.cs:
12088           - Fixes bug 76770
12089           - Fixes SetDataBinding (always re-attach source)
12090           - Fixes SetNewDataSource (only clear styles if they are not for 
12091             this source)
12092          -  Expands OnTableStylesCollectionChanged to handle style refresh 
12093             and remove properly
12094
12095 2005-11-29  Jackson Harper  <jackson@ximian.com>
12096
12097         * FileDialog.cs: Implement missing bits, remove some dead
12098         code.
12099         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
12100         creation of the panel so that the options set on the dialog are
12101         seen when the panel is created.
12102         * TreeView.cs: raise a click when items are clicked.
12103         
12104 2005-11-29  Jackson Harper  <jackson@ximian.com>
12105
12106         * MdiClient.cs: Pass some signature methods through to base.
12107
12108 2005-11-28  Jackson Harper  <jackson@ximian.com>
12109
12110         * ListView.cs: Raise the click event when items are clicked.
12111
12112 2005-11-28  Jackson Harper  <jackson@ximian.com>
12113
12114         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
12115         a nullref.
12116
12117 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
12118
12119         * ThemeNice.cs: - Removed 1 pixel bitmaps
12120           - Use SmoothingMode.AntiAlias where it makes sense
12121             (ScrollButton arrow for example)
12122           - Enhanced Button focus drawing
12123           - Fixed ComboBox drawing (no artefacts anymore, focus
12124             rectangle is back again, reduced size of ComboButton, etc.)
12125           - Fixed RadioButton focus drawing for Appearence.Button
12126           - Slight ScrollButton redesign
12127           - Some LinearGradientBrush size fixes
12128           - GroupBoxes have now rounded edges
12129           - Fixed StatusBar drawing
12130
12131 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
12132
12133         * ThemeNice.cs: - Remove dead code
12134           - use correct background colors for menus, etc.
12135           - Fake pixel drawing with 1 pixel bitmaps
12136
12137 2005-11-24  Jackson Harper  <jackson@ximian.com>
12138
12139         * MdiClient.cs: Size the scrollbars when resizing the window.
12140         - Resize the maximized windows when the client is resized
12141         * Form.cs: Make the child context available
12142         
12143 2005-11-23  Jackson Harper  <jackson@ximian.com>
12144
12145         * MdiChildContext.cs: Don't size windows if they are maximized.
12146
12147 2005-11-23  Mike Kestner  <mkestner@novell.com>
12148
12149         * ContextMenu.cs: use MenuTracker.
12150         * Control.cs: remove menu handle usage.
12151         * Form.cs: remove menu handle usage.
12152         * Hwnd.cs: remove menu handle usage.
12153         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
12154         motion and clicks to the new Tracker handlers.
12155         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
12156         and handle usage.
12157         * MenuAPI.cs: refactored to combine popup and menubar event handling.
12158         Killed the MENU and MENUITEM data types and associated collections
12159         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
12160         MenuTracker class that exposes the leftovers from the old MenuAPI
12161         static methods. Restructured Capture handling so that only one grab is
12162         done for the entire menu hierarchy instead of handing off grabs to
12163         submenus. Tracker now has an invisible control to Capture when active.
12164         * MenuItem.cs: add sizing accessors, kill Create
12165         and handle usage.
12166         * Theme.cs: remove menu handle and MENU(ITEM) usage.
12167         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
12168         MENU(ITEM). remove menu handle usage, use Menu directly.
12169         * XplatUIDriver.cs: remove menu handle usage.
12170         * XplatUIOSX.cs: remove menu handle usage.
12171         * XplatUIWin32.cs: remove menu handle usage.
12172         * XplatUIX11.cs: remove menu handle usage.
12173
12174 2005-11-22  Jackson Harper  <jackson@ximian.com>
12175
12176         * Hwnd.cs: Don't compute the menu size for
12177         DefaultClientRectangle.
12178         - Reenable menu sizes being computed for GetClienRectangle.
12179         * Form.cs: Remove comment of trechery
12180         
12181 2005-11-22  Jackson Harper  <jackson@ximian.com>
12182
12183         * Hwnd.cs: The adjustments for the menu bar are made when it is
12184         attached to the form.
12185
12186 2005-11-19  Jackson Harper  <jackson@ximian.com>
12187
12188         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
12189         (just like on windows).
12190
12191 2005-11-19  Jackson Harper  <jackson@ximian.com>
12192
12193         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
12194         use real buttons anymore because they are in non client area. The
12195         one TODO here is that I need to somehow invalidate a section of
12196         the non client area.
12197
12198 2005-11-18  Jackson Harper  <jackson@ximian.com>
12199
12200         * Control.cs: Put the enum check back in now that MDI doesnt have
12201         to use this to set border styles.
12202         * Form.cs: Only set mdi child windows borders if the handle has
12203         been created.
12204         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
12205         this directly on to the driver.
12206         - Get the move start position before adjusting for the titlebar
12207         height, this fixes the windows "skipping" when they are first
12208         moved.
12209
12210 2005-11-18  Jackson Harper  <jackson@ximian.com>
12211
12212         * XplatUIX11.cs: Just compute the mdi borders separately as they
12213         don't totally match up with normal form borders.
12214
12215 2005-11-18  Jackson Harper  <jackson@ximian.com>
12216
12217         * Control.cs: Set WS_ styles for borders, so that the driver does
12218         not have to retrieve the control instance to figure out what kind
12219         of borders it should have.
12220         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
12221         driver can know its an mdi child easily.
12222         * XplatUIX11.cs: Get the border styles and whether the window is
12223         MDI from the Styles and ExStyles params instead of having to get a
12224         control. This prevents a chicken and egg problem.       
12225
12226 2005-11-18  Jackson Harper  <jackson@ximian.com>
12227
12228         * MdiClient.cs: Fix typo so scrollbars show up correctly.
12229
12230 2005-11-18  Jackson Harper  <jackson@ximian.com>
12231
12232         * MdiClient.cs: Calculate when to add and remove scrollbars
12233         correctly.
12234         * MdiChildContext.cs: Adjust the y position to take the titlebar
12235         into account.
12236         - No height for FormBorderStyle.None
12237
12238 2005-11-18  Jackson Harper  <jackson@ximian.com>
12239
12240         * Control.cs: Allow non enum values to be used for
12241         InternalBorderStyle.  MDI does this to set a special border style.
12242         - New utility methods for converting points to/from client coords
12243         - Add the newly created control to the Controls collection before
12244         updating its style. This way UpdateStyle can walk the control
12245         heirarchy to find the control if needed.
12246         so I don't need to create a new Point object all the time.
12247         * Form.cs: Let MDI windows handle their border styles.
12248         - Set styles on MDI windows so the correct title style is derived.
12249         * MdiChildContext.cs: Move all the painting and window handling
12250         into the non client area.
12251         - Use correct sizing and put correct buttons on frames based on
12252         the FormBorderStyle.
12253         - Notify the mdi client about scrolling
12254         - Need to handle the buttons ourselves now, because they are all
12255         in non client areas and we can't add controls there.
12256         * MdiClient.cs: Halfway to scrolling, this implementation is
12257         somewhat broken though, we need to check to make sure other
12258         windows aren't causing scrolling before removing the bars. Also
12259         the bars need to be drawn on top, maybe I can switch implicit
12260         controls to be on top.
12261         * Hwnd.cs: caption_height and tool_caption_height are now
12262         properties of an hwnd, this way they can be set by the driver
12263         based on the type of window they are.  In X11 the window manager
12264         handles the decorations so caption_height is zero unless its an
12265         MDI window.
12266         - Add 3 pixel borders for MDI windows (0xFFFF).
12267         - Get rid of some code duplication, have DefaultClientRectanle
12268         just call GetClientRectangle.
12269         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
12270         Hwnd now.
12271         - Set border styles differently for mdi windows.
12272         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
12273         Hwnd now.
12274         
12275 2005-11-15  Mike Kestner  <mkestner@novell.com>
12276
12277         * Menu.cs: when adding an item to the collection, if item is already 
12278         parented, remove it from the parent.
12279
12280 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
12281
12282         * X11DesktopColors.cs: Added KDE support
12283
12284 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
12285
12286         * XplatUIWin32.cs: 
12287           - Clipboard methods now can translate Rtf format
12288           - No longer removes clipboard contents whenever a new format is added
12289             to allow placing multiple formats on the clipboard
12290         * Clipboard.cs: Clipboard now supports getting a IDataObject and
12291           will place all formats contained in it onto the clipboard. Also
12292           now cleans the clipboard before placing a new object onto it
12293         * RichTextBox.cs:
12294           - Implemented set_Rtf
12295           - Implemented set_SelectedRtf
12296           - Created InsertRTFFromStream() method to allow single code base
12297             for all properties and methods that insert RTF into document
12298           - Removed debug output
12299         * TextControl.cs:
12300           - Fixed Delete(int) to fix up line numbers
12301           - Fixed ReplaceSelection to combine start and end line
12302           - Fixed serious DeleteChars bug that would leave the document tree
12303             broken
12304           - Improved DumpTree with several logic checks to detect broken
12305             document trees
12306           - Removed debug lines
12307           - Fixed Caret.WordForward/WordBack moving code, now always also 
12308             updates caret.tag (fixes crash when word-selecting across tag
12309             boundaries via keyboard)
12310           - Added Insert() method for inserting multiline text into documents
12311           - Fixed DeleteChars() calculation errors that would cause a broken
12312             tag chain with multiple tag lines
12313           - DeleteChars() no longer crashes on multi-tag lines if not all tags
12314           - Split() no longer moves caret if split is at caret location
12315           - ReplaceSelection() now updates the cursor and re-displays it
12316           - ReplaceSelection() now uses new Insert() method to avoid code
12317             duplication
12318           - FormatText() can now handle formatting partial lines
12319         * TextBoxBase.cs:
12320           - Append now uses new TextControl.Insert() method (this avoids 
12321             duplicate code)
12322           - Implemented Ctrl-X (Cut) (
12323           - Implemented Ctrl-C (Copy)
12324           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
12325             regeneration when pasting text; roundtripping Copy&Paste within
12326             edit control still fails due to some calculation bugs in GenerateRTF)
12327           - The Delete key will now remove the current selection if it is visible
12328         * TextBox.cs: Removed debug lines
12329         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
12330           driver to be initialized and can't therefore be done via a static ctor)
12331
12332 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
12333
12334         * TextControl.cs: Added backend code for finding char arrays and strings
12335         * TextBoxBase.cs:
12336           - Added mouse wheel scroll support
12337           - Added support for VScroll and HScroll events
12338         * RichTextBox.cs:
12339           - Implemented all seven Find() variants
12340           - Implemented GetCharFromPosition()
12341           - Implemented GetCharIndexFromPosition()
12342           - Implemented GetLineFromIndex()
12343           - Implemented GetPositionFromCharIndex();
12344           - Implemented SaveFile for PlainText and UnicodeText
12345           - Fixed set_Font, now setting a new font applies that font to
12346             the whole document
12347           - Implemented generic Document to RTF converter
12348           - Implemented SaveFile for RichText format (still missing unicode
12349             conversion for non-ansi chars)
12350           - Implemented get_Rtf
12351           - Implemented get_SelectedRtf
12352
12353 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
12354
12355         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
12356           to allow any captures to be released before triggering OnClick. This
12357           way a click handler may capture the mouse without interference.
12358         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
12359           This way we send them even though X may not allow a grab (if the window
12360           isn't visible, for example)
12361
12362 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
12363
12364         * DataGridViewRowEventArgs.cs: DataGridView implementation
12365         * DataGridViewElement.cs: DataGridView implementation
12366         * DataGridViewComboBoxCell.cs: DataGridView implementation
12367         * DataGridViewDataErrorContexts.cs: DataGridView implementation
12368         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
12369         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
12370         * ImageLayout.cs: DataGridView implementation
12371         * DataGridViewComboBoxColumn.cs: DataGridView implementation
12372         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
12373         * DataGridViewSelectionMode.cs: DataGridView implementation
12374         * IDataGridViewEditingControl.cs: DataGridView implementation
12375         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
12376         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
12377         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
12378         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
12379         * DataGridViewColumnSortMode.cs: DataGridView implementation
12380         * DataGridView.cs: DataGridView implementation
12381         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
12382         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
12383         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
12384         * Padding.cs: DataGridView implementation
12385         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
12386         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
12387         * DataGridViewRowEventHandler.cs: DataGridView implementation
12388         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
12389         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
12390         * DataGridViewButtonCell.cs: DataGridView implementation
12391         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
12392         * DataGridViewEditMode.cs: DataGridView implementation
12393         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
12394         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
12395         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
12396         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
12397         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
12398         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
12399         * DataGridViewCellEventHandler.cs: DataGridView implementation
12400         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
12401         * DataGridViewCellStyleConverter.cs: DataGridView implementation
12402         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
12403         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
12404         * DataGridViewColumnEventArgs.cs: DataGridView implementation
12405         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
12406         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
12407         * QuestionEventArgs.cs: DataGridView implementation
12408         * IDataGridViewEditingCell.cs: DataGridView implementation
12409         * DataGridViewTriState.cs: DataGridView implementation
12410         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
12411         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
12412         * DataGridViewColumnCollection.cs: DataGridView implementation
12413         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
12414         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
12415         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
12416         * DataGridViewColumn.cs: DataGridView implementation
12417         * DataGridViewCellBorderStyle.cs: DataGridView implementation
12418         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
12419         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
12420         * DataGridViewRow.cs: DataGridView implementation
12421         * DataGridViewImageCellLayout.cs: DataGridView implementation
12422         * DataGridViewImageCell.cs: DataGridView implementation
12423         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
12424         * DataGridViewCheckBoxCell.cs: DataGridView implementation
12425         * DataGridViewHeaderCell.cs: DataGridView implementation
12426         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
12427         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
12428         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
12429         * DataGridViewTextBoxColumn.cs: DataGridView implementation
12430         * QuestionEventHandler.cs: DataGridView implementation
12431         * DataGridViewCellStyleScopes.cs: DataGridView implementation
12432         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
12433         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
12434         * DataGridViewCell.cs: DataGridView implementation
12435         * DataGridViewCellEventArgs.cs: DataGridView implementation
12436         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
12437         * DataGridViewCellStyle.cs: DataGridView implementation
12438         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
12439         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
12440         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
12441         * TextFormatFlags.cs: DataGridView implementation
12442         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
12443         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
12444         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
12445         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
12446         * DataGridViewButtonColumn.cs: DataGridView implementation
12447         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
12448         * HandledMouseEventArgs.cs: DataGridView implementation
12449         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
12450         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
12451         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
12452         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
12453         * DataGridViewRowCollection.cs: DataGridView implementation
12454         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
12455         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
12456         * DataGridViewHitTestType.cs: DataGridView implementation
12457         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
12458         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
12459         * DataGridViewColumnEventHandler.cs: DataGridView implementation
12460         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
12461         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
12462         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
12463         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
12464         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
12465         * DataGridViewContentAlignment.cs: DataGridView implementation
12466         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
12467         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
12468         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
12469         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
12470         * DataGridViewPaintParts.cs: DataGridView implementation
12471         * DataGridViewCellCollection.cs: DataGridView implementation
12472         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
12473         * DataGridViewImageColumn.cs: DataGridView implementation
12474         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
12475         * DataGridViewElementStates.cs: DataGridView implementation
12476         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
12477         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
12478         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
12479         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
12480         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
12481         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
12482         * DataGridViewRowHeaderCell.cs: DataGridView implementation
12483         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
12484         * DataGridViewTextBoxCell.cs: DataGridView implementation
12485         * DataGridViewBand.cs: DataGridView implementation
12486         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
12487         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
12488         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
12489         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
12490         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
12491         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
12492         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
12493         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
12494         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
12495         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
12496         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
12497
12498 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
12499
12500         * ThemeWin32Classic.cs: 
12501           - Draw the outside focus rectangle around buttons
12502           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
12503             doesn't use end caps for every dash of a line anymore. This
12504             workaround ignores the forecolor.
12505
12506 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
12507
12508         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
12509           endian safe.
12510
12511 2005-11-07  Jackson Harper  <jackson@ximian.com>
12512
12513         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
12514
12515 2005-11-07  Jackson Harper  <jackson@ximian.com>
12516
12517         * ScrollableControl.cs: Calculate the maximum and change vars
12518         (more) correctly so that scrollbars appear as a sensible size.
12519
12520 2005-11-04  Jackson Harper  <jackson@ximian.com>
12521
12522         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
12523         collection.
12524         * TreeView.cs: When the tree is sorted null out the top_node so
12525         that it is recalculated.
12526         - Use dotted lines instead of dashed lines to match MS better.
12527
12528 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
12529
12530         * ListView.cs: 
12531           - Implements key search for items. Useful when browsing files with FileDialog
12532           - When changing view mode or when clear the items reset scrollbar positions
12533
12534 2005-11-04  Jackson Harper  <jackson@ximian.com>
12535
12536         * CurrencyManager.cs: Implement the MetaDataChanged event, the
12537         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
12538         as to what the method may do as there is no real way of creating a
12539         derived CurrencyManager and calling the method. 
12540
12541 2005-11-03  Jackson Harper  <jackson@ximian.com>
12542
12543         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
12544         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
12545         method which seems to just be used internally to refresh the tabs.
12546
12547 2005-11-03  Jackson Harper  <jackson@ximian.com>
12548
12549         * TabControl.cs: Implement the remove method. Fix some broken
12550         comments.
12551
12552 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12553
12554         * DateTimePicker.cs:
12555           - Added missing DateTimePickerAccessibleObject class
12556           - Added missing events
12557           - Added OnFontChanged method
12558         * Form.cs: Added missing attributes
12559         * TreeView.cs: Added missing attributes
12560
12561 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
12562
12563         * GridItemCollection.cs: Fix signatures
12564
12565 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12566
12567         * XplatUI.cs: Updated build rev/date
12568         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
12569           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
12570         * Application.cs: Trigger context-specific ExitThread events
12571
12572 2005-11-03  Jackson Harper  <jackson@ximian.com>
12573
12574         * Menu.cs:
12575         * MainMenu.cs:
12576         * GridTableStylesCollection.cs:
12577         * Timer.cs:
12578         * TabPage.cs:
12579         * HelpProvider.cs:
12580         * StatusBar.cs:
12581         * MonthCalendar.cs: Signature fixes
12582
12583 2005-11-03  Jackson Harper  <jackson@ximian.com>
12584
12585         * TreeNodeCollection.cs: Remove should not be virtual.
12586         * TreeView.cs: Implement the last of the missing methods.
12587
12588 2005-11-03  Jackson Harper  <jackson@ximian.com>
12589
12590         * TreeNodeConverter.cs: Implement to get off my class-status back.
12591
12592 2005-11-03  Jackson Harper  <jackson@ximian.com>
12593
12594         * TreeView.cs: Hookup the bits for drag and drop.
12595         * TreeNode.cs: Don't cache the tree_view or index anymore, now
12596         that nodes can be moved from tree to tree easily this just causes
12597         all sorts of problems.
12598         * TreeNodeCollection: Don't need to give treenodes an index and
12599         treeview anymore when they are added, these are computed on the
12600         fly. Also make sure to remove a node before its added.
12601
12602 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12603
12604         * TextControl.cs:
12605           - Added CaretSelection enum
12606           - Added comparison methods to Marker struct, makes selection code
12607             more readable
12608           - Added SelectionStart and SelectionEnd as 'moveable' location for
12609             the CaretDirection enum and handler
12610           - Added selection_prev variable to track optimized invalidation for
12611             word and line selection
12612           - Added SelectionVisible property (returns true if there is a valid 
12613             selection)
12614           - Switched CaretHasFocus to only display the caret if there is no
12615             visible selection
12616           - Avoiding StringBuilder.ToString to retrieve a single char, instead
12617             using the direct character index; should be much faster
12618           - Added various conditional debug statements
12619           - Fixed invalidation calculation for selection ranges
12620           - Added ExpandSelection() method to support word and line selection
12621           - Switched SetSelectionToCaret to use new Marker compare overloads
12622           - Added central IsWordSeparator() method to determine word 
12623             separators/whitespace and FindWordSeparator() to streamline common
12624             usage of IsWordSeparator()
12625         * TextBoxBase.cs:
12626           - Removed unneeded grabbed variable, it was just mirroring
12627             Control.Capture
12628           - No longer firing OnTextChanged event when Text setter is called,
12629             since the base will fire the event for us
12630           - Added handling of Ctrl-Up/Down selection
12631           - Added handling of Shift-Cursorkey selection
12632           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
12633             words
12634           - Added handling of Shift and Ctrl-Shift-Home/End selection
12635           - Removed some debug output
12636           - Added handling for single/double/tripple-click to place caret/
12637             select word/select line respectively (Fixes bug #76031)
12638           - Added support for drag expansion of word/line selection
12639         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
12640           current selection
12641
12642 2005-11-02  Jackson Harper  <jackson@ximian.com>
12643
12644         * X11Dnd.cs: If the drag is going to and from a MWF window just
12645         copy the data instead of sending it out through the X Selection
12646         mechanism.
12647
12648 2005-11-02  Jackson Harper  <jackson@ximian.com>
12649
12650         * X11Dnd.cs:
12651         * XplatUIX11.cs: When in a drag we don't want motion notify
12652         messages to get passed on to the other controls. This prevents
12653         mouse move messages from showing up in the drag source.
12654
12655 2005-11-02  Jackson Harper  <jackson@ximian.com>
12656
12657         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
12658         the correct button is release to end a drag.
12659         * XplatUIX11.cs: Make the button state internal so the drag system
12660         can access it.  Dragging needs to know about all button releases,
12661         not just left button.
12662
12663 2005-11-02  Miguel de Icaza  <miguel@novell.com>
12664
12665         * Form.cs (Icon): If the icon is null, reset the icon to the
12666         default value. 
12667
12668         * Cursor.cs: When writing the AND-mask bitmap do not include the
12669         number of colors, but hardcode those to two (black and white),
12670         fixes the loading of color cursors (Paint Dot Net).
12671
12672         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
12673         turn off autoscaling.
12674
12675         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
12676
12677 2005-11-02  Jackson Harper  <jackson@ximian.com>
12678
12679         * X11Dnd.cs: Make sure to send a status message if the pointer
12680         enters a control that can not accept a drop, otherwise the cursor
12681         isn't updated correctly. Also tried to compress the lines of code
12682         a bit.
12683
12684 2005-11-02  Jackson Harper  <jackson@ximian.com>
12685
12686         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
12687         set actions correctly.  This isn't perfect as XDND and win32 have
12688         some differences on how you allow actions. I'll clear this up by
12689         adding a path for drag from MWF to MWF windows.
12690         * XplatUIX11.cs: Hook into the dnd system.
12691
12692 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
12693
12694         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
12695         previously shown but they are no longer need it. Very obvious when 
12696         browsing files with FileDialog.
12697
12698 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
12699
12700         * Control.cs: We always need to call OnPaintBackground. We pretty much
12701           ignore AllPaintingInWmPaint and always do the painting there, whether 
12702           it's set or not, since we always ignore the WM_ERASEBKGND message 
12703           (which we don't generate on X11). This fixes #76616.
12704         * Panel.cs: Removed unneeded background painting. This happens properly
12705           in Control.cs already
12706
12707 2005-10-31  Mike Kestner  <mkestner@novell.com>
12708
12709         * Menu.cs: Add items to collection before setting their index.
12710         * MenuItem.cs : add range checking with ArgumentException like MS.
12711         [Fixes #76510]
12712
12713 2005-10-31  Jackson Harper  <jackson@ximian.com>
12714
12715         * ListBox.cs: Invalidate if the area is visible at all not just
12716         contained in the visible rect. Fixes unselection of semi visible
12717         items.
12718
12719 2005-10-31  Jackson Harper  <jackson@ximian.com>
12720
12721         * Control.cs: Consistently name the dnd methods. Make them
12722         internal so we can override them to match some MS behavoir
12723         internally.
12724         * Win32DnD.cs: Use the new consistent names.
12725
12726 2005-10-31  Jackson Harper  <jackson@ximian.com>
12727
12728         * TreeView.cs: Don't draw the selected node when we lose focus.
12729
12730 2005-10-31  Jackson Harper  <jackson@ximian.com>
12731
12732         * X11Dnd.cs: We still need to reset the state even though a full
12733         reset isn't being done, otherwise status's still get sent all over
12734         the place.
12735
12736 2005-10-31  Jackson Harper  <jackson@ximian.com>
12737
12738         * Control.cs: Make the dnd_aware flag internal so the dnd
12739         subsystem can check it. Catch exceptions thrown in dnd handlers to
12740         match MS behavoir.
12741         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
12742         * X11Dnd.cs: Handle null data in the converters. Set the XDND
12743         version when sending a XdndEnter. Use the control/hwnd dnd_aware
12744         flags to reduce the number of dnd enters/status's sent.
12745
12746 2005-10-31  Jackson Harper  <jackson@ximian.com>
12747
12748         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
12749
12750 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
12751
12752         * PictureBox.cs: Fixes 76512
12753
12754 2005-10-28  Jackson Harper  <jackson@ximian.com>
12755
12756         * X11Dnd.cs: Early implementation to support winforms being a drag
12757         source for data on X11. Also restructured the converters so they
12758         can go both ways now.
12759         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
12760         
12761 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
12762
12763         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
12764           clipboard requests
12765
12766 2005-10-27  Jackson Harper  <jackson@ximian.com>
12767
12768         * TreeNode.cs: Implement serialization so my DnD examples will work.
12769
12770 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
12771
12772         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
12773           TreeView.cs: Don't dispose objects that are not owned.
12774           
12775 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
12776
12777         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
12778           should retrieve the current cursor and report that, but XplatUI
12779           doesn't (yet) have an interface for that (and I'm not sure I even
12780           can, on X11)
12781         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
12782           until any message loop processing is done (and the WM_SETCURSOR
12783           replaces the cursor to the proper one)
12784         * XplatUIX11.cs: 
12785           - Fixed override behaviour, we can't set the cursor globally on X11, 
12786             just for our windows.
12787           - Invalidating the System.Drawing X11 display handle when we are
12788             shutting down
12789         * Control.cs: Fix to make csc happy
12790
12791 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
12792
12793         * TextBoxBase.cs: 
12794           - get_Text: Add last line (without trailing newline) to returned
12795             value (Fixes 76212)
12796           - get_TextLength: Count last line in returned length
12797           - ToString: Call Text property instead of duplicating code
12798
12799 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
12800
12801         * ImageList.cs: Dispose ImageAttributes objects.
12802
12803 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12804
12805         * ImageList.cs: Use attribute constructors with less arguments where
12806           possible.
12807
12808 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12809
12810         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
12811           Use typeof instead of strings when assembly is referenced. Added
12812           some more comments.
12813
12814 2005-10-21  Jackson Harper  <jackson@ximian.com>
12815
12816         * ListView.cs: Raise a double click event. Also tried to somewhat
12817         fix when the selectedindexchanged event is raised. Its still
12818         broken though.
12819
12820 2005-10-21  Jackson Harper  <jackson@ximian.com>
12821
12822         * TreeView.cs: New method to invalidate the plus minus area of a
12823         node without invalidating the whole node (maybe this can be used
12824         in some more places).
12825         * TreeNodeCollection.cs: When adding to an empty node we need to
12826         invalidate its plus minus area so the little block shows up.
12827         
12828 2005-10-21  Jackson Harper  <jackson@ximian.com>
12829
12830         * TreeView.cs: Make sure that when we invalidate a node the bounds
12831         are big enough to cover the selected box and the focus
12832         rectangle. Use a different colour for the lines connecting nodes
12833         so they show up with all themes.
12834
12835 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12836
12837         * NativeWindow.cs: Don't call anything that could call into the driver,
12838           we might be on a different thread.
12839
12840 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
12841
12842         * Control.cs(Dispose): Since Dispose might run on a different thread,
12843           make sure that we call methods that could call into the driver via
12844           invoke, to avoid thread issues
12845
12846 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12847
12848         * XplatUI.cs: Removed finalizer
12849         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
12850           not allowing to be called on the finalizer thread.
12851
12852 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
12853
12854         * ImageList.cs:
12855           - Reverted r51889 and r51891.
12856           - Added ImageListItem class that stores unmodified image items and image
12857             properties required to create list images until handle is created.
12858           - Added AddItem and moved image creation logic to AddItemInternal.
12859           - Added CreateHandle method that creates images based on unmodified items.
12860           - Added DestroyHandle that changes state to store unmodified items.
12861           - Add and AddStrip methods no more create handle.
12862           - ReduceColorDepth has no return value.
12863           - Dispose destroys handle.
12864           - Modified other methods to reflect the above changes.
12865           - Implemented key support.
12866           - Added profile 2.0 members and attributes.
12867           - Added private Reset and ShouldSerialize methods that provide the same
12868             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
12869             them as they are private.
12870           - Added some more comments about implementation details.
12871
12872 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12873
12874         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
12875
12876 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12877
12878         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
12879
12880 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12881
12882         * DataGridDrawingLogic.cs: Fixes column hit calcultation
12883         * DataGridColumnStyle.cs: Remove debug message
12884
12885 2005-10-20  Jackson Harper  <jackson@ximian.com>
12886
12887         * TreeView.cs: We can always get input keys regardless of whether
12888         or not editing is enabled. They are used for navigation.
12889
12890 2005-10-20  Jackson Harper  <jackson@ximian.com>
12891
12892         * TreeNode.cs: Use the viewport rect for determining if a node
12893         needs to be moved for visibility. Don't use Begin/End edit. This
12894         calls a full refresh when its done.
12895         * TreeView.cs: New SetBottom works correctly.  Make the viewport
12896         rect property internal so the treenodes can see it. When clicking
12897         on a node we need to ensure that its visible because it might just
12898         be partly visible when clicked.
12899
12900 2005-10-20  Jackson Harper  <jackson@ximian.com>
12901
12902         * TreeNodeCollection.cs: Remove debug code.
12903
12904 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12905
12906         * Datagrid.cs: Implements column sorting in Datagrid
12907         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
12908
12909 2005-10-20  Jackson Harper  <jackson@ximian.com>
12910
12911         * TreeNodeCollection.cs: Remove items properly. Update the correct
12912         area after removing them.
12913
12914 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12915
12916         * Datagrid.cs: Should not call base.OnPaintBackground
12917
12918 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12919
12920         * XplatUIX11.cs (GetMessage):
12921           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
12922             window instead of client window
12923           - Now properly calculates NC_xBUTTONUP message coordinates
12924           - ScreenToMenu now properly calculates it's coordinates of whole 
12925             window, since menus are in the whole window, not in the client
12926             window
12927           - Added WholeToScreen coordinate translation method
12928
12929 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
12930
12931         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
12932           want to return a message, loop back to the beginning of the function
12933           and grab the next real message to process instead.
12934
12935 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12936
12937         * Splitter.cs: Properly set limits if no filler control is used
12938
12939 2005-10-19  Jackson Harper  <jackson@ximian.com>
12940
12941         * ColorDialog.cs: Don't show the help button if it is not enabled
12942         instead of disabling it (this is what MS does). Don't create the
12943         panel until the dialog is run, otherwise the vars (such as
12944         ShowHelp) are not set yet.
12945
12946 2005-10-19  Jackson Harper  <jackson@ximian.com>
12947
12948         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
12949         are reduced when adding nodes.
12950         * TreeNode.cs:
12951         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
12952         tree.
12953         
12954 2005-10-19  Jackson Harper  <jackson@ximian.com>
12955
12956         * FolderBrowserDialog.cs: End editing our treeview so the window
12957         actually gets refreshed.
12958
12959 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12960
12961         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
12962           Obsoleted handling of WM_ERASEBKGND, now always draws our background
12963           inside of WM_PAINT
12964
12965 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12966
12967         * MenuAPI.cs: Returns after Hidding window
12968         * XplatUIX11.cs: Added TODO found while debugging menu issues
12969
12970 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12971
12972         * XplatUIX11.cs: Do not re-map the whole window when it's size
12973           becomes non-zero unless it's supposed to be actually visible
12974
12975 2005-10-18  Jackson Harper  <jackson@ximian.com>
12976
12977         * TreeView.cs: We don't need to keep a count anymore.
12978         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
12979         use the Grow method.
12980
12981 2005-10-18  Jackson Harper  <jackson@ximian.com>
12982
12983         * TreeNodeCollection.cs: Insert is not supported on arrays, so
12984         implement it manually here.
12985
12986 2005-10-18  Jackson Harper  <jackson@ximian.com>
12987
12988         * ImageList.cs: Dont kill the list when the colour depth is
12989         changed, just change the colour depth of all the images.
12990         - Same goes for setting the image size. Just resize them all
12991         instead of killing the list softly.
12992
12993 2005-10-18  Jackson Harper  <jackson@ximian.com>
12994
12995         * Control.cs: Don't invalidate empty rectangles.
12996
12997 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12998
12999         * ListViewItem.cs:
13000           - Adds checked item to the Checked/Item lists (where empty before)
13001           - Do not add items to the Selected lists if they are already present
13002         * ListView.cs:
13003           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
13004           - When deleting items make sure that we delete them for the Selected
13005           and Checked list also.
13006
13007 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
13008
13009         * Label.cs: Dispose objects no longer used
13010         * ThemeWin32Classic.cs: Dispose objects no longer used
13011
13012 2005-10-18  Jackson Harper  <jackson@ximian.com>
13013
13014         * TabControl.cs: Don't refresh the whole control when the tabs are
13015         scrolled, we just need to refresh the tab area.
13016
13017 2005-10-17  Jackson Harper  <jackson@ximian.com>
13018
13019         * XplatUIX11.cs: Compress code a little bit. Only calculate the
13020         after handle when we need it.
13021
13022 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
13023
13024         * Control.cs: When the parent size changes, recalculate anchor 
13025           positions. Partial fix for #76462
13026
13027 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
13028
13029         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
13030           drawn. Fixes #76462
13031
13032 2005-10-17  Jackson Harper  <jackson@ximian.com>
13033
13034         * MonthCalendar.cs: Don't create the numeric up down until our
13035         handle is created. Otherwise our handle is created in the
13036         constructor and we don't know if we are a WS_CHILD or WS_POPUP
13037         yet.
13038
13039 2005-10-17  Jackson Harper  <jackson@ximian.com>
13040
13041         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
13042         correctly.
13043
13044 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13045         * TreeNode.cs : small logical fix (was using local var instead of field)
13046         
13047 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
13048
13049         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
13050
13051 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
13052
13053         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
13054
13055 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
13056
13057         * Control.cs: 
13058           - Re-implemented anchoring code. My first version was really broken.
13059             This fixes bug #76033. Unlike the previous implementation we will
13060             no longer have round errors since all numbers are calculated from
13061             scratch every time. Removed various anchor-related obsolete vars.
13062           - InitLayout no longer causes layout event firing and layout to be 
13063             performed
13064
13065 2005-10-16  Jackson Harper  <jackson@ximian.com>
13066
13067         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
13068         which was broken).
13069
13070 2005-10-16  Jackson Harper  <jackson@ximian.com>
13071
13072         * TabControl.cs: Remove debug code.
13073
13074 2005-10-16  Jackson Harper  <jackson@ximian.com>
13075
13076         * XEventQueue.cs: Increase the default queue size (very simple
13077         apps needed to grow the queue).
13078         * Hwnd.cs: No finalizer so we don't need to suppress
13079         finalization. Compute the invalid area manually so a new rectangle
13080         does not newto be created.
13081         * ScrollableControl.cs: Don't set any params (otherwise visibility
13082         isn't set correctly).
13083         * MdiChildContext.cs: New constructor takes the mdi parent so it
13084         doesn't have to be computed and avoids a crash on windows. Draw
13085         the window icon properly, and allow the text to be seen.
13086         * Form.cs: Use new MdiChildContext constructor. Make sure the
13087         child context isn't null in wndproc.
13088         * TabControl.cs: Don't set focus, this is muddling keyboard
13089         behavoir. Expand the tab rows when a window size increase will
13090         allow extra tabs to be seen. Don't allow tabs smaller than the
13091         width of a window to be scrolled out of view.
13092         * TreeNode.cs:
13093         * TreeView.cs: Use measure string to calculate a nodes width, the
13094         width is cached and only updated when the text or the font is
13095         changed. Don't check for expand/collapse clicks on the first level
13096         nodes if root lines are disabled.
13097         
13098 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
13099
13100         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
13101
13102 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
13103
13104         * DataGridBoolColumn.cs: fixes warning
13105
13106 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
13107
13108         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
13109         to match more to match more precisely the MS Net behavior
13110
13111 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
13112
13113         * Hwnd.cs: Added field to track if window is mapped
13114         * XplatUIX11.cs: 
13115           - Unmap windows if they become 0-size, re-map when 
13116             they are >0 again; fixes #76035
13117           - Re-set our error handler after initializing X11Desktop
13118             to override any error handlers Gtk or whatever was called
13119             may have set.
13120
13121 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
13122
13123         * CheckedListBox.cs: Removed unused vars
13124         * ListView.cs: Fixed signatures
13125         * RichTextBox.cs: Removed unused vars
13126         * TextBoxBase.cs: Removed unused vars
13127         * XplatUIWin32.cs: Removed unused vars
13128         * XplatUIX11.cs: Removed unused vars
13129         * XplatUI.cs: Updated version and date to latest published
13130
13131 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
13132
13133         * Cursor.cs: Added private .ctor to work around a bug in
13134           resourceset (Thanks to Geoff Norton for the help on this)
13135         * SplitterEventArgs.cs: Made fields accessible so we don't
13136           waste boatloads of objects and can reuse the same one
13137           in Splitter
13138         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
13139           any captions and borders when generating screen coordinates
13140         * Splitter.cs: Reimplemented control, now fully complete, uses
13141           rubberband drawing, supports and obeys all properties, has
13142           proper cursors
13143
13144 2005-10-13  Miguel de Icaza  <miguel@novell.com>
13145
13146         * Form.cs (Form): Setup default values for autoscale and
13147         autoscale_base_size;  Make these instance variables, not static
13148         variables. 
13149
13150         (OnLoad): on the first load, adjust the size of the form.
13151
13152 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
13153
13154         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
13155           width argument to DrawReversibleRectangle()
13156         * XplatUIWin32.cs, XplatUIX11.cs: 
13157           - Implemented width for DrawReversibleRectangle()
13158           - Added logic to DrawReversibleRectangle that recognizes a zero
13159             width or height and only draws a line in that situation
13160         
13161 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
13162
13163         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
13164         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
13165         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
13166           method (it uses our FosterParent window to get a graphics context)
13167
13168 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
13169
13170         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
13171           and SetWindowBackground methods
13172         * Control.cs:
13173           - Setting proper ControlStyles
13174           - We no longer call XplatUI.SetWindowBackground and XplatUI.
13175             EraseWindowBackground, instead we draw the window background
13176             ourselves in PaintControlBackground. This behaviour is
13177             required to match MS, where, when OnPaintBackground is not
13178             called, the background is not drawn.
13179           - Removed unneeded Refresh() in set_Text
13180         * Hwnd.cs: Dropped the ErasePending support. No longer needed
13181         * XplatUIX11.cs:
13182           - Created DeriveStyles method to translate from CreateParams to
13183             FormBorderStyle and TitleStyle, also handles BorderStyle (which
13184             matches FormBorderStyle enum values)
13185           - Consolidated SetHwndStyles and CalculateWindowRect border/title
13186             style calculations into single DeriveStyles method
13187           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
13188             from redrawing the whole window on any resize or expose.
13189           - Fixed CreateWindow usage of SetWindowValuemask. Before not
13190             all styles were applied to our whole/client window appropriately
13191           - Removed EraseWindowBackground() and SetWindowBackground() methods
13192           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
13193             no longer clear/redraw the background through X
13194           - Removed handling of erase_pending bit, we have no use for it (or
13195             so it seems)
13196         * XplatUIOSX.cs:
13197           - Removed generation and handling of WM_ERASEBKGND message
13198           - Removed EraseWindowBackground() and SetWindowBackground() methods
13199           - Removed handling of hwnd.ErasePending flag
13200         * XplatUIWin32.cs:
13201           - Removed EraseWindowBackground() and SetWindowBackground() methods
13202           - We no longer call EraseWindowBackground on PaintEventStart, we 
13203             ignore the fErase flag, erasing is handled in Control in the
13204             background handler
13205         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
13206           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
13207           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
13208           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
13209           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
13210           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
13211           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
13212
13213 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
13214
13215         * PropertyGrids.cs: Get sub properties
13216         * PropertyGridView.cs: Fix drawing code
13217
13218 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13219
13220         * ListBox.cs: Fixes 76383
13221
13222 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13223
13224         * DataGridTextBoxColumn.cs: Sets location and size before attachment
13225         * ThemeWin32Classic.cs: Fixes border drawing and calculations
13226         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
13227
13228
13229 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13230
13231         * ComboBox.cs: Fixes border drawing
13232
13233 2005-10-10  Miguel de Icaza  <miguel@novell.com>
13234
13235         * MimeIcon.cs: Ignore errors if the file can not be read.
13236
13237 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13238
13239         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
13240          - Fixed border calculations
13241          - Fixed horizontal scrolling in single column listboxes
13242          - Fixed drawing issues
13243
13244 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
13245
13246         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
13247           FormBorderStyle enum
13248         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
13249           code to determine FormBorderStyles from CreateParams
13250         * Form.cs:
13251           - Fixed bug where we'd set the wrong window styles if we were
13252             not creating an MDI window
13253           - Added call to XplatUI.SetBorderStyle when form borders are set
13254         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
13255         * Hwnd.cs:
13256           - Removed obsolete edge style
13257           - Switched from BorderStyle to FormBorderStyle
13258         
13259 2005-10-10  Jackson Harper  <jackson@ximian.com>
13260
13261         * Form.cs: Use the property to get the window handle instead of
13262         accessing it directly. Prevents a null reference exception.
13263
13264 2005-10-10  Jackson Harper  <jackson@ximian.com>
13265
13266         * TreeView.cs: Don't adjust the rect given to DrawString now that
13267         our libgdiplus draws correctly.
13268
13269 2005-10-08  Jackson Harper  <jackson@ximian.com>
13270
13271         * TreeView.cs: Don't try to find the clicked on node if there are
13272         no nodes in the tree.
13273
13274 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13275
13276         * RichTextBox.cs:
13277
13278           restore
13279
13280 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13281
13282         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
13283           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
13284           ErrorProvider.cs:
13285           Use ResPool for brushes and dispose System.Drawing objects that
13286           are not used anymore.
13287
13288 2005-10-07  Jackson Harper  <jackson@ximian.com>
13289
13290         * MdiChildContext.cs: Use the new borders instead of drawing them
13291         ourselves.
13292
13293 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13294
13295         * Calling UpdateBounds after changing the window's BorderStyle 
13296         since the style can change the ClientSize
13297
13298 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13299
13300         * Control.cs: Made PaintControlBackground virtual
13301         * Panel.cs: Overriding PaintControlBackground instead of using paint
13302           event; paint event method was interfering with 'real' users of the
13303           event.
13304
13305 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13306
13307         * ThemeWin32Classic.cs: remove border drawing since it is handled
13308         by the base control class now and was causing double border drawing.
13309
13310 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13311
13312         * Panel.cs: Redraw our background on paint. Not a pretty solution,
13313           but it does seem to match MS behaviour. This fixes bug #75324
13314
13315 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13316
13317         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
13318           somewhat hackish looking
13319
13320 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13321
13322         * TextBoxBase.cs:
13323           - We now accept Enter even if AcceptEnter is false, if the containing
13324             form does not have an AcceptButton configured (fixes bug #76355)
13325           - Calculations are now fixed to no longer use Width/Height, but
13326             ClientSize.Width/Height, since we now support borders (this was
13327             a result of fixing borders and therefore bug #76166)
13328           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
13329             true (fixes bug #76354)
13330         
13331 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13332
13333         * Control.cs: 
13334           - Defaulting BorderStyle and setting it in XplatUI when our window 
13335             is created
13336           - Added enum check to InternalBorderStyle setter
13337         * XplatUIX11.cs: 
13338           - Added drawing of window borders
13339           - Now properly calculates WM decorations offset for toplevel 
13340             windows (fixes bug #74763)
13341         * XplatUIWin32.cs: 
13342           - Implemented BorderStyles for windows (we're letting win32 draw 
13343             the border for us)
13344           - Fixed the signature for SetWindowLong
13345         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
13346           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
13347           setting borders
13348         * UpDownBase.cs: Remove drawing of borders, this is handled by
13349           the driver, outside the client area
13350         * ListView.cs: Removed bogus border calculations. The control should
13351           be oblivious to borders, since those are not part of the client
13352           area. 
13353         * X11DesktopColors.cs: Commented out (currently) unneeded variables
13354         * ThemeWin32Classic.cs: Removed border calculations from ListView 
13355           drawing code
13356
13357 2005-10-06  Jackson Harper  <jackson@ximian.com>
13358
13359         * MdiChildContext.cs: Clear out the old virtual position remove
13360         all the unneeded calls to CreateGraphics.
13361
13362 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13363
13364         * TextControl.cs: Use proper color for highlighted text; fixes #76350
13365
13366 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13367
13368         * Form.cs: 
13369           - Added loading and setting of our new default icon
13370           - Only set icon if window is already created
13371
13372 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13373
13374         * Label.cs:
13375           - Do not explicitly set the foreground and background colors, to
13376             allow inheriting from parents (fixes #76302)
13377           - Use Control's InternalBorderStyle property to deal with borders
13378
13379 2005-10-06  Jackson Harper  <jackson@ximian.com>
13380
13381         * MdiChildContext.cs: Use the new xplatui function to draw a
13382         reversible rect.
13383
13384 2005-10-06  Jackson Harper  <jackson@ximian.com>
13385
13386         * Form.cs: Add the parent before creating the child context cause
13387         we need the parent when setting up the child.
13388
13389 2005-10-06  Jackson Harper  <jackson@ximian.com>
13390
13391         * FolderBrowserDialog.cs: redo the tree population code so a
13392         second thread isn't used. Should be a lot faster and more stable
13393         now.
13394
13395 2005-10-05  Jackson Harper  <jackson@ximian.com>
13396
13397         * TreeView.cs: There are no expand/collapse boxes if the node has
13398         no children.
13399
13400 2005-10-05  Jackson Harper  <jackson@ximian.com>
13401
13402         * X11DesktopColors.cs: Get menu colours for the gtk theme.
13403
13404 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
13405
13406         * FileDialog.cs: Fix InitialDirectory
13407
13408 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13409
13410         * ComboBox.cs:
13411                 - Fixes changing between styles
13412                 - Fixes simple mode
13413                 - Fixes last item crashing when navigating with keyboard
13414
13415 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13416
13417         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
13418
13419 2005-10-05  Jackson Harper  <jackson@ximian.com>
13420
13421         * TreeView.cs: If updating the root node do a full refresh.
13422         * TreeNode.cs: The root node should be expanded by default. Also
13423         added a utility prop to tell if we are the root node.
13424         * TreeNodeCollection.cs: Only refresh if the node we are being
13425         added to is expanded. Also added a comment on a potential
13426         optimization.
13427         
13428 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
13429
13430         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
13431           in dispose method. Fixes #76330
13432
13433 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
13434
13435         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
13436
13437                 - Implements vertical and horizontal scrolling using XplatUI
13438                 - Fixes keyboard navagation
13439                 - Fixes EnsureVisible
13440                 - Drawing fixes
13441                 - Handles and draws focus properly
13442
13443
13444 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
13445
13446         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
13447           Create handle. NET_2_0: Destroy handle when value is null.
13448
13449 2005-10-03  Jackson Harper  <jackson@ximian.com>
13450
13451         * ScrollBar.cs: My last scrollbar patch was broken. This is a
13452         revert and a new patch to prevent the thumb from refreshing so
13453         much.
13454
13455 2005-10-02  Jackson Harper  <jackson@ximian.com>
13456
13457         * ScrollBar.cs: Don't update position if it hasn't actually
13458         changed. This occurs when you hold down the increment/decrement
13459         buttons and the thumb gets to the max/min.
13460
13461 2005-10-01  Jackson Harper  <jackson@ximian.com>
13462
13463         * Form.cs:
13464         * MdiChildContext.cs:
13465         * MdiClient.cs: Implement ActiveMdiChild in Form.
13466
13467 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
13468
13469         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
13470
13471 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
13472
13473         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
13474           be found
13475
13476 2005-09-30  Jackson Harper  <jackson@ximian.com>
13477
13478         * ListBox.cs: Don't do a full refresh unless some data has
13479         actually changed.
13480
13481 2005-09-30  Jackson Harper  <jackson@ximian.com>
13482
13483         * TreeView.cs: Make sure that the checkboxes size is factored in
13484         even when not visible.
13485
13486 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13487
13488         * FileDialog.cs: Fix Jordi's build break
13489
13490 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13491
13492         * FileDialog.cs: 
13493                 - Use standard the Windows colours for the combobox as espected
13494                 - Dispose objects that use resouces when no longer need them
13495
13496 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13497
13498         * X11DesktopColors.cs: Initial incomplete implementation
13499         * XplatUIX11.cs: Added call to initialize X11DesktopColors
13500
13501 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
13502
13503         * Theme.cs: 
13504           - Switched Theme color names to match the names defined in 
13505             System.Drawing.KnownColors. Life's hard enough, no need to make 
13506             it harder.
13507           - Added setters to all theme color properties so themes can set
13508             their color schemes. The setters also propagate the color changes
13509             to System.Drawing.KnownColors via reflection
13510         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
13511           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
13512           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
13513           use the new, more logical theme color names
13514         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
13515           post-NT colors
13516         * ThemeWin32Classic.cs:
13517           - Removed code to set the old classic Windows colors. Instead it
13518             now relies on the colors returned by System.Drawing.KnownColors
13519             which will be either modern static colors (Unix) or colors
13520             read from the user's configuration (Win32)
13521           - Updated to use the new, more logical theme color names
13522           - Switched DataGrid drawing code to use only Theme colors instead of
13523             a mix of System.Drawing.KnownColors and Theme colors
13524           - DrawFrameControl(): Removed code that fills the button area, the
13525             fill would overwrite any previous fill done by a control. This
13526             fixes bug #75338 
13527           - Added DrawReversibleRectangle() stub
13528         * ScrollableControl.cs: Set visible state to false when scrollbars
13529           are removed (pdn fix)
13530         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
13531           DrawReversibleRectangle() method to allow drawing primitive 
13532           'rubber bands'
13533         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
13534
13535 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13536
13537         * ImageList.cs: Add(Icon): Create handle.
13538
13539 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13540
13541         * ListView.cs:
13542         * ThemeWin32Classic.cs:
13543                 - Fixes detail mode
13544                 - Sets clippings
13545                 - Issues with drawing
13546
13547 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13548
13549         * ImageList.cs: Moved RecreateHandle back to ImageList as event
13550           source has to be the ImageList.
13551
13552 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13553
13554         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
13555
13556 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13557
13558         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
13559
13560 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13561
13562         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
13563
13564 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
13565         * GridItem.cs: Fixed TODOs
13566         * GridItemCollection.cs: Added ICollection interface
13567
13568 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13569
13570         * ImageList.cs: Resize icons when needed.
13571
13572 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
13573
13574         * ListViewItem.cs
13575                 - Fixes GetBounds and returns on screen rects
13576         * ListView.cs:
13577                 - Fixes vertical and horzintal scrolling of items
13578         * ThemeWin32Classic.cs:
13579                 - Fixes drawing
13580                 
13581 2005-09-29  Raja R Harinath  <harinath@gmail.com>
13582
13583         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
13584
13585 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
13586
13587         * ImageList.cs: Added comments about handle creation. Moved Handle,
13588           HandleCreated and OnRecreateHandle implementations to ImageCollection.
13589           Handle is created in Add methods.
13590
13591 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13592          
13593         * DataGridDrawingLogic.cs: 
13594                 - Takes rows into account on Colum calculations
13595                 - Returns the column when clickig
13596         * DataGrid.cs:
13597                 - Fixes default HitTestInfo values
13598                 - Fixes HitTestInfo.ToString
13599                 - Fixes ResetBackColor          
13600         
13601 2005-09-28  Jackson Harper  <jackson@ximian.com>
13602
13603         * MdiChildContext.cs: Obey rules for fixed sized windows (no
13604         sizing or cursor changes). Also added some temp code to draw the
13605         titlebars text (Makes dev a little easier).
13606
13607 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13608
13609         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
13610
13611 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13612          
13613         * ListBox.cs: Fixes bug 76253
13614
13615 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13616
13617         * ImageList.cs: Added comments about the current implementation. Added
13618           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
13619           Format32bppArgb to preserve transparency and can use Graphics.FromImage
13620           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
13621           with Bitmap.LockBits for better performance. Revised the whole file to
13622           match MS.NET behaviour and provide better performance. Non-public
13623           interface members are calling public members even when they throw
13624           NotSupportedException for better maintainability. Moved ColorDepth,
13625           ImageSize, ImageStream and TransparentColor implementations to
13626           ImageCollection for better performance as these properties are not used
13627           by ImageList.
13628         * ImageListStreamer.cs: Added a new internal constructor that takes an
13629           ImageList.ImageCollection and serializes Images based on
13630           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
13631           match ImageList property name.
13632
13633 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
13634
13635         * ListBox.cs: Fixes IndexFromPoint for last item
13636
13637 2005-09-27  Jackson Harper  <jackson@ximian.com>
13638
13639         * Form.cs: Set the position of new mdi children correctly.
13640
13641 2005-09-27  Jackson Harper  <jackson@ximian.com>
13642
13643         * MdiClient.cs: New mdi children need to be added to the back of
13644         the controls collection so the zorder is set correctly. Also add a
13645         count of all the child windows that have been created.
13646
13647 2005-09-27  Jackson Harper  <jackson@ximian.com>
13648
13649         * Form.cs (CreateParams): Setup MDI forms correctly.
13650
13651 2005-09-27  Jackson Harper  <jackson@ximian.com>
13652
13653         * MdiChildContext.cs:
13654         * MonthCalendar.cs:
13655         * UpDownBase.cs:
13656         * ListBox.cs:
13657         * ListView.cs:
13658         * TextBoxBase.cs:
13659         * TreeView.cs:
13660         * ScrollableControl.cs:
13661         * ComboBox.cs: Add implicit controls using the new implict control
13662         functionality in ControlCollection. Also try to block multiple
13663         control add in a suspend/resume layout to save some cycles.
13664         
13665 2005-09-27  Jackson Harper  <jackson@ximian.com>
13666
13667         * Control.cs: Add functionality to the controls collection to add
13668         'implicit controls' these are controls that are created by the
13669         containing control but should not be exposed to the user. Such as
13670         scrollbars in the treeview.
13671         * Form.cs: The list var of the ControlsCollection is no longer
13672         available because of the potential of implicit controls getting
13673         ignored by someone accessing the list directly.
13674
13675 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
13676
13677         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
13678           loose it's parent. (Fixed bug introduced in r49103 when we added
13679           setting the child parent to null on Remove)
13680
13681 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
13682
13683         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
13684         * Splitter.cs: Added missing attributes for BorderStyle property.
13685         * TextBoxBase.cs: Marked Calculate* methods internal.
13686         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
13687         MS.NET.
13688
13689 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
13690          
13691         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
13692
13693 2005-09-25  Jackson Harper  <jackson@ximian.com>
13694
13695         * TreeView.cs: Update the node bounds correctly regardless of
13696         whether the node is visible.
13697
13698 2005-09-25  Jackson Harper  <jackson@ximian.com>
13699
13700         * ImageList.cs: Don't dispose the image after it is added to the
13701         image list. Only reformat images that need to be resized.
13702
13703 2005-09-25  Jackson Harper  <jackson@ximian.com>
13704
13705         * ImageList.cs: Don't set the format when changing the image.
13706
13707 2005-09-25  Jackson Harper  <jackson@ximian.com>
13708
13709         * TreeView.cs: We can't just assume the node has a font. Use the
13710         treeviews font if no node font is available.
13711
13712 2005-09-25  Jackson Harper  <jackson@ximian.com>
13713
13714         * TreeView.cs: Allow the scrollbars to be reset with negative
13715         values.
13716         - Don't add scrollbars to negative sized windows.
13717
13718 2005-09-23  Jackson Harper  <jackson@ximian.com>
13719
13720         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
13721         old Mono.Posix. Also remove some stray code that shouldn't have
13722         been committed.
13723
13724 2005-09-23  Jackson Harper  <jackson@ximian.com>
13725
13726         * TreeView.cs: Attempt at proper sizing of the horizontal
13727         scrollbar. Also don't resize the scrollbars unless they are
13728         visible.
13729
13730 2005-09-23  Jackson Harper  <jackson@ximian.com>
13731
13732         * TreeView.cs: We don't need to expand the invalid area when the
13733         selection changes, as this is all drawn in the node's bounding
13734         box. The area needs to be expanded (previous typo was contracting
13735         it) when the focus rect moves.
13736
13737 2005-09-23  Jackson Harper  <jackson@ximian.com>
13738
13739         * TreeView.cs: Display the selection box under the correct
13740         circumstances. We were rendering white text with no selection box
13741         before.
13742
13743 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
13744
13745         * TextControl.cs(Split): Now updates selection start/end if it points 
13746           into a line that's being split. Fixes a FIXME and bug #75258
13747
13748 2005-09-23  Jackson Harper  <jackson@ximian.com>
13749
13750         * Binding.cs:
13751         * ListControl.cs: Don't use the path when retrieving binding
13752         managers from the binding context. My bat sense tells me that the
13753         path is only used on insertion.
13754
13755 2005-09-22  Jackson Harper  <jackson@ximian.com>
13756
13757         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
13758
13759 2005-09-22  Jackson Harper  <jackson@ximian.com>
13760
13761         * Splitter.cs: There are special cursors used for splitting.
13762         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
13763
13764 2005-09-22  Jackson Harper  <jackson@ximian.com>
13765
13766         * Splitter.cs: Change the cursor appropriately when the splitter
13767         is moused over, so the user actually knows there is a splitter
13768         there.
13769
13770 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13771
13772        * Label.cs : Fix ToString method to give same output as MS.NET
13773
13774 2005-09-22  Jackson Harper  <jackson@ximian.com>
13775
13776         * TreeView.cs: Create the scrollbars when the handle is created
13777         and add them right away, just make them invisble. Also account for
13778         the window being shrunk vertically to the point that the vert
13779         scrollbar needs to be added.
13780         - Remove some 0.5 adjustments to get around anti aliasing issues.
13781         
13782 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
13783          
13784         * MainMenu.cs: Fixes default value
13785         * MenuItem.cs: Fixes default value
13786
13787 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
13788
13789         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
13790
13791 2005-09-21  Jackson Harper  <jackson@ximian.com>
13792
13793         * Control.cs: Don't try to set the border style on the window if
13794         it hasn't been created. When the window is created the border
13795         style will be used.
13796
13797 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13798
13799         * Control.cs (Update): Don't call XplatUI if we don't have a
13800           window handle yet
13801
13802 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13803
13804         * ContainerControl.cs: Instead of throwing an exception, print
13805           a one-time warning about Validate not being implemented
13806         * XplatUIWin32.cs: Removed debug output
13807
13808 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13809
13810         * Control.cs: Only set XplatUI background if we expect the windowing
13811           system to handle the background. This stops controls that draw their
13812           own background from flickering
13813
13814         * XplatUIX11.cs: Support custom visuals and colormaps for window 
13815           creation. This allows, amongst other things, using MWF X11 windows 
13816           with OpenGL.
13817
13818 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13819
13820         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
13821           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
13822           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
13823           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
13824           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
13825           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
13826           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
13827           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
13828           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
13829           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
13830           GridColumnStylesCollection.cs, 
13831           IDataGridColumnStyleEditingNotificationService.cs,
13832           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
13833           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
13834           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
13835           TreeNodeCollection.cs, AmbientProperties.cs, 
13836           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13837           DataObject.cs, ErrorProvider.cs, Splitter.cs,
13838           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
13839           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
13840           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
13841           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
13842           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
13843           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
13844           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
13845           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
13846           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
13847           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
13848           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
13849           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
13850           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
13851           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
13852           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
13853           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
13854           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
13855           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
13856           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
13857           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
13858           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
13859           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
13860           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
13861           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
13862           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
13863           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
13864           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
13865           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
13866           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
13867           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
13868           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
13869           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
13870           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
13871           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
13872           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
13873
13874 2005-09-21  Jackson Harper  <jackson@ximian.com>
13875
13876         * TreeNode.cs: Call Before/After Expand not Collapse when
13877         expanding.
13878
13879 2005-09-20  Jackson Harper  <jackson@ximian.com>
13880         
13881         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
13882
13883 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13884          
13885         * ListViewItem.cs:
13886                 - Fixes bug 76120
13887                 - Fixes proper storing of subitems
13888                 - Fixes not updated items
13889
13890 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
13891
13892         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
13893           things if our window handle isn't created yet. Also disabled 
13894           debug for TextBoxBase
13895
13896 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
13897
13898         * MenuAPI.cs: Remove filtering of events to allow menu usage
13899
13900 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13901
13902         * Cursor.cs: Allow null to be passed to Cursor.Current.
13903
13904 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
13905
13906         * ThemeWin32Classic.cs:
13907           - Change some private methods/fields to protected virtual so that 
13908             they can be accessed and overriden in derived classes
13909           - First refactoring of some methods. Derived themes now don't 
13910             need to duplicate the complete code from ThemeWin32Classic
13911         * ThemeNice.cs:
13912           - Added nice StatusBar
13913           - Derive from ThemeWin32Classic and not Theme
13914           - Removed duplicate ThemeWin32Classic code
13915
13916 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13917
13918         * Control.cs (ControlCollection.Add): If the value null is passed
13919         the control is ignored. 
13920
13921         Optimize this loop.
13922
13923 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
13924
13925         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
13926           PostQuitMessage state.
13927         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
13928
13929 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
13930
13931         * Application.cs: Our constructor will never get called, move 
13932           initialization to fields; fixes bug #75933
13933
13934 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13935
13936         * FileDialog.cs :
13937                 - Allow files to be selected properly using file name
13938                 combo box.
13939                 - Add ability to change diretory (absolute / relative)
13940                 using file name combo box.
13941
13942 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13943          
13944         * ListBox.cs: 
13945                 - Fixes Multicolumn listboxes item wrong calculations
13946                 - Allows to click when only one item is in the listbox
13947                 - Fixes crash when no items using keyboard navigation
13948
13949 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
13950
13951         * ComboBox.cs: Reverted almost everything from the latest patch which
13952           broke ComboBox
13953
13954 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
13955         
13956         * ToolTip.cs:
13957                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
13958         * ComboBox.cs:
13959                 - When DropDownStyle is Simple, it does not show scrollbar 
13960                 to the last item of the list.
13961                 - When DropDownStyle is Simple, it crashed when the list was 
13962                 scrolled down with the down cursor key.
13963                 - Fixed a bug that when DropDownStyle is DropDownList, the 
13964                 selected item was not shown.
13965                 - The position of the selected item was not preserved when 
13966                 the next dropdown happened.
13967         * ThemeWin32Classic.cs:
13968                 - Items were wrapped at the right end.
13969         * CheckedListBox.cs:
13970                 - Fixed Add method
13971         * ListBox.cs:
13972                 - Items should be fully shown.
13973                 - When resizing and vertical scrollbar disappeared, the item 
13974                 of index 0 should be on the top of the list.
13975                 - GetItemRectangle should consider the size of ver. scrollbar
13976         * StatusBar.cs:
13977                 - SizingGrip area should not be allocated when it is not 
13978                 displayed.
13979                 - Now it reflects MinWidth of the containing panel and 
13980                 fixed a crash that happens when its width becomes so small.
13981
13982 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13983
13984         * CheckedListBox.cs: Fixes bug 76028
13985         * ListBox.cs: Fixes bug 76028
13986
13987 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13988
13989         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
13990         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
13991
13992 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
13993
13994         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
13995
13996 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13997
13998         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
13999
14000 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
14001
14002         * IRootGridEntry.cs: Added
14003         * PropertyGridCommands.cs: Added
14004         * PropertiesTab.cs: Added missing methods and property
14005         * PropertyGridView.cs: Made class internal
14006         * PropertyGridTextBox.cs: Made class internal
14007
14008 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14009
14010         * MimeIcon.cs: Try to check some other environment variables
14011           if "DESKTOP_SESSION" returns "default"
14012
14013 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14014
14015         * ThemeNice.cs: Corrected background colors (e.g. menus)
14016         * ColorDialog.cs: Use correct background colors for controls
14017
14018 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14019
14020         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
14021
14022 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
14023
14024         * RichTextBox.cs: Added initial implementation
14025         * lang.cs: Removed. Was accidentally checked in long time ago
14026         * TODO: Removed. Contents were obsolete
14027
14028 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
14029                                                                                 
14030         * PropertiesTab.cs : Added
14031
14032 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
14033                                                                                 
14034         * PropertyGrid.cs : Update
14035         * PropertyGridView.cs : Update
14036         * System.Windows.Forms.resx : Added images and strings
14037
14038 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
14039
14040         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
14041  
14042 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
14043
14044         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
14045           a busy loop right after the Ungrab the X11 display is otherwise 
14046           blocked
14047
14048 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
14049
14050         * ThemeWin32Classic.cs: Optimise the use of clipping
14051
14052 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
14053
14054         * DataGrid.cs: fixes recursion bug
14055
14056 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
14057
14058         * ThemeNice.cs: 
14059           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
14060           - Cleanup
14061
14062 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
14063
14064         * ThemeNice.cs: Draw nice ProgressBars
14065
14066 2005-09-01  Miguel de Icaza  <miguel@novell.com>
14067
14068         * VScrollBar.cs: Another buglet found by Aaron's tool. 
14069
14070         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
14071         bug finder.
14072
14073 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
14074
14075         * ThemeNice.cs:
14076           - Added nicer menu drawing
14077           - Updated DrawTab
14078           - some refactoring
14079
14080 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
14081
14082         * CreateParams.cs (ToString): Made output match MS
14083         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
14084             handle is already created (to avoid forcing window creation)
14085         * XplatUIX11.cs: Set window text to caption after creating window,
14086           in case Text was set before window was created
14087         * Form.cs: Use this.Text instead of a static string as caption
14088
14089 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
14090
14091         * NotifyIcon.cs: Don't set the window to visible; this screws
14092           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
14093           OnPaint without a bitmap)
14094         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
14095           happen very often anyway; we could add the check to the WM_PAINT 
14096           event generation code
14097
14098 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
14099
14100         * NotifyIcon.cs: Fill the icon area with a background color, to 
14101           avoid 'residue' when transparent icons are drawn
14102         * XplatUIX11.cs:
14103           - Handle whole_window == client_window when destroying windows
14104           - SystrayAdd(): Set client_window to whole_window value to
14105             get mouse and other events passed to NotifyIcon
14106
14107 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
14108
14109         * Form.cs: Set proper default for Opacity property
14110         * NotifyIcon.cs:
14111           - ShowSystray(): Don't bother creating telling the OS
14112             about the systray item if no icon is provided
14113           - Now handles WM_NCPAINT message to deal with whole/client window
14114             split
14115           - Create window as visible to not get caught by Expose optimization
14116         * Hwnd.cs: Removed debug message
14117         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
14118           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
14119             PaintEventStart/End to use new client argument
14120         * TextBoxBase.cs:
14121           - Commented out debug messages
14122           - Switched PaintEventStart/End to use new client argument
14123         * XplatUI.cs: Added client window bool to PaintEventStart()/
14124           PaintEventEnd() calls, to support drawing in non-client areas
14125         * XplatUIDriver.cs: 
14126           - Added client window bool to PaintEventStart()/PaintEventEnd() 
14127             calls, to support drawing in non-client areas
14128           - Added conditional compile to allow using MWF BeginInvoke 
14129             on MS runtime
14130         * XplatUIX11.cs:
14131           - Added some conditional debug output
14132           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
14133             whole/client window split
14134           - Implemented handling of client argument to PaintEventStart()/End()
14135         * Control.cs:
14136           - Throw exception if BeginInvoke() is called and the window handle
14137             or one of the window's parent handles is not created
14138           - Added conditional compile to allow using MWF BeginInvoke on
14139             MS runtime
14140           - get_Parent(): Only sets parent if handle is created. This avoids
14141             forcing window handle creation when parent is set.
14142           - Now fires Layout and Parent changed events in proper order
14143           - Switched to use Handle instead of window.Handle for Z-Order setting,
14144             the get_Parent() patch above causes us to possibly get null for 'window'
14145           - Implemented handling of client argument to PaintEventStart()/End()
14146           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
14147             default handling)
14148           - Now sends a Refresh() to all child windows when Refresh() is called
14149
14150 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
14151
14152         * Form.cs: Added (non-functional) Opacity property
14153         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
14154
14155 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
14156         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
14157           use export MONO_THEME=nice to activate it.
14158           Currently supported controls:
14159           - Button
14160           - ComboBox
14161           - ScrollBar
14162           - TabControl (TabAlignment.Top only, other will follow)
14163         * ThemeEngine.cs: Add theme nice
14164         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
14165           if enabled
14166
14167 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
14168
14169         * Splitter.cs: Resize docked control and its neighbor.
14170
14171 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14172         -- Making Windows with Menus layout correctly --
14173         * Form.cs : The first leg of the fix
14174                 Menu setter - adjust Client Size as needed to make space for the menu
14175                 SetClientSizeCore - doesn't call base version to be able to pass the 
14176                         menu handle to XplatUI.CalculateWindowRect
14177         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
14178         * XplatUIX11.cs: The critical second leg of the fix
14179                 GetWindowPos needs to use a recalculated client_rect
14180                 so that resizing the window doesn't break layout of child controls. 
14181                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
14182                 Lots of \t\n killed
14183
14184 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
14185
14186         * Label.cs: Now properly recalculates width and height on Font and Text
14187           changes if AutoSize is set
14188
14189 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14190         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
14191
14192 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
14193
14194         * ImageList.cs: Makes ToString method compatible with MS
14195
14196 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
14197
14198         * MenuAPI.cs: fixes bug 75716
14199
14200 2005-08-11 Umadevi S <sumadevi@novell.com>
14201         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
14202
14203 2005-08-11 Umadevi S <sumadevi@novell.com>
14204         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
14205
14206 2005-08-10  Umadevi S <sumadevi@novell.com>
14207         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
14208
14209 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
14210
14211         * Menu.cs: fixes bug 75700
14212         * MenuAPI.cs: fixes navigation issues
14213
14214 2005-08-09  Umadevi S <sumadevi@novell.com>
14215         * CheckedListBox.cs - simple fix for GetItemChecked.
14216
14217 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
14218
14219         * ComboBox.cs: Serveral fixes
14220         * ListBox.cs: Serveral fixes
14221
14222 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14223
14224         * ComboBox.cs: Fixes FindString methods and GetItemHeight
14225         * ListBox.cs: Fixes FindString methods
14226
14227 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14228
14229         * DataGrid.cs: fixes bugs exposed by new tests
14230
14231 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
14232
14233         * Mime.cs: Compile Mono assembly references only if compiling
14234           with Mono (Allows to build with VS.Net again)
14235
14236 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
14237
14238         * Control.cs (PaintControlBackground): Draw background image
14239         corrrectly.
14240         (CheckForIllegalCrossThreadCalls): Stubbed.
14241         
14242         * Form.cs (OnCreateControl): Center when should be centered.
14243         
14244         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
14245
14246 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
14247
14248         * Binding.cs: Binding to properties should be case unsensitive
14249
14250 2005-07-18 vlindos@nucleusys.com
14251
14252         * DataGrid.cs: fixes setmember order
14253
14254 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
14255
14256         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
14257         * FileDialog.cs: FileDialog is now resizable and uses the new
14258           MimeIconEngine
14259
14260 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
14261
14262         * DataGridTextBoxColumn.cs: default value
14263         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
14264         * GridTableStylesCollection.cs: fixes checking MappingName
14265         * DataGridDrawingLogic.cs: fixes drawing logic issues
14266         * DataSourceHelper.cs: rewritten to make compatible with more data sources
14267         * DataGrid.cs: fixes    
14268
14269 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
14270
14271         * MimeGenerated.cs: Use case sensitive comparer for
14272           NameValueCollections
14273
14274 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
14275
14276         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
14277         * ThemeWin32Classic.cs: bug fixes, code refactoring
14278         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
14279         * DataGrid.cs: bug fixes, code refactoring
14280         * DataGridTextBox.cs: bug fixes, code refactoring
14281         * DataGridColumnStyle.cs:  bug fixes, code refactoring
14282         * Theme.cs:  bug fixes, code refactoring
14283
14284 2005-07-01  Peter Bartok  <pbartok@novell.com> 
14285
14286         * TextControl.cs: Quick fix for the reported crash on ColorDialog
14287           and other text box usage
14288
14289 2005-07-01  Jackson Harper  <jackson@ximian.com>
14290
14291         * TabControl.cs: Make sure the bottom of the tab covers the pages
14292         border.
14293
14294 2005-06-30  Peter Bartok  <pbartok@novell.com> 
14295
14296         * Form.cs (ShowDialog): Assign owner of the dialog
14297         * TextBoxBase.cs: Always refresh caret size when deleting, caret
14298           might have been moved to a tag with different height
14299
14300 2005-06-30  Jackson Harper  <jackson@ximian.com>
14301
14302         * Form.cs: Don't create an infinite loop when setting focus
14303         * MenuItem.cs: Don't dirty the parents if we don't have any
14304
14305 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
14306
14307         * LibSupport.cs: Rename
14308
14309 2005-06-29  Peter Bartok  <pbartok@novell.com>
14310
14311         * TextBoxBase.cs: Re-align caret after deleting a character
14312         * TextControl.cs:
14313           - DeleteChars(): Ensure that tag covers the provided position
14314           - StreamLine(): Drop reference for dropped tag
14315
14316 2005-06-29  Peter Bartok  <pbartok@novell.com> 
14317
14318         * TextControl.cs: 
14319           - Selections now work properly, anchoring at the initial location
14320             and properly extending in either direction (SetSelectionToCaret(),
14321             SetSelectionStart() and SetSelectionEnd())
14322           - No longer redraws the whole control on selection change, now
14323             calculates delta between previous and new selection and only
14324             invalidates/redraws that area
14325           - Fixed FindPos() math off-by-one errors
14326           - Changed DeleteChars() to verify the provided tag covers the
14327             provided position, selections may have a tag that doesn't cover
14328             the position if the selection is at a tag border
14329           - Fixed off-by-one errors in DeleteChars()
14330           - Added missing streamlining check in DeleteChars() to remove
14331             zero-length tags
14332           - Implemented Invalidate() method, now properly calculates exposures
14333             between two given lines/positions
14334           - Implemented SetSelection()
14335           - Obsoleted and removed FixupSelection()
14336           - Improved RecalculateDocument() logic, removing code duplication
14337
14338 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14339
14340         * LibSupport.cs: changes to match different input/output arguments.
14341
14342 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14343
14344         * LibSupport.cs: added libsupport.so init routine.
14345
14346 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
14347         
14348         * ControlBindingsCollection.cs
14349                 - Throws an exception on null datasource when adding
14350                 - Checks for duplicated bindings when adding
14351
14352 2005-06-28  Jackson Harper  <jackson@ximian.com>
14353
14354         * TreeView.cs (OnKeyDown): Support left and right properly
14355         (navigates as well as expanding and collapsing.
14356         - Add support for Multiply, this expands all the selected nodes
14357         children.
14358         - Fix some tabbing.
14359
14360 2005-06-28  Jackson Harper  <jackson@ximian.com>
14361
14362         * TreeView.cs: Implement keyboard navigation, currently supports,
14363         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
14364         support for toggling checkboxes with the space bar.
14365
14366 2005-06-28  Jackson Harper  <jackson@ximian.com>
14367
14368         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
14369         tree.
14370
14371 2005-06-28  Jackson Harper  <jackson@ximian.com>
14372
14373         * TreeView.cs: Add missing event.
14374
14375 2005-06-27  Peter Bartok  <pbartok@novell.com> 
14376
14377         * TextControl.cs:
14378           - Made line ending size configurable (now allows for counting 
14379             lineendings as \n or \r\n)
14380           - Added margin to viewport to keep caret visible on right side
14381           - Fixed translation routines for line/pos to documentpos to consider
14382             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
14383           - Fixed some line-endings to be unix style
14384           - Fixed Document.FormatText to perform it's calculations 1-based
14385           - Added descriptions for a few methods that might otherwise get 
14386             used wrong
14387           - Added NOTE section with some basic conventions to remember at 
14388             the top of the file
14389           - Major fixup for RichTextBox selection drawing:
14390             * Fixed crashes when multiple tags on a single line were selected
14391             * fixed selection box drawing not overlaying text
14392             * fixed bogus offset calculation for tags not starting at index 1
14393             * Switched behaviour from using multiple Substrings of a 
14394               StringBuilder.ToString() to using multiple 
14395               StringBuilder.ToString(start, length) statements, hoping this is
14396               faster (kept original version commented out in the code, in case
14397               original version was faster)
14398         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
14399           alignment != Left
14400         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
14401           call it as well
14402
14403 2005-06-27  Jackson Harper  <jackson@ximian.com>
14404
14405         * TabControl.cs: Move to the left and right with the arrow
14406         keys. These keys don't cycle beyond first and last like
14407         tab. Refresh all the tabs when scrolling them to the left or
14408         right.
14409
14410 2005-06-27  Jackson Harper  <jackson@ximian.com>
14411
14412         * TabControl.cs:
14413           - ToString: Added method
14414           - CreateParams: Remove TODO and comment
14415           - OnKeyDown: Cycle through bounds properly.
14416           - SelectedIndex: Scroll to the right or left if we need to
14417           display the newly selected tab.
14418
14419 2005-06-23  Jackson Harper  <jackson@ximian.com>
14420
14421         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
14422         set.
14423
14424 2005-06-23  Jackson Harper  <jackson@ximian.com>
14425
14426         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
14427         CTRL-SHIFT-TAB, and HOME, END are there any others?
14428
14429 2005-06-23  Jackson Harper  <jackson@ximian.com>
14430
14431         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
14432
14433 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14434         
14435         * DataGridTextBoxColumn.cs: fixes and enhancements
14436         * ThemeWin32Classic.cs: fixes and enhancements
14437         * DataGridBoolColumn.cs:  fixes and enhancements
14438         * DataGridDrawingLogic.cs:  fixes and enhancements
14439         * CurrencyManager.cs: fixes and enhancements
14440         * DataGrid.cs: fixes and enhancements
14441         * DataGridColumnStyle.cs:  fixes and enhancements
14442
14443 2005-06-22  Jackson Harper  <jackson@ximian.com>
14444
14445         * TabControl.cs: Add some missing methods that just call into the
14446         base. Make the TabPageCollection's IList interface behave in the
14447         same manner as the MS implementation.
14448
14449 2005-06-22  Peter Bartok  <pbartok@novell.com> 
14450
14451         * TextControl.cs: Added sanity check
14452         * TextBoxBase.cs: 
14453           - Fixed wrapping behaviour, don't set wrap on single line controls
14454             (this fixes the breakage of colordialog introduced in an earlier
14455              checkin)
14456           - Added rudimentary support for autoscrolling right-aligned controls
14457             (still needs fixing, also, center alignment scroll is missing)
14458
14459 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14460         
14461         * ScrollBar.cs: Fixes thumbpos on Maximum values
14462
14463 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
14464         
14465         * PropertyGridView.cs: Pass context information to UITypeEditors 
14466
14467 2005-06-21  Peter Bartok  <pbartok@novell.com> 
14468
14469         * TextBoxBase.cs:
14470           - Now calling PositionCaret with absolute space coordinates
14471           - Enabled vertical scrolling
14472           - Better tracking of scrollbar changes, tied into WidthChange
14473             event
14474           - Improved cursor tracking
14475           - Removed debug output
14476         * TextControl.cs:
14477           - PositionCaret coordinates are now works in absolute space, not 
14478             the canvas
14479           - Improved tracking of document size
14480           - Added events for width and height changes
14481
14482 2005-06-21  Peter Bartok  <pbartok@novell.com>
14483
14484         * Form.cs: Set focus to active control when form is activated
14485         * TextControl.cs: 
14486           - Added word-wrap functionality to RecalculateLine() 
14487           - Added some short function descriptions for VS.Net to aid in
14488             writing dependent controls
14489           - Added Caret property, returning the current coords of the caret
14490           - Added ViewPortWidth and ViewPortHeight properties
14491           - Added Wrap property
14492           - Added CaretMoved event
14493           - Removed some old debug code
14494           - Split() can now create soft splits
14495           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
14496           - Added method to format existing text
14497           - Fixed size/alignment calculations to use viewport
14498           - RecalculateDocument now can handle changing line-numbers while
14499             calculating lines
14500
14501         * TextBox.cs:
14502           - Added some wrap logic, we don't wrap if alignment is not left
14503           - Added casts for scrollbar var, base class switched types to
14504             also support RichTextBoxA
14505           - Implemented handling of scrollbar visibility flags
14506
14507         * TextBoxBase.cs:
14508           - Switched scrollbars type to RichTextBoxScrollBars to support
14509             RichTextBox
14510           - Added tracking of canvas width/height
14511           - Switched scrollbars to be not selectable (to keep focus on text)
14512           - Added central CalculateDocument() method to handle all redraw
14513             requirements
14514           - Added ReadOnly support
14515           - Added WordWrap support
14516           - Fixed handling of Enter key (we now treat it as a DialogKey)
14517           - Fixed caret positioning when h or v scroll is not zero
14518           - Fixed placing/generation of vertical scrollbar
14519           - Added CalculateScrollBars() method to allow updating scrollbar
14520             limits and visibility
14521           - Fixed handling of horizontal scroll
14522           - Added handling of vertical scroll
14523           - Implemented auto-'jump' when caret moves to close to a left or
14524             right border and there is text to be scrolled into view (currently
14525             there's the potential for a stack overflow, until a bug in
14526             scrollbar is fixed)
14527
14528 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
14529         
14530         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
14531
14532 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
14533
14534         * Mime.cs:
14535         - added inodes.
14536         - return application/x-zerosize for files with size zero
14537           (if no extension pattern matches).
14538         - check matches collection for strings too.
14539         - return only the first mime type if the name value
14540           collection has more than one mime type.
14541
14542 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
14543         
14544         * PropertyGrid.cs: Cleaned up some TODOs
14545         * PropertyGridView.cs: Added support for UITypeEditors
14546
14547 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14548         
14549         * DataGrid.cs: clears cached value
14550
14551 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14552
14553         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
14554         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
14555         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
14556         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
14557         
14558 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
14559
14560         * ThemeWin32Classic.cs: fixes colour
14561
14562 2005-06-15  Peter Bartok  <pbartok@novell.com>
14563
14564         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
14565         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
14566         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
14567         * Control.cs: Added some MWFCategory and MWFDescription attributes
14568         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
14569
14570 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
14571
14572         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
14573         usage
14574
14575 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
14576
14577         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
14578         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
14579         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
14580         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
14581         * DataGrid.cs: default datagrid settings for Default Styles, fixes
14582         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
14583
14584 2005-06-13  Jackson Harper  <jackson@ximian.com>
14585
14586         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
14587         isn't printed when the user enables dropping. (X11 does accept
14588         drops).
14589         
14590 2005-06-13  Jackson Harper  <jackson@ximian.com>
14591
14592         * TreeView.cs: Remove some TODOS.
14593
14594 2005-06-13  Jackson Harper  <jackson@ximian.com>
14595
14596         * Form.cs: Hook into the mdi framework.
14597         * MdiClient.cs: Use the base control collections add method so
14598         parents get setup correctly. Set the default back colour and dock
14599         style.
14600         * MdiChildContext.cs: New class, this bad actor handles an
14601         instance of an MDI window. Right now there is only basic
14602         support. You can drag, close, and resize windows. Minimize and
14603         Maximize are partially implemented.
14604
14605 2005-06-13  Jackson Harper  <jackson@ximian.com>
14606
14607         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
14608         freaky when both vals are negative. NOTE: There are probably other
14609         places in XplatUIX11 that this needs to be done.
14610
14611 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
14612
14613         * DataGrid.cs: implement missing methods, move KeyboardNavigation
14614         * DataGridColumnStyle.cs: fixes signature
14615
14616 2005-06-12  Jackson Harper  <jackson@ximian.com>
14617
14618         * XplatUIX11.cs: Use sizing cursors similar to the ones on
14619         windows.
14620
14621 2005-06-11  Jackson Harper  <jackson@ximian.com>
14622
14623         * StatusBarPanel.cs: Signature cleanups. Implement
14624         BeginInit/EndInit.
14625
14626 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
14627
14628         * DataGridTextBoxColumn.cs: Honors aligment
14629         * GridColumnStylesCollection.cs: Contains is case unsensitive
14630         * GridTableStylesCollection.cs: several fixes
14631         * DataGridTableStyle.cs: default column creation
14632         * DataGridDrawingLogic.cs: fixes
14633         * CurrencyManager.cs: ListName property
14634         * DataGrid.cs: multiple styles support
14635         * DataGridColumnStyle.cs: fixes
14636         
14637
14638 2005-06-10  Peter Bartok  <pbartok@novell.com>
14639
14640         * Control.cs(Select): Moved SetFocus call to avoid potential
14641           loops if controls change the active control when getting focus
14642         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
14643           the up/down buttons
14644
14645 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
14646
14647         * ImageListConverter.cs: Implemented
14648
14649 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14650
14651         * MonthCalendar.cs: Wired in NumericUpDown control for year
14652
14653 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14654
14655         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
14656           DoubleClick events, since they are not meant to be fired.
14657
14658 2005-06-09  Peter Bartok  <pbartok@novell.com>
14659
14660         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
14661           Jonathan's standalone controls into MWF, implemented missing
14662           events, attributes and methods; added xxxAccessible classes
14663         * AccessibleObject.cs: Made fields internal so other classes
14664           can change them if needed
14665
14666 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
14667
14668         * UpDownBase.cs: Complete implementation
14669         * NumericUpDown.cs: Complete implementation
14670         * DomainUpDown.cs: Complete implementation
14671
14672 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
14673
14674         * DataGridTextBoxColumn.cs: drawing fixes
14675         * DataGridCell.cs: fixes ToString method to match MSNet
14676         * DataGridTableStyle.cs: fixes
14677         * DataGridBoolColumn.cs: fixes, drawing
14678         * DataGridDrawingLogic.cs: fixes, new methods
14679         * DataGridTextBox.cs: Keyboard and fixes
14680         * DataGrid.cs:
14681                 - Keyboard navigation
14682                 - Scrolling fixes
14683                 - Row selection (single, multiple, deletion, etc)
14684                 - Lots of fixes
14685         
14686 2005-06-07  Jackson Harper  <jackson@ximian.com>
14687
14688         * ThemeWin32Classic.cs: Clear the background area when drawing
14689         buttons.
14690
14691 2005-06-06  Peter Bartok  <pbartok@novell.com>
14692
14693         * ImageListStreamer.cs: Fixed signature for GetData
14694         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
14695         * ComboBox.cs:
14696           - Added missing ChildAccessibleObject class
14697           - Added missing OnXXXFocus overrides, switched to using those
14698             instead of the event handler
14699         * Control.cs:
14700           - Added Parent property for ControlAccessibleObject
14701           - Fixed signatures
14702           - Fixed attributes
14703           - Added ResetBindings()
14704         * ListBindingConverter.cs: Implemented some methods
14705         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
14706         * ImageList.cs: Implemented basic handle scheme, removed TODOs
14707         * ContainerControl.cs: Fixed signature, now subscribing to the
14708           ControlRemoved event instead of overriding the handler, LAMESPEC
14709         * CurrencyManager.cs: Added missing attribute
14710         * MonthCalendar.cs: Added missing properties
14711
14712 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14713
14714         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
14715         
14716 2005-06-06  Gaurav Vaish and Ankit Jain
14717
14718         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
14719         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
14720         
14721 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14722
14723         * Control.cs: fixes CreateParams Width / Height.
14724
14725 2005-06-05  Peter Bartok  <pbartok@novell.com>
14726
14727         * Win32DnD.cs: Removed compilation warnings
14728
14729 2005-06-05  Peter Bartok  <pbartok@novell.com>
14730
14731         * Control.cs (CreateParams): Since we don't know if one of the
14732           properties we use is overridden, lets make sure if we fail accessing
14733           we continue with a backup plan
14734
14735 2005-06-05  Peter Bartok  <pbartok@novell.com>
14736
14737         * Win32DnD.cs:
14738           - Removed debug output
14739           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
14740             struct
14741           - Plugged resource leak
14742         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
14743           MS size
14744
14745 2005-06-05  Peter Bartok  <pbartok@novell.com>
14746
14747         * XplatUIWin32.cs: Removed DnD code
14748         * Win32DnD.cs: Implemented drop source and drop target functionality
14749
14750 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14751
14752         * UpDownBase.cs: remove duplicate addition of event, enable some code
14753         that was commented out.
14754         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
14755         Validate input when a key is pressed. It works fine now for every
14756         combination of Hexadecimal. Only missing some drawing love when sharing
14757         space with other controls.
14758
14759 2005-06-04  Peter Bartok  <pbartok@novell.com>
14760
14761         * Control.cs:
14762           - We need to pass a window for DragDrop, so enable callback events
14763           - Added DnD callback events when being a DragSource
14764         * XplatUI.cs (StartDrag): Added window handle argument
14765         * XplatUIDriver.cs (StartDrag): Added window handle argument
14766         * QueryContinueDragEventArgs: Made fields internally accessible so
14767           drivers can set them
14768         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
14769           can set them
14770
14771 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
14772
14773         * DataGridTextBoxColumn.cs: column text editing
14774         * DataGridTableStyle.cs: Respect columns styles created by the user
14775         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
14776         * DataGridBoolColumn.cs: bool column editing
14777         * DataGrid.cs: fixes to scrolling, properties, etc
14778         * DataGridTextBox.cs: handle keyboard
14779         * DataGridColumnStyle.cs: fixes
14780
14781 2005-06-02  Jackson Harper  <jackson@ximian.com>
14782
14783         * ImageListStreamer.cs: Somewhat broken implementation of
14784         GetObjectData. The RLE needs some work to match MS properly.
14785
14786 2005-06-02  Jackson Harper  <jackson@ximian.com>
14787
14788         * X11Dnd.cs: Attempting to keep at least one file in MWF
14789         monostyled.
14790
14791 2005-06-02  Peter Bartok  <pbartok@novell.com>
14792
14793         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
14794           that way
14795
14796 2005-06-02  Peter Bartok  <pbartok@novell.com>
14797
14798         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
14799         * XplatUI.cs: Added DoDragDrop() method
14800         * XplatUIDriver.cs: Added DoDragDrop() method
14801
14802 2005-06-02  Jackson Harper  <jackson@ximian.com>
14803
14804         * Splitter.cs: Implement BorderStyle.
14805
14806 2005-06-02  Jackson Harper  <jackson@ximian.com>
14807
14808         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
14809         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
14810         X11 using XDND.
14811
14812 2005-06-02  Peter Bartok  <pbartok@novell.com>
14813
14814         * DataObject.cs:
14815           - Added Data setter
14816           - Fixed broken insertion code for SetData, now also
14817             overwrites any existing entry of the same format name
14818         * Hwnd.cs: Added list of pointers that automatically gets
14819           freed when the window is disposed
14820         * XplatUI.cs: Call driver initialization method when loading
14821           a driver
14822         * Control.cs:
14823           - OnDragLeave takes EventArgs, not DragEventArgs
14824           - Added setting of WS_EX_ACCEPTFILES style when dropping is
14825             supported
14826           - Forces style update when drop state changes
14827         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
14828           not perfect since we cannot (yet) call the IDataObject.GetData()
14829           method, we keep getting 0x80004005 error, dunno why)
14830
14831 2005-06-02  Peter Bartok  <pbartok@novell.com>
14832
14833         * DragEventArgs.cs: Make fields internal so we can cache the
14834           object and re-set the fields from XplatUI
14835
14836 2005-06-02  Jackson Harper  <jackson@ximian.com>
14837
14838         * Control.cs: Add some internal methods so the DnD subsystem can
14839         raise DnD events. Also call into the driver when AllowDrop is set.
14840         * XplatUI.cs:
14841         * XplatUIDriver.cs: New method for setting whether or not a window
14842         is allowed to accept drag and drop messages.
14843                 
14844 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
14845         
14846         * ScrollBar.cs: Make sure that values sent in Scroll events
14847         are always between Maximum and Minimum.
14848
14849 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
14850
14851         * Menu.cs: Call MenuChanged when menuitem visibility has been
14852         changed.
14853         * MenuItem.cs: Rebuild menu when item is (not) visible.
14854         * MainMenu.cs: MainMenu has special MenuChanged.
14855         * Theme.cs: Caption and FrameBorderSize are not fixed.
14856         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
14857         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
14858         * XplatUIX11.cs,
14859         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
14860         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
14861
14862 2005-05-30  Jackson Harper  <jackson@ximian.com>
14863
14864         * DataFormat.cs: We can't statically initialize this stuff because
14865         it calls into the xplatui and could create a loop. So we lazy init
14866         it.
14867
14868 2005-05-28  Jackson Harper  <jackson@ximian.com>
14869
14870         * Control.cs: Proper implementation of Product(Name/Version).
14871
14872 2005-05-27  Jackson Harper  <jackson@ximian.com>
14873
14874         * DataObject.cs: Dont crash if no data is found.
14875
14876 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
14877         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
14878                 as per status page, guessing it should be set to true
14879
14880 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
14881
14882         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
14883         * DataGridTableStyle.cs: set proper formatting text, def header text
14884         * ThemeWin32Classic.cs: new themable paramaters
14885         * DataGridBoolColumn.cs: paint check box, get data, fixes
14886         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
14887         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
14888         * DataGridColumnStyle.cs: fixes
14889         * Theme.cs: new themable paramaters
14890                 
14891 2005-05-26  Peter Bartok  <pbartok@novell.com>
14892
14893         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
14894
14895 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14896         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
14897
14898 2005-05-24  Peter Bartok  <pbartok@novell.com>
14899
14900         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
14901           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
14902           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
14903           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
14904           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
14905           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
14906           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
14907           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
14908           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
14909           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
14910           missing attributes, etc
14911         * DataGridPreferredColumnWidthTypeConverter.cs: Added
14912
14913 2005-05-24  Peter Bartok  <pbartok@novell.com>
14914
14915         * Help.cs: Added, implemented trivial functions, throws up MessageBox
14916           when user tries to get help
14917         * DataObject.cs, DataFormats.cs, LinkArea.cs,
14918           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
14919           to suppress warnings
14920         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
14921           avoid unreachable code warning
14922
14923 2005-05-20  Peter Bartok  <pbartok@novell.com>
14924
14925         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
14926
14927 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14928
14929         * DataGridTextBoxColumn.cs: Basic painting methods
14930         * DataGridTableStyle.cs: Set table style in the column
14931         * ThemeWin32Classic.cs: Use Theme for colors
14932         * DataGridDrawingLogic.cs: Implement more drawing
14933         * DataGrid.cs: drawing, theming, enhacements, fixes
14934         * DataGridColumnStyle.cs: fixes, drawing
14935         * Theme.cs: theming for Datagrid
14936
14937 2005-05-20  Peter Bartok  <pbartok@novell.com>
14938
14939         * Cursor.cs: Implemented GetObjectData() method
14940
14941 2005-05-20  Peter Bartok  <pbartok@novell.com>
14942
14943         * Cursors.cs: Added setting of cursor name
14944         * Cursor.cs:
14945           - Implemented constructors
14946           - Implemented Draw and DrawStretched
14947           - Implemented Current property
14948           - Implemented == and != operators
14949           - Implemented Dispose()
14950           - Implemented ToString
14951           - Added missing attributes
14952         * XplatUIX11.cs:
14953           - Added missing reset for OverrideCursor when DoEvents is called
14954           - Fixed creation of cursor, logic was wrong
14955         * XplatUIWin32.cs:
14956           - Added missing reset for OverrideCursor when DoEvents is called
14957           - Fixed creation of cursor, bit arrays were swapped
14958         * Clipboard.cs: Removed obsolete MonoTODO attribute
14959
14960 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14961
14962         * ComboBox.cs: fixes OnSelectedItemChanged
14963         * ControlBindingsCollection.cs: fixes item range check
14964
14965 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14966
14967         * UpDownBase.cs:
14968                 - Calc preferred height properly
14969                 - Implement missing properties
14970                 
14971         * NumericUpDown.cs: Implement missing events
14972
14973 2005-05-19  Jackson Harper  <jackson@ximian.com>
14974
14975         * TabControl.cs: New method that resizes the tab pages before
14976         redrawing them. This as needed as the control is double buffered
14977         and sizing will not be recalculated unless ResizeTabPages is
14978         called.
14979         * TabPage.cs: Set base.Text instead of Text in the constructor so
14980         that UpdateOwner does not get called. Use the new Redraw method of
14981         TabControl instead of Refresh so the sizing is recalculated.
14982         * ThemeWin32Classic.cs: Draw the text for button tabs.
14983
14984 2005-05-19  Jackson Harper  <jackson@ximian.com>
14985
14986         * Control.cs: Paint control background images. Fix typo where
14987         PaintControlBackground was not getting called correctly.
14988
14989 2005-05-19  Peter Bartok  <pbartok@novell.com>
14990
14991         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
14992           I can investigate, apparently I broke FileDialog
14993
14994 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
14995
14996         * AxHost.cs: Some simple properties.
14997         * Control.cs: window must be accessible after ctor.
14998         * Form.cs: Added TransparencyKey property.
14999         * TextBoxBase.cs: Implemented Clear. Text property can be null.
15000         * XplatUIWin32.cs: SetBorderStyle implemented.
15001
15002 2005-05-18  Peter Bartok  <pbartok@novell.com>
15003
15004         * DataObject.cs: Entries are not global but particular to the
15005           DataObject, now it behaves that way
15006         * XplatUIWin32.cs: Implemented Clipboard methods
15007         * Clipboard.cs: Implemented
15008         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
15009         * XplatUIOSX.cs: Updated to final clipboard prototypes
15010         * XplatUIX11.cs: Implemented Clipboard methods
15011         * XplatUIDriver.cs: Updated to final clipboard prototypes
15012         * XplatUIStructs.cs:
15013           - Added BITMAPINFOHEADER struct
15014           - Added ClipboardFormats enum
15015         * X11Structs.cs:
15016           - Added ClipboardStruct
15017           - Added Atom enum items for clipboard types
15018           - Fixed atom types for Selection event structures
15019         * DataFormats.cs:
15020           - Added internal properties and methods for drivers to enumerate
15021             all known formats
15022           - Switched initialization method to allow drivers to assign their
15023             own IDs even for the MS predefined clipboard IDs
15024         * XplatUI.cs: Updated to final clipboard interface
15025
15026 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
15027         * PropertyGridView.cs: Fixed compiler warnings.
15028
15029 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
15030         * PropertyGrid.cs: Added some event calls
15031         * PropertyGridView.cs: Change drawing code to use double buffering
15032         * PropertyGridTextBox.cs: Changed Text property name
15033         * GridItem.cs: Added Bounds property.
15034         * GridEntry.cs: Added Bounds property.
15035
15036 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
15037
15038         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
15039         since GetType() may not return the correct type if the object is
15040         a remoting proxy.
15041
15042 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
15043
15044         * TreeNodeCollection.cs: fixes get/set item ranges
15045         
15046 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
15047
15048         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
15049                 
15050 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
15051
15052         * ComboBox.cs: Fix item range comparation
15053         * ListView.cs: Fix item range comparation
15054
15055 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
15056
15057         * FontDialog.cs:
15058           - Clear example panel when OnPaint is called
15059           - Better solution for displaying the example panel text
15060           - Select default indexes in the ListBoxes
15061
15062 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
15063
15064         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
15065
15066 2005-05-11  Peter Bartok  <pbartok@novell.com>
15067
15068         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
15069         * SelectionRangeConverter.cs: Implemented
15070         * PropertyGrid.cs: Fixed attribute value
15071         * Control.cs:
15072           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
15073           - Added Sebastien Pouliot's CAS Stack Propagation fixes
15074         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
15075           that's common to all drivers. First methods to go there are
15076           Sebastien Pouliot's CAS Stack Propagation helper methods
15077         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
15078           Sebastien Pouliot for CAS Stack Propagation
15079
15080 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
15081
15082         * OSXStructs.cs:
15083           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
15084
15085 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
15086
15087         * DataGridTextBoxColumn.cs: fixed some members
15088         * GridColumnStylesCollection.cs: indexed column is case insensitive
15089         * DataGridTableStyle.cs: fixes
15090         * ThemeWin32Classic.cs: add new theme parameter
15091         * Theme.cs: add new theme parameter
15092         * DataGridDrawingLogic.cs: Datagrid's drawing logic
15093         * DataGrid.cs: fixes, new internal properties, etc.
15094         * DataGridColumnStyle.cs: allows to set grid value
15095         *
15096
15097 2005-05-10  Peter Bartok  <pbartok@novell.com>
15098
15099         * AccessibleObject.cs:
15100           - Removed MonoTODO attribute on help, method is correct
15101           - Fixed Bounds property
15102         * AxHost.cs: Moved MonoTODO
15103         * ButtonBase.cs: Now setting AccessibleObject properties
15104         * RadioButton.cs: Setting proper AccessibleObject role
15105         * CheckBox.cs: Setting proper AccessibleObject role
15106         * ControlBindingsCollection.cs: Added properties, methods and attributes
15107         * DataFormats.cs: Fixed awkward internal API, and changed to enable
15108           userdefined DataFormats.Format items as well
15109         * ListControl.cs: Removed data_member from the public eye
15110         * OpenFileDialog.cs:
15111           - Made class sealed
15112           - Added missing attributes
15113         * SaveFileDialog.cs: Added missing attributes
15114         * ImageListStreamer.cs: Fixed code that caused warnings
15115         * LinkLabel.cs: Removed unreachable code
15116         * TreeView.cs: Fixed code that caused warnings
15117         * PropertyGridView.cs: Fixed code that caused warnings
15118         * GridColumnStylesCollection.cs: Added missing attributes
15119         * GridTableStylesCollection: Added missing attribute
15120         * PropertyManager: Added .ctor
15121         * SecurityIDType: Added
15122         * DataObject.cs: Implemented class
15123         * LinkArea.cs: Added missing attribute
15124
15125 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
15126
15127         * RadioButton.cs: call base method to allow to fire OnClick event
15128         * UpDownBase.cs: OnMouseUp call base method
15129         * CheckedListBox.cs: call base method before returning
15130         * TrackBar.cs: call base method before returning
15131         
15132
15133 2005-05-10  Peter Bartok  <pbartok@novell.com>
15134
15135         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
15136           for messages
15137
15138 2005-05-10  Peter Bartok  <pbartok@novell.com>
15139
15140         * DataFormats.cs: Implemented
15141         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
15142           XplatUIX11.cs: Added Clipboard APIs
15143         * XplatUIWin32.cs: Implemented Clipboard APIs
15144         * FolderBrowserDialog.cs: Added missing event, attributes
15145
15146 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
15147
15148         * CheckBox.cs: call base method to allow to fire OnClick event
15149
15150 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
15151
15152         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
15153
15154 2005-05-06  Peter Bartok  <pbartok@novell.com>
15155
15156         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
15157         * Screen.cs: Implemented
15158         * HelpNavigator.cs: Added
15159         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
15160           property
15161         * HelpProvider.cs: Implemented all we can do until we have a CHM
15162           help library (which means that "What's This" does work now)
15163
15164 2005-05-06  Jackson Harper  <jackson@ximian.com>
15165
15166         * XplatUIX11.cs: Fix waking up the main loop.
15167                 
15168 2005-05-05  Peter Bartok  <pbartok@novell.com>
15169
15170         * XplatUI.cs: Updated revision
15171         * Form.cs: Removed enless loop
15172         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
15173         * Label.cs (OnPaint): Added call to base.OnPaint()
15174         * ToolTip.cs: Made ToolTipWindow reusable for other controls
15175         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
15176         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
15177         * AxHost.cs: Added
15178         * ButtonBase.cs: Moved base.OnPaint() call to end of method
15179         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
15180           to ToolTip.ToolTipWindow for drawing and size methods; this allows
15181           reuse of ToolTipWindow by other controls
15182         * SizeGrip.cs: Moved base.OnPaint() call to end of method
15183         * XplatUIX11.cs: Now clipping drawing area (experimental)
15184         * PictureBox.cs: Moved base.OnPaint() call to end of method
15185         * Theme.cs: Fixed ToolTip abstracts to match new format
15186         * ErrorProvider.cs: Implemented
15187
15188 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
15189
15190         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
15191         * LinkLabel.cs:
15192                 - Adds cursors
15193                 - Handles focus
15194                 - Implements LinkBehavior
15195                 - Fixes many issues
15196
15197 2005-05-03  Jackson Harper  <jackson@ximian.com>
15198
15199         * ListView.cs: Calculate the scrollbar positioning on resize and
15200         paint, so they get put in the correct place.
15201
15202 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
15203
15204         * ColorDialogs.cs: The small color panels are now handled by
15205           SmallColorControl. This fixes drawing of the focus rectangle
15206           and adds a 3D border.
15207
15208 2005-05-03  Peter Bartok  <pbartok@novell.com>
15209
15210         * Control.cs: Modified version of Jonathan Chamber's fix for
15211           double-buffering
15212
15213 2005-05-03  Jackson Harper  <jackson@ximian.com>
15214
15215         * ListView.cs: Remove redraw variable. Control now handles whether
15216         or not a redraw needs to be done, and will only raise the paint
15217         event if redrawing is needed.
15218
15219 2005-05-03  Jackson Harper  <jackson@ximian.com>
15220
15221         * Splitter.cs: No decorations for the splitter form. Cache the
15222         hatch brush.
15223
15224 2005-05-03  Jackson Harper  <jackson@ximian.com>
15225
15226         * TreeView.cs: Use dashed lines to connect nodes. Use the
15227         ControlPaint method for drawing the focus rect instead of doing
15228         that in treeview.
15229
15230 2005-05-02  Peter Bartok  <pbartok@novell.com>
15231
15232         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
15233
15234 2005-04-29  Jackson Harper  <jackson@ximian.com>
15235
15236         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
15237         entire image buffer. Just clear the clipping rectangle.
15238
15239 2005-04-29  Jackson Harper  <jackson@ximian.com>
15240
15241         * ThemeWin32Classic.cs: Don't draw list view items that are
15242         outside the clipping rectangle.
15243
15244 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
15245
15246         * ListBox.cs: added horizontal item scroll
15247
15248 2005-04-29  Jackson Harper  <jackson@ximian.com>
15249
15250         * ThemeWin32Classic.cs: Remove some old debug code that was
15251         causing flicker with the new double buffering code.
15252
15253 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
15254
15255         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
15256         behave like combobox and comboboxlist (still not sure if this is
15257         correct though).
15258
15259 2005-04-28  Jackson Harper  <jackson@ximian.com>
15260
15261         * ThemeWin32Classic.cs: Don't fill the middle of progress
15262         bars. This fills areas outside of the clip bounds that don't need
15263         to be filled.
15264
15265 2005-04-28  Jackson Harper  <jackson@ximian.com>
15266
15267         * Control.cs: Don't expose functionality to touch the image buffers.
15268         * ProgressBar.cs:
15269         * ListView.cs: We do not need to (and no longer can) manipulate
15270         the image buffers directly. All of this is handled by Control.
15271
15272 2005-04-28  Peter Bartok  <pbartok@novell.com>
15273
15274         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15275           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
15276           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
15277
15278 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15279
15280         * Combobox:
15281                 - Adjust control's height for non-simple comboboxes (bug fix)
15282                 - Remove dead code
15283         * MenuAPI.cs: remove unused var
15284         * ScrollBar.cs: remove unsed var
15285                  
15286         * ListBox.cs: unselect items when clearing
15287
15288 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15289
15290         * ListControl.cs: honors OnPositionChanged and default Selected Item
15291         * ListBox.cs: unselect items when clearing
15292
15293 2005-04-27  Jackson Harper  <jackson@ximian.com>
15294
15295         * X11Keyboard.cs: Initialize a default keyboard and give a warning
15296         if a "correct" keyboard is not found. This will make us not crash,
15297         but might give some users bad keyboard layouts...seems to be the
15298         same thing rewind does.
15299
15300 2005-04-27  Jackson Harper  <jackson@ximian.com>
15301
15302         * BindingManagerBase.cs: Attach the current/position changed
15303         handlers to their respective events.
15304
15305 2005-04-27  Jackson Harper  <jackson@ximian.com>
15306
15307         * Control.cs: Make sure that the first WM_PAINT does a full draw,
15308         not just a blit.
15309         * ThemeWin32Classic.cs: Don't fill the background for picture
15310         boxes. This could overright user drawing.
15311         * ComboBox.cs: Just fill the clipping rect not the entire client
15312         rect when drawing the background. This prevents pieces of the
15313         image buffer from getting overwritten and is theoretically faster.
15314
15315 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
15316
15317         * ComboBox.cs: Databinding support fixes, fire missing events
15318         * ListControl.cs: implement missing methods and properties, fixes
15319         * ThemeWin32Classic.cs: Databiding support on Drawing
15320         * CheckedListBox.cs: Databinding support fixes, fire missing events
15321         * ListBox.cs: Databinding support fixes, fire missing events
15322         
15323 2005-04-25  Peter Bartok  <pbartok@novell.com>
15324
15325         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
15326
15327 2005-04-25  Jackson Harper  <jackson@ximian.com>
15328
15329         * TreeView.cs: Use the horizontal scrollbars height not width when
15330         determining how much of the client area is available.
15331
15332 2005-04-25  Jackson Harper  <jackson@ximian.com>
15333
15334         * Control.cs: Double buffering is handled differently now. As per
15335         the spec, the extra buffer is created in the WM_PAINT message and
15336         passed down to the control's drawing code.
15337         * GroupBox.cs:
15338         * Label.cs:
15339         * CheckBox.cs:
15340         * ProgressBar.cs:
15341         * RadioButton.cs:
15342         * ColorDialog.cs:
15343         * ComboBox.cs:
15344         * PropertyGridView.cs:
15345         * UpDownBase.cs:
15346         * MessageBox.cs:
15347         * MenuAPI.cs:
15348         * ListView.cs:
15349         * ButtonBase.cs:
15350         * SizeGrip.cs:
15351         * ScrollBar.cs:
15352         * ListBox.cs:
15353         * TrackBar.cs:
15354         * ToolBar.cs:
15355         * PictureBox.cs:
15356         * DateTimePicker.cs:
15357         * StatusBar.cs:
15358         * TreeView.cs: Update to new double buffering system.
15359         * MonthCalendar.cs: Uncomment block, as Capture is now
15360         working. Update to new double buffering
15361         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
15362         * PaintEventArgs.cs: New internal method allows us to set the
15363         graphics object. This is used for double buffering.
15364         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
15365         rectangle. The internal paint_area var has been removed from
15366         StatusBar. The clipping rect should be used instead.
15367         * Theme.cs: Give the PictureBox drawing method a clipping rect.
15368         * TabPage.cs: The RefreshTabs method was removed, so just call the
15369         tab controls Refresh method now.
15370         * TabControl.cs: Update to new double buffering. Make sure the
15371         handle is created before sizing the tab pages, otherwise we will
15372         get stuck in a loop.
15373
15374 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
15375
15376         * LinkLabel.cs: Fix typo, bug #74719; patch
15377           from Borja Sanchez Zamorano
15378
15379 2005-04-22  Jackson Harper  <jackson@ximian.com>
15380
15381         * TreeNode.cs: Implement Handle stuff.
15382         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
15383
15384 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
15385
15386         * DataGridTextBoxColumn.cs: call base constructors, fixes
15387         * GridColumnStylesCollection.cs: missing events, methods, and functionality
15388         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
15389         * DataGridTableStyle.cs: implements create default column styles
15390         * DataGridBoolColumn.cs: which types can handle
15391         * DataGrid.cs: missing methods, fixes, new functionality
15392         * DataGridColumnStyle.cs: fixes
15393
15394 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
15395         * FolderBrowserDialog.cs:
15396         - Use a thread to fill the TreeView
15397         - Adjusted some sizes
15398
15399 2005-04-19  Peter Bartok  <pbartok@novell.com>
15400
15401         * LinkLabel.cs: (Re-)create the pieces when setting the Text
15402           property. Fixes #74360.
15403
15404 2005-04-19  Jackson Harper  <jackson@ximian.com>
15405
15406         * XEventQueue.cs: Lock when getting the lockqueue size.
15407         * PictureBox.cs: Call base OnPaint
15408         
15409 2005-04-19  Peter Bartok  <pbartok@novell.com>
15410
15411         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
15412           messages were no longer being processed (this broke BeginInvoke)
15413
15414           
15415 2005-04-18  Jackson Harper  <jackson@ximian.com>
15416
15417         * TreeView.cs: buglet that caused node images to get drawn
15418         regardless of whether or not they were in the clipping rectangle.
15419
15420 2005-04-18  Jackson Harper  <jackson@ximian.com>
15421
15422         * CurrencyManager.cs: There are four rules for GetItemProperties:
15423         - If the type is an array use the element type of the array
15424         - If the type is a typed list, use the type
15425         - If the list contains an Item property that is not an object, use
15426         that property
15427         - use the first element of the list if there are any elements in
15428         the list.
15429         
15430 2005-04-17  Jackson Harper  <jackson@ximian.oom>
15431
15432         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
15433         click. This handles offsets for scrolling properly and reduces
15434         memory. Also fixed GetNode to not offset now that TopNode works
15435         properly.
15436         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
15437         
15438 2005-04-17  Jackson Harper  <jackson@ximian.com>
15439
15440         * CursorConverter.cs: Initial implementation.
15441
15442 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15443
15444         * ListControl.cs: work towards complex data binding support on ListControl
15445         * CurrencyManager.cs: work towards complex data binding support on ListControl
15446         * ListBox.cs: work towards complex data binding support on ListControl
15447
15448
15449 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15450
15451         * GridTableStylesCollection.cs: fixes name and constructor
15452         * DataGridTableStyle.cs: fixes
15453         * DataGridBoolColumn.cs: fixes names and constructors
15454         * DataGrid.cs: define methods and properties. Some init implementations
15455         * DataGridCell.cs: define methods and properties. Some init implementations
15456         * GridTablesFactory.cs: Define methods and properties
15457
15458 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
15459
15460         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
15461         graphics port changes.  We still want the coordinates in global screen
15462         coordinates.
15463
15464 2005-04-14  Jackson Harper  <jackson@ximian.com>
15465
15466         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
15467         check plus minus or checkbox clicks unless those features are enabled.
15468
15469 2005-04-14  Jackson Harper  <jackson@ximian.com>
15470
15471         * TreeView.cs: Add methods for setting the top and bottom visible
15472         nodes. TreeNode::EnsureVisible uses these methods.
15473         * TreeNode.cs: Implement EnsureVisible
15474
15475 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
15476
15477         * Form.cs: Pospone menu assignation if the window has not been created yet
15478         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
15479         size and position
15480
15481 2005-04-12  Jackson Harper  <jackson@ximian.com>
15482
15483         * TreeView.cs: Set the TopNode properly when scrolling
15484         occurs. This has the added benifit of reducing the amount of
15485         walking that needs to be done when drawing. Also removed an old
15486         misleading TODO.
15487         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
15488         
15489 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
15490
15491         * Timer.cs: fixes interval setting when the timer is already enabled
15492         
15493 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
15494
15495         * FolderBrowserDialog.cs: First approach
15496
15497 2005-04-09  Peter Bartok  <pbartok@novell.com>
15498
15499         * FolderBrowserDialog: Added
15500
15501 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
15502
15503         * LinkLabel.cs: move drawing code into the theme
15504         * ThemeWin32Classic.cs: drawing code and painting background bugfix
15505         * Theme.cs: define DrawLinkLabel method
15506
15507 2005-04-05  Jackson Harper  <jackson@ximian.com>
15508
15509         * BindingContext.cs: Use weak references so these bad actors don't
15510         stay alive longer then they need to.
15511
15512 2005-04-05  Jackson Harper  <jackson@ximian.com>
15513
15514         * ListControl.cs: Basic implementation of complex databinding.
15515         * ComboBox.cs:
15516         * ListBox.cs: Add calls to ListControl databinding methods.
15517
15518 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
15519
15520         * FileDialog.cs:
15521           - Don't change PopupButtonState to Normal when the
15522             PopupButton gets pressed several times.
15523           - Renamed ButtonPanel to PopupButtonPanel
15524
15525 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
15526
15527         * ColorDialog.cs: Use cached objects instead of creating them
15528         * LinkLabel.cs: Use cached objects instead of creating them
15529         * Splitter.cs: Use cached objects instead of creating them
15530         * FontDialog.cs: Use cached objects instead of creating them
15531         * PropertyGridView.cs: Use cached objects instead of creating them
15532         * MessageBox.cs: Use cached objects instead of creating them
15533         * FileDialog.cs: Use cached objects instead of creating them
15534         * ThemeWin32Classic.cs: Use cached objects instead of creating them
15535         * TreeView.cs: Use cached objects instead of creating them
15536         
15537 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
15538
15539         * Control.cs: use Equals to compare the font since no == op
15540         * ScrollBar.cs: use Equals to compare the font since no == op
15541
15542 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
15543
15544         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
15545
15546 2005-04-01  Jackson Harper  <jackson@ximian.com>
15547
15548         * Binding.cs: Implement IsBinding.
15549         * BindingManagerBase.cs:
15550         * PropertyManager.cs:
15551         * CurrencyManager.cs: Add IsSuspended property.
15552
15553 2005-04-01  Jackson Harper  <jackson@ximian.com>
15554
15555         * Binding.cs: Had some IsAssignableFrom calls backwards.
15556
15557 2005-04-01  Jackson Harper  <jackson@ximian.com>
15558
15559         * Binding.cs: Handle null data members when pulling data.
15560         * PropertyManager.cs: Handle the data member being a property that
15561         does not exist.
15562
15563 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15564
15565         * DataGridTextBoxColumn.cs: fixes signature
15566         * DataGrid.cs: calls right constructor
15567
15568 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15569
15570         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
15571         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
15572         * GridTableStylesCollection.cs: implements GridTableStylesCollection
15573         * DataGridTableStyle.cs: implements DataGridTableStyle
15574         * DataGridBoolColumn.cs: implements DataGridBoolColumn
15575         * DataGridTextBox.cs: implements DataGridTextBox
15576         * DataGridColumnStyle.cs: implements DataGridColumnStyle
15577
15578 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
15579
15580         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
15581
15582 2005-03-29  Peter Bartok  <pbartok@novell.com>
15583
15584         * Application.cs:
15585           - Properly implemented CompanyName property
15586           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
15587             returns a path that includes CompanyName, ProductName and
15588             Version (fixes bug #70330)
15589
15590 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
15591
15592         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
15593           fixes bug #72588.
15594
15595 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15596
15597         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
15598         
15599           - Added ReadOnly CheckBox
15600           - Further refactoring: moved some code from Open-/SaveFileDialog
15601             to FileDialog
15602
15603 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15604
15605         * OpenFileDialog.cs: Fixed CheckFileExists
15606         * FileDialog.cs:
15607           Moved FileView and DirComboBox outside FileDialog class.
15608           They can now be used outside FileDialog
15609
15610 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15611
15612         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
15613         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
15614
15615 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15616
15617         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15618           - Added missing CreatePrompt property in SaveDialog
15619           - Overall SaveDialog handling should be better now
15620           - Added non standard ShowHiddenFiles property
15621           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
15622           - Added InitialDirectory and RestoreDirectory support
15623
15624 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
15625
15626         * FileDialog.cs: Made dirComboBox usable
15627
15628 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
15629
15630         * FileDialog.cs: Added Filter support (case sensitiv)
15631
15632 2005-03-24  Jackson Harper  <jackson@ximian.com>
15633
15634         * TabControl.cs: Need a couple more pixels for the lines.
15635
15636 2005-03-23  Jackson Harper  <jackson@ximian.com>
15637
15638         * TabControl.cs: Give the tab page focus when it is selected.
15639
15640 2005-03-23  Jackson Harper  <jackson@ximian.com>
15641
15642         * TabControl.cs: Account for the drawing of tabs borders when
15643         invalidating. If the slider was clicked dont do click detection on
15644         the tabs.
15645
15646 2005-03-23  Jackson Harper  <jackson@ximian.com>
15647
15648         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
15649
15650 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
15651
15652         * CategoryGridEntry.cs: Added
15653         * GridItem.cs: Added helper properties
15654         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
15655         * GridEntry.cs: Updated code for collection
15656         * PropertyGrid.cs: Cleaned up some formatting
15657         * PropertyGridView.cs: Added drop down functionality for enums.
15658         * GridItemCollection.cs: Added enumerator logic
15659         * PropertyGridEntry.cs: Added
15660
15661 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15662
15663         * FileDialog.cs:
15664           - Removed unnecessary commented code
15665           - Fixed handling for entering the filename manually in the combobox
15666
15667 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15668
15669         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
15670
15671 2005-03-18  Peter Bartok  <pbartok@novell.com>
15672
15673         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
15674           them being touching the border
15675
15676 2005-03-18  Peter Bartok  <pbartok@novell.com>
15677
15678         * TextControl.cs: Quick hack to center text better
15679
15680 2005-03-18  Peter Bartok  <pbartok@novell.com>
15681
15682         * ControlPaint.cs:
15683           - Don't throw NotImplemented exceptions, just print a notice once
15684             instead (requested by Miguel). This makes running existing SWF
15685             apps a bit easier
15686         * Control.cs:
15687           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
15688           - Added context menu trigger on right click
15689         * Panel.cs: Trigger invalidate on resize
15690         * StatusBar.cs:
15691           - Removed old double-buffer drawing
15692           - Added ResizeRedraw style to force proper update of statusbar
15693         * ListView.cs:
15694           - Removed debug output
15695         * ThemeWin32Classic.cs:
15696           - Fixed drawing of status bar, now draws Text property if there
15697             are no defined panels
15698
15699 2005-03-18  Jackson Harper  <jackson@ximian.com>
15700
15701         * ImageList.cs: When the image stream is set pull all the images
15702         from it.
15703         * ImageListStreamer.cs: Implement reading image list streams.
15704
15705 2005-03-18  Peter Bartok  <pbartok@novell.com>
15706
15707         * ThemeWin32Classic.cs (DrawPictureBox):
15708           - Fixed calculations for centered drawing
15709           - Fixed drawing for normal mode, not scaling the image on normal
15710
15711 2005-03-18  Peter Bartok  <pbartok@novell.com>
15712
15713         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
15714           textbox
15715         * FileDialog.cs:
15716           - Made Open/Save button the accept button for FileDialog
15717           - Tied the cancel button to the IButtonControl cancel button
15718           - Save/Open now properly builds the pathname
15719           - Now handles user-entered text
15720           - Preventing crash on right-click if no item is selected
15721           - Fixed Text property, now uses contents of textbox
15722           - Fixed SelectedText property, now just returns the text part that
15723             is selected in the text box
15724
15725 2005-03-18  Jackson Harper  <jackson@ximian.com>
15726
15727         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
15728         rect, make sure to de-adjust the interior rect after drawing the
15729         tab text.
15730
15731 2005-03-18  Peter Bartok  <pbartok@novell.com>
15732
15733         * MenuAPI.cs: Remove menu *before* executing selected action to
15734           prevent the menu from 'hanging around'
15735           
15736 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
15737
15738         * XplatUIOSX.cs: Implemented WorkingArea property
15739
15740 2005-03-17  Peter Bartok  <pbartok@novell.com>
15741
15742         * XplatUIX11.cs: Fixed menu coord calculations
15743         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
15744           for calculating offsets
15745
15746 2005-03-17  Peter Bartok  <pbartok@novell.com>
15747
15748         * Hwnd.cs: Do not consider menu presence for default client
15749           rectangle location/size
15750         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
15751           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
15752           translation functions
15753         * FileDialog.cs: Fixed (what I presume is a) typo
15754
15755 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
15756
15757         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
15758           X access (avoids X-Async errors)
15759
15760 2005-03-16  Jackson Harper  <jackson@ximian.com>
15761
15762         * TabControl.cs: Raise the SelectedIndexChanged event.
15763
15764 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
15765
15766         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15767           - Removed vertical ToolBar and replaced it with a custom panel
15768             (desktop and home button already work)
15769           - Added Help button (some controls get resized or relocated then)
15770           - Draw correct text depending on Open or Save.
15771           - Fixed some typos...
15772
15773 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
15774
15775         * ScrollBar.cs:
15776           - Only change Maximum and Minimum when need it (bug fix)
15777
15778 2005-03-15  Peter Bartok  <pbartok@novell.com>
15779
15780         * Form.cs: Use Handle for icon, to trigger creation if
15781           the window does not yet exist
15782         * Control.cs:
15783           - CanSelect: Slight performance improvement
15784           - Focus(): Preventing possible recursion
15785           - Invalidate(): Removed ControlStyle based clear flag setting
15786           - WM_PAINT: fixed logic for calling OnPaintBackground
15787           - WM_ERASEBKGND: Fixed logic, added call to new driver method
15788             EraseWindowBackground if the control doesn't paint background
15789         * XplatUIWin32.cs:
15790           - Moved EraseWindowBackground() method to internal methods
15791           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
15792             is sent via SendMessage on BeginPaint call on Win32
15793         * XplatUIX11.cs:
15794           - Added EraseWindowBackground() method
15795           - No longer sends WM_ERASEBKGND on .Expose, but on call to
15796             PaintEventStart, which more closely matches Win32 behaviour
15797           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
15798           - Fixed SetFocus() to properly deal with client and whole windows
15799         * Hwnd.cs: Added ErasePending property
15800         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
15801         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
15802
15803 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
15804
15805         * XplatUIOSX.cs:
15806           - Fix hard loop when timers exist.
15807           - Fix bugs with middle and right click for 3 button mice.
15808
15809 2005-03-11  Peter Bartok  <pbartok@novell.com>
15810
15811         * XplatUIX11.cs:
15812           - get_WorkingArea: Need to call X directly, GetWindowPos only
15813             returns cached data now
15814           - Added sanity check to GetWindowPos hwnd usage
15815
15816 2005-03-11  Jackson Harper  <jackson@ximian.com>
15817
15818         * BindingManagerBase.cs: This method isn't used anymore as
15819         PullData now updates the data in the control.
15820
15821 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
15822
15823         * Form.cs: fixes menu drawing on X11
15824         * MenuAPI.cs:  fixes menu drawing on X11
15825
15826 2005-03-11  Peter Bartok  <pbartok@novell.com>
15827
15828         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
15829           from Jonathan Gilbert; should fix bug #73606
15830         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
15831           in Screen coordinates. Thanks, Jordi.
15832         * Form.cs: Added missing attribute
15833
15834 2005-03-11  Peter Bartok  <pbartok@novell.com>
15835
15836         * Form.cs:
15837           - Rudimentary Mdi support
15838           - Removed outdated FormParent code
15839           - Implemented lots of missing properties and methods, still missing
15840             transparency support
15841           - Added missing attributes
15842           - Implemented support for MaximumBounds
15843           - Added firing of various events
15844         * XplatUI.cs: Added SetIcon() method
15845         * XplatUIDriver.cs: Added SetIcon() abstract
15846         * XplatUIOSX.cs: Stubbed out SetIcon() method
15847         * XplatUIX11.cs:
15848           - Implemented SetIcon() support
15849           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
15850           - Switched to unix line endings
15851         * XplatUIWin32.cs:
15852           - Made POINT internal so for can access it as part of MINMAX
15853           - Implemented SetIcon() support
15854           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
15855             native Mdi support again, might have to go managed)
15856         * Control.cs: Now fires the StyleChanged event
15857         * MdiClient.cs: Added; still mostly empty
15858
15859 2005-03-10  Peter Bartok  <pbartok@novell.com>
15860
15861         * SaveFileDialog.cs: Added emtpy file
15862
15863 2005-03-08  Peter Bartok  <pbartok@novell.com>
15864
15865         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
15866           in turn triggers OnCreateContro) when creating a handle for the
15867           first time.
15868         * TextControl.cs: Fixed endless loop in certain cases when
15869           replacing the current selection
15870
15871 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
15872
15873         * ScrollBar.cs:
15874           - Honors NewValue changes in Scroll events allowing apps to change it
15875           - Adds First and Last Scroll events
15876           - Fixes Thumb events
15877
15878 2005-03-07  Peter Bartok  <pbartok@novell.com>
15879
15880         * Hwnd.cs: Added DefaultClientRectangle property
15881         * XplatUI.cs: Now using the X11 driver Where() method, which provides
15882           more detailed debug information
15883         * XplatUIX11.cs:
15884           - Fixed size-change feedback loop, where we would pull an old size
15885             off the queue and mistakenly change our window's size to an
15886             earlier value
15887           - Now compressing ConfigureNotify events, to reduce looping and
15888             redraw issues
15889         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
15890           is called
15891
15892 2005-03-07  Jackson Harper  <jackson@ximian.com>
15893
15894         * Binding.cs: Push data pushes from data -> property. Check if the
15895         property is readonly when attempting to set it.
15896
15897 2005-03-07  Jackson Harper  <jackson@ximian.com>
15898
15899         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
15900         instead of IsSubclassOf. Pulling data now sets the value on the
15901         control.
15902         * PropertyManager.cs:
15903         * CurrencyManager.cs: Just need to pull data when updating now,
15904         because PullData will set the value on the control.
15905
15906 2005-03-04  Jackson Harper  <jackson@ximian.com>
15907
15908         * Binding.cs: Implement data type parsing and converting on pulled
15909         data. TODO: Are there more ways the data can be converted?
15910
15911 2005-03-04  Jackson Harper  <jackson@ximian.com>
15912
15913         * Binding.cs: Support <Property>IsNull checks. Also bind to the
15914         controls Validating method so we can repull the data when the
15915         control loses focus.
15916
15917 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
15918
15919         * ColumnHeader.cs:
15920           - Fixes null string format
15921           
15922         * ListView.cs:
15923           - Adds enum type checks
15924           - Fixes redrawing and recalc need after changing some properties
15925           - Fixes on focus_item set after the event
15926           - Fixes adding columns after the control has been created
15927           
15928         * ThemeWin32Classic.cs:
15929           - Fixes CheckBox focus rectangle
15930           - Fixes ColumnHeader drawing
15931
15932
15933 2005-03-03  Jackson Harper  <jackson@ximian.com>
15934
15935         * Binding.cs: Bind to <Property>Changed events so we can detect
15936         when properties are changed and update the data.
15937
15938 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
15939
15940         * ImageList.cs:
15941           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
15942           - Fixes ImageList constructor with ImageList container
15943           - Fixes image scaling (wrong parameters at DrawImage)
15944
15945 2005-02-02  Jackson Harper  <jackson@ximian.com>
15946
15947         * Binding.cs: Make property searches case-insensitive. Eliminate
15948         some duplicated code.
15949
15950 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
15951
15952         * ComboBox.cs:
15953                 - Handle focus event
15954                 - Fix scrollbar events
15955                 - Discard highlighted item if remove it
15956                 - Fixes SelectedItem with strings
15957
15958 2005-03-01  Peter Bartok  <pbartok@novell.com>
15959
15960         * Control.cs:
15961           - Fixed Visible property, now follows (once again) parent chain
15962             to return false if any control in the chain is visible=false
15963           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
15964           - Fixed several places where is_visible instead of Visible was used
15965           - Implemented FIXME related to focus selection when setting focused
15966             control to be invisible
15967
15968         * XplatUIWin32.cs: Now using proper method to find out if window is
15969           visible. Thanks to Jordi for pointing it out
15970
15971 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
15972
15973         * ComboBox.cs: show/hide scrollbar instead of creating it
15974
15975 2005-02-27  Jackson Harper  <jackson@ximian.com>
15976
15977         * CurrencyManager.cs: Add PositionChanged stuff.
15978
15979 2005-02-27  Peter Bartok  <pbartok@novell.com>
15980
15981         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
15982         * XplatUIOSX.cs: Added GetMenuOrigin() stub
15983         * XplatUIWin32.cs: Implemented GetMenuOrigin()
15984         * XplatUIX11.cs:
15985           - Implemented GetMenuDC()
15986           - Implemented GetMenuOrigin()
15987           - Implemented ReleaseMenuDC()
15988           - Implemented generation of WM_NCPAINT message
15989           - Implemented generation and handling of WM_NCCALCSIZE message
15990         * Form.cs: Added debug helper message for Jordi's menu work
15991         * Hwnd.cs:
15992           - Modified ClientRect property; added setter, fixed getter to handle
15993             setting of ClientRect
15994           - Added MenuOrigin property
15995
15996 2005-02-26  Peter Bartok  <pbartok@novell.com>
15997
15998         * XplatUIX11.cs:
15999           - Destroys the caret if a window that's being destroyed contains it
16000           - Ignores expose events coming from the X11 queue for windows that
16001             already are destroyed
16002           - Now uses the proper variable for handling DestroyNotify, before we
16003             marked the wrong window as destroyed
16004           - Improved/added some debug output
16005
16006 2005-02-26  Peter Bartok  <pbartok@novell.com>
16007
16008         * X11Keyboard.cs: Fixes to work on 64bit systems
16009
16010 2005-02-26  Peter Bartok  <pbartok@novell.com>
16011
16012         * Control.cs:
16013           - Now calling OnHandleDestroyed from DestroyHandle()
16014             instead of Dispose()
16015           - Removed bogus call to controls.Remove() from DestroyHandle()
16016
16017 2005-02-26  Peter Bartok  <pbartok@novell.com>
16018
16019         * Control.cs: Properly destroy child windows when our handle is
16020           destroyed
16021
16022 2005-02-25  Peter Bartok  <pbartok@novell.com>
16023
16024         * XplatUI.cs:
16025           - Added 'DriverDebug' define to allow tracing XplatUI API calls
16026           - Alphabetized Static Methods and Subclasses
16027
16028         * XplatUIX11.cs:
16029           - Added XException class to allow custom handling of X11 exceptions
16030           - Created custom X11 error handler, tied into XException class
16031           - Added support for MONO_XEXCEPTIONS env var to allow the user
16032             to either throw an exception on X errors or continue running
16033             after displaying the error
16034           - Added handling of DestroyNotify message
16035           - Added handler for CreateNotify message (still disabled)
16036           - Improved (tried to at least) Where method to provide file and lineno
16037         * X11Structs.cs:
16038           - Added XErrorHandler delegate
16039           - Added XRequest enumeration (to suppor translation of errors)
16040
16041 2005-02-25  Jackson Harper  <jackson@ximian.com>
16042
16043         * PropertyManager.cs: Implement editing features
16044         * CurrencyManager.cs:
16045         * Binding.cs: First attempt at UpdateIsBinding
16046         * BindingManagerBase.cs: Call UpdateIsBinding before
16047         pushing/pulling data.
16048
16049 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
16050
16051         * MenuAPI.cs: Respect disabled items
16052         * ThemeWin32Classic.cs
16053                 - Caches ImageAttributes creation for DrawImageDisabled
16054                 - Fixes vertical menu line drawing
16055                 - Draws disabled arrows in disable menu items
16056
16057 2005-02-24  Peter Bartok  <pbartok@novell.com>
16058
16059         * Hwnd.cs:
16060           - Added UserData property to allow associating arbitrary objects
16061             with the handle
16062           - Fixed leak; now removing Hwnd references from static windows array
16063         * XplatUIWin32.cs:
16064           - Fixed Graphics leak in PaintEventEnd
16065           - Removed usage of HandleData, switched over to Hwnd class
16066         * HandleData.cs: Removed, obsoleted by Hwnd.cs
16067
16068 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
16069
16070         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
16071         * ScrollBar.cs: Fixes bug
16072         * TrackBar.cs: removes death code, clipping, mimize refreshes,
16073          keyboard navigation enhancements
16074
16075 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
16076
16077         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
16078         * GroupBox.cs: Add control styles
16079         * Label.cs: Add control styles
16080         * UpDownBase.cs: Add control styles
16081         * ListBox.cs: Add control styles
16082         * XplatUIWin32.cs: Fixes wrong parameter order
16083
16084
16085 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
16086
16087         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
16088
16089 2005-02-23  Jackson Harper  <jackson@ximian.com>
16090
16091         * PropertyManager.cs: Implement property binding. This doesn't
16092         seem to work yet though as (I think) there are some bugs in
16093         System.ComponentModel.PropertyDescriptor.
16094         * BindingContext.cs: Use new PropertyManager constructor.
16095
16096 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
16097
16098         * ProgressBar.cs: use clip region in ProgressBar
16099         * ThemeWin32Classic.cs: use clip region in ProgressBar
16100
16101 2004-02-22  Jackson Harper  <jackson@ximian.com>
16102
16103         * BindingsCollection.cs: Remove some debug code.
16104
16105 2005-02-22  Jackson Harper  <jackson@ximian.com>
16106
16107         * BindingContext.cs:
16108         * ControlBindingsCollection.cs:
16109         * CurrencyManager.cs:
16110         * Binding.cs:
16111         * BindingManagerBase.cs: Initial implementation
16112         * BindingsCollection.cs: Add an internal contains method that the
16113         BindingManagerBase uses to ensure bindings aren't added twice to
16114         the collection.
16115         * PropertyManager.cs: Stubbed out.
16116         * Control.cs:
16117         * ContainerControl.cs: Hook up databinding
16118         
16119 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
16120
16121         * XplatUIOSX.cs:
16122           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
16123           Fixed Invalidate/Update chain.
16124           Fixed tons of other minor bugs (this is almost a complete rewrite).
16125
16126 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
16127
16128         * ComboBox.cs: do subcontrol creation when the control is created
16129
16130 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16131
16132         * Label.cs: fixes image drawing (image and imagelist)
16133         * ThemeWin32Classic.cs: cache brushes
16134         
16135 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16136
16137         * Form.cs: Move menu drawing code to Theme class
16138         * ComboBox.cs: Move ComboBox drawing code to Theme class
16139         * MenuItem.cs: Move menu drawing code to Theme class
16140         * MenuAPI.cs: Move menu drawing code to Theme class
16141         * ThemeWin32Classic.cs: New methods
16142         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
16143         * ListBox.cs: Move Listbox drawing code to Theme class
16144         * Theme.cs: New methods
16145
16146 2005-02-20  Peter Bartok  <pbartok@novell.com>
16147
16148         * Control.cs:
16149           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
16150             only process mnemonics on those)
16151           - Fixed event sequence for key handling; first calling
16152             ProcessKeyEventArgs now
16153         * TextBoxBase.cs:
16154           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
16155             for processing non-character keys
16156           - Fixed WM_CHAR to generate proper event sequence before processing
16157         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
16158           generation
16159
16160 2005-02-19  Peter Bartok  <pbartok@novell.com>
16161
16162         * UserControl.cs: Added TextChanged event; added attributes
16163         * SizeGrip.cs: Implemented resizing and optional display of grip
16164         * Form.cs: Fixed attribute
16165         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
16166           Changed meaning of ScrollWindow bool argument; instead of the
16167           clear attribute (which will be true usually anyway), it gives the
16168           option of moving child controls as well.
16169         * XplatUIX11.cs:
16170           - Changed to match new ScrollWindow argument
16171           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
16172             now handles the implicit parent window a WM puts around us
16173         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
16174           to work)
16175         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
16176         * TreeView.cs: Adjusted to new ScrollWindow arguments
16177
16178 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16179
16180         * Form.cs: Menu integration with non-client area
16181         * MenuItem.cs: Menu integration with non-client area
16182         * MenuAPI.cs: Menu integration with non-client area
16183
16184 2005-02-18  Peter Bartok  <pbartok@novell.com>
16185
16186         * MethodInvoker.cs: Added
16187         * MdiLayout.cs: Added
16188         * SendKeys.cs: Started implementation
16189         * ErrorIconAlignment.cs: Added
16190
16191 2005-02-18  Peter Bartok  <pbartok@novell.com>
16192
16193         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
16194         * Form.cs: Added handling for Menu-related Non-client messages
16195
16196 2005-02-17  Peter Bartok  <pbartok@novell.com>
16197
16198         * UpDownBase.cs: Fixed typo, compilation errors
16199         * DomainUpDown.cs: Fixed attribute value
16200
16201 2005-02-16  Miguel de Icaza  <miguel@novell.com>
16202
16203         * UpDownBase.cs: Attach entry events.
16204         Propagate events.
16205         Add ForeColor property, Focused, InterceptArrowKeys (interception
16206         does not work yet).
16207
16208 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
16209
16210         * Form.cs:
16211                 - Redraw non client are on Setmenu
16212                 - Calc proper menu starting point
16213
16214 2005-02-17  Peter Bartok  <pbartok@novell.com>
16215
16216         * Application.cs: Fixed message_filter check
16217
16218 2005-02-17  Peter Bartok  <pbartok@novell.com>
16219
16220         * Application.cs: Now calls registered message filters
16221         * DockStyle.cs: Fixed attribute
16222         * Form.cs: Fixed attribute
16223         * Menu.cs: Fixed attribute
16224         * ToolTip.cs: Fixed attribute
16225         * TreeNode.cs: Added missing attributes and arranged in regions
16226         * PropertyGrid.cs: Fixed signatures
16227         * TreeNodeCollection.cs: Added attributes
16228         * Splitter.cs: Added missing attributes; arranged into regions
16229         * TabPage.cs: Added missing attributes; arranged into regions
16230         * TextBoxBase.cs: Added missing attributes
16231         * TextBox.cs: Added missing attributes
16232         * ArrangeDirection.cs: Added missing attributes
16233         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
16234         * ToolBarButton.cs: Fixed attributes
16235         * AnchorStyles.cs: Fixed attribute
16236         * TrackBar.cs: Fixed attributes
16237         * TabControl.cs: Added missing attributes and arranged into regions
16238         * ToolBar.cs: Fixed attribute
16239         * StatusBar.cs: Fixed signature, organized into regions and added
16240           attributes
16241         * StatusBarPanel.cs: Fixed attributes
16242         * ContentsResizedEventArgs.cs: Implemented
16243         * ContentsResizedEventHandler.cs: Implemented
16244         * DateBoldEventArgs.cs: Implemented
16245         * DateBoldEventHandler.cs: Implemented
16246         * UpDownEventArgs.cs: Implemented
16247         * UpDownEventHandler.cs: Implemented
16248         
16249 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
16250
16251         * Form.cs: first Menu NC refactoring
16252         * MenuAPI.cs: first Menu NC refactoring
16253         
16254 2005-02-16  Peter Bartok  <pbartok@novell.com>
16255
16256         * ImeMode.cs: Added missing attributes
16257         * Menu.cs: Fixed attribute
16258         * GroupBox.cs: Fixed attribute
16259         * Label.cs: Fixed attribute
16260         * ColorDialog.cs (RunDialog): Removed TODO attribute
16261         * ComboBox.cs: Fixed attributes
16262         * ListControl.cs: Added missing attributes
16263         * PropertyGrid.cs: Fixed attributes
16264         * Control.cs: Fixed attributes
16265         * ListViewItem.cs: Added TypeConverter attribute
16266         * NotifyIcon.cs: Fixed attributes
16267         * ListView.cs: Fixed attributes
16268         * ButtonBase.cs: Fixed attribute
16269         * ImageList.cs: Added missing attributes
16270         * ContainerControl.cs: Fixed signature
16271         * CheckedListBox.cs: Fixed attribute; added missing attributes
16272         * Panel.cs: Fixed attributes
16273         * PropertyTabChangedEventArgs.cs: Added missing attribute
16274         * PropertyValueChangedEventArgs.cs: Added missing attribute
16275         * Binding.cs: Fixed attribute
16276         * ListViewItemConverter: Implemented ListViewSubItemConverter class
16277         * ListBox.cs: Fixed attribute; added missing attributes;
16278         * ScrollableControl.cs: Added missing attributes
16279         * PictureBox.cs: Added missing attributes; implemented missing property
16280         * DateTimePicker.cs: Added missing attributes
16281         * Theme.cs (ToolWindowCaptionHeight): Fixed type
16282         * MonthCalendar.cs: Fixed attributes
16283         * StatusBarPanel.cs: Added missing attributes
16284         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
16285
16286 2005-02-16  Peter Bartok  <pbartok@novell.com>
16287
16288         * TextBoxBase.cs: The previous method to enforce height yet remember
16289           the requested high was less than ideal, this is an attempt to do
16290           it better.
16291         * Control.cs: Added comment about possible problem
16292         * Copyright: Updated format
16293         * GridItemType.cs: Fixed swapped values
16294
16295 2005-02-15  Jackson Harper  <jackson@ximian.com>
16296
16297         * BaseCollection.cs: Use property so we never access an
16298         uninitialized list. Also initialize the list in the property.
16299
16300 2005-02-15  Peter Bartok  <pbartok@novell.com>
16301
16302         * GroupBox.cs (ProcessMnemonic): Implemented
16303         * Label.cs (ProcessMnemonic): Implemented
16304         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
16305           hotkeys
16306
16307 2005-02-15  Peter Bartok  <pbartok@novell.com>
16308
16309         * RadioButton.cs (ProcessMnemonic): Implemented
16310         * CheckBox.cs (ProcessMnemonic): Implemented
16311         * Control.cs:
16312           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
16313             handling
16314           - Added internal method to allow calling ProcessMnemonic from other
16315             controls
16316         * ContainerControl.cs:
16317           - Started support for handling validation chain handling
16318           - Implemented ProcessMnemonic support
16319           - Added Select() call to Active, to make sure the active control
16320             receives focus
16321         * Form.cs: Setting toplevel flag for Forms (this was lost in the
16322           FormParent rewrite)
16323         * ThemeWin32Classic.cs:
16324           - DrawCheckBox(): Fixed stringformat to show hotkeys
16325           - DrawRadioButton(): Fixed stringformat to show hotkeys
16326         * CommonDialog.cs: Removed WndProc override, not needed
16327
16328 2005-02-14  Peter Bartok  <pbartok@novell.com>
16329
16330         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
16331           missed those in the rewrite
16332
16333 2005-02-14  Miguel de Icaza  <miguel@novell.com>
16334
16335         * NumericUpDown.cs (Increment, ToString): Add.
16336         (DecimalPlaces): implement.
16337         
16338         Add attributes.
16339         
16340         * UpDownBase.cs: Add the designer attributes.
16341
16342 2005-02-13  Peter Bartok  <pbartok@novell.com>
16343
16344         * Panel.cs: Removed border_style, now in Control
16345         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
16346           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
16347
16348 2005-02-13  Peter Bartok  <pbartok@novell.com>
16349
16350         * MouseButtons.cs: Added missing attributes
16351         * XplatUIStructs.cs: Added enumeration for title styles
16352         * LeftRightAlignment.cs: Added missing attributes
16353         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
16354           it compatible with Graphics.FromHwnd()
16355         * SelectedGridItemChangedEventArgs.cs: Fixed property type
16356         * Keys.cs: Added missing attributes
16357         * SelectionRange.cs: Added missing attributes
16358         * SelectionRangeConverter.cs: Added
16359         * XplatUI.cs:
16360           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
16361             ReleaseMenuDC methods
16362           - Renamed ReleaseWindow to UngrabWindow
16363           - Added proper startup notice to allow version identification
16364         * Form.cs:
16365           - Added missing attributes
16366           - Removed FormParent concept
16367         * Label.cs: Removed border_style field, now in Control
16368         * RadioButton.cs: Now properly selects RadioButton when focus is
16369           received
16370         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
16371         * Control.cs:
16372           - Added missing attributes
16373           - Added borderstyle handling
16374           - Removed FormParent concept support
16375           - Fixed calls to XplatUI to match changed APIs
16376           - Fixed bug that would case us to use disposed Graphics objects
16377           - Removed unneeded internal methods
16378           - PerformLayout(): Fixed to handle DockStyle.Fill properly
16379           - SelectNextControl(): Fixed to properly check common parents
16380         * TextBoxBase.cs: Removed border_style field (now in Control)
16381         * MessageBox.cs:
16382           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
16383             fixed calculations for form size
16384           - Added support for localized strings and icons
16385           - Improved form size calculations, added border
16386         * ListView.cs: Removed border_style field (now in Control)
16387         * X11Structs.cs: Moved several structs from X11 driver here
16388         * X11Keyboard.cs: Changed debug message
16389         * Application.cs: Removed FormParent concept support
16390         * CommonDialog.cs:
16391           - Resetting end_modal flag
16392           - Removed FormParent concept support
16393         * NativeWindow.cs: Removed FormParent concept support
16394         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
16395           Client area and Non-Client whole window to allow support for WM_NC
16396           messages
16397         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
16398           prevent using it until it supports Hwnd as per Geoff Norton's request
16399         * ToolBar.cs: Fixed drawing, was not doing proper drawing
16400         * PictureBox.cs: Removed border_style field, now in Control
16401         * XplatUIWin32.cs: Added new driver methods
16402
16403 2005-02-12  Peter Bartok  <pbartok@novell.com>
16404
16405         * OpacityConverter.cs: Implemented
16406         * Hwnd.cs: Internal class to support drivers that need to emulate
16407           client area/non-client area window behaviour
16408
16409 2005-02-11  Peter Bartok  <pbartok@novell.com>
16410
16411         * KeysConverter.cs: Implemented
16412
16413 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
16414
16415         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
16416         * LinkLabel: Added missing attributes
16417         * MainMenu.cs: fixes ToString
16418         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
16419         * ListBox.cs: fixes event position
16420         * TrackBar.cs: adds missing attributes and events
16421         
16422 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
16423
16424         * MenuItem.cs: Use SystemInformation and bug fixes
16425         * MenuAPI.cs: Use SystemInformation and bug fixes
16426
16427 2005-02-09  Jackson Harper  <jackson@ximian.com>
16428
16429         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
16430         their keystate otherwise things like VK_MENU get stuck "on".
16431
16432 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
16433
16434         * ListBox.cs: Fixes AddRange bug
16435         
16436 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
16437
16438         * ProgressBar.cs
16439                 - Add missing attributes
16440                 - Add missing method
16441                 
16442         * CheckedListBox.cs: Added missing attributes
16443                 - Add missing attributes
16444                 - Remove extra method
16445         
16446         * ComboBox.cs: Added missing attributes
16447         * VScrollBar.cs: Added missing attributes
16448         * ScrollBar.cs:  Added missing attributes
16449         * ListBox.cs: Fixes signature, add missing consts
16450         * LinkArea.cs:   Added missing attributes
16451         
16452
16453 2005-02-08  Peter Bartok  <pbartok@novell.com>
16454
16455         * Menu.cs: Added missing attributes
16456         * MainMenu.cs: Added missing attributes
16457         * GroupBox.cs: Added missing attributes
16458         * Label.cs: Added missing attributes
16459         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
16460         * ColorDialog.cs:
16461           - Added Instance and Options properties
16462           - Added missing attributes
16463         * Cursor.cs: Made Serializable
16464         * NotifyIcon: Added missing attributes
16465         * MenuItem.cs: Added missing attributes
16466         * TextBoxBase.cs: Implemented AppendText() and Select() methods
16467         * Panel.cs: Added Missing attributes
16468         * MonthCalendar.cs: Fixed CreateParams
16469
16470 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16471         
16472         * LinkLabel.cs:
16473                 - Fixes signature
16474                 - Fixes issues with links
16475                 - Adds the class attributes
16476
16477 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16478         
16479         * ComboBox.cs:
16480                 - Fixes button when no items available in dropdown
16481                 - Fixes repainting problems
16482                 - Adds the class attributes
16483                 
16484 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16485
16486         * XplatUIOSX.cs: Detect the menu bar and title bar height from
16487         the current theme.  Cache these on startup.
16488
16489 2005-02-07  Jackson Harper  <jackson@ximian.com>
16490
16491         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
16492         the scrollbar buttons when they are depressed.
16493
16494 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16495
16496         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
16497         Get the display size from the main displayid.  We currently dont
16498         support multiple display configurations.
16499
16500 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16501
16502         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
16503
16504 2005-02-07  Miguel de Icaza  <miguel@novell.com>
16505
16506         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
16507
16508 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
16509
16510         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
16511
16512 2005-02-04  Jackson Harper  <jackson@ximian.com>
16513
16514         * ThemeWin32Classic.cs: Respect the clipping rect when
16515         drawing. Only fill the intersection of clips and rects so there
16516         isn't a lot of large fills.
16517         * ScrollBar.cs: Pass the correct clipping rect to the theme
16518         engine. Remove some debug code.
16519
16520 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
16521         
16522         * DateTimePicker.cs:
16523                 - Fixed crash on DateTime.Parse, use Constructor instead
16524
16525 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16526         
16527         * MenuItem.cs:
16528         * MenuAPI.cs:
16529                 - Owner draw support (MeasureItem and DrawItem)
16530
16531 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16532         
16533         *  Menu.cs:
16534                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
16535                 - Fixes MenuItems.Add range
16536         * MenuItem.cs:
16537                 - MergeMenu and Clone and CloneMenu functions
16538
16539 2005-02-03  Jackson Harper  <jackson@ximian.com>
16540
16541         * ScrollBar.cs: Make abstract
16542         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
16543         is abstract.
16544
16545 2005-02-03  Jackson Harper  <jackson@ximian.com>
16546
16547         * ScrollBar.cs: First part of my scrollbar fixups. This removes
16548         all the unneeded refreshes and uses invalidates with properly
16549         computed rects.
16550
16551 2005-02-03  Peter Bartok  <pbartok@novell.com>
16552
16553         * ComponentModel.cs: Added
16554         * IDataGridEditingService.cs: Added
16555         * Timer.cs: Added missing attributes
16556         * ToolTip.cs: Added missing attributes
16557
16558 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16559
16560         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
16561
16562 2005-02-03  Peter Bartok  <pbartok@novell.com>
16563
16564         * ListBox.cs: Added missing attributes
16565
16566 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
16567         
16568         * ListBox.cs:
16569                 - Fixes font height after font change
16570                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
16571                 
16572 2005-02-02  Peter Bartok  <pbartok@novell.com>
16573
16574         * HandleData.cs: Introduced static methods to allow class
16575           to be more self-contained and track it's own HandleData objects
16576         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
16577           HandleData to use new static methods
16578
16579 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
16580
16581         * Combobox.cs:
16582                 - Fixes default size and PreferredHeight
16583                 - Missing events
16584                 - ObjectCollection.Insert implementation
16585                 
16586         * ListControl.cs
16587                 - Fixes signature
16588         * ListBox.cs:
16589                 - Several fixes
16590                 - ObjectCollection.Insert implementation
16591                 - No selection after clean
16592                 - Small fixes
16593
16594 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16595
16596         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
16597
16598 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
16599
16600         * Combobox.cs:
16601                 - Caches ItemHeight calculation for OwnerDrawVariable
16602                 - Handles dropdown properly
16603                 - Fixes several minor bugs
16604
16605 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16606
16607         * ListBox.cs:
16608                 - Fixes 71946 and 71950
16609                 - Fixes changing Multicolumn on the fly
16610                 - Fixes keyboard navigation on Multicolumn listboxes
16611
16612 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16613         
16614         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
16615         crash reporter log.
16616
16617 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16618
16619         * XplatUIOSX.cs: Allow applications to actually exit.
16620
16621 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16622
16623         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
16624         their parent at creation time rather than lazily later.  Fixes a major
16625         regression we were experiencing.
16626
16627 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16628
16629         * ThemeWin32Classic.cs: more date time picker painting fixes
16630         * DateTimePicker.cs: more monthcalendar drop down fixes
16631         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
16632
16633 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16634
16635         * ScrollBar.cs:
16636                 - When moving the thumb going outside the control should stop the moving
16637                 - Adds the firing of missing events
16638                 - Fixes no button show if Size is not specified
16639                 - End / Home keys for keyboard navigation
16640
16641 2005-01-30  Peter Bartok  <pbartok@novell.com>
16642
16643         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
16644           sanity check to prevent theoretical loop
16645         * XplatUIWin32.cs (SetVisible): Removed debug output
16646         * XplatUIX11.cs (SystrayChange): Added sanity check
16647         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
16648         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
16649           behaviour, valid until the X11 client window rewrite is done
16650         * TextBox.cs (ctor): Setting proper default foreground and background
16651           colors
16652
16653 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
16654
16655         * Theme: Added DrawDateTimePicker to interface
16656         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
16657         * DateTimePicker.cs: Created (still needs keys and painting code)
16658         * DateTimePickerFormat.cs: added
16659         * MonthCalendar.cs: fixed CreateParams for popup window mode
16660           
16661 2005-01-29  Peter Bartok  <pbartok@novell.com>
16662
16663         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
16664           this should also the calculations for ligher/darker
16665         * Theme.cs: Fixed defaults for ScrollBar widths/heights
16666
16667 2005-01-29  Peter Bartok  <pbartok@novell.com>
16668
16669         * ArrangeDirection.cs: Added
16670         * ArrangeStartingPositon.cs: Added
16671         * SystemInformation.cs: Implemented
16672         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16673           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
16674           used by SystemInformation class
16675         * X11Strucs.cs: Added XSizeHints structure
16676         * MenuAPI.cs:
16677           - Fixed CreateParams to make sure the menu window is always visible
16678           - TrackPopupMenu: Added check to make sure we don't draw the
16679             menu offscreen
16680
16681 2005-01-29  Peter Bartok  <pbartok@novell.com>
16682
16683         * HandleData.cs: Added method for altering invalid area
16684         * TextBoxBase.cs: Implemented TextLength
16685
16686 2005-01-28  Peter Bartok  <pbartok@novell.com>
16687
16688         * XplatUIX11.cs: Improvement over last patch, not sending
16689           the WM_PAINT directly anymore, instead we scroll any pending
16690           exposed areas and let the system pick out the WM_PAINT later
16691
16692 2005-01-28  Peter Bartok  <pbartok@novell.com>
16693
16694         * SWF.csproj: Deleted, no longer used. Instead,
16695           Managed.Windows.Forms/SWF.csproj should be used
16696         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
16697           directly, to avoid a potential race condition with the next
16698           scroll
16699
16700 2005-01-28  Peter Bartok  <pbartok@novell.com>
16701
16702         * XplatUI.cs: Made class internal
16703
16704 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
16705
16706         * CheckedListBox.cs:
16707                 - Draw focus
16708                 - Fixed Drawing
16709                 - Missing methods and events
16710
16711 2005-01-27  Peter Bartok  <pbartok@novell.com>
16712
16713         * Application.cs (Run): Don't use form if we don't have one
16714
16715 2005-01-27  Peter Bartok  <pbartok@novell.com>
16716
16717         * TextBoxBase.cs (get_Lines): Fixed index off by one error
16718
16719 2005-01-27  Peter Bartok  <pbartok@novell.com>
16720
16721         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
16722         * GridItem.cs: Added; Patch by Jonathan S. Chambers
16723         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
16724         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
16725         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
16726         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
16727         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16728         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16729         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16730         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16731         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16732         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16733
16734 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16735
16736         * Combobox.cs:
16737                 - Draw focus on Simple Combobox
16738                 - Fixes drawing issues
16739                 - fixes 71834
16740
16741 2005-01-27  Peter Bartok  <pbartok@novell.com>
16742
16743         * Form.cs:
16744           - Place window in default location, instead of hardcoded 0/0
16745           - Send initial LocationChanged event
16746         * Control.cs:
16747           - UpdateBounds after creation to find out where the WM placed us
16748           - Make sure that if the ParentForm changes location the Form
16749             is notified
16750         * XplatUIX11.cs: XGetGeometry will not return the coords relative
16751             to the root, but to whatever the WM placed around us.
16752             Translate to root coordinates before returning toplevel
16753             coordinates
16754         * XplatUIWin32.cs: Removed debug output
16755         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
16756           flag to GetWindowPos, to allow translation of coordinates on X11
16757
16758 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16759
16760         * ListBox.cs: connect LostFocus Event
16761
16762 2005-01-27  Peter Bartok  <pbartok@novell.com>
16763
16764         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16765           XplatUIX11.cs: Extended the Systray API
16766         * Form.cs: Removed debug output
16767         * Application.cs: Fixed focus assignment, always need to call
16768           XplatUI.Activate() since Form.Activate() has rules that may
16769           prevent activation
16770         * NotifyIcon.cs: Should be complete now
16771         * ToolTip.cs: Worked around possible timer bug
16772
16773 2005-01-27  Jackson Harper  <jackson@ximian.com>
16774
16775         * TabControl.cs:
16776         - Only invalidate the effected tabs when the
16777         selected index changes. This reduces drawing and gets rid of some
16778         flicker.
16779         - Only refresh if the tabs need to be shifted, otherwise only
16780         invalidate the slider button.
16781         - On windows the tabs are not filled to right if the slider is
16782         visible.
16783         
16784 2005-01-27  Jackson Harper  <jackson@ximian.com>
16785
16786         * TabControl.cs: Only refresh on mouseup if we are showing the
16787         slider. Also only invalidate the button whose state has changed.
16788
16789 2005-01-26  Peter Bartok  <pbartok@novell.com>
16790
16791         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
16792         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
16793           and SystrayRemove() methods
16794         * XplatUIOSX.cs: Stubbed Systray methods
16795         * XplatUIX11.cs:
16796           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
16797             methods
16798           - Fixed broken XChangeProperty calls (marshalling messed up things)
16799         * X11Structs.cs: Added enums and structs required for Size hinting
16800         * NotifyIcon.cs: Added & implemented
16801
16802 2005-01-26  Jackson Harper  <jackson@ximian.com>
16803
16804         * TabControl.cs: Space vertically layed out tabs properly.
16805
16806 2005-01-26  Peter Bartok  <pbartok@novell.com>
16807
16808         * Form.cs (CreateClientParams): Always set the location to 0,0
16809           since we're a child window.
16810
16811         * Control.cs (SetVisibleCore): Always explicitly setting the location
16812           of a toplevel window, apparently X11 doesn't like to move windows
16813           while they're not mapped.
16814
16815 2005-01-26  Jackson Harper  <jackson@ximian.com>
16816
16817         * TabControl.cs: Implement FillToRight size mode with vertically
16818         rendered tabs.
16819
16820 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16821
16822         * ControlPaint.cs, ThemeWin32Classic.cs
16823                 - Fixes DrawFocusRectangle
16824
16825 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16826
16827         * MenuAPI.cs:
16828                 - MenuBar tracking only starts when item is first clicked
16829                 - Fixes menu hidding for multiple subitems
16830                 - Unselect item in MenuBar when item Executed
16831                 - Fixes bug 71495
16832
16833 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
16834
16835         * ListControl.cs:
16836                 - IsInputKey for ListBox
16837         * ListBox.cs:
16838                 - Focus item
16839                 - Shift and Control item selection
16840                 - Implement SelectionMode.MultiExtended
16841                 - Fixes RightToLeft
16842         * ComboBox.cs:
16843                 - IsInputKey implemented
16844                 - Do not generate OnTextChangedEdit on internal txt changes
16845                 
16846 2005-01-23  Peter Bartok  <pbartok@novell.com>
16847
16848         * AccessibleObject.cs: Partially implemented Select()
16849         * MonthCalendar.cs: Added missing attributes and events
16850         * Form.cs: Fixed CreateParams behaviour, now controls derived from
16851           form can properly override CreateParams.
16852         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16853           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
16854           Control performs Invalidate & Update
16855         * NativeWindow (CreateHandle): Added special handling for Form
16856           and Form.FormParent classes to allow overriding of From.CreateParams
16857         * Control.cs:
16858           - ControlNativeWindow: Renamed 'control' variable to more intuitive
16859             name 'owner'
16860           - ControlNativeWindow: Added Owner property
16861           - Removed usage of Refresh() on property changes, changed into
16862             Invalidate(), we need to wait until the queue is processed for
16863             updates, direct calls might cause problems if not all vars for
16864             Paint are initialized
16865           - Added call to UpdateStyles() when creating the window, to set any
16866             styles that CreateWindow might have ignored.
16867           - Added support for Form CreateParent overrides to UpdateStyles()
16868         * MessageBox.cs: Removed no longer needed FormParent override stuff,
16869           CreateParams are now properly overridable
16870         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
16871           CreateParams are now properly overridable
16872
16873 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
16874
16875         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
16876         OnTextBoxChanged.
16877
16878         Capture LostFocus and OnTextBoxChanged.  The later introduces a
16879         recursive invocation that I have not figured out yet.
16880
16881         Reset the timer when not using (it was accumulating).
16882
16883
16884         (OnTextBoxChanged): Set UserEdit to true here to track whether the
16885         user has made changes that require validation.
16886
16887         Reset changing to avoid loops.
16888
16889 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
16890
16891         * NumericUpDown.cs: Display value at startup.
16892
16893         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
16894         ValidateEditText.
16895
16896         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
16897         filled in.  Added some basic parsing of text.
16898
16899         Still missing the OnXXX method overrides, and figuring out the
16900         events that must be emitted.
16901
16902         * UpDownBase.cs: Handle UserEdit on the Text property.
16903         
16904 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
16905
16906         * ComboBox.cs:
16907           - Fixes IntegralHeight
16908           - ToString method
16909
16910 2005-01-21  Jackson Harper  <jackson@ximian.com>
16911
16912         * TabControl.cs: Set the SelectedIndex property when SelectedTab
16913         is set so that the page visibility is updated and the tabs are
16914         sized correctly.
16915
16916 2005-01-21  Jackson Harper  <jackson@ximian.com>
16917
16918         * TabControl.cs: Use cliping rectangle for blitting. Give the
16919         theme the clipping rect so we can do clipping while
16920         drawing. Remove some debug code.
16921
16922 2005-01-21  Jackson Harper  <jackson@ximian.com>
16923
16924         * TabPage.cs: Add a new method so tab pages can force the tab
16925         control to recalculate the tab page sizes.
16926         * TabControl.cs: UpdateOwner needs to make the tab control recalc
16927         sizes.
16928
16929 2005-01-20  Jackson Harper  <jackson@ximian.com>
16930
16931         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
16932
16933 2005-01-20  Jackson Harper  <jackson@ximian.com>
16934
16935         * TreeView.cs: Set the bounds for nodes properly. They were
16936         getting screwed up when checkboxes were not enabled, but images
16937         were.
16938
16939 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
16940
16941         * ListBox.cs:
16942                 - Owner draw support
16943                 - Fixes
16944                 
16945 2005-01-20  Jackson Harper  <jackson@ximian.com>
16946
16947         * XplatUIStructs.cs: More misc keys
16948         * X11Keyboard.cs: Ignore some control keys.
16949
16950 2005-01-20  Jackson Harper  <jackson@ximian.com>
16951
16952         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
16953         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
16954
16955 2005-01-19  Peter Bartok  <pbartok@novell.com>
16956
16957         * Control.cs: Un-selecting the control when it is loosing focus
16958
16959 2005-01-19  Jackson Harper  <jackson@ximian.com>
16960
16961         * TreeView.cs: Hook up to the text controls leave event so we can
16962         end editing when the users clicks outside the text box.
16963         
16964 2005-01-19  Jackson Harper  <jackson@ximian.com>
16965
16966         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
16967         get set in the conversion array.
16968
16969 2005-01-19  Peter Bartok  <pbartok@novell.com>
16970
16971         * Application.cs (ModalRun): Added a call to CreateControl to ensure
16972           focus is properly set
16973         * Button.cs:
16974           - Added missing attributes
16975           - removed styles, those are already set in the base class
16976         * ButtonBase.cs:
16977           - Added missing attributes
16978           - Added clip window styles
16979         * CheckBox.cs: Added missing attributes
16980         * CommonDialog.cs:
16981           - FormParentWindow.CreateParams: Added required clip styles
16982         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
16983           also filters modifier keys
16984         * MessageBox.cs:
16985           - Added assignment of Accept and Cancel button to enable Enter
16986             and Esc keys in MessageBox dialogs
16987           - FormParentWindow.CreateParams: Added required clip styles
16988         * RadioButton.cs: Added missing attributes
16989         * TextControl.cs: No longer draws selection if control does not
16990           have focus
16991         * TextBoxBase.cs:
16992           - Now draws simple rectangle around test area to make it obvious
16993             there's a control. This is a hack until we properly support borders
16994           - A few simple fixes to support selections better, now erases selected
16995             text when typing, and resets selection when using movement keys
16996
16997 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16998
16999         * UpDownBase.cs: Added some new properties.
17000
17001         * DomainUpDown.cs: Implement a lot to get my test working.
17002
17003 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17004
17005         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
17006
17007 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17008
17009         * OSXStructs (WindowAttributes): Fixed csc complaints
17010
17011 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17012
17013         * XplayUIOSX.cs:
17014           OSXStructs.cs: Initial refactor to move enums and consts into
17015           OSXStructs and use them in the driver for greater readability.
17016
17017 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17018
17019         * XplatUIOSX.cs: Initial support for Standard Cursors.
17020         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
17021
17022 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
17023
17024         * ComboBox.cs: ability to change style when the ctrl is already
17025         created, missing methods and events, bug fixes, signature fixes
17026
17027 2005-01-19  Peter Bartok  <pbartok@novell.com>
17028
17029         * Cursors.cs (ctor): Added ctor to fix signature
17030
17031 2005-01-18  Peter Bartok  <pbartok@novell.com>
17032
17033         * Button.cs: Implemented DoubleClick event
17034         * ButtonBase.cs:
17035           - Fixed keyboard handling to behave like MS, where the press of
17036             Spacebar is equivalent to a mousedown, and the key release is
17037             equivalent to mouseup. Now a spacebar push will give the same
17038             visual feedback like a mouse click.
17039           - Added missing attributes
17040           - Added ImeModeChanged event
17041           - Added support for generating DoubleClick event for derived classes
17042         * CheckBox.cs:
17043           - Implemented DoubleClick event
17044           - Added missing attributes
17045         * CommonDialog.cs: Added missing attribute
17046         * ContextMenu.cs: Added missing attributes
17047         * RadioButton.cs:
17048           - AutoChecked buttons do not allow to be unselected when clicked
17049             (otherwise we might end up with no selected buttons in a group)
17050           - Added missing attributes
17051           - Implemented DoubleClickEvent
17052         * ThreadExceptionDialog.cs: Enabled TextBox code
17053
17054 2005-01-18  Peter Bartok  <pbartok@novell.com>
17055
17056         * Form.cs: Removed debug output
17057         * Button.cs: Added support for DoubleClick method
17058
17059 2005-01-18  Peter Bartok  <pbartok@novell.com>
17060
17061         * Form.cs:
17062           - Added method to parent window that allows triggering size
17063             calculations when a menu is added/removed
17064           - set_Menu: Cleaned up mess from early days of Form and Control,
17065             now properly triggers a recalc when a menu is added/removed
17066           - Added case to select form itself as focused form if no child
17067             controls exist
17068           - Added PerformLayout call when showing dialog, to ensure properly
17069             placed controls
17070         * Control.cs:
17071           - Select(): Made internal so Form can access it
17072           - Focus(): Only call Xplat layer if required (avoids loop), and sets
17073             status
17074         * Application.cs (Run): Removed hack and calls PerformLayout instead
17075           to trigger calculation when Form becomes visible
17076
17077 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
17078
17079         * ComboBox.cs: fixes for ownerdraw
17080
17081 2005-01-18  Peter Bartok  <pbartok@novell.com>
17082
17083         * TextControl.cs:
17084           - Sentinel is no longer static, each Document gets it's own, this
17085             avoids locking or alternatively overwrite problems when more
17086             than one text control is used simultaneously.
17087           - Switched to use Hilight and HilightText brushes for text selection
17088
17089         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
17090
17091 2005-01-18  Peter Bartok  <pbartok@novell.com>
17092
17093         * Control.cs:
17094           - Hooked up the following events:
17095                 o ControlAdded
17096                 o ControlRemoved
17097                 o HandleDestroyed
17098                 o ImeModeChanged
17099                 o ParentChanged
17100                 o TabStopChanged
17101                 o Invalidated
17102                 o SystemColorsChanged
17103                 o ParentFontChanged
17104                 o Move
17105           - Removed debug output
17106           - Added a call to the current theme's ResetDefaults when a color change
17107             is detected
17108         * Form.cs: Now setting the proper ImeMode
17109         * Theme.cs: Defined a method to force recreation of cached resources
17110           and rereading of system defaults (ResetDefaults())
17111         * ThemeWin32Classic.cs: Added ResetDefaults() stub
17112
17113 2005-01-17  Peter Bartok  <pbartok@novell.com>
17114
17115         * Control.cs: Added missing attributes
17116
17117 2005-01-17  Jackson Harper  <jackson@ximian.com>
17118
17119         * TreeNode.cs: Implement editing. Add missing properties selected
17120         and visible.
17121         * TreeView.cs: Implement node editing. Also some fixes to use
17122         Invalidate (invalid area) instead of Refresh when selecting.
17123
17124 2005-01-17  Peter Bartok  <pbartok@novell.com>
17125
17126         * Control.cs:
17127           - Implemented InvokeGotFocus() method
17128           - Implemented InvokeLostFocus() method
17129           - Implemented InvokePaint() method
17130           - Implemented InvokePaintBackground() method
17131           - Implemented InvokeClick() method
17132           - Implemented FindForm() method
17133           - Implemented RectangleToClient() method
17134           - Implemented ClientToRectangle() method
17135           - Implemented ResetBackColor() method
17136           - Implemented ResetCursor() method
17137           - Implemented ResetFont() method
17138           - Implemented ResteForeColor() method
17139           - Implemented ResetImeMode() method
17140           - Implemented ResetLeftToRight() method
17141           - Implemented ResetText() method
17142           - Implemented Scale() methods
17143           - Implemented ScaleCore() method
17144           - Implemented Update() method
17145           - Removed unused variables
17146           - Stubbed AccessibilityNotifyClients and
17147             ControlAccessibleObject.NotifyClients() methods (dunno what to do
17148             with those yet)
17149           - Now setting proper default for RightToLeft property
17150           - Fixed bug in SetClientSizeCore that would cause windows to get
17151             really big
17152           - Now sending Click/DoubleClick events
17153           - Now selecting controls when left mouse button is clicked on
17154             selectable control
17155         * AccessibleEvents.cs: Added
17156         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
17157         * XplatUIOSX.cs: Stubbed UpdateWindow() method
17158         * XplatUIWin32.cs: Implemented UpdateWindow() method
17159         * XplatUIX11.cs: Implemented UpdateWindow() method
17160         * Form.cs: Removed stray semicolon causing CS0162 warning
17161         * ThemeWin32Classic.cs: Fixed unused variable warnings
17162         * ScrollableControl.cs: Now calls base method for ScaleCore
17163         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
17164           style to avoid interference with internal click handler (which is
17165           different than standard Control click handling)
17166         * RadioButton.cs:
17167           - Now unchecks all sibling radio buttons when control is
17168             selected (Fixes #68756)
17169           - Removed internal tabstop variable, using the one inherited from
17170             Control
17171
17172 2005-01-17  Jackson Harper  <jackson@ximian.com>
17173
17174         * NavigateEventArgs.cs: Fix base type.
17175         * LinkLabel.cs: Sig fix
17176         
17177 2005-01-17  Jackson Harper  <jackson@ximian.com>
17178
17179         * TreeView.cs: Only invalidate the effected nodes bounds when
17180         selecting nodes.
17181
17182 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17183
17184         * XplatUIWin32.cs: fixes Win32 marshaling
17185         * XplatUIX11.cs: fixes method signature
17186
17187 2005-01-17  Peter Bartok  <pbartok@novell.com>
17188
17189         * XplatUIX11.cs: Clean up resources when we no longer need them
17190
17191 2005-01-17  Peter Bartok  <pbartok@novell.com>
17192
17193         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
17194           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
17195           and DestroyCursor() methods.
17196         * Cursor.cs: Partially implemented, now supports standard cursors;
17197           still contains some debug code
17198         * Cursors.cs: Implemented class
17199         * Control.cs:
17200           - WndProc(): Added handling of WM_SETCURSOR message, setting the
17201             appropriate cursor
17202           - Implemented Cursor property
17203           - Replaced break; with return; more straightforwar and possibly
17204             faster
17205           - Now properly setting the result for WM_HELP
17206         * X11Structs.cs: Added CursorFontShape enum
17207         * XplatUIStructs.cs:
17208           - Added StdCursor enum (to support DefineStdCursor() method)
17209           - Added HitTest enum (to support sending WM_SETCURSOR message)
17210         * XplatUIX11.cs:
17211           - Now sends the WM_SETCURSOR message
17212           - Implemented new cursor methods
17213         * XplatUIOSX.cs: Stubbed new cursor methods
17214         * XplatUIWin32.cs:
17215           - Implemented new cursor methods
17216           - Added GetSystemMetrics function and associated enumeration
17217
17218 2005-01-15  Peter Bartok  <pbartok@novell.com>
17219
17220         * Control.cs:
17221           - WndProc(): Now handles EnableNotifyMessage
17222           - SelectNextControl(): Fixed bug where if no child or sibling
17223             controls exist we looped endlessly
17224
17225 2005-01-14  Jackson Harper  <jackson@ximian.com>
17226
17227         * TreeView.cs: Recalculate the tab pages when a new one is added
17228         so that the proper bounding rects are created.
17229
17230 2005-01-14  Jackson Harper  <jackson@ximian.com>
17231
17232         * TreeView.cs: Draw a gray box instead of a grip in the lower
17233         right hand corner when there are both horizontal and vertical
17234         scroll bars.
17235
17236 2005-01-14  Jackson Harper  <jackson@ximian.com>
17237
17238         * Control.cs: When erasing backgrounds use FromHwnd instead of
17239         FromHdc when there is a NULL wparam. This occurs on the X driver.
17240         * XplatUIX11.cs: Set the wparam to NULL.
17241
17242 2005-01-13  Jackson Harper  <jackson@ximian.com>
17243
17244         * PictureBox.cs: Implement missing methods (except ToString, need
17245         to test that on windows) and events. When visibility is changed we
17246         need to redraw the image because the buffers are killed. When size
17247         is changed refresh if the sizemode needs it.
17248
17249 2005-01-13  Peter Bartok  <pbartok@novell.com>
17250
17251         * Control.cs (SelectNextControl): Was using wrong method to select
17252           a control
17253
17254 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17255
17256         * ComboBox.cs: fixes dropstyle
17257
17258 2005-01-13  Peter Bartok  <pbartok@novell.com>
17259
17260         * Form.cs:
17261           - Implemented Select() override
17262           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
17263           - Now sets keyboard focus on startup
17264         * Control.cs (SelectNextControl): Now properly handles directed=true
17265         * TextBoxBase.cs:
17266           - WndProc: Now passes tab key on to base if AcceptTabChar=false
17267           - Added (really bad) focus rectangle (mostly for testing)
17268         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
17269           to enforce redraw on focus changes
17270         * ContainerControl.cs:
17271           - Fixed detection of Shift-Tab key presses
17272           - Fixed traversal with arrow keys
17273         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
17274           gonna keep this or if it's complete yet
17275         
17276 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17277
17278         * ComboBox.cs: missing properties, fixes
17279
17280 2005-01-13  Peter Bartok  <pbartok@novell.com>
17281
17282         * Panel.cs (ctor): Setting Selectable window style to off
17283         * Splitter.cs (ctor): Setting Selectable window style to off
17284         * GroupBox.cs (ctor): Setting Selectable window style to off
17285         * Label.cs (ctor): Setting Selectable window style to off
17286
17287 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
17288
17289         * UpDownBase.cs (InitTimer): If the timer has been already
17290         created, enable it.
17291
17292         Use a TextBox instead of a Label.
17293
17294 2005-01-12  Jackson Harper  <jackson@ximian.com>
17295
17296         * TreeView.cs: Refresh the tree after sorting the nodes. Always
17297         draw the connecting node lines (when ShowLines is true).
17298         * TreeNode.cs: The nodes index can now be updated. This is used
17299         when a node collection is sorted.
17300         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
17301         insert or an existing unsorted node collection can be sorted.
17302         
17303 2005-01-12  Peter Bartok  <pbartok@novell.com>
17304
17305         * ContainerControl.cs: Implemented ProcessDialogKeys()
17306
17307 2005-01-12  Peter Bartok  <pbartok@novell.com>
17308
17309         * Control.cs:
17310           - Implemented SelectNextControl() method
17311           - Several focus related bug fixes
17312           - Fixed Docking calculations to match MS documentation and
17313             behaviour
17314
17315 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
17316
17317         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
17318         bug fixes
17319
17320 2005-01-12  Peter Bartok  <pbartok@novell.com>
17321
17322         * Control.cs:
17323           - Fixed broken Contains() method
17324           - Implemented GetNextControl() method. Finally. This is the pre-
17325             requisite for focus handling.
17326
17327 2005-01-12  Peter Bartok  <pbartok@novell.com>
17328
17329         * OSXStrucs.cs: Added
17330
17331 2005-01-12  Peter Bartok  <pbartok@novell.com>
17332
17333         * XplatUIWin32.cs:
17334           - Removed PeekMessageFlags
17335           - Implemented SetWindowStyle() method
17336         * XplatUIStructs.cs: Added PeekMessageFlags
17337         * X11Structs: Added missing border_width field to XWindowChanges struct
17338         * XplatUIX11.cs:
17339           - PeekMessage: Now throws exception if flags which are not yet
17340             supported are passed
17341           - Implemented SetWindowStyle() method
17342           - Fixed SetZOrder to handle AfterHwnd properly
17343         * XplatUI.cs: Added SetWindowStyle() method
17344         * XplatUIDriver.cs: Added SetWindowStyle() abstract
17345         * Control.cs:
17346           - Implemented UpdateStyles() method
17347           - Implemented UpdateZOrder() method
17348         * XplatUIOSX.cs: Added SetWindowStyle() stub
17349
17350 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
17351
17352         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
17353         button mouse).
17354
17355
17356 2005-01-11  Jackson Harper  <jackson@ximian.com>
17357
17358         * TreeView.cs: Still need to draw lines to siblings even if out of
17359         the current node is out of the clip.
17360
17361 2005-01-11  Jackson Harper  <jackson@ximian.com>
17362
17363         * TreeView.cs: When setting the hbar/vbar/grip position use
17364         SetBounds so that perform layout is only called once. Also suspend
17365         and resume layout so layout is only done once for all controls.
17366         - Removed some debug fluff
17367         * SizeGrip.cs: Call base implmentation in overriding methods.
17368         - When visibility is changed the drawing buffers are killed so we
17369         need to redraw.
17370
17371 2005-01-11  Jackson Harper  <jackson@ximian.com>
17372
17373         * TreeView.cs: Calculate the open node count while drawing. This
17374         saves us an entire tree traversal for every paint operation. Use
17375         a member var for the open node count so less vars are passed around.
17376
17377 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
17378
17379         * MonthCalendar.cs:
17380         - fixed selection to use mousemove, not mouse polling on timer
17381         * ThemeWin32Classic.cs
17382         - removed redundant unused variable "no_more_content"
17383         
17384 2005-01-11  Peter Bartok  <pbartok@novell.com>
17385
17386         * XplatUIX11.cs (DoEvents): Needs to return when no more events
17387           are pending, so it now calls PeekMessage instead of GetMessage;
17388           implemented a incomplete version of PeekMessage
17389         
17390 2005-01-11  Peter Bartok  <pbartok@novell.com>
17391
17392         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
17393           I18n issues
17394         * TextBoxBase.cs: Added sending of TextChanged event
17395
17396 2005-01-10  Jackson Harper  <jackson@ximian.com>
17397
17398         * TreeView.cs: Try not to draw outside the clipping rectangle on
17399         each node element.
17400
17401 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
17402
17403         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
17404
17405 2005-01-10  Jackson Harper  <jackson@ximian.com>
17406
17407         * TreeView.cs:
17408         - Implement fast scrolling. Now only the newly
17409         exposed nodes are drawn and the old image is moved using the
17410         XplatUI::ScrollWindow method.
17411         - Factor in height of nodes when calculating whether or not the
17412         node is in the clipping rect.
17413
17414 2005-01-10  Jackson Harper  <jackson@ximian.com>
17415
17416         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
17417
17418 2005-01-10  Peter Bartok  <pbartok@novell.com>
17419
17420         * Application.cs: Added temporary hack to resolve all our resize
17421           required issues on startup. This will get fixed properly at
17422           some point in the future
17423
17424 2005-01-10  Jackson Harper  <jackson@ximian.com>
17425
17426         * SizeGrip.cs: New internal class that is used as a sizing
17427         grip control...hence the name.
17428
17429 2005-01-10  Peter Bartok  <pbartok@novell.com>
17430
17431         * Control.cs: Implemented proper TabIndex handling, now assigning
17432           a tabindex when a control is added to a container
17433         * GroupBox.cs (ctor): Now sets the Container style bit, required
17434           for Control.GetNextControl()
17435
17436 2005-01-09  Jackson Harper  <jackson@ximian.com>
17437
17438         * TextBoxBase.cs: Clear window when scrolling (fixes build).
17439
17440 2005-01-09  Peter Bartok <pbartok@novell.com>
17441
17442         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
17443           XplatUIX11.cs: Added ability to control ScrollWindow expose and
17444           an overload for ScrollWindow to allow only scrolling a rectangle
17445
17446 2005-01-09  Peter Bartok <pbartok@novell.com>
17447
17448         * Form.cs:
17449           - Implemented SetDesktopBounds method
17450           - Implemented SetDesktopLocation method
17451
17452 2005-01-08  Jackson Harper  <jackson@ximian.com>
17453
17454         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
17455         the node count has changed, this removes to VScroll::Refresh calls
17456         when drawing.
17457
17458 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
17459
17460         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
17461
17462 2005-01-07  Jackson Harper  <jackson@ximian.com>
17463
17464         * TreeNode.cs: Just update the single node when it is
17465         checked. Don't refresh after toggling, the Expand/Collapse already
17466         handles this.
17467         * TreeView.cs: Respect clipping a little more when drawing. Try
17468         not to redraw things that don't need to be redrawn. Just hide the
17469         scrollbars when they are no longer needed instead of removing
17470         them, so they don't have to be created again and again.
17471         
17472 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
17473
17474         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
17475         coordinates to window space to place the caret properly, FIXED.
17476         Implement GetWindowState & SetWindowState
17477
17478 2005-01-06  Peter Bartok <pbartok@novell.com>
17479
17480         * Form.cs:
17481           - Implemented ClientSize property
17482           - Implemented DesktopBounds property
17483           - Implemented DesktopLocation property
17484           - Implemented IsRestrictedWindow property
17485           - Implemented Size property
17486           - Implemented TopLevel property
17487           - Implemented FormWindowState property
17488         * Control.cs:
17489           - Implemented GetTopLevel() method
17490           - Implemented SetTopLevel() method
17491         * X11Structs.cs (Atom):
17492           - Added AnyPropertyType definition
17493           - Added MapState definiton and updated XWindowAttribute struct
17494         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
17495         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
17496         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
17497         * XplatUIWin32.cs:
17498           - Implemented GetWindowState() and SetWindowState() methods
17499           - Fixed Win32GetWindowLong return type
17500         * XplatUIX11.cs:
17501           - Introduced central function for sending NET_WM messages
17502           - Implemented GetWindowState() and SetWindowState() methods
17503         * TextBoxBase.cs (set_Lines):
17504           - Now uses Foreground color for text added via Text property (Duh!)
17505           - Added code to remember programmatically requested size (fixes
17506             behaviour when Multiline is set after Size)
17507           - Added AutoSize logic
17508
17509 2005-01-06  Jackson Harper  <jackson@ximian.com>
17510
17511         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
17512
17513 2005-01-06  Jackson Harper  <jackson@ximian.com>
17514
17515         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
17516         set to less then 0.
17517
17518 2005-01-06  Jackson Harper  <jackson@ximian.com>
17519
17520         * ScrollableControl.cs: Lazy init the scrollbars.
17521         
17522 2005-01-06  Jackson Harper  <jackson@ximian.com>
17523
17524         * Theme.cs: Speed up getting pens and solid brushes, by using
17525         their ARGB as a hash instead of tostring and not calling Contains.
17526
17527 2005-01-06  Peter Bartok <pbartok@novell.com>
17528
17529         * Form.cs:
17530           - Implemented OnActivated and OnDeactivate event trigger
17531           - Implemented Activate() method
17532           - Fixed ShowDialog() to activate the form that was active before
17533             the dialog was shown
17534         * XplatUIX11.cs:
17535           - Added global active_window var that tracks the currently active
17536             X11 window
17537           - Now always grabs Property changes from the root window to always
17538             catch changes on the active window property
17539           - Added code to PropertyNotify handler to send Active/Inactive
17540             messages when state changes. This puts X11 and Win32 en par on
17541             WM_ACTIVATE notifications (except for double notifications when
17542             the user clicks away from our modal window to another one of our
17543             windows)
17544
17545 2005-01-05  Jackson Harper  <jackson@ximian.com>
17546
17547         * ImageList.cs: Implment ctor
17548
17549 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17550
17551         * XplatUIOSX.cs: Implement Activate/SetTopmost
17552
17553 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17554
17555         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
17556
17557 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17558
17559         * XplatUIOSX.cs: Implement GetActive/SetFocus.
17560
17561 2005-01-05  Peter Bartok <pbartok@novell.com>
17562
17563         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
17564           XplatUIOSX.cs: Added GetActive method to return the currently
17565           active window for the application (or null, if none is active)
17566         * Form.cs:
17567           - Implemented ActiveForm
17568           - Commented out owner assignment for modal dialogs (causes problems
17569             on Win32, since the owner will be disabled)
17570           - Reworked some Active/Focus handling (still incomplete)
17571         * CommonDialog.cs: Commented out owner assignment for modal dialogs
17572           (causes problems on Win32, since the owner will be disabled)
17573         * IWin32Window: Added ComVisible attribute
17574
17575 2005-01-05  Peter Bartok <pbartok@novell.com>
17576
17577         * ToolTip.cs (WndProc): Enable setting focus now that we have the
17578           required XplatUI functions.
17579
17580 2005-01-05  Peter Bartok <pbartok@novell.com>
17581
17582         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
17583           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
17584           to implement focus and activation handling; still incomplete and
17585           with debug output
17586
17587 2005-01-04  Peter Bartok <pbartok@novell.com>
17588
17589         * TextBoxBase.cs: Changed access level for Document property to
17590           match switch to internal for TextControl
17591
17592 2005-01-04  Peter Bartok <pbartok@novell.com>
17593
17594         * AccessibleObject: Added ComVisible attribute
17595
17596 2005-01-04  Jackson Harper  <jackson@ximian.com>
17597
17598         * X11Keyboard.cs: Remove unneeded var.
17599
17600 2005-01-04  Jackson Harper  <jackson@ximian.com>
17601
17602         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
17603         but PAINT.
17604         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
17605         ClientMessage. This makes apps exit cleanly (more often).
17606         
17607 2005-01-04  Jackson Harper  <jackson@ximian.com>
17608
17609         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
17610         handling focus, return correct colors and fonts,
17611         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
17612         handle selection, horizontal scrolling, and mouse interaction.
17613
17614 2005-01-04  Peter Bartok <pbartok@novell.com>
17615
17616         * ICommandExecutor.cs: Added
17617         * IDataGridColumnStyleEditingNotificationService.cs: Added
17618         * IFeatureSupport.cs: Added
17619         * IFileReaderService.cs: Added
17620         * IDataObject.cs: Added ComVisible attribute
17621         * AmbientProperties.cs: Added
17622         * BaseCollection.cs: Added missing attributes
17623         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
17624         * BaseCollection.cs: Added missing attributes
17625         * Binding.cs: Added TypeConverter attribute
17626         * BindingContext.cs: Added DefaultEvent attribute
17627         * BindingsCollection.cs: Added DefaultEvent attribute
17628         * Button.cs: Added DefaultValue attribute
17629         * DragEventArgs.cs: Added ComVisible attribute
17630         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
17631         * KeyEventArgs.cs: Added ComVisible attribute
17632         * KeyPressEventArgs.cs: Added ComVisible attribute
17633         * MouseEventArgs.cs: Added ComVisible attribute
17634         * NavigateEventArgs.cs: Added
17635         * NavigateEventHandler.cs: Added
17636         * FeatureSupport.cs: Added
17637         * OSFeature.cs: Added
17638         * Theme.cs: Added abstract Version property to support OSFeature
17639         * ThemeWin32Classic.cs: Added Version property to
17640           support OSFeature.Themes
17641         * ProgressBar.cs: Removed OnPaintBackground override, not required since
17642           the proper styles to avoid background drawing are set, also doesn't
17643           match MS signature
17644         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
17645         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
17646         * ScrollEventArgs.cs: Added ComVisible attribute
17647         * SplitterEventArgs.cs: Added ComVisible attribute
17648         * AccessibleSelection.cs: Added Flags attribute
17649         * Appearance.cs: Added ComVisible attribute
17650         * Border3DSide.cs: Added ComVisible attribute
17651         * Border3DStyle.cs: Added ComVisible attribute
17652         * BorderStyle.cs: Added ComVisible attribute
17653         * DragAction.cs: Added ComVisible attribute
17654         * ErrorBlinkStyle.cs: Added
17655         * ScrollEventType.cs: Added ComVisible attribute
17656         * AnchorStyles.cs: Added Editor attribute
17657         * DockStyle.cs: Added Editor attribute
17658         * HorizontalAlignment.cs: Added ComVisible attribute
17659         * HelpEventArgs.cs: Added ComVisible attribute
17660         * PaintEventArgs.cs: Added IDisposable
17661
17662 2005-01-04  Peter Bartok <pbartok@novell.com>
17663
17664         * TextControl.cs: Switched Line, LineTag and Document classes to
17665           internal
17666
17667 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17668
17669         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
17670         Simple mode, fixes, IntegralHeight, etc.
17671
17672 2005-01-04  Peter Bartok <pbartok@novell.com>
17673
17674         * TextBoxBase.cs: Using proper font variable now
17675
17676 2005-01-04  Peter Bartok <pbartok@novell.com>
17677
17678         * Form.cs (ShowDialog): Set parent to owner, if provided
17679         * GroupBox.cs: Removed unused vars
17680         * TextControl.cs:
17681           - Added GetHashCode() for Document and LineTag classes
17682           - Removed unused variables
17683           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
17684             to allow translation between continuous char position and line/pos
17685         * CheckBox.cs: Removed vars that are provided by base class
17686         * RadioButton.cs: Removed vars that are provided by base class, added
17687           new keyword where required
17688         * LinkLabel.cs: Added new keyword where required
17689         * Control.cs (WndProc): Removed unused variable
17690         * TextBoxBase.cs:
17691           - Finished SelectionLength property
17692           - Implemented SelectionStart property
17693           - Implemented Text property
17694           - Removed unused vars
17695         * MessageBox.cs: Added new keyword where required
17696         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
17697           WndProc signature
17698         * MenuAPI.cs: Added new keyword where required
17699         * ButtonBase.cs: Removed vars that are provided by base class, added
17700           new keyword where required
17701         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
17702           argument to double, to allow compiling with csc 2.0 (Atsushi ran
17703           into this)
17704         * Application.cs (Run): Now triggers the ThreadExit event
17705         * CommonDialog.cs: Added new keyword where required; now properly sets
17706           parent (owner) for dialog
17707         * XplatUIX11.cs: Commented out unused vars
17708         * StatusBar.cs: Fixed signature for Text property
17709         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
17710
17711 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17712
17713         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
17714         TrackBar.cs, MonthCalendar.cs: remove unused vars
17715
17716 2005-01-03  Jackson Harper  <jackson@ximian.com>
17717
17718         * ThemeWin32Classic.cs:
17719         * X11Keyboard.cs: Remove unused vars.
17720
17721 2005-01-03  Peter Bartok  <pbartok@novell.com>
17722
17723         * TextBox.cs:
17724           - set_Text: Tied into TextControl
17725           - set_TextAlignment: Tied into TextControl
17726         * TextControl.cs:
17727           - Added alignment properties and implemented alignment handling
17728             and drawing (still has a bug, not generating proper expose events)
17729           - Added new Line() constructor to allow passing the line alignment
17730           - Fixed selection setting, properly handling end<start now
17731           - Added aligment considerations to RecalculateDocument()
17732         * TextBoxBase.cs:
17733           - Now properly enforces control height for single line controls
17734           - Added support for CharacterCasing
17735           - Added IsInputKey override
17736           - Fixed Keys.Enter logic
17737           - Added SetBoundsCore override
17738           - Fixed mouse selection handling
17739
17740 2005-01-03  Jackson Harper  <jackson@ximian.com>
17741
17742         * TreeView.cs:
17743           - Collapse and uncheck all nodes when CheckBoxes is disabled.
17744           - Checkboxes are always aligned to the bottom of the node,
17745           regardless of item height.
17746           - Use the node bounds to draw the text so we can center it when
17747           the item height is greater then the font height.
17748           - Node::Bounds are only the text part of the node.
17749         * TreeNode.cs: New method to combine collapsing and unchecking all
17750           nodes recursively.
17751
17752 2005-01-02  Jackson Harper  <jackson@ximian.com>
17753
17754         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
17755         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
17756         tree when a check is changed. TODO: Only refresh the checked node.
17757
17758 2004-12-30  Jackson Harper  <jackson@ximian.com>
17759
17760         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
17761         * TreeNode.cs: When collapsing make sure to never collapse the
17762         root node.
17763
17764 2004-12-29  Jackson Harper  <jackson@ximian.com>
17765
17766         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
17767         
17768 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
17769
17770         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
17771
17772 2004-12-28  Peter Bartok  <pbartok@novell.com>
17773
17774         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
17775           not yet assigned
17776
17777 2004-12-28  Peter Bartok  <pbartok@novell.com>
17778
17779         * Control.cs (WndProc): Added WM_HELP handler, now generates
17780           HelpRequested event
17781         * Form.cs: Added HelpButton property and required support code
17782         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
17783
17784 2004-12-28  Peter Bartok  <pbartok@novell.com>
17785
17786         * CommonDialog.cs:
17787           - Made DialogForm.owner variable internal
17788           - Added check to ensure owner form is set before setting
17789             owner properties in CreateParams
17790
17791 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
17792
17793         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
17794           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
17795           GetCursorPos.  Fix major visibility issues.  Rework the windowing
17796           system to support borderless/titleless windows (implements menus).
17797           Fix GetWindowPos.  Implement initial background color support for
17798           views.
17799
17800 2004-12-28  Peter Bartok  <pbartok@novell.com>
17801
17802         * Form.cs (get_CreateParams): Make sure we have an owner before using
17803           the owner variable. Implement proper default if no owner exists
17804
17805 2004-12-28  Peter Bartok  <pbartok@novell.com>
17806
17807         * In preparation for making Managed.Windows.Forms the default build target
17808           for System.Windows.Forms, the following stubbed files were added.
17809           Dialogs are currently being implemented by contributors and are only
17810           short-term place holders.
17811         * ColorDialog.cs: Initial check-in (minmal stub)
17812         * DataGrid.cs: Initial check-in (minimal stub)
17813         * DataGridLineStyle.cs: Initial check-in (minimal stub)
17814         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
17815         * DataGridTableStyle.cs: Initial check-in (minimal stub)
17816         * FontDialog.cs: Initial check-in (minimal stub)
17817         * FileDialog.cs: Initial check-in (minimal stub)
17818         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
17819         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
17820         * OpenFileDialog: Initial check-in (minimal stub)
17821         * IComponentEditorPageSite.cs: Initial check-in
17822         * Splitter.cs: Initial check-in (for Jackson)
17823         * SplitterEventArgs.cs: Initial check-in (for Jackson)
17824         * SplitterEventHandler.cs: Initial check-in (for Jackson)
17825         * TextBox.cs: Initial check-in; still needs some wiring to
17826           TextControl backend
17827         * Form.cs: Implemented ControlBox property
17828         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
17829         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
17830         * TextControl.cs: Added selection functionality; added todo header
17831         * TextBoxBase.cs:
17832           - Implemented Lines property
17833           - Implemented TextHeight property
17834           - Implemented SelectedText property
17835           - Implemented SelectionLength property
17836           - Implemented SelectAll method
17837           - Implemented ToString method
17838           - Removed and cleaned up some debug code
17839           - Implemented (still buggy) mouse text selection
17840
17841 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
17842
17843         * ComboBox.cs: Complete DropDownList implementation, fixes.
17844
17845 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
17846
17847         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
17848         * ComboBoxStyle.cs: ComboBoxStyle enum
17849         * ComboBox.cs: Initial work on ComboBox control
17850
17851 2004-12-21  Peter Bartok  <pbartok@novell.com>
17852
17853         * Control.cs (ctor, CreateParams): Moved setting of is_visible
17854           forward so that anything that creates a window gets the default,
17855           also no longer uses Visible property in CreateParams to avoid
17856           walking up the parent chain and possibly get the wrong visible
17857           status. Fixed IsVisible to no longer walk up to the parent.
17858
17859 2004-12-21  Peter Bartok  <pbartok@novell.com>
17860
17861         * Form.cs (ShowDialog): Unset modality for the proper window
17862  
17863 2004-12-20  Peter Bartok  <pbartok@novell.com>
17864
17865         * CommonDialog.cs: Initial check-in
17866
17867 2004-12-20  Peter Bartok  <pbartok@novell.com>
17868
17869         * Control.cs (Visible): Now uses the parent window instead of the
17870           client area window for the property
17871
17872         * Form.cs
17873           - ShowDialog(): Now uses the proper window for modality
17874           - The default visibility state for the form parent is now false. This
17875             will prevent the user from seeing all the changes to the form and
17876             its controls before the application hits Application.Run()
17877           - Removed some stale commented out code
17878
17879         * NativeWindow.cs:
17880           - Added FindWindow() method to have a method to check for existence
17881             of a window handle
17882           - Added ability to override default exception handling (for example
17883             when debugging with VS.Net; to do this the ExternalExceptionHandler
17884             define must be set
17885           - Removed some useless debug output
17886
17887         * XplatUIX11.cs:
17888           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
17889             not working as expected
17890           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
17891             property to allow switching back to the modal window if focus is
17892             given to another one of our windows (Application Modal)
17893           - Now only sets override_redirect if we create a window
17894             without WS_CAPTION
17895           - Moved EventMask selection before mapping of newly created window
17896             so we can catch the map event as well
17897           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
17898           - Added various Atom related DllImports
17899           - Implemented Exit() method
17900           - .ctor() : No longer shows window if WS_VISIBLE is not defined
17901             in the CreateParams
17902
17903         * MessageBox.cs: Now properly deals with the FormParent window by
17904           providing an override the FormParent CreateParams property to
17905           set as POPUP instead of OVERLAPPED window.
17906
17907 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17908
17909         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
17910         Minor code cleanup.
17911
17912 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17913         
17914         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
17915
17916 2004-12-18  Peter Bartok  <pbartok@novell.com>
17917
17918         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
17919           implementing SetModal() method
17920
17921 2004-12-18  Peter Bartok  <pbartok@novell.com>
17922
17923         * X11Structs.cs (XGCValues): Fixed type of function element
17924         * XplatUI.cs: Added ScrollWindow() method
17925         * XplatUIDriver.cs: Added ScrollWindow() abstract
17926         * XplatUIWin32.cs: Implemented ScrollWindow() method
17927         * XplatUIX11.cs: Implemented ScrollWindow() method
17928         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
17929
17930 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17931
17932         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
17933         Some more keyboard support (INCOMPLETE)
17934
17935 2004-12-17  Peter Bartok  <pbartok@novell.com>
17936
17937         * TextControl.cs:
17938         - Added color attribute to line tags.
17939         - Added color argument to all functions dealing with tags
17940         - Added color argument support to various functions
17941         - Fixed miss-calculation of baseline/shift in certain circumstances
17942
17943         * TextBoxBase.cs: Added new color option to test code
17944
17945 2004-12-17  Jackson Harper  <jackson@ximian.com>
17946
17947         * TreeNode.cs:
17948         * MonthCalendar.cs: Signature fixes
17949
17950 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17951
17952         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
17953         keyboard event moved it.  Create a new graphics context for each paint resolves this
17954
17955 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17956
17957         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
17958         Make caret exist and go blink blink.  Initial keyboard support.
17959         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
17960         works.
17961
17962 2004-12-17  Jackson Harper  <jackson@ximian.com>
17963
17964         * XplatUIStructs.cs: Updated set of virtual keycodes.
17965         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
17966
17967 2004-12-17  Jackson Harper  <jackson@ximian.com>
17968
17969         * XplatUIX11.cs: Prune old keyboard code.
17970
17971 2004-12-17  Jackson Harper  <jackson@ximian.com>
17972
17973         * XplatUIX11.cs: When generating mouse wparams get the modifier
17974         keys from the ModifierKeys property.
17975
17976 2004-12-17  Jackson Harper  <jackson@ximian.com>
17977
17978         * X11Keyboard.cs: Send up/down input when generating
17979         messages. Remove some unused vars.
17980
17981 2004-12-17  Jackson Harper  <jackson@ximian.com>
17982
17983         * TabControl.cs:
17984         * TreeView.cs: get rid of warnings.
17985
17986 2004-12-17  Jackson Harper  <jackson@ximian.com>
17987
17988         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
17989
17990 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
17991
17992         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
17993           CheckedListBox.cs: Implementation
17994
17995 2004-12-17  Peter Bartok  <pbartok@novell.com>
17996
17997         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
17998
17999 2004-12-16  Peter Bartok  <pbartok@novell.com>
18000
18001         * TextControl.cs:
18002           - InsertCharAtCaret(): Fixed start pos fixup
18003           - CaretLine_get: No longer derives the line from the tag, the tag
18004             could be stale if lines in the document have been added or deleted
18005           - RebalanceAfterDelete(): Fixed bug in balancing code
18006           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
18007           - Line.Streamline(): Now can also elminate leading empty tags
18008           - DumpTree(): Added a few more tests and prevented exception on
18009             uninitialized data
18010           - Added Debug section for Combining lines
18011           - Delete(): Now copies all remaining properties of a line
18012           
18013         * TextBoxBase.cs:
18014           - Left mousebutton now sets the caret (and middle button still acts
18015             as formatting tester, which must go away soon)
18016           - Added Debug section for Deleting/Combining lines
18017           - Fixed calculations for UpdateView after Combining lines
18018
18019 2004-12-16  Peter Bartok  <pbartok@novell.com>
18020
18021         * TextControl.cs: Now properly aligns text on a baseline, using the
18022           new XplatUI.GetFontMetrics() method. Simplified several calculations
18023         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
18024           defined
18025
18026 2004-12-16  Peter Bartok  <pbartok@novell.com>
18027
18028         * XplatUI.cs: Added GetFontMetrics() method
18029         * XplatUIDriver.cs: Added GetFontMetrics() abstract
18030         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
18031           into libgdiplus, our private GetFontMetrics function
18032         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
18033         * XplatUIWin32.cs: Implemented GetFontMetrics() method
18034
18035 2004-12-16  Jackson Harper  <jackson@ximain.com>
18036
18037         * XplatUIStruct.cs: Add enum for dead keys
18038         * X11Keyboard.cs: Map and unmap dead keys.
18039
18040 2004-12-16  Jackson Harper  <jackson@ximian.com>
18041
18042         * X11Keyboard.cs: Detect and use the num lock mask.
18043
18044 2004-12-16  Peter Bartok  <pbartok@novell.com>
18045
18046         * Control.cs (CreateGraphics): Added check to make sure the
18047           handle of the window exists before calling Graphics.FromHwnd()
18048
18049 2004-12-16  Peter Bartok  <pbartok@novell.com>
18050
18051         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
18052           contains a lot of code that's not supposed to be there for the
18053           real thing, but required for developing/testing the textbox
18054           backend.
18055
18056 2004-12-16  Peter Bartok  <pbartok@novell.com>
18057
18058         * TextControl.cs:
18059         - Fixed Streamline method
18060         - Added FindTag method to Line
18061         - Added DumpTree method for debugging
18062         - Added DecrementLines() method for deleting lines
18063         - Fixed UpdateView to update the cursor to end-of-line on single-line
18064           updates
18065         - Added PositionCaret() method
18066         - Fixed MoveCaret(LineDown) to move into the last line, too
18067         - Added InsertChar overload
18068         - Fixed InsertChar tag offset calculations
18069         - Added DeleteChar() method
18070         - Added Combine() method for folding lines
18071         - Fixed Delete() method, no longer allocates wasted Line object and
18072           now copies all properties when swapping nodes
18073         - Delete() method now updates document line counter
18074
18075 2004-12-15  Jackson Harper  <jackson@ximian.com>
18076
18077         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
18078         * X11Keyboard.cs: Expose the currently selected modifier keys
18079         through a property.
18080
18081 2004-12-15  Peter Bartok  <pbartok@novell.com>
18082
18083         * TextControl.cs: Initial check-in. Still incomplete
18084
18085 2004-12-15  Jackson Harper  <jackson@ximian.com>
18086
18087         * TreeNode.cs:
18088         * TreeView.cs: Fix build on csc (second time today ;-))
18089
18090 2004-12-15  Jackson Harper  <jackson@ximian.com>
18091
18092         * TreeView.cs: Store the treenodes plus/minus box bounds when it
18093         is calculated and use this for click testing.
18094         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
18095
18096 2004-12-15  Jackson Harper  <jackson@ximian.com>
18097
18098         * TreeView.cs: Pass the nodes image index to the image list when
18099         drawing that image.
18100
18101 2004-12-15  Jackson Harper  <jackson@ximian.com>
18102
18103         * X11Keyboard.cs: Set messages hwnd.
18104         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
18105         post_message calls.
18106
18107 2004-12-15  Jackson Harper  <jackson@ximian.com>
18108
18109         * X11Keyboard.cs: Fix to compile with csc.
18110         
18111 2004-12-15  Jackson Harper  <jackson@ximian.com>
18112
18113         * X11Structs.cs: Add key mask values
18114         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
18115         * X11Keyboard.cs: New file - Extrapolates and interpolates key
18116         down/up foo into WM_CHAR foo
18117         * KeyboardLayouts.cs: Common keyboard layouts
18118         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
18119         post messages into the main queue.
18120
18121 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
18122
18123         * Button.cs: implement ProcessMnemonic
18124         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
18125           brushes everytime
18126         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
18127         * ButtonBase.cs: Show HotkeyPrefix (not the &)
18128
18129 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
18130         
18131         * MonthCalendar.cs: Implemented click-hold for next/previous month
18132           and date selection
18133           
18134 2004-12-11  Peter Bartok  <pbartok@novell.com>
18135
18136         * X11Structs.cs:
18137           - Added XKeyboardState (moved from XplatUIX11.cs)
18138           - Added XCreateGC related enums and structures
18139           - Added GXFunction for XSetFunction
18140
18141         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
18142
18143         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
18144           CaretVisible() calls
18145
18146         * ToolTip.cs: Added code to prevent stealing focus from app windows
18147
18148         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
18149           DestroyCaret, SetCaretPos and CaretVisible)
18150
18151         * XplatUIX11.cs:
18152           - Added implementation for caret functions
18153           - Moved hover variables into a struct, to make it a bit easier
18154             on the eyes and to debug
18155           - Removed XKeyboardState (moved to XplatUIX11.cs)
18156           - Moved Keyboard properties into the properties region
18157
18158         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
18159           call to get a graphics context for our control
18160
18161         * XplatUIOSX.cs: Added empty overrides for the new caret functions
18162
18163         * TreeView.cs: Fixed bug. No matter what color was set it would always
18164           return SystemColors.Window
18165
18166         * XplatUIWin32.cs: Implemented caret overrides
18167
18168 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
18169
18170         * ListBox.cs: fire events, implement missing methods and properties,
18171         sorting.
18172
18173 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
18174
18175         * MonthCalendar.cs: invalidation bug fixing
18176         * ThemeWin32Classic.cs: paint fixing
18177
18178 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
18179
18180         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
18181         prepare the CGContextRef there now.
18182
18183 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
18184
18185         * MonthCalendar.cs:
18186           - optimisationL only invalidate areas that have changed
18187         * ThemeWin32Classic.cs:
18188           - only paint parts that intersect with clip_area
18189
18190 2004-12-09  Peter Bartok  <pbartok@novell.com>
18191
18192         * Application.cs: Undid changes from r37004 which cause problems
18193         on X11
18194
18195 2004-12-09  Ravindra  <rkumar@novell.com>
18196
18197         * ToolBar.cs: Added support for displaying ContextMenu
18198         attached to a button on ToolBar.
18199         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
18200         property.
18201
18202 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
18203
18204         * Label.cs: autosize works in text change and removes unnecessary
18205         invalidate
18206
18207 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
18208
18209         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
18210         remove warnings
18211
18212 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
18213
18214         * XplatUIOSX.cs: Added mouse move/click/grab support
18215         Remove some debugging WriteLines not needed anymore.
18216         Add window resizing/positioning.
18217         Fix visibility on reparenting.
18218
18219 2004-12-08  Peter Bartok  <pbartok@novell.com>
18220
18221         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
18222
18223 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
18224
18225         * XplatUIOSX.cs: Initial checkin
18226         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
18227
18228 2004-12-03  Ravindra <rkumar@novell.com>
18229
18230         * ListView.cs: Added some keybindings and fixed scrolling.
18231         ScrollBars listen to ValueChanged event instead of Scroll
18232         Event. This would let us take care of all changes being
18233         done in the scrollbars' values programmatically or manually.
18234         * ListView.cs (CanMultiselect): Added a check for shift key.
18235         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
18236         * ListViewItem.cs (Clone): Fixed. We need to make a copy
18237         of ListViewSubItemCollection as well.
18238
18239 2004-12-06  Peter Bartok <pbartok@novell.com>
18240
18241         * Control.cs (Parent): Added check and exception to prevent
18242         circular parenting
18243
18244 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
18245
18246         * ListBox.cs: implemented clipping, selection single and multiple,
18247         bug fixing
18248
18249 2004-12-03  Ravindra <rkumar@novell.com>
18250
18251         * ListView.cs (ListView_KeyDown):
18252         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
18253         when CTRL key is pressed.
18254         * ListViewItem.cs (Selected): Fixed setting the property.
18255
18256 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18257
18258         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
18259
18260         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
18261         MinimizeBox, ShowInTaskbar, TopMost properties.
18262
18263         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
18264         will be implemented).
18265
18266 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18267
18268         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
18269
18270         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
18271         tests.
18272         
18273         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
18274         
18275         * TreeView.cs: BackColor is Colors.Window.
18276
18277 2004-12-01  Jackson Harper  <jackson@ximian.com>
18278
18279         * TreeView.cs: When resizing the tree if the user is making it
18280         smaller we don't get expose events, so we need to handle adding
18281         the horizontal scrollbar in the size changed handler as well as
18282         the expose handler.
18283
18284 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
18285
18286         * DrawItemState.cs: fixes wrong enum values
18287
18288 2004-12-01  Jackson Harper  <jackson@ximian.com>
18289
18290         * TreeView.cs: Resize the hbar as well as the vbar on resize.
18291
18292 2004-12-01  Jackson Harper  <jackson@ximian.com>
18293
18294         * NodeLabelEditEventArgs.cs:
18295         * NodeLabelEditEventHandler.cs:
18296         * OpenTreeNodeEnumerator.cs:
18297         * TreeNode.cs:
18298         * TreeNodeCollection.cs:
18299         * TreeView.cs:
18300         * TreeViewAction.cs:
18301         * TreeViewCancelEventArgs.cs:
18302         * TreeViewCancelEventHandler.cs:
18303         * TreeViewEventArgs.cs:
18304         * TreeViewEventHandler.cs: Initial implementation.
18305
18306 2004-12-01  Ravindra <rkumar@novell.com>
18307
18308         * ListView.cs (CalculateListView): Fixed scrolling related
18309         calculations. Also, removed some debug statements from other
18310         places.
18311         * ListViewItem.cs: Changed access to 'selected' instance variable
18312         from private to internal.
18313         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
18314
18315 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
18316
18317         * ThemeWin32Classic.cs: remove cache of brush and pens for
18318         specific controls and use the global system, fixes scrollbutton
18319         bugs (for small sizes, disabled, etc)
18320         
18321         * ScrollBar.cs: does not show the thumb for very small controls
18322         (as MS) and allow smaller buttons that the regular size
18323
18324 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
18325
18326         * UpDownBase.cs: Add abstract methods for the interface.
18327         Add new virtual methods (need to be hooked up to TextEntry when it
18328         exists).
18329         Add override methods for most features.
18330         Computes the size, forces the height of the text entry.
18331
18332         * NumericUpDown.cs: Put here the current testing code.
18333
18334         * Set eol-style property on all files that do not have mixed line
18335         endings, to minimize the future problems.  There are still a few
18336         files with mixed endings, and someone should choose whether they
18337         want to move it or not.
18338
18339 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
18340
18341         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
18342         System.Colors
18343         
18344 2004-11-30  Ravindra <rkumar@novell.com>
18345
18346         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
18347         drawing and replaced use of SystemColors by theme colors.
18348         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
18349         * ListView.cs (ListViewItemCollection.Add): Throw exception when
18350         same ListViewItem is being added more than once.
18351
18352 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
18353
18354         * MonthCalendar.cs:
18355           - ControlStyles love to make the control not flicker
18356           
18357 2004-11-30  Peter Bartok  <pbartok@novell.com>
18358
18359         * CharacterCasing.cs: Added
18360
18361 2004-11-29  Peter Bartok  <pbartok@novell.com>
18362
18363         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18364           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
18365           I am removing these files as they conflict with already completed
18366           work. While it is fantastic to get contributions to MWF, I
18367           respectfully ask that everyone please coordinate their contributions
18368           through mono-winforms-list or #mono-winforms at this time. We're
18369           explicitly avoiding stubbing and don't want controls that don't have
18370           their basic functionality implemented in svn. Please also see
18371           http://www.mono-project.com/contributing/winforms.html
18372
18373
18374 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
18375
18376         * Application.cs (ModalRun): Don't hang after exit.
18377
18378         * Theme.cs: New TreeViewDefaultSize property.
18379
18380         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
18381         with less hardcoded SystemColors constant.
18382         Implemented TreeViewDefaultSize.
18383
18384         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18385         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
18386
18387
18388 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
18389
18390         * MonthCalendar.cs:
18391           - Fix NextMonthDate and PrevMonthDate click moving calendar
18392
18393 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18394
18395         * MonthCalendar.cs:
18396           - Fix usage of ScrollChange Property when scrolling months
18397
18398 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
18399
18400         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
18401          - Fixes menu destroying
18402          - Support adding and removing items on already created menus
18403
18404 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18405
18406         * MonthCalendar.cs:
18407           - Re-worked all bolded dates handling to match win32
18408         * ThemeWin32Classic.cs:
18409           - Fixed rendering with bolded dates
18410
18411 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
18412
18413         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
18414         - Horizontal scroolbar
18415         - Multicolumn
18416         - Fixes
18417
18418
18419 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
18420
18421         * MonthCalendar.cs:
18422           - Fix Usage of MaxSelectionCount from SelectionRange
18423           - Fixed Shift + Cursor Selection
18424           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
18425           - Fixed normal cursor selection to be compat with win32
18426           - Fixed Shift + Mouse Click selection
18427
18428 2004-11-24  Peter Bartok <pbartok@novell.com>
18429
18430         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
18431         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
18432         * XplatUIX11.cs:
18433           - CreatedKeyBoardMsg now updates keystate with Alt key
18434           - Added workaround for timer crash to CheckTimers, Jackson will
18435             develop a proper fix and check in later
18436           - Implemented DispatchMessage
18437           - Removed calling the native window proc from GetMessage (call
18438             now moved to DispatchMessage)
18439
18440         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
18441           the keydata (Fixes bug #69831)
18442
18443         * XplatUIWin32.cs:
18444           - (DispatchMessage): Switched to return IntPtr
18445           - Added DllImport for SetFocus
18446
18447 2004-11-24  Ravindra <rkumar@novell.com>
18448
18449         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
18450         background drawing.
18451         * ListViewItem.cs: Fixed various properties, calculations
18452         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
18453         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
18454         and some internal properties. Fixed MouseDown handler and Paint
18455         method.
18456
18457 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18458
18459         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
18460
18461 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18462
18463         * ContainerControl.cs: correct accidental check in of local changes
18464
18465 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18466
18467         * ThemeWin32Classic.cs:
18468                 - Fixed Drawing Last month in grid (sometimes not showing)
18469         * MonthCalendar.cs:
18470                 - Fixed title width calculation bug (makeing title small)
18471
18472 2004-11-23  Peter Bartok <pbartok@novell.com>
18473
18474         * XplatUIX11.cs:
18475           - Added generation of WM_MOUSEHOVER event
18476           - Added missing assignment of async_method atom
18477           - Fixed WM_ERASEBKGND; now only redraws the exposed area
18478
18479 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18480
18481         * ThemeWin32Classic.cs:
18482                 - Fixed Drawing of today circle when showtodaycircle not set
18483                 - fixed drawing of first and last month in the grid (gay dates)
18484         * MonthCalendar.cs:
18485                 - Fixed Drawing of today circle
18486                 - Fixed drawing of grady dates
18487                 - Fixed HitTest for today link when ShowToday set to false
18488                 - Fixed DefaultSize to obey ShowToday
18489
18490 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18491
18492         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
18493         * System.Windows.Forms/Theme.cs
18494         * MonthCalendar.cs: added for MonthCalendar
18495         * SelectionRange.cs: added for MonthCalendar
18496         * Day.cs: added for MonthCalendar: added for MonthCalendar
18497         * DateRangeEventArgs.cs: added for MonthCalendar
18498         * DateRangeEventHandler.cs: added for MonthCalendar
18499
18500 2004-11-22  Ravindra <rkumar@novell.com>
18501
18502         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
18503         property.
18504
18505 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
18506
18507         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
18508         event handler.
18509         
18510         * NumericUpDown.cs: Added new implementation.
18511         * UpDownBase.cs: Added new implementation.
18512
18513         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
18514         implementations.
18515         
18516         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
18517         implementations.
18518
18519         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
18520         methods.
18521
18522 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
18523
18524         * Timer.cs  (Dispose): Should call the base dispose when
18525         overriding.
18526
18527 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18528
18529         * ScrollBar.cs: updates thumb position when max, min or increment
18530         is changed
18531
18532 2004-11-21  Ravindra <rkumar@novell.com>
18533
18534         * ListView.cs: Implemented item selection, activation and
18535         column header style. Fixed properties to do a redraw, if
18536         required. Added support for MouseHover, DoubleClick, KeyDown
18537         and KeyUp event handling and some minor fixes.
18538         * ListViewItem.cs: Fixed constructor.
18539         * ThemeWin32Classic.cs: Improved drawing for ListView.
18540
18541 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18542
18543         * ThemeWin32Classic.cs: initial listbox drawing code
18544         * DrawMode.cs: new enumerator
18545         * ListControl.cs: stubbed class
18546         * ListBox.cs: initial implementation
18547         * Theme.cs: new methods definitions
18548         * SelectionMode.cs: new enumerator
18549
18550 2004-11-17  Peter Bartok  <pbartok@novell.com>
18551
18552         * XplatUIWin32.cs: Added double-click events to the class style
18553         * Control.cs (WndProc):
18554           - Added handling of click-count to MouseDown/ MouseUp events.
18555           - Added handling of middle and right mouse buttons
18556           - Removed old debug code
18557
18558 2004-11-17  Jackson Harper  <jackson@ximian.com>
18559
18560         * XplatUIX11.cs: Use the new Mono.Unix namespace.
18561
18562 2004-11-17  Ravindra <rkumar@novell.com>
18563
18564         * ListView.cs: Added event handling for MouseMove/Up/Down.
18565         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
18566         * ThemeWin32Classic.cs: We need to clear the graphics context and
18567         draw column header in a proper state.
18568
18569
18570 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
18571
18572         *  Menu.cs: fixes signature
18573
18574 2004-11-16  Peter Bartok  <pbartok@novell.com>
18575
18576         * XplatUIX11.cs (GetMessage): Implemented generation of
18577           double click mouse messages
18578
18579 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
18580
18581         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
18582         not by menu
18583
18584 2004-11-11  Peter Bartok  <pbartok@novell.com>
18585
18586         * HandleData.cs: Added Visible property
18587         * XplatUIX11.cs (IsVisible): Now uses Visible property from
18588           HandleData
18589         * XplatUIX11.cs: Removed old debug leftovers
18590         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
18591         * Control.cs (WndProc): Removed old debug leftovers,
18592           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
18593           needed WM_SIZE handling
18594
18595 2004-11-11  Jackson Harper  <jackson@ximian.com>
18596
18597         * OwnerDrawPropertyBag.cs:
18598         * TreeViewImageIndexConverter.cs: Initial implementation
18599
18600 2004-11-10  Jackson Harper  <jackson@ximian.com>
18601
18602         * ThemeWin32Classic.cs:
18603         * TabControl.cs: instead of moving tabs by the slider pos just
18604         start drawing at the tab that is offset by the slider. This way
18605         scrolling always moves by exactly one tab.
18606
18607 2004-11-10  Jackson Harper  <jackson@ximian.com>
18608
18609         * TabControl.cs: You can only scroll left when the slider has
18610         already ben moved right.
18611         
18612 2004-11-10  Jackson Harper  <jackson@ximian.com>
18613
18614         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
18615         the clip area.
18616         
18617 2004-11-10  Jackson Harper  <jackson@ximian.com>
18618
18619         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
18620         clip area.
18621         
18622 2004-11-09  Jackson Harper  <jackson@ximian.com>
18623
18624         * TabControl.cs (CalcXPos): New helper method so we can determine
18625         the proper place to start drawing vertical tabs.
18626         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
18627         
18628 2004-11-09  Jackson Harper  <jackson@ximian.com>
18629
18630         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
18631         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
18632         and Bottom, left and right are illegal values for this and
18633         multiline is enabled when the alignment is set to left or right.
18634         (DrawTab): Each alignment block should draw the text itself now
18635         because Left requires special love. Also add rendering for Left
18636         aligned tabs.
18637         
18638 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
18639
18640         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
18641         does not destroy the windows, removes debugging messages
18642
18643 2004-11-09  jba  <jba-mono@optusnet.com.au>
18644
18645         * ThemeWin32Classic.cs
18646         (DrawButtonBase): Fix verticle text rect clipping in windows
18647         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18648         rendering and incorrect text rect clipping
18649         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18650         rendering and incorrect text rect clipping
18651         
18652 2004-11-08  Jackson Harper  <jackson@ximian.com>
18653
18654         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
18655         bottom when they are bottom aligned so the bottoms of the tabs get
18656         displayed.
18657         * TabControl.cs (DropRow): Move rows up instead of down when the
18658         tab control is bottom aligned.
18659
18660 2004-11-08 13:59  pbartok
18661
18662         * XplatUIX11.cs:
18663           - Added handling for various window styles
18664           - Added handling for popup windows
18665           - Added SetTopmost handling
18666
18667 2004-11-08 13:55  pbartok
18668
18669         * XplatUIWin32.cs:
18670           - Added argument to SetTopmost method
18671           - Fixed broken ClientToScreen function
18672
18673 2004-11-08 13:53  pbartok
18674
18675         * XplatUIStructs.cs:
18676           - Added missing WS_EX styles
18677
18678 2004-11-08 13:53  pbartok
18679
18680         * XplatUI.cs, XplatUIDriver.cs:
18681           - Added argument to SetTopmost
18682
18683 2004-11-08 13:52  pbartok
18684
18685         * X11Structs.cs:
18686           - Added XSetWindowAttributes structure
18687           - Improved XWindowAttributes structure
18688           - Added SetWindowValuemask enum
18689           - Added window creation arguments enum
18690           - Added gravity enum
18691           - Added Motif hints structure
18692           - Added various Motif flags and enums
18693           - Added PropertyMode enum for property functions
18694
18695 2004-11-08 13:50  pbartok
18696
18697         * Form.cs:
18698           - Fixed arguments for updated SetTopmost method
18699
18700 2004-11-08 13:49  pbartok
18701
18702         * ToolTip.cs:
18703           - Fixed arguments for updated SetTopmost function
18704           - Fixed usage of PointToClient
18705
18706 2004-11-08 13:44  pbartok
18707
18708         * MenuAPI.cs:
18709           - Added Clipping of children and siblings
18710
18711 2004-11-08 13:41  pbartok
18712
18713         * MainMenu.cs:
18714           - Removed SetMenuBarWindow call. We do this in Form.cs
18715
18716 2004-11-08 13:40  jackson
18717
18718         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
18719           scrolling jimmi in the correct location with bottom aligned tabs
18720
18721 2004-11-08 13:36  pbartok
18722
18723         * ContainerControl.cs:
18724           - Implemented BindingContext
18725           - Implemented ParentForm
18726
18727 2004-11-08 12:46  jackson
18728
18729         * TabControl.cs: Put bottom rendered tabs in the right location
18730
18731 2004-11-08 07:15  jordi
18732
18733         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
18734           removes dead code
18735
18736 2004-11-05 17:30  jackson
18737
18738         * TabControl.cs: When selected tabs are expanded make sure they
18739           don't go beyond the edges of the tab control
18740
18741 2004-11-05 14:57  jackson
18742
18743         * TabControl.cs: Reset show_slider so if the control is resized to
18744           a size where it is no longer needed it's not displayed anymore
18745
18746 2004-11-05 13:16  jackson
18747
18748         * TabControl.cs: Make tab pages non visible when added to the
18749           control
18750
18751 2004-11-05 12:42  jackson
18752
18753         * TabControl.cs: Implement SizeMode.FillToRight
18754
18755 2004-11-05 12:16  jackson
18756
18757         * Control.cs: Do not call CreateHandle if the handle is already
18758           created
18759
18760 2004-11-05 11:46  jackson
18761
18762         * TabControl.cs: Remove superflous call to CalcTabRows
18763
18764 2004-11-05 09:07  jackson
18765
18766         * XplatUIX11.cs: Update for Mono.Posix changes
18767
18768 2004-11-05 07:00  ravindra
18769
18770         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
18771           scrolling.
18772
18773 2004-11-04 22:47  jba
18774
18775         * ThemeWin32Classic.cs:
18776           - Fix Button rendering for FlatStyle = Flat or Popup
18777           - Fix RadioButton and CheckBox rendering when Appearance = Button
18778             (normal and flatstyle).
18779           - Correct outer rectangle color when drawing focus rectangle
18780           - Adjust button bounds to be 1 px smaller when focused
18781           - Make button not draw sunken 3d border when pushed (windows compat)
18782           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
18783           - Offset the text in RadioButton and Checkbox when being rendered as
18784           a button.
18785           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
18786           radiobuttons
18787           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
18788           - Fixed disabled text rendering for normally rendered radiobuttons
18789
18790 2004-11-04 10:26  jackson
18791
18792         * TabControl.cs: Recalculate tab rows when resizing
18793
18794 2004-11-04 07:47  jordi
18795
18796         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
18797           collection completion, drawing issues, missing features
18798
18799 2004-11-04 05:03  ravindra
18800
18801         * ScrollBar.cs:
18802                 - We need to recalculate the Thumb area when
18803                 LargeChange/maximum/minimum values are changed.
18804           - We set the 'pos' in UpdatePos() method to minimum, if it's less
18805                 than minimum. This is required to handle the case if large_change is
18806                 more than max, and use LargeChange property instead of large_change
18807                 variable.
18808           - We return max+1 when large_change is more than max, like MS does.
18809
18810 2004-11-04 04:29  ravindra
18811
18812         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
18813                 - Changed default value signatures (prefixed all with ListView).
18814                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
18815                 ListView.
18816           - Fixed calculations for ListViewItem and implemented Clone()
18817           method.
18818
18819 2004-11-04 04:26  ravindra
18820
18821         * Theme.cs, ThemeWin32Classic.cs:
18822                 - Changed default ListView values signatures (prefixed all with
18823                 ListView).
18824           - Fixed default size values for VScrollBar and HScrollBar.
18825                 - Fixed DrawListViewItem method.
18826
18827 2004-11-04 04:05  ravindra
18828
18829         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
18830
18831 2004-11-04 04:04  ravindra
18832
18833         * ImageList.cs: Implemented the missing overload for Draw method.
18834
18835 2004-11-03 19:29  jackson
18836
18837         * TabControl.cs: Handle dropping rows on selection properly
18838
18839 2004-11-03 11:59  jackson
18840
18841         * TabControl.cs: remove debug code
18842
18843 2004-11-03 11:52  jackson
18844
18845         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
18846           the scrolly widgerywoo
18847
18848 2004-11-02 13:52  jackson
18849
18850         * TabControl.cs: Resize the tab pages and tabs when the tab control
18851           is resized
18852
18853 2004-11-02 13:40  jackson
18854
18855         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
18856           selected tab to the bottom
18857
18858 2004-11-02 13:39  jackson
18859
18860         * TabPage.cs: Store the tab pages row
18861
18862 2004-11-02 12:33  jordi
18863
18864         * MenuItem.cs: fixes handle creation
18865
18866 2004-11-02 11:42  jackson
18867
18868         * TabControl.cs: signature fix
18869
18870 2004-11-02 08:56  jackson
18871
18872         * TabControl.cs: Calculate whether the tab is on an edge properly.
18873           Remove top secret debugging code
18874
18875 2004-11-01 19:57  jackson
18876
18877         * TabControl.cs: Add click handling, and proper sizing
18878
18879 2004-11-01 19:47  jackson
18880
18881         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
18882           tab controls
18883
18884 2004-11-01 19:39  jackson
18885
18886         * TabPage.cs: add internal property to store the bounds of a tab
18887           page
18888
18889 2004-10-30 04:23  ravindra
18890
18891         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
18892           values.
18893
18894 2004-10-30 04:21  ravindra
18895
18896         * ListView.cs, ListViewItem.cs: Added support for scrolling and
18897           fixed calculations.
18898
18899 2004-10-30 03:06  pbartok
18900
18901         * XplatUIX11.cs:
18902           - Removed extension of DllImported libs
18903
18904 2004-10-29 09:55  jordi
18905
18906         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
18907           navigation, itemcollection completion, menu fixes
18908
18909 2004-10-27 22:58  pbartok
18910
18911         * XplatUIX11.cs:
18912           - Now throws a nice error message when no X display could be opened
18913
18914 2004-10-26 13:51  jordi
18915
18916         * ListView.cs: removes warning
18917
18918 2004-10-26 03:55  ravindra
18919
18920         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
18921           ThemeWin32Classic.cs: Some formatting for my last checkins.
18922
18923 2004-10-26 03:36  ravindra
18924
18925         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
18926           control and default values.
18927
18928 2004-10-26 03:35  ravindra
18929
18930         * Theme.cs: Added some default values for ListView control.
18931
18932 2004-10-26 03:33  ravindra
18933
18934         * ToolBar.cs: ToolBar should use the user specified button size, if
18935           there is any. Added a size_specified flag for the same.
18936
18937 2004-10-26 03:33  ravindra
18938
18939         * ColumnHeader.cs: Added some internal members and calculations for
18940           ColumnHeader.
18941
18942 2004-10-26 03:32  ravindra
18943
18944         * ListViewItem.cs: Calculations for ListViewItem.
18945
18946 2004-10-26 03:31  ravindra
18947
18948         * ListView.cs: Added some internal members and calculations for
18949           ListView.
18950
18951 2004-10-22 13:31  jordi
18952
18953         * MenuAPI.cs: speedup menus drawing
18954
18955 2004-10-22 13:16  jackson
18956
18957         * XplatUIX11.cs: Make sure to update exposed regions when adding an
18958           expose event
18959
18960 2004-10-22 11:49  jackson
18961
18962         * Control.cs: oops
18963
18964 2004-10-22 11:41  jackson
18965
18966         * Control.cs: Check to see if the window should have its background
18967           repainted by X when drawing.
18968
18969 2004-10-22 11:31  jackson
18970
18971         * XplatUIX11.cs: When invalidating areas only use XClearArea if
18972           clear is true, this way we do not get flicker from X repainting the
18973           background
18974
18975 2004-10-22 11:28  jackson
18976
18977         * XEventQueue.cs: Queue properly
18978
18979 2004-10-21 09:38  jackson
18980
18981         * XEventQueue.cs: Fix access modifier
18982
18983 2004-10-21 09:36  jackson
18984
18985         * XEventQueue.cs: Don't loose messages
18986
18987 2004-10-21 09:22  jackson
18988
18989         * XEventQueue.cs: Don't loose messages
18990
18991 2004-10-20 04:15  jordi
18992
18993         * BootMode.cs: enum need it by SystemInfo
18994
18995 2004-10-19 21:58  pbartok
18996
18997         * XplatUIWin32.cs:
18998           - Small sanity check
18999
19000 2004-10-19 21:56  pbartok
19001
19002         * Form.cs:
19003           - Added private FormParentWindow class which acts as the container
19004             for our form and as the non-client area where menus are drawn
19005           - Added/Moved required tie-ins to Jordi's menus
19006           - Fixed/Implemented the FormStartPosition functionality
19007
19008 2004-10-19 21:52  pbartok
19009
19010         * Control.cs:
19011           - Removed unneeded locals
19012           - Added code to all size and location properties to understand and
19013             deal with the parent container of Form
19014
19015 2004-10-19 21:33  pbartok
19016
19017         * Application.cs:
19018           - Fixed to deal with new Form subclasses for menus
19019
19020 2004-10-19 17:48  jackson
19021
19022         * XEventQueue.cs: commit correct version of file
19023
19024 2004-10-19 16:50  jackson
19025
19026         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
19027
19028 2004-10-19 16:15  jordi
19029
19030         * MenuAPI.cs: MenuBarCalcSize returns the height
19031
19032 2004-10-19 08:31  pbartok
19033
19034         * Control.cs:
19035           - Added missing call to PreProcessMessage before calling OnXXXKey
19036           methods
19037
19038 2004-10-19 00:04  ravindra
19039
19040         * ToolTip.cs: Fixed constructor.
19041
19042 2004-10-18 09:31  jordi
19043
19044         * MenuAPI.cs: menuitems in menubars do not have shortcuts
19045
19046 2004-10-18 09:26  jordi
19047
19048         * MenuItem.cs: fixes MenuItem class signature
19049
19050 2004-10-18 08:56  jordi
19051
19052         * MenuAPI.cs: prevents windows from showing in the taskbar
19053
19054 2004-10-18 00:28  ravindra
19055
19056         * ToolTip.cs: Suppressed a warning message.
19057
19058 2004-10-18 00:27  ravindra
19059
19060         * Control.cs: Default value of visible property must be true.
19061
19062 2004-10-17 23:19  pbartok
19063
19064         * ToolTip.cs:
19065           - Complete implementation
19066
19067 2004-10-17 23:19  pbartok
19068
19069         * XplatUIX11.cs:
19070           - Added EnableWindow method
19071           - Added SetModal stub
19072           - Added generation of WM_ACTIVATE message (still needs testing)
19073           - Added SetTopMost stub
19074           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
19075
19076 2004-10-17 23:17  pbartok
19077
19078         * XplatUIWin32.cs:
19079           - Removed VirtualKeys to XplatUIStructs
19080           - Implemented SetTopMost method
19081           - Implemented EnableWindow method
19082           - Bugfix in ScreenToClient()
19083           - Bugfixes in ClientToScreen()
19084
19085 2004-10-17 22:51  pbartok
19086
19087         * XplatUIStructs.cs:
19088           - Added WS_EX styles to WindowStyles enumeration
19089
19090 2004-10-17 22:50  pbartok
19091
19092         * XplatUI.cs, XplatUIDriver.cs:
19093           - Added method for enabling/disabling windows
19094           - Added method for setting window modality
19095           - Added method for setting topmost window
19096
19097 2004-10-17 22:49  pbartok
19098
19099         * ThemeWin32Classic.cs:
19100           - Added ToolTip drawing code
19101
19102 2004-10-17 22:49  pbartok
19103
19104         * Theme.cs:
19105           - Added ToolTip abstracts
19106
19107 2004-10-17 22:47  pbartok
19108
19109         * Form.cs:
19110           - Fixed Form.ControlCollection to handle owner relations
19111           - Added Owner/OwnedForms handling
19112           - Implemented Z-Ordering for owned forms
19113           - Removed unneeded private overload of ShowDialog
19114           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
19115             so I hope)
19116           - Fixed Close(), had wrong default
19117           - Added firing of OnLoad event
19118           - Added some commented out debug code for Ownership handling
19119
19120 2004-10-17 22:16  pbartok
19121
19122         * Control.cs:
19123           - Fixed/implemented flat list of controls
19124
19125 2004-10-17 22:14  pbartok
19126
19127         * Application.cs:
19128           - Added code to simulate modal dialogs on Win32
19129
19130 2004-10-17 16:11  jordi
19131
19132         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
19133           mouse event
19134
19135 2004-10-17 13:39  jordi
19136
19137         * MenuAPI.cs: menu drawing fixes
19138
19139 2004-10-15 09:10  ravindra
19140
19141         * StructFormat.cs: General Enum.
19142
19143 2004-10-15 09:09  ravindra
19144
19145         * SizeGripStyle.cs: Enum for Form.
19146
19147 2004-10-15 09:08  ravindra
19148
19149         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
19150           in Theme for ListView.
19151
19152 2004-10-15 09:06  ravindra
19153
19154         * ColumnHeader.cs: Flushing some formatting changes.
19155
19156 2004-10-15 09:05  ravindra
19157
19158         * ListViewItem.cs: Implemented GetBounds method and fixed coding
19159           style.
19160
19161 2004-10-15 09:03  ravindra
19162
19163         * ListView.cs: Implemented Paint method and fixed coding style.
19164
19165 2004-10-15 07:34  jordi
19166
19167         * MenuAPI.cs: fix for X11
19168
19169 2004-10-15 07:32  ravindra
19170
19171         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
19172                 - Renamed Paint() method to Draw() for clarity. Also, moved
19173                 DrawImage() to OnPaint().
19174
19175 2004-10-15 07:25  ravindra
19176
19177         * CheckBox.cs, RadioButton.cs:
19178                 - Removed Redraw (), we get it from ButtonBase.
19179                 - Implemented Paint (), to do class specific painting.
19180
19181 2004-10-15 07:16  ravindra
19182
19183         * ButtonBase.cs:
19184                 - Redraw () is not virtual now.
19185                 - Added an internal virtual method Paint (), so that
19186                 derived classes can do their painting on their own.
19187                 - Modified OnPaint () to call Paint ().
19188
19189 2004-10-15 06:43  jordi
19190
19191         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
19192           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
19193
19194 2004-10-15 00:30  ravindra
19195
19196         * MessageBox.cs:
19197                 - MessageBox on windows does not have min/max buttons.
19198                 This change in CreateParams fixes this on Windows. We
19199                 still need to implement this windowstyle behavior in
19200                 our X11 driver.
19201
19202 2004-10-14 05:14  ravindra
19203
19204         * ToolBar.cs:
19205                 - Changed Redraw () to do a Refresh () always.
19206                 - Fixed the MouseMove event handling when mouse is pressed,
19207                 ie drag event handling.
19208                 - Replaced the usage of ToolBarButton.Pressed property to
19209                 ToolBarButton.pressed internal variable.
19210
19211 2004-10-14 05:10  ravindra
19212
19213         * ToolBarButton.cs:
19214                 - Added an internal member 'inside' to handle mouse move
19215                 with mouse pressed ie mouse drag event.
19216                 - Changed 'Pressed' property to return true only when
19217                 'inside' and 'pressed' are both true.
19218                 - Some coding style love.
19219
19220 2004-10-14 00:17  ravindra
19221
19222         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
19223           public method.
19224
19225 2004-10-14 00:15  ravindra
19226
19227         * ButtonBase.cs: Redraw () related improvements.
19228
19229 2004-10-14 00:14  ravindra
19230
19231         * MessageBox.cs: Moved InitFormSize () out of Paint method and
19232           removed unnecessary calls to Button.Show () method.
19233
19234 2004-10-13 17:50  pbartok
19235
19236         * XplatUIX11.cs:
19237           - Formatting fix
19238           - Removed destroying of window until we solve the problem of X
19239             destroying the window before us on shutdown
19240
19241 2004-10-13 16:32  pbartok
19242
19243         * ButtonBase.cs:
19244           - Now Redraws on MouseUp for FlatStyle Flat and Popup
19245
19246 2004-10-13 14:18  pbartok
19247
19248         * XplatUIX11.cs:
19249           - Added code to destroy the X window
19250
19251 2004-10-13 14:18  pbartok
19252
19253         * XplatUIWin32.cs:
19254           - Added code to destroy a window
19255
19256 2004-10-13 14:12  pbartok
19257
19258         * ButtonBase.cs:
19259           - Added the Redraw on Resize that got dropped in the last rev
19260
19261 2004-10-13 09:06  pbartok
19262
19263         * ThemeWin32Classic.cs:
19264           - Path from John BouAntoun:
19265             * Fix check rendering (centre correctly for normal style, offset
19266               correctly for FlatStyle).
19267             * Fix border color usage (use backcolor) for FlatStyle.Popup
19268             * Use checkbox.Capture instead of checkbox.is_pressed when
19269               rendering flatstyle states.
19270
19271 2004-10-12 21:48  pbartok
19272
19273         * ThemeWin32Classic.cs:
19274           - Removed all occurences of SystemColors and replaced them with the
19275             matching theme color
19276
19277 2004-10-12 21:41  pbartok
19278
19279         * ThemeWin32Classic.cs:
19280           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
19281             him using the function for flatstyle drawing
19282           - Changed functions to use the new version of CPDrawBorder3D
19283
19284 2004-10-12 21:15  pbartok
19285
19286         * ControlPaint.cs:
19287           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
19288             match MS documentation. They need to return defined colors if the
19289             passed color matches the configured control color. Thanks to John
19290             BouAntoun for pointing this out.
19291
19292 2004-10-12 20:57  pbartok
19293
19294         * Control.cs:
19295           - Fix from John BouAntoun: Raise ForeColorChanged event when text
19296             color is changed
19297
19298 2004-10-12 20:46  pbartok
19299
19300         * CheckBox.cs:
19301           - Fix from John BouAntoun: Now properly sets the Appearance property
19302
19303 2004-10-12 20:45  pbartok
19304
19305         * ThemeWin32Classic.cs:
19306           - Fixes from John BouAntoun: now handles forecolors and backcolors
19307             for flatstyle rendered controls much better; It also fixes normal
19308             checkbox rendering when pushed or disabled.
19309
19310 2004-10-08 02:50  jordi
19311
19312         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
19313           work
19314
19315 2004-10-07 08:56  jordi
19316
19317         * ThemeWin32Classic.cs: Removes deletion of cached brushes
19318
19319 2004-10-06 03:59  jordi
19320
19321         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
19322           XplatUIWin32.cs: removes warnings from compilation
19323
19324 2004-10-05 12:23  jackson
19325
19326         * RadioButton.cs: Fix ctor
19327
19328 2004-10-05 11:10  pbartok
19329
19330         * MessageBox.cs:
19331           - Partial implementation by Benjamin Dasnois
19332
19333 2004-10-05 10:15  jackson
19334
19335         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
19336           by John BouAntoun
19337
19338 2004-10-05 03:07  ravindra
19339
19340         * ToolBar.cs:
19341                 - Removed a private method, Draw ().
19342                 - Fixed the ButtonDropDown event handling.
19343                 - Fixed MouseMove event handling.
19344
19345 2004-10-05 03:04  ravindra
19346
19347         * ThemeWin32Classic.cs:
19348                 - Added DrawListView method and ListViewDefaultSize property.
19349                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
19350                 - Changed DOS style CRLF to Unix format (dos2unix).
19351
19352 2004-10-05 03:03  ravindra
19353
19354         * Theme.cs:
19355                 - Added DrawListView method and ListViewDefaultSize property.
19356
19357 2004-10-05 02:42  ravindra
19358
19359         * ToolBarButton.cs: Added an internal member dd_pressed to handle
19360           clicks on DropDown arrow.
19361
19362 2004-10-04 22:56  jackson
19363
19364         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
19365           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
19366           Control handle the buffers, derived classes should not have to
19367           CreateBuffers themselves.
19368
19369 2004-10-04 21:20  jackson
19370
19371         * StatusBar.cs: The control handles resizing the buffers now.
19372
19373 2004-10-04 21:18  jackson
19374
19375         * Control.cs: When resizing the buffers should be invalidated. This
19376           should be handled in Control not in derived classes.
19377
19378 2004-10-04 14:45  jackson
19379
19380         * TabPage.cs: oops
19381
19382 2004-10-04 02:14  pbartok
19383
19384         * LeftRightAlignment.cs:
19385           - Initial check-in
19386
19387 2004-10-04 01:09  jordi
19388
19389         * ThemeWin32Classic.cs: fixes right button position causing right
19390           button not showing on horizontal scrollbars
19391
19392 2004-10-02 13:12  pbartok
19393
19394         * XplatUIX11.cs:
19395           - Simplified the Invalidate method by using an X call instead of
19396             generating the expose ourselves
19397           - Added an expose when the window background is changed
19398           - Implemented ClientToScreen method
19399
19400 2004-10-02 13:08  pbartok
19401
19402         * XplatUIWin32.cs:
19403           - Added Win32EnableWindow method (test for implementing modal
19404           dialogs)
19405           - Added ClientToScreen method and imports
19406
19407 2004-10-02 13:07  pbartok
19408
19409         * XplatUI.cs, XplatUIDriver.cs:
19410           - Added ClientToScreen coordinate translation method
19411
19412 2004-10-02 13:06  pbartok
19413
19414         * KeyPressEventArgs.cs:
19415           - Fixed access level for constructor
19416
19417 2004-10-02 13:06  pbartok
19418
19419         * NativeWindow.cs:
19420           - Changed access level for the window_collection hash table
19421
19422 2004-10-02 13:05  pbartok
19423
19424         * Form.cs:
19425           - Added KeyPreview property
19426           - Added Menu property (still incomplete, pending Jordi's menu work)
19427           - Implemented ProcessCmdKey
19428           - Implemented ProcessDialogKey
19429           - Implemented ProcessKeyPreview
19430
19431 2004-10-02 13:02  pbartok
19432
19433         * Control.cs:
19434           - Added private method to get the Control object from the window
19435           handle
19436           - Implemented ContextMenu property
19437           - Implemented PointToScreen
19438           - Implemented PreProcessMessage
19439           - Implemented IsInputChar
19440           - Implemented IsInputKey
19441           - Implemented ProcessCmdKey
19442           - Completed ProcessKeyEventArgs
19443           - Fixed message loop to call the proper chain of functions on key
19444           events
19445           - Implemented ProcessDialogChar
19446           - Implemented ProcessDialogKey
19447           - Implemented ProcessKeyMessage
19448           - Implemented ProcessKeyPreview
19449           - Added RaiseDragEvent stub (MS internal method)
19450           - Added RaiseKeyEvent stub (MS internal method)
19451           - Added RaiseMouseEvent stub (MS Internal method)
19452           - Added RaisePaintEvent stub (MS Internal method)
19453           - Added ResetMouseEventArgs stub (MS Internal method)
19454           - Implemented RtlTranslateAlignment
19455           - Implemented RtlTranslateContent
19456           - Implemented RtlTranslateHorizontal
19457           - Implemented RtlTranslateLeftRight
19458           - Added generation of KeyPress event
19459
19460 2004-10-02 05:57  ravindra
19461
19462         * ListViewItem.cs: Added attributes.
19463
19464 2004-10-02 05:32  ravindra
19465
19466         * ListView.cs: Added attributes.
19467
19468 2004-10-01 11:53  jackson
19469
19470         * Form.cs: Implement the Close method so work on MessageBox can
19471           continue.
19472
19473 2004-09-30 14:06  pbartok
19474
19475         * XplatUIX11.cs:
19476           - Bug fixes
19477
19478 2004-09-30 11:34  jackson
19479
19480         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
19481
19482 2004-09-30 07:26  ravindra
19483
19484         * ListViewItemConverter.cs: Converter for ListViewItem.
19485
19486 2004-09-30 07:26  ravindra
19487
19488         * SortOrder.cs: Enum for ListView control.
19489
19490 2004-09-30 07:25  ravindra
19491
19492         * ColumnHeader.cs: Supporting class for ListView control.
19493
19494 2004-09-30 07:24  ravindra
19495
19496         * ListView.cs, ListViewItem.cs: Initial implementation.
19497
19498 2004-09-30 07:20  ravindra
19499
19500         * ItemActivation.cs: Enum for ListView Control.
19501
19502 2004-09-29 20:29  pbartok
19503
19504         * XplatUIX11.cs:
19505           - Added lookup of pixel value for background color; tries to get a
19506             color 'close' to the requested color, it avoids having to create a
19507             colormap.  Depending on the display this could mean the used color
19508             is slightly off the desired color. Might have to change it to a more
19509             resource intensive colormap approach, but it will work as a
19510           workaround to avoid red screens.
19511
19512 2004-09-29 14:27  jackson
19513
19514         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
19515
19516 2004-09-28 12:44  pbartok
19517
19518         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
19519           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
19520           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
19521           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
19522           TrackBar.cs, VScrollBar.cs:
19523           - Streamlined Theme interfaces:
19524             * Each DrawXXX method for a control now is passed the object for
19525               the control to be drawn in order to allow accessing any state the
19526               theme might require
19527
19528             * ControlPaint methods for the theme now have a CP prefix to avoid
19529               name clashes with the Draw methods for controls
19530
19531             * Every control now retrieves it's DefaultSize from the current
19532             theme
19533
19534 2004-09-28 12:17  jackson
19535
19536         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
19537           drawing
19538
19539 2004-09-24 14:57  jackson
19540
19541         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
19542           Gives us a nice little performance boost.
19543
19544 2004-09-24 12:02  jackson
19545
19546         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
19547           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
19548           Control and supporting classes. Initial checkin
19549
19550 2004-09-23 13:08  jackson
19551
19552         * Form.cs: Temp build fixage
19553
19554 2004-09-23 01:39  ravindra
19555
19556         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
19557           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
19558           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
19559           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
19560           EventHandlers needed by ListView Control.
19561
19562 2004-09-22 14:12  pbartok
19563
19564         * ScrollableControl.cs:
19565           - Implemented DockPadding property
19566           - Implemented AutoScroll property
19567           - Implemented AutoScrollMargin property
19568           - Implemented AutoScrollMinSize property
19569           - Implemented AutoScrollPosition property
19570           - Implemented DisplayRectangle property (still incomplete)
19571           - Implemented CreateParams property
19572           - Implemented HScroll property
19573           - Implemented VScroll property
19574           - Implemented OnVisibleChanged property
19575
19576 2004-09-22 14:09  pbartok
19577
19578         * Form.cs:
19579           - Added Form.ControllCollection class
19580           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
19581             RemoveOwnedForm (still incomplete, missing on-top and common
19582             minimize/maximize behaviour)
19583           - Added StartPosition property (still incomplete, does not use when
19584             creating the form)
19585           - Added ShowDialog() methods (still incomplete, missing forcing the
19586             dialog modal)
19587
19588 2004-09-22 14:05  pbartok
19589
19590         * Application.cs:
19591           - Added message loop for modal dialogs
19592
19593 2004-09-22 14:02  pbartok
19594
19595         * GroupBox.cs:
19596           - Fixed wrong types for events
19597
19598 2004-09-22 14:00  pbartok
19599
19600         * Shortcut.cs, FormWindowState.cs:
19601           - Fixed wrong values
19602
19603 2004-09-22 12:01  jackson
19604
19605         * Control.cs: Text is never null
19606
19607 2004-09-20 22:14  pbartok
19608
19609         * XplatUIWin32.cs:
19610           - Fixed accessibility level for Idle handler
19611
19612 2004-09-20 18:54  jackson
19613
19614         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19615           XplatUIX11.cs: New message loop that uses poll so we don't get a
19616           busy loop
19617
19618 2004-09-17 10:43  pbartok
19619
19620         * ScrollBar.cs:
19621           - Fixed behaviour of arrow buttons. Now properly behaves like
19622             Buttons (and like Microsoft's scrollbar arrow buttons)
19623
19624 2004-09-17 10:14  pbartok
19625
19626         * ScrollBar.cs:
19627           - Added missing release of keyboard/mouse capture
19628
19629 2004-09-17 06:18  jordi
19630
19631         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
19632           Theme.cs: Very early menu support
19633
19634 2004-09-16 17:45  pbartok
19635
19636         * XplatUIWin32.cs:
19637           - Fixed sending a window to the front
19638           - Added overload for SetWindowPos to avoid casting
19639
19640 2004-09-16 17:44  pbartok
19641
19642         * Control.cs:
19643           - Added SendToBack and BringToFront methods
19644
19645 2004-09-16 07:00  ravindra
19646
19647         * Copyright: Added Novell URL.
19648
19649 2004-09-16 07:00  ravindra
19650
19651         * ToolBar.cs: Invalidate should be done before redrawing.
19652
19653 2004-09-15 21:19  ravindra
19654
19655         * ColumnHeaderStyle.cs: Enum for ListView Control.
19656
19657 2004-09-15 21:18  ravindra
19658
19659         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
19660           ListView Control.
19661
19662 2004-09-13 18:26  jackson
19663
19664         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
19665           properly
19666
19667 2004-09-13 18:13  jackson
19668
19669         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
19670           a second thread and post messages into the main threads message
19671           queue. This makes timing much more consistent. Both win2K and XP
19672           have a minimum timer value of 15 milliseconds, so we now do this
19673           too.
19674
19675 2004-09-13 15:18  pbartok
19676
19677         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19678           XplatUIX11.cs:
19679           - Added Z-Ordering methods
19680
19681 2004-09-13 10:56  pbartok
19682
19683         * Form.cs:
19684           - Fixed #region names
19685           - Moved properties and methods into their proper #regions
19686
19687 2004-09-13 10:51  pbartok
19688
19689         * Form.cs:
19690           - Added Accept and CancelButton properties
19691           - Added ProcessDialogKey() method
19692
19693 2004-09-13 08:18  pbartok
19694
19695         * IWindowTarget.cs:
19696           - Initial check-in
19697
19698 2004-09-10 21:50  pbartok
19699
19700         * Control.cs:
19701           - Added DoDragDrop() [incomplete]
19702           - Properly implemented 'Visible' handling
19703           - Added SetVisibleCore()
19704           - Implemented FindChildAtPoint()
19705           - Implemented GetContainerControl()
19706           - Implemented Hide()
19707
19708 2004-09-10 19:28  pbartok
19709
19710         * Control.cs:
19711           - Moved methods into their appropriate #regions
19712           - Reordered methods within regions alphabetically
19713
19714 2004-09-10 18:57  pbartok
19715
19716         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19717           - Added method to retrieve text from window
19718
19719 2004-09-10 18:56  pbartok
19720
19721         * Control.cs:
19722           - Moved some internal functions into the internal region
19723           - Implemented FontHeight
19724           - Implemented RenderRightToLeft
19725           - Implemented ResizeRedraw
19726           - Implemented ShowFocusCues
19727           - Implemented ShowKeyboardCues
19728           - Implemented FromChildHandle
19729           - Implemented FromHandle
19730           - Implemented IsMnemonic
19731           - Implemented ReflectMessage
19732           - All public and protected Static Methods are now complete
19733
19734 2004-09-10 16:54  pbartok
19735
19736         * Control.cs:
19737           - Implemented remaining missing public instance properties
19738           - Alphabetized some out of order properties
19739
19740 2004-09-10 05:51  ravindra
19741
19742         * PictureBox.cs: Added a check for null image.
19743
19744 2004-09-10 00:59  jordi
19745
19746         * GroupBox.cs: remove cvs tag
19747
19748 2004-09-09 05:25  ravindra
19749
19750         * ToolBar.cs: Make redraw accessible from ToolBarButton.
19751
19752 2004-09-09 05:23  ravindra
19753
19754         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
19755           parent redraw.
19756
19757 2004-09-09 02:28  pbartok
19758
19759         * ThemeWin32Classic.cs:
19760           - Improve disabled string look
19761
19762 2004-09-09 01:15  jordi
19763
19764         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
19765           args and handler
19766
19767 2004-09-08 23:56  ravindra
19768
19769         * ItemBoundsPortion.cs: It's enum, not a class!
19770
19771 2004-09-08 23:47  ravindra
19772
19773         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
19774           Enums for Form.
19775
19776 2004-09-08 21:13  ravindra
19777
19778         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
19779           ListView control.
19780
19781 2004-09-08 21:03  ravindra
19782
19783         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
19784           avoid crash.
19785
19786 2004-09-08 21:01  ravindra
19787
19788         * ScrollableControl.cs: Removed unreachable code.
19789
19790 2004-09-08 06:45  jordi
19791
19792         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
19793
19794 2004-09-08 01:00  jackson
19795
19796         * XplatUIX11.cs: Only run the timers when updating the message
19797           queue. This effectively gives X messages a higher priority then
19798           timer messages. Timers still need love though
19799
19800 2004-09-07 14:01  jackson
19801
19802         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
19803           this for us and the handle is no longer valid.
19804
19805 2004-09-07 13:59  jackson
19806
19807         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
19808           loop that manages to not crash. TODO: Add poll and cleanup timers
19809
19810 2004-09-07 11:12  jordi
19811
19812         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
19813
19814 2004-09-07 03:40  jordi
19815
19816         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
19817           fixes, methods, multiple links
19818
19819 2004-09-06 06:55  jordi
19820
19821         * Control.cs: Caches ClientRectangle rectangle value
19822
19823 2004-09-05 02:03  jordi
19824
19825         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
19826           certain situations
19827
19828 2004-09-04 11:10  jordi
19829
19830         * Label.cs: Refresh when font changed
19831
19832 2004-09-02 16:24  pbartok
19833
19834         * Control.cs:
19835           - Added sanity check to creation of double buffer bitmap
19836
19837 2004-09-02 16:24  pbartok
19838
19839         * ButtonBase.cs:
19840           - Fixed selection of text color
19841           - Fixed handling of resize event; now properly recreates double
19842             buffering bitmap
19843           - Added missing assignment of TextAlignment
19844           - Added proper default for TextAlignment
19845
19846 2004-09-02 14:26  pbartok
19847
19848         * RadioButton.cs:
19849           - Added missing RadioButton.RadioButtonAccessibleObject class
19850
19851 2004-09-02 14:26  pbartok
19852
19853         * Control.cs:
19854           - Added missing Control.ControlAccessibleObject class
19855           - Started to implement Select()ion mechanisms, still very incomplete
19856
19857 2004-09-02 14:25  pbartok
19858
19859         * AccessibleObject.cs:
19860           - Added missing methods
19861
19862 2004-09-02 14:23  pbartok
19863
19864         * AccessibleNavigation.cs, AccessibleSelection.cs:
19865           - Initial check-in
19866
19867 2004-09-02 10:32  jordi
19868
19869         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
19870           pool for pens, brushes, and hatchbruses
19871
19872 2004-09-01 15:30  jackson
19873
19874         * StatusBar.cs: Fix typo
19875
19876 2004-09-01 14:44  pbartok
19877
19878         * RadioButton.cs:
19879           - Fixed state
19880
19881 2004-09-01 14:39  pbartok
19882
19883         * Button.cs, RadioButton.cs:
19884           - Functional initial check-in
19885
19886 2004-09-01 14:01  pbartok
19887
19888         * CheckBox.cs:
19889           - Added missing default
19890           - Added missing region mark
19891
19892 2004-09-01 09:10  jordi
19893
19894         * Label.cs: fixes method signatures, new methods, events, fixes
19895           autosize
19896
19897 2004-09-01 07:19  jordi
19898
19899         * Control.cs: Init string variables with an empty object
19900
19901 2004-09-01 04:20  jordi
19902
19903         * Control.cs: fires OnFontChanged event
19904
19905 2004-08-31 20:07  pbartok
19906
19907         * ButtonBase.cs:
19908           - Enabled display of strings
19909
19910 2004-08-31 20:05  pbartok
19911
19912         * Form.cs:
19913           - Added (partial) implementation of DialogResult; rest needs to be
19914             implemented when the modal loop code is done
19915
19916 2004-08-31 19:55  pbartok
19917
19918         * CheckBox.cs:
19919           - Fixed to match the removal of the needs_redraw concept
19920
19921 2004-08-31 19:55  pbartok
19922
19923         * ButtonBase.cs:
19924           - Removed the rather odd split between 'needs redraw' and redrawing
19925           - Now handles the events that require regeneration (ambient
19926             properties and size)
19927
19928 2004-08-31 19:41  pbartok
19929
19930         * Control.cs:
19931           - Added firing of BackColorChanged event
19932           - Added TopLevelControl property
19933           - Fixed handling of WM_ERASEBKGRND message
19934
19935 2004-08-31 12:49  pbartok
19936
19937         * ButtonBase.cs:
19938           - Removed debug
19939           - Minor fixes
19940
19941 2004-08-31 12:48  pbartok
19942
19943         * CheckBox.cs:
19944           - Finished (famous last words)
19945
19946 2004-08-31 04:35  jordi
19947
19948         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
19949           scrolling bugs, adds new methods
19950
19951 2004-08-30 14:42  pbartok
19952
19953         * CheckBox.cs:
19954           - Implemented CheckBox drawing code
19955
19956 2004-08-30 14:42  pbartok
19957
19958         * ButtonBase.cs:
19959           - Made Redraw() and CheckRedraw() virtual
19960           - Improved mouse up/down/move logic to properly track buttons
19961
19962 2004-08-30 09:44  pbartok
19963
19964         * CheckBox.cs:
19965           - Updated to fix broken build. Not complete yet.
19966
19967 2004-08-30 09:28  pbartok
19968
19969         * CheckState.cs:
19970           - Initial checkin
19971
19972 2004-08-30 09:17  pbartok
19973
19974         * Appearance.cs:
19975           - Initial check-in
19976
19977 2004-08-27 16:12  ravindra
19978
19979         * ToolBarButton.cs: Added TypeConverter attribute.
19980
19981 2004-08-27 16:07  ravindra
19982
19983         * ImageIndexConverter.cs: Implemented.
19984
19985 2004-08-27 14:17  pbartok
19986
19987         * Control.cs:
19988           - Removed unneeded stack vars
19989           - First attempt to fix sizing issues when layout is suspended
19990
19991 2004-08-25 15:35  jordi
19992
19993         * ScrollBar.cs: more fixes to scrollbar
19994
19995 2004-08-25 14:04  ravindra
19996
19997         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
19998           Added the missing divider code and grip for ToolBar Control.
19999
20000 2004-08-25 13:20  pbartok
20001
20002         * Control.cs:
20003           - Control now properly passes the ambient background color to child
20004             controls
20005
20006 2004-08-25 13:20  jordi
20007
20008         * ScrollBar.cs: small bug fix regarding bar position
20009
20010 2004-08-25 12:33  pbartok
20011
20012         * Timer.cs:
20013           - Now only calls SetTimer or KillTimer if the enabled state has
20014           changed
20015
20016 2004-08-25 12:33  pbartok
20017
20018         * XplatUIWin32.cs:
20019           - Fixed timer handling, now seems to work
20020           - Improved error message for window creation
20021
20022 2004-08-25 12:32  pbartok
20023
20024         * Control.cs:
20025           - Fixed generation of MouseUp message
20026
20027 2004-08-25 12:29  jordi
20028
20029         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
20030           and fixes for progressbar
20031
20032 2004-08-24 18:43  ravindra
20033
20034         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
20035           in ToolBar control.
20036
20037 2004-08-24 17:15  pbartok
20038
20039         * Panel.cs:
20040           - Added #region
20041           - Added missing events
20042           - Alphabetized
20043
20044 2004-08-24 17:14  pbartok
20045
20046         * StatusBar.cs, PictureBox.cs:
20047           - Now uses Control's CreateParams
20048
20049 2004-08-24 16:36  pbartok
20050
20051         * XplatUIX11.cs:
20052           - Fixed background color handling
20053           - Fixed sending of enter/leave events on a grab
20054
20055 2004-08-24 16:35  pbartok
20056
20057         * X11Structs.cs:
20058           - Refined definitions for CrossingEvent
20059
20060 2004-08-24 12:37  jordi
20061
20062         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
20063           formmating, methods signature, and adds missing events
20064
20065 2004-08-24 12:24  jordi
20066
20067         * Control.cs: fire OnEnabledChanged event
20068
20069 2004-08-24 11:17  pbartok
20070
20071         * XplatUIWin32.cs:
20072           - Implemented SetTimer() and KillTimer()
20073
20074 2004-08-24 11:16  pbartok
20075
20076         * XplatUIX11.cs:
20077           - Now uses Remove instead of Add to kill the timer
20078
20079 2004-08-24 10:16  jackson
20080
20081         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
20082           picture boxes in the theme now. Draw picture box borders and obey
20083           sizing modes
20084
20085 2004-08-24 05:49  jackson
20086
20087         * Timer.cs: Remove top secret debugging code
20088
20089 2004-08-24 05:34  jackson
20090
20091         * PictureBox.cs: Temp hack to make picture boxes draw their full
20092           image
20093
20094 2004-08-24 05:29  jackson
20095
20096         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20097           XplatUIX11.cs: Move timers to the driver level. On X they are
20098           queued by the driver and checked on idle.
20099
20100 2004-08-24 01:07  jackson
20101
20102         * XplatUIX11.cs: Use a queue for async messages instead of passing
20103           them as ClientMessages since that was totally broken. Also simply
20104           check for events and return an idle message if none are found. This
20105           gives us an idle handler, and prevents deadlocking when no messages
20106           are in the queue.
20107
20108 2004-08-23 18:19  ravindra
20109
20110         * XplatUIWin32.cs: Removed the unwanted destructor.
20111
20112 2004-08-23 17:27  pbartok
20113
20114         * ButtonBase.cs:
20115           - Finishing touches. Works now, just needs some optimizations.
20116
20117 2004-08-23 16:53  jordi
20118
20119         * ScrollBar.cs: small fix
20120
20121 2004-08-23 16:45  pbartok
20122
20123         * Application.cs:
20124           - Removed debug output
20125           - Simplifications
20126
20127 2004-08-23 16:43  jordi
20128
20129         * ScrollBar.cs: [no log message]
20130
20131 2004-08-23 16:10  pbartok
20132
20133         * Form.cs:
20134           - Fixed handling of WM_CLOSE message
20135           - Removed debug output
20136
20137 2004-08-23 16:09  pbartok
20138
20139         * Application.cs:
20140           - Added handling of Idle event
20141           - Added handling of form closing
20142           - Fixed reporting of MessageLoop property
20143           - Removed some unneeded code, should provide a bit of a speedup
20144
20145 2004-08-23 15:22  pbartok
20146
20147         * Control.cs:
20148           - Added InitLayout() method
20149           - Added code to properly perform layout when Anchor or Dock property
20150             is changed
20151           - Changed 'interpretation' of ResumeLayout. MS seems to have a
20152             LAMESPEC, tried to do it in a way that makes sense
20153
20154 2004-08-23 14:10  jordi
20155
20156         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
20157           properties and methods
20158
20159 2004-08-23 13:55  pbartok
20160
20161         * Control.cs:
20162           - Properly fixed Jordi's last fix
20163           - Now uses Cursor's Position property instead of calling XplatUI
20164           directly
20165
20166 2004-08-23 13:44  jordi
20167
20168         * PaintEventHandler.cs: Adding missing attribute
20169
20170 2004-08-23 13:39  pbartok
20171
20172         * Cursor.cs:
20173           - Implemented Position property
20174
20175 2004-08-23 13:39  pbartok
20176
20177         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20178           - Added method to move mouse cursor
20179
20180 2004-08-23 13:39  pbartok
20181
20182         * XplatUIX11.cs:
20183           - Fixed setting of background color
20184           - Added method to move mouse cursor
20185
20186 2004-08-23 13:16  jordi
20187
20188         * Control.cs: avoids null exception
20189
20190 2004-08-22 17:46  jackson
20191
20192         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
20193           PictureBox
20194
20195 2004-08-22 17:40  jackson
20196
20197         * XplatUIX11.cs: Add some missing locks
20198
20199 2004-08-22 15:10  pbartok
20200
20201         * Control.cs, Form.cs:
20202           - Removed OverlappedWindow style from Control, instead it's default
20203             now is child
20204           - Made form windows OverlappedWindow by default
20205
20206 2004-08-22 13:34  jackson
20207
20208         * ScrollBar.cs: Update the position through the Value property so
20209           the OnValueChanged event is raised.
20210
20211 2004-08-22 12:04  pbartok
20212
20213         * SWF.csproj:
20214           - Added Cursor.cs and UserControl.cs
20215
20216 2004-08-22 12:03  pbartok
20217
20218         * Cursor.cs:
20219           - Started implementation, not usable yet
20220
20221 2004-08-22 12:00  pbartok
20222
20223         * UserControl.cs:
20224           - Implemented UserControl (complete)
20225
20226 2004-08-21 19:20  ravindra
20227
20228         * ToolBar.cs: Correcting the formatting mess of VS.NET.
20229
20230 2004-08-21 18:49  ravindra
20231
20232         * ToolBar.cs: Probably this completes the missing attributes in
20233           toolbar control.
20234
20235 2004-08-21 18:03  ravindra
20236
20237         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
20238           Fixed toolbar control signatures.
20239
20240 2004-08-21 16:32  pbartok
20241
20242         * LinkLabel.cs:
20243           - Signature Fixes
20244
20245 2004-08-21 16:30  pbartok
20246
20247         * Label.cs:
20248           - Signature fixes
20249
20250 2004-08-21 16:19  pbartok
20251
20252         * Control.cs, Label.cs:
20253           - Signature fixes
20254
20255 2004-08-21 15:57  pbartok
20256
20257         * ButtonBase.cs:
20258           - Added loads of debug output for development
20259           - Fixed typo in method name
20260
20261 2004-08-21 15:52  pbartok
20262
20263         * ToolBarButtonClickEventArgs.cs:
20264           - Added missing base class
20265
20266 2004-08-21 14:53  pbartok
20267
20268         * Control.cs:
20269           - Updated to match new GrabWindow signature
20270
20271 2004-08-21 14:51  pbartok
20272
20273         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20274           - Added method to get default display size
20275
20276 2004-08-21 14:23  pbartok
20277
20278         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20279           - Added method to query current grab state
20280           - Added argument to allow confining a grab to a window
20281
20282 2004-08-21 14:22  pbartok
20283
20284         * Keys.cs:
20285           - Added [Flags] attribute so that modifiers can be used in bitwise
20286           ops
20287
20288 2004-08-21 14:21  pbartok
20289
20290         * TrackBar.cs, ScrollBar.cs:
20291           - Replaced direct XplatUI calls with their Control counterpart
20292
20293 2004-08-21 13:32  pbartok
20294
20295         * Control.cs:
20296           - Implemented Created property
20297
20298 2004-08-21 13:28  pbartok
20299
20300         * Control.cs:
20301           - Implemented ContainsFocus
20302
20303 2004-08-21 13:26  pbartok
20304
20305         * Control.cs:
20306           - Implemented CausesValidation
20307
20308 2004-08-21 13:21  pbartok
20309
20310         * Control.cs:
20311           - Implemented CanFocus
20312           - Implemented CanSelect
20313           - Implemented Capture
20314
20315 2004-08-21 12:35  pbartok
20316
20317         * XplatUIWin32.cs:
20318           - Fixed bug with Async message handling
20319           - Implemented getting the ModifierKeys
20320
20321 2004-08-21 12:32  jackson
20322
20323         * AsyncMethodResult.cs: Make sure we have the mutex before we
20324           release it. Fixes BeginInvoke on windows
20325
20326 2004-08-21 11:31  pbartok
20327
20328         * XplatUIWin32.cs, XplatUIX11.cs:
20329           - Drivers now return proper mouse state
20330
20331 2004-08-21 10:54  jackson
20332
20333         * Control.cs: Implement EndInvoke
20334
20335 2004-08-21 10:48  jackson
20336
20337         * Timer.cs: Remove unneeded finalizer
20338
20339 2004-08-20 19:52  ravindra
20340
20341         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
20342           in mouse event handling in the ToolBar control.
20343
20344 2004-08-20 19:50  ravindra
20345
20346         * ImageList.cs: Changed draw method to use the arguments passed in
20347           to draw the image.
20348
20349 2004-08-20 18:58  pbartok
20350
20351         * XplatUIStructs.cs:
20352           - Added private message for async communication
20353
20354 2004-08-20 17:38  ravindra
20355
20356         * Control.cs: Made RightToLeft property virtual and removed a
20357           Console.WriteLine.
20358
20359 2004-08-20 14:39  jordi
20360
20361         * ThemeGtk.cs: use style_attach
20362
20363 2004-08-20 14:39  pbartok
20364
20365         * XplatUIWin32.cs:
20366           - Added jackson's Async code from X11 to Win32
20367
20368 2004-08-20 14:09  pbartok
20369
20370         * SWF.csproj:
20371           - Added all new files
20372
20373 2004-08-20 14:09  pbartok
20374
20375         * Control.cs:
20376           - Added call to set window background color
20377
20378 2004-08-20 14:03  pbartok
20379
20380         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20381           - Added method for setting the window background
20382
20383 2004-08-20 14:02  pbartok
20384
20385         * XplatUIWin32.cs:
20386           - Added method for setting the background color
20387           - Added handling for erasing the window background
20388
20389 2004-08-20 13:45  jordi
20390
20391         * TrackBar.cs: fixes timer, new properties and methods
20392
20393 2004-08-20 13:34  jackson
20394
20395         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
20396           correct thread
20397
20398 2004-08-20 13:22  jackson
20399
20400         * Timer.cs: Timer Tick events are now handed through Controls Async
20401           mechanism so the callbacks are executed in the same thread as X
20402
20403 2004-08-20 13:19  jackson
20404
20405         * XplatUIDriver.cs: Expose functionality to send async messages
20406           through the driver
20407
20408 2004-08-20 13:18  jackson
20409
20410         * Control.cs: Implement Begininvoke
20411
20412 2004-08-20 13:14  jackson
20413
20414         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
20415           messages through the driver
20416
20417 2004-08-20 13:12  jackson
20418
20419         * XplatUIX11.cs: Lock before all X operations. Also added Async
20420           method functionality through XSendEvent
20421
20422 2004-08-20 13:11  jackson
20423
20424         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
20425           This will screw up on 64 bit systems)
20426
20427 2004-08-20 13:10  jackson
20428
20429         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
20430           Async messages through X/Win32
20431
20432 2004-08-19 19:39  pbartok
20433
20434         * XplatUIX11.cs:
20435           - Updated code to match new HandleData.DeviceContext type
20436
20437 2004-08-19 19:38  pbartok
20438
20439         * HandleData.cs:
20440           - Made DeviceContext a generic object to allow usage from various
20441           drivers
20442           - Added support for queueing Windows messages
20443
20444 2004-08-19 19:37  pbartok
20445
20446         * XplatUIWin32.cs:
20447           - Added generation of MouseEnter, MouseLeave and MouseHover events
20448           - Added cleanup on EndPaint
20449
20450 2004-08-19 19:17  pbartok
20451
20452         * Control.cs:
20453           - Added handling of WM_MOUSEHOVER
20454           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
20455           code
20456
20457 2004-08-19 18:55  jordi
20458
20459         * ThemeGtk.cs: fixes button order
20460
20461 2004-08-19 18:12  jordi
20462
20463         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
20464
20465 2004-08-19 17:09  pbartok
20466
20467         * Control.cs:
20468           - Added Right property
20469           - Added RightToLeft property
20470
20471 2004-08-19 16:27  jordi
20472
20473         * ThemeGtk.cs: experimental GTK theme support
20474
20475 2004-08-19 16:26  jordi
20476
20477         * ITheme.cs, Theme.cs: move themes from an interface to a class
20478
20479 2004-08-19 16:25  jordi
20480
20481         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
20482           theme enhancaments
20483
20484 2004-08-19 16:04  pbartok
20485
20486         * XplatUIX11.cs:
20487           - Added colormap basics
20488           - Added a way to re-initialize with a different display handle
20489           - Fixed setting of the window background color
20490           - Added various X11 imports related to colors and colormaps
20491
20492 2004-08-19 15:51  pbartok
20493
20494         * X11Structs.cs:
20495           - Removed packing hints (Paolo suggested this a while back)
20496           - fixed colormap type
20497           - Added default Atom types
20498           - Added Screen and color structs and enums
20499
20500 2004-08-19 15:39  pbartok
20501
20502         * ImageList.cs:
20503           - Added missing Draw() method
20504           - Added missing RecreateHandle event
20505
20506 2004-08-19 15:30  pbartok
20507
20508         * Form.cs:
20509           - Added handling of WM_CLOSE
20510
20511 2004-08-18 13:16  jordi
20512
20513         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
20514           a table
20515
20516 2004-08-18 09:56  jordi
20517
20518         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
20519
20520 2004-08-17 15:31  ravindra
20521
20522         * SWF.csproj: Updated project.
20523
20524 2004-08-17 15:25  pbartok
20525
20526         * Control.cs:
20527           - Drawing improvement; don't call UpdateBounds if we are not visible
20528             (or have been minimized)
20529
20530 2004-08-17 15:24  pbartok
20531
20532         * XplatUIWin32.cs:
20533           - Finished IsVisible
20534           - Added Win32GetWindowPlacement
20535
20536 2004-08-17 15:08  jackson
20537
20538         * Panel.cs: Initial checkin of the Panel
20539
20540 2004-08-17 14:25  pbartok
20541
20542         * Control.cs:
20543           - Fixed broken handling of default window sizes
20544
20545 2004-08-17 13:29  jackson
20546
20547         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
20548           has a large startup time.
20549
20550 2004-08-17 10:25  jackson
20551
20552         * HandleData.cs: union areas properly
20553
20554 2004-08-17 10:12  jackson
20555
20556         * HandleData.cs: union areas properly
20557
20558 2004-08-16 20:00  ravindra
20559
20560         * ToolBar.cs, ToolBarButton.cs: Added attributes.
20561
20562 2004-08-16 18:48  ravindra
20563
20564         * ToolBar.cs: Added attributes.
20565
20566 2004-08-16 17:17  ravindra
20567
20568         * SWF.csproj: Updated project.
20569
20570 2004-08-16 17:16  jackson
20571
20572         * XplatUIX11.cs: Check for more expose events before sending a
20573           WM_PAINT so they can all be grouped together. This makes dragging a
20574           window across another window redraw in a sane way.
20575
20576 2004-08-16 15:47  pbartok
20577
20578         * Control.cs:
20579           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
20580             support OnMouseEnter/Leave()
20581           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
20582             exposure handling
20583
20584 2004-08-16 15:46  pbartok
20585
20586         * XplatUIStructs.cs, XplatUIX11.cs:
20587           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
20588           OnMouseEnter/Leave()
20589
20590 2004-08-16 15:34  jackson
20591
20592         * XplatUIX11.cs: Group multiple expose events in HandleData, make
20593           sure messages get the message field set to WM_NULL if they are not
20594           handled.
20595
20596 2004-08-16 15:24  jackson
20597
20598         * HandleData.cs: HandleData is used for storing message information
20599           for window handles
20600
20601 2004-08-15 17:23  ravindra
20602
20603         * ColorDepth.cs: Added attribute.
20604
20605 2004-08-15 17:23  ravindra
20606
20607         * SWF.csproj: Updated project for ToolBar Control.
20608
20609 2004-08-15 17:20  ravindra
20610
20611         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
20612           control and also dos2unix format.
20613
20614 2004-08-15 17:13  ravindra
20615
20616         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
20617           ToolBarButtonClickEventArgs.cs,
20618           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
20619           ToolBarTextAlign.cs: First Implementation of ToolBar control.
20620
20621 2004-08-15 15:31  pbartok
20622
20623         * ButtonBase.cs:
20624           - First (mostly) working version
20625
20626 2004-08-13 16:15  pbartok
20627
20628         * Control.cs:
20629           - Fixed Anchor default
20630
20631 2004-08-13 15:43  pbartok
20632
20633         * Control.cs:
20634           - Changed GetCursorPos signature
20635
20636 2004-08-13 15:42  pbartok
20637
20638         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20639           - Changed signature for GetCursorPos
20640
20641 2004-08-13 15:25  pbartok
20642
20643         * XplatUIX11.cs:
20644           - Cleanup
20645           - Fixed resizing/exposure handling
20646
20647 2004-08-13 15:22  jordi
20648
20649         * ThemeWin32Classic.cs: removes redundant code and fixes issues
20650           with tickposition
20651
20652 2004-08-13 14:55  jordi
20653
20654         * TrackBar.cs: change from wndproc to events
20655
20656 2004-08-13 13:00  jordi
20657
20658         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20659           XplatUIX11.cs: implements PointToClient (ScreenToClient)
20660
20661 2004-08-13 12:53  pbartok
20662
20663         * XplatUIWin32.cs:
20664           - Changed GetWindowPos to also provide client area size
20665           - Fixed broken prototypes for several win32 functions
20666
20667 2004-08-13 12:53  pbartok
20668
20669         * XplatUI.cs, XplatUIDriver.cs:
20670           - Changed GetWindowPos to also provide client area size
20671
20672 2004-08-13 12:52  pbartok
20673
20674         * XplatUIX11.cs:
20675           - Added generation of WM_POSCHANGED
20676           - Changed GetWindowPos to also provide client area size
20677
20678 2004-08-13 12:52  pbartok
20679
20680         * Control.cs:
20681           - Added Dispose() and destructor
20682           - Fixed resizing and bounds calculation
20683           - Fixed Layout
20684           - Added memory savings for invisible windows
20685
20686 2004-08-13 12:46  jordi
20687
20688         * TrackBar.cs: adds timer and grap window
20689
20690 2004-08-13 10:25  jackson
20691
20692         * Timer.cs: SWF Timer
20693
20694 2004-08-12 16:59  pbartok
20695
20696         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20697           - Implemented method to get current mouse position
20698
20699 2004-08-12 14:29  jordi
20700
20701         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
20702           enhancement, fix mouse problems, highli thumb, etc
20703
20704 2004-08-12 13:31  pbartok
20705
20706         * Control.cs:
20707           - Fixed Anchoring bugs
20708
20709 2004-08-12 13:01  jackson
20710
20711         * StatusBar.cs: Don't forget things
20712
20713 2004-08-12 12:54  jackson
20714
20715         * ThemeWin32Classic.cs: Handle owner draw status bars
20716
20717 2004-08-12 12:54  jackson
20718
20719         * StatusBar.cs: Implement missing properties, events, and methods.
20720           Handle mouse clicking
20721
20722 2004-08-12 10:19  jackson
20723
20724         * StatusBarPanelClickEventArgs.cs,
20725           StatusBarPanelClickEventHandler.cs: Classes for handling status
20726           bar panel click events
20727
20728 2004-08-12 10:10  jackson
20729
20730         * Control.cs: Add missing properties
20731
20732 2004-08-12 09:46  pbartok
20733
20734         * BindingsManagerBase.cs:
20735           - Name changed to BindingManagerBase.cs
20736
20737 2004-08-12 09:25  jordi
20738
20739         * ScrollableControl.cs: calls ctrlbase instead of exeception
20740
20741 2004-08-11 16:28  pbartok
20742
20743         * InputLanguageChangingEventArgs.cs:
20744           - Never check in before compiling. Fixes the last check-in
20745
20746 2004-08-11 16:26  pbartok
20747
20748         * InputLanguageChangingEventArgs.cs:
20749           - More signature fixes
20750
20751 2004-08-11 16:20  pbartok
20752
20753         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
20754           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
20755           ImageListStreamer.cs, InputLanguage.cs,
20756           InputLanguageChangedEventArgs.cs,
20757           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
20758           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
20759           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
20760           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20761           - Signature fixes
20762
20763 2004-08-11 16:16  pbartok
20764
20765         * Application.cs:
20766           - Fixed Signature
20767           - Added .Net 1.1 method
20768
20769 2004-08-11 15:25  pbartok
20770
20771         * SWF.csproj:
20772           - Fixed BindingManagerBase.cs filename
20773
20774 2004-08-11 15:22  pbartok
20775
20776         * BindingManagerBase.cs:
20777           - Was checked in with wrong filename
20778
20779 2004-08-11 14:50  pbartok
20780
20781         * SWF.csproj:
20782           - Updated
20783
20784 2004-08-11 13:41  jordi
20785
20786         * XplatUIWin32.cs: Fixes ClientRect
20787
20788 2004-08-11 13:19  pbartok
20789
20790         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20791           XplatUIX11.cs:
20792           - We had SetWindowPos and MoveWindow to set window positions and
20793             size, removed MoveWindow. We have GetWindowPos, so it made sense to
20794             keep SetWindowPos as matching counterpart
20795           - Added some X11 sanity checking
20796
20797 2004-08-11 12:59  pbartok
20798
20799         * Control.cs:
20800           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
20801             (It seems that SetBounds is just a front for SetBoundsCore and
20802              SetBoundsCore updates the underlying window system and
20803              UpdateBounds is responsible for updating the variables associated
20804              with the Control and sending the events)
20805           - Major cleanup of Size handling; we now have two sizes, client_size
20806             and bounds. Bounds defines the window with decorations, client_size
20807             without them.
20808
20809 2004-08-11 12:55  pbartok
20810
20811         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20812           - Added method to calculate difference between decorated window and
20813             raw client area
20814
20815 2004-08-11 12:54  pbartok
20816
20817         * Label.cs:
20818           - Forcing redraw on resize
20819
20820 2004-08-11 11:43  pbartok
20821
20822         * ImageList.cs:
20823           - Removed disposing of the actual images when the list is disposed
20824
20825 2004-08-11 09:13  pbartok
20826
20827         * Control.cs:
20828           - Now properly reparents windows
20829
20830 2004-08-11 08:37  pbartok
20831
20832         * Control.cs:
20833           - Duh!
20834
20835 2004-08-11 07:47  pbartok
20836
20837         * Control.cs:
20838           - Rewrote the collection stuff. Might not be as fast now, not
20839             keeping the number of children around and accessible directly, but
20840             it's more straightforward
20841
20842 2004-08-11 07:44  pbartok
20843
20844         * AccessibleObject.cs:
20845           - Fixed to match ControlCollection rewrite
20846
20847 2004-08-11 07:43  pbartok
20848
20849         * ImageList.cs:
20850           - Added missing creation of the collection list
20851
20852 2004-08-10 20:08  jackson
20853
20854         * StatusBar.cs: Get the paint message from WndProc
20855
20856 2004-08-10 19:31  jackson
20857
20858         * ThemeWin32Classic.cs: Create Brushes as little as possible
20859
20860 2004-08-10 19:20  jackson
20861
20862         * UICues.cs: Add Flags attribute
20863
20864 2004-08-10 19:19  jackson
20865
20866         * StatusBarPanel.cs: Signature cleanup
20867
20868 2004-08-10 19:10  jackson
20869
20870         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
20871           Initial implementation of status bar item drawing
20872
20873 2004-08-10 17:27  jordi
20874
20875         * TrackBar.cs: add missing methods, properties, and restructure to
20876           hide extra ones
20877
20878 2004-08-10 16:24  jackson
20879
20880         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
20881           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
20882           attribute
20883
20884 2004-08-10 13:21  jordi
20885
20886         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
20887           enhancements and standarize on win colors defaults
20888
20889 2004-08-10 12:52  jackson
20890
20891         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
20892           ThemeWin32Classic.cs: Implement DrawItem functionality
20893
20894 2004-08-10 12:47  jordi
20895
20896         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
20897
20898 2004-08-10 12:32  jordi
20899
20900         * Control.cs: throw ontextchange event
20901
20902 2004-08-10 11:43  pbartok
20903
20904         * Control.cs:
20905           - Added more to the still unfinished Dock/Anchor layout code
20906
20907 2004-08-10 11:39  pbartok
20908
20909         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20910           - Added GetWindowPos method
20911
20912 2004-08-10 11:36  pbartok
20913
20914         * XplatUIWin32.cs:
20915           - Implemented several methods
20916
20917 2004-08-10 09:47  jackson
20918
20919         * TrackBar.cs: Allow control to handle buffering
20920
20921 2004-08-10 09:41  jackson
20922
20923         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
20924
20925 2004-08-10 09:24  jackson
20926
20927         * Label.cs, LinkLabel.cs: Let Control handle buffering.
20928
20929 2004-08-10 09:09  jackson
20930
20931         * StatusBar.cs: Let Control handle all the buffering.
20932
20933 2004-08-10 09:08  jackson
20934
20935         * Control.cs: Control will now handle the buffering code, so each
20936           control does not have to implement this.
20937
20938 2004-08-10 08:34  jackson
20939
20940         * XplatUIDriver.cs: Use default colors from the theme
20941
20942 2004-08-09 17:12  pbartok
20943
20944         * ImageList.cs:
20945           - Fixed several bugs Ravindra pointed out
20946
20947 2004-08-09 16:11  pbartok
20948
20949         * Control.cs:
20950           - Added incomplete dock layout code
20951           - Added support for mouse wheel
20952
20953 2004-08-09 16:09  pbartok
20954
20955         * XplatUIX11.cs:
20956           - Added handling for middle and right mousebutton
20957           - Added handling for mouse wheel
20958           - Added handling for key state and mouse state and position
20959           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
20960           messages
20961
20962 2004-08-09 15:40  jackson
20963
20964         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
20965           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
20966           checkin
20967
20968 2004-08-09 15:37  jackson
20969
20970         * StatusBar.cs: Initial implementation of StatusBar
20971
20972 2004-08-09 15:36  jackson
20973
20974         * ITheme.cs: Add support for drawing status bar and getting status
20975           bar item sizes
20976
20977 2004-08-09 15:35  pbartok
20978
20979         * MouseButtons.cs:
20980           - Fixed values
20981
20982 2004-08-09 15:34  jackson
20983
20984         * ThemeWin32Classic.cs: Add support for drawing status bar and get
20985           status bar item sizes
20986
20987 2004-08-09 15:21  jackson
20988
20989         * ThemeWin32Classic.cs: Use known colors for default control
20990           colours
20991
20992 2004-08-09 15:12  jackson
20993
20994         * ThemeWin32Classic.cs: Make the default font static, it is static
20995           in control so this doesn't change functionality and creating fonts
20996           is sloooooow.
20997
20998 2004-08-09 14:56  pbartok
20999
21000         * X11Structs.cs:
21001           - Added GrabMode enum
21002
21003 2004-08-09 14:55  pbartok
21004
21005         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21006           - Removed Run method, was only required for initial development
21007
21008 2004-08-09 14:51  pbartok
21009
21010         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21011           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
21012           capture
21013
21014 2004-08-09 13:48  pbartok
21015
21016         * XplatUIX11.cs:
21017           - Fixed default sizing for child windows
21018
21019 2004-08-09 12:56  pbartok
21020
21021         * XplatUIX11.cs:
21022           - Added generation of WM_DESTROY message
21023           - Added handling of window manager induced shutdown
21024
21025 2004-08-09 11:31  jackson
21026
21027         * ThemeWin32Classic.cs: New names for control properties
21028
21029 2004-08-09 11:25  jackson
21030
21031         * Control.cs: Use new color names
21032
21033 2004-08-09 11:02  jackson
21034
21035         * XplatUI.cs: Get default window properties from the theme
21036
21037 2004-08-09 11:01  jackson
21038
21039         * ITheme.cs: The theme engine now controls default window
21040           properties
21041
21042 2004-08-09 11:00  jackson
21043
21044         * ThemeWin32Classic.cs: Add default window color properties
21045
21046 2004-08-09 10:17  jackson
21047
21048         * ThemeWin32Classic.cs: Use correct default back color
21049
21050 2004-08-09 10:05  jackson
21051
21052         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
21053           the theme now.
21054
21055 2004-08-09 09:56  jackson
21056
21057         * XplatUI.cs: Remove defaults, these are handled by the theme now.
21058
21059 2004-08-09 09:54  jackson
21060
21061         * Control.cs: Get default properties from the theme.
21062
21063 2004-08-09 09:53  jackson
21064
21065         * ITheme.cs: Themes now handle default control properties
21066
21067 2004-08-09 09:53  jackson
21068
21069         * ThemeWin32Classic.cs: Themes now handle default control
21070           properties so coloring will be consistent
21071
21072 2004-08-08 16:54  jordi
21073
21074         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
21075
21076 2004-08-08 15:08  jordi
21077
21078         * XplatUIX11.cs: fixes keyboard crash
21079
21080 2004-08-08 13:47  jordi
21081
21082         * Label.cs: add cvs header info
21083
21084 2004-08-08 12:09  jackson
21085
21086         * ThemeWin32Classic.cs: Add pen_buttonface
21087
21088 2004-08-08 11:52  jordi
21089
21090         * Label.cs, LinkLabel.cs: [no log message]
21091
21092 2004-08-08 11:34  jordi
21093
21094         * ThemeWin32Classic.cs: Use Windows Standard Colours
21095
21096 2004-08-07 17:32  jordi
21097
21098         * TrackBar.cs: throw exceptions of invalid enums values
21099
21100 2004-08-07 17:31  jordi
21101
21102         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
21103           draw method name
21104
21105 2004-08-07 16:56  jackson
21106
21107         * HorizontalAlignment.cs: Initial checkin
21108
21109 2004-08-07 13:16  jordi
21110
21111         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
21112           methods
21113
21114 2004-08-07 13:05  jordi
21115
21116         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
21117           GetSysColor defines
21118
21119 2004-08-06 18:01  pbartok
21120
21121         * ThemeWin32Classic.cs:
21122           - Fixed some rounding issues with float/int
21123
21124 2004-08-06 18:00  jackson
21125
21126         * DockStyle.cs, AnchorStyles.cs:
21127
21128                   Add flags and serializable attributes.
21129
21130 2004-08-06 17:46  pbartok
21131
21132         * XplatUIX11.cs:
21133           - Implemented GetParent
21134
21135 2004-08-06 17:18  pbartok
21136
21137         * TrackBar.cs:
21138           - Fixed some rounding issues with float/int
21139
21140 2004-08-06 17:17  pbartok
21141
21142         * X11Structs.cs, XplatUIX11.cs:
21143           - Fixed Refresh and Invalidate
21144
21145 2004-08-06 15:30  pbartok
21146
21147         * Control.cs, X11Structs.cs, XplatUIX11.cs:
21148           - Fixed recursive loop when resizing
21149           - Improved/fixed redrawing on expose messages
21150
21151 2004-08-06 09:53  jordi
21152
21153         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
21154           keyboard navigation
21155
21156 2004-08-06 08:02  pbartok
21157
21158         * X11Structs.cs, XplatUIX11.cs:
21159           - Fixed reparenting
21160           - Fixed window border creation
21161
21162 2004-08-05 15:38  pbartok
21163
21164         * XplatUIX11.cs:
21165           - Attempted fix for reparenting problems
21166
21167 2004-08-04 15:14  pbartok
21168
21169         * Control.cs:
21170           - Fixed Invalidation bug (calculated wrong client area)
21171           - Added ClientSize setter
21172
21173 2004-08-04 15:13  pbartok
21174
21175         * Form.cs:
21176           - Added AutoScale properties
21177
21178 2004-08-04 15:13  pbartok
21179
21180         * SWF.csproj:
21181           - Added latest files
21182
21183 2004-08-04 14:11  pbartok
21184
21185         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21186           XplatUIX11.cs:
21187           - Added Invalidate handling
21188
21189 2004-08-03 17:09  jordi
21190
21191         * XplatUIDriver.cs: fixes spelling mistake
21192
21193 2004-07-27 09:53  jordi
21194
21195         * TrackBar.cs: fixes trackbar events, def classname, methods
21196           signature
21197
21198 2004-07-27 09:29  jordi
21199
21200         * ScrollBar.cs: fixes scrollbar events
21201
21202 2004-07-27 04:38  jordi
21203
21204         * Control.cs: changes to be able to run winforms samples
21205
21206 2004-07-26 11:42  jordi
21207
21208         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
21209           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
21210
21211 2004-07-26 05:41  jordi
21212
21213         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
21214           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
21215           implementation
21216
21217 2004-07-22 09:22  jordi
21218
21219         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
21220           check link overlapping, implement events, and fixes
21221
21222 2004-07-21 10:28  jordi
21223
21224         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
21225
21226 2004-07-21 10:19  jordi
21227
21228         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
21229           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
21230           LinkLabelLinkClickedEventArgs.cs,
21231           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
21232           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
21233           implementation
21234
21235 2004-07-19 13:09  jordi
21236
21237         * Control.cs, Label.cs: label control re-written: added missing
21238           functionlity, events, and properties
21239
21240 2004-07-19 10:49  jordi
21241
21242         * Control.cs: fixes SetBounds logic
21243
21244 2004-07-19 01:29  jordi
21245
21246         * Control.cs: Call RefreshWindow only if the window has created
21247
21248 2004-07-15 14:05  pbartok
21249
21250         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
21251           - Implemented ImageList and ImageList.ImageCollection classes
21252           - Added ColorDepth enumeration
21253           - Updated SWF VS.Net project
21254
21255 2004-07-15 11:06  jordi
21256
21257         * XplatUIStructs.cs: added MsgButons enum
21258
21259 2004-07-15 11:03  jordi
21260
21261         * Control.cs: added basic mouse handeling events
21262
21263 2004-07-15 03:38  jordi
21264
21265         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
21266           Vertical TrackBar control implementation
21267
21268 2004-07-13 09:33  jordi
21269
21270         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
21271
21272 2004-07-13 09:31  jordi
21273
21274         * Control.cs, Form.cs: commit: new properties and fixes form size
21275           problems
21276
21277 2004-07-09 14:13  miguel
21278
21279         * ProgressBar.cs: Spelling
21280
21281 2004-07-09 11:25  pbartok
21282
21283         * ProgressBar.cs:
21284           - Removed usage of Rectangle for drawing. Miguel pointed out it's
21285           faster
21286
21287 2004-07-09 11:17  miguel
21288
21289         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21290
21291                 * ProgressBar.cs: Fixed spelling for `block'
21292
21293                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
21294                 style guidelines.
21295
21296                 Avoid using the += on rect.X, that exposed a bug in the compiler.
21297
21298 2004-07-08 23:21  pbartok
21299
21300         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
21301           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
21302           BaseCollection.cs, Binding.cs, BindingContext.cs,
21303           BindingMemberInfo.cs, BindingsCollection.cs,
21304           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
21305           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
21306           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
21307           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
21308           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
21309           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
21310           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
21311           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
21312           FrameStyle.cs, GiveFeedbackEventArgs.cs,
21313           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
21314           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
21315           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
21316           InputLanguageChangedEventArgs.cs,
21317           InputLanguageChangedEventHandler.cs,
21318           InputLanguageChangingEventArgs.cs,
21319           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
21320           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
21321           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
21322           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
21323           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
21324           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
21325           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
21326           QueryAccessibilityHelpEventArgs.cs,
21327           QueryAccessibilityHelpEventHandler.cs,
21328           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
21329           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
21330           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
21331           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
21332           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
21333           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
21334           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
21335           XplatUIX11.cs, lang.cs:
21336           - Initial check-in
21337