2007-01-09 Everaldo Canuto <everaldo@simios.org>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
2
3         * Label.cs, LinkLabel.cs: Source code identation fixes.
4
5 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
6
7         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
8         we dont need to invalidate only borders because when we invalidate four
9         border lines the invalidate's generates a complete redraw of button, 
10         because it now invalidate a complete rect some other redraws operations
11         are fixed. Fixes #80196.
12         
13         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
14         Remove ToolBarInvalidateEntireButton as it is not used.
15
16 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
17         
18         * Form.cs: Make sure that both OnClosing and OnFormClosing are
19         called for 2.0 profile.
20         * CloseReason.cs: Make class internal for 1.1.
21
22 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
23
24         * ToolStripManager.cs: Implement FindToolStrip functionality.
25         * ToolStrip.cs: Register and unregister with ToolStripManager.
26
27 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
28
29         * Control.cs: This was messy.  2.0 moves much of ControlCollection
30         to ArrangedElementCollection.  Implemented this with as few #if's as 
31         possible (which is still too many).
32
33 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
34
35         * Control.cs: Implement SizeFromClientSize() [2.0].
36
37 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
38
39         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
40         use Theme.BorderSize to calculate area instead of static value 1, 
41         by the way use new BorderStaticSize instead     Border3DSize when 
42         border_static is true. Fixes #79537.
43         
44         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
45         
46         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
47         it is not needed.
48
49 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
50
51         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
52
53 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
54
55         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
56         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
57         
58         * Hwnd.cs: 
59         - border_static field added, it will used to define when a control 
60         theres 3D border but it must be static (thin).
61         - In GetWindowRectangle use Theme.BorderSize to calculate area 
62         instead of static value 1, by the way use new BorderStaticSize instead
63         Border3DSize when border_static is true.
64
65         * XplatUIX11.cs, XplatUIOSX.cs: 
66         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
67         
68         * Theme.cs: BorderStaticSize field added.
69
70 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
71
72         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
73
74 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
75
76         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
77         mimic same behavior than win32 that set border only in CreateParams,
78         it fix problems under CreateParams overrides. Fix #79442 and partial
79         fix #79537.
80         
81         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
82         of thi control you must call recreate handle. 
83         
84         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
85         need to do anything as RecreateHangle will take care about borders.
86
87 2007-01-05  Mike Kestner  <mkestner@novell.com>
88
89         * ListView.cs: hack to eliminate Lost/Got focus notifications on
90         cycles between the ItemControl and parent.  Fixes #80388.
91
92 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
93
94         * Control.cs: Lazy init layout engine. Do not directly use 
95         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
96
97 2007-01-05  Chris Toshok  <toshok@ximian.com>
98
99         * DataGrid.cs: don't forceably rebind columns in SetDataSource
100         unless our list manager has changed (i.e. unless we have reason to
101         believe our columns have changed).  Fixes #80422.
102         
103         also, disable the call do BindColumns in
104         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
105         1.1 the event isn't raised in response to a column addition on a
106         table.)
107
108 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
109
110         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
111         that inheritors can not call it if they choose.  Fixes bug #80456.
112
113 2007-01-05  Andreia Gaita  <avidigal@novell.com>
114
115         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
116         doesn't blow up with a null exception on marshalling.
117         
118 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
119
120         * Control.cs: Implement several 2.0 protected properties and methods.
121         Ensure that all necessary events are being called when properties
122         are set.
123
124 2007-01-05  Mike Kestner  <mkestner@novell.com>
125
126         * ListView.cs: implement PgUp/PgDn for Details view.  Also
127         fixes First/LastVisibleIndex to use the item_control.ClientRect 
128         instead of the parent control.  Fixes #80378.
129
130 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
131
132         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
133           determine whether to use yard-pound or not (bug #78399).
134
135 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
136
137         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
138         problems. So it is time to bring back the old popupbutton colors.
139
140 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
141
142         * ColumnHeader.cs:
143         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
144         property by using the internal information of the
145         columns order in ListView.
146
147 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
148
149         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
150         Add 2.0 Tag properties.
151
152         * LinkArea.cs: Add 2.0 ToString method.
153
154 2007-01-03  Chris Toshok  <toshok@ximian.com>
155
156         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
157         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
158         when we're editing, which fixes #80047.
159
160 2007-01-03  Chris Toshok  <toshok@ximian.com>
161
162         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
163         #80404.
164
165 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
166
167         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
168         property and implementation.
169
170         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
171         for MdiWindowListItem property.
172
173         * ToolStripDropDown.cs: Don't consider hidden menu items while
174         laying out the menu.
175
176 2007-01-03  Andreia Gaita  <avidigal@novell.com>
177
178         * SendKeys.cs: window handle is not needed in win32, so just
179         get the active window for X after parsing keys and don't use
180         it when building the message; it is passed by parameter to the 
181         Xplat method and used there to build the message instead. Also,
182         wait for events to be processed on SendWait, as opposed to Send,
183         which doesn't wait :) Playing with threads and Send() completely 
184         hangs on ms.net, only SendWait() works.
185         
186         XplatUIX11.cs
187         X11Display.cs: Check for valid window handle.
188
189 2007-01-03  Jackson Harper  <jackson@ximian.com>
190
191         * TextControl.cs: Need to prevent wrap calculations when replacing
192         text (this was there before i removed it accidently).
193         - Don't update the cursor during the positioning, just set it to
194         selection_start at the end of the operaion.
195
196 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
197
198         * Control.cs:
199         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
200         
201 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
202
203         * MonthCalendar.cs: Added Click and DoubleClick events again,
204         but this time they only hide Control's Click and DoubleClick.
205         
206 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
207
208         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
209         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
210
211 2007-01-02  Jackson Harper  <jackson@ximian.com>
212
213         * TextBoxBase.cs: We move the caret with the split now, so we
214         don't need to explicitly move the caret after splitting.  This
215         fixes the caret bumping down an extra line on Enter.
216
217 2007-01-02  Miguel de Icaza  <miguel@novell.com>
218
219         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
220         2.72). 
221
222         * ScrollableControl.cs: Add Scroll event.
223
224 2007-01-02  Mike Kestner  <mkestner@novell.com>
225
226         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
227         to fix all hdr height padding codepaths.  Fixes #80207.
228
229 2007-01-02  Chris Toshok  <toshok@ximian.com>
230
231         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
232         setting it to the Control defaults anyway, and it being after the
233         Dock set was screwing up layout.
234         (set_Dock): don't short circuit out of setting base.Dock.  Also,
235         no need to call UpdateStatusBar here, as it'll be re-layed out if
236         it needs to be.
237
238 2007-01-02  Mike Kestner  <mkestner@novell.com>
239
240         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
241         to header height for width == -1. Fixes the rest of #80207.
242
243 2007-01-02  Mike Kestner  <mkestner@novell.com>
244
245         * ListView.cs: rework the mouse event forwarding everaldo added
246         to translate the coordinates to the parent control not
247         raise the parent events until after we've done our work. Hover
248         needs more work, in the case where HoverSelection is on, because
249         the item control receives more than one MouseHover per Enter
250         event, so we need to ensure only the "first" hover gets forwarded.
251         Opening a minor bug for that.
252
253 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
254
255         * CheckedListBox.cs: Fixed SelectionMode to match MS.
256         * ListControl.cs: Implemented AllowSelection property. Removed extra
257         tabs.
258         * ListBox.cs: Implemented AllowSelection property.
259
260 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
261
262         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
263         SelectedItem, it prevent for errors when you must disable item
264         before perform click. Fixes #80409.
265
266 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
267
268         * MenuAPI.cs: Prevent second level and beyond submenus to close
269         until first level when move out side of popup.
270         
271 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
272
273         * MenuAPI.cs:
274         - Down submenu positin in three pixels.
275         - Closes sub menu when mouse leaves from menu. Fixes #80402.
276
277 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
278
279         * ThemeWin32Classic.cs:
280         - Fix popup menu size adding one pixel on the top.
281         - Down menu item border from two to one to mimic Win32.
282         - Some source identation fixes. 
283
284 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
285
286         * ThemeWin32Classic.cs: Use float numbers to calculate size and
287         position of menu arrows, it fix wrong arrow size.
288
289 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
290
291         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
292         instead of line, it simplify draw operation and fix it using 3D
293         borders to mimic Win32.
294
295 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
296
297         * StatusStrip.cs: Add implementation of the sizing grip.
298
299         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
300         StatusStrip rendering.
301
302 2006-12-31  Chris Toshok  <toshok@ximian.com>
303
304         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
305         override the layout style (anchor/dock) of the control.  assign to
306         Dock instead.  Fixes bug #80416.
307
308         * ToolStrip.cs: same.
309
310 2006-12-31  Andreia Gaita  <avidigal@novell.com>
311
312         * ContainerControl.cs: Use ContainerSelected flag to check if 
313         a Container is directly selected, or if Select is called on a 
314         non-container. If a container is directly selected, focus events 
315         should not be raised.
316         Apply #80411 patch to throw exception on set_ActiveControl if 
317         control is the same as the current one.
318         
319         * Control.cs: Use ContainerSelected flag (see above).
320         Add invalidation check to raise event but not invalidate if 
321         dimensions are 0.       
322         Apply #80411 patch.
323         
324
325 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
326
327         * MenuAPI.cs: After click, dont close popup menu when menu is
328         ContextMenu. Fixes #80399.
329
330 2006-12-30  Chris Toshok  <toshok@ximian.com>
331
332         * ContainerControl.cs: make sure we throw the exception if the
333         container control doesn't contain the control we're setting
334         ActiveControl to.
335
336 2006-12-30  Chris Toshok  <toshok@ximian.com>
337
338         * Control.cs (SetTopLevel): fix the exception raised by
339         SetTopLevel for child controls.
340         (set_Anchor): call UpdateDistances when setting the anchor type.
341         This fixes bug #80336.
342
343 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
344
345         * Theme.cs: For now, revert back to 8pt font.
346
347 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
348
349         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
350         Fixes #80395.
351
352 2006-12-29  Chris Toshok  <toshok@ximian.com>
353
354         * Control.cs: reorder the code in OnResize to give the same event
355         ordering as MS.
356
357 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
358
359         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
360         TileHorizontally and TileVertically.
361         
362 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
363
364         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
365         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
366         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
367         Corrected copyright and email adress.
368
369 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
370
371         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
372         of Exception in FullPath property if no TreeView is associated with
373         the TreeNode.
374
375 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
376
377         * Theme.cs: Marked default_font as private, and initialize it in ctor
378         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
379         on 2.0 profile.
380         * ThemeGtk.cs: Removed default_font intialization.
381         * ThemeWin32Classic.cs: Removed default_font initialization.
382
383 2006-12-28  Chris Toshok  <toshok@ximian.com>
384
385         * Control.cs: fix a couple of place where we were creating handles
386         more aggressively than we should be.  Fixes ControlRefresh unit
387         tests.
388
389 2006-12-28  Chris Toshok  <toshok@ximian.com>
390
391         * Control.cs: contrary to what the comment said, Control.Dock does
392         not supercede Control.Anchor - the last one you assign to decides
393         the layout behavior.  so we need to keep track of which was the
394         last set.  Also, fix some of the affected property arguments in
395         PerformLayout calls, and remove an redundant parent.PerformLayout
396         call in OnResized.
397
398         Add a VisibleInternal property, which returns is_visible.  We
399         can/should get rid of all the usage of this field elsewhere.
400
401 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
402         
403         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
404         control style, not DoubleBuffer. Added UseDoubleBuffering property
405         that indicates whether doublebuffering is enabled and supported.
406         (comment from and code based on Gert Driesen's patch in #80324).
407         Fixes #80324.
408
409 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
410         
411         * Control.cs: Fixed a NRE.
412
413 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
414
415         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
416         for 2.0.
417
418 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
419
420         * Control.cs: Rewrote double buffering, now a seperate
421         class handles all the buffering, no Graphics is disposed of
422         until the painting is finished (earlier implementation 
423         would crash if the control was resized in the OnPaint, 
424         since it would cause the double buffer to be recreated
425         and the old one disposed), a separate Graphics is 
426         created for every paint (MS behaviour and anyways the state
427         of the Graphics would have to be saved and restored otherwise)
428         
429         * XplatUIDriver.cs: 
430         * XplatUIX11.cs:
431         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
432         so that we can get the graphics for the back buffer without
433         having to create a new one and remove the offscreen_dc parameter
434         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
435         
436 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
437
438         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
439         Also make virtual all the key-related methods.
440
441         * ListViewItem.cs: Make virtual the key related methods for
442         ListViewSubItemCollection.
443
444 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
445
446         * ListView.cs:
447         * ListViewItem.cs:
448         * ThemeWin32Classic.cs:
449         * Theme.cs: Initial support for Tile view in ListView,
450         as well as the implementation of the required bits for it (Item
451         and Subitem).
452
453 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
454
455         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
456         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
457         Provide useful exception messages.
458
459 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
460
461         * TrackBar.cs: Remove a warning.
462         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
463         when used by DateTimePicker, fixes #80287. This also requires that 
464         MonthCalendar implements it's own drawing for the yearly updown control,
465         otherwise the Capture tracking would be too complicated. Removed the Click 
466         and DoubleClick events (according to comments they were hiding the base class
467         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
468         raise these events, not that they cannot be raised. It is possible to raise 
469         them by calling OnClick and OnDoubleClick). Added two internal fields in 
470         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
471         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
472         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
473         event, no longer needed.
474         
475 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
476
477         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
478         true if new value differs from current value.
479
480 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
481
482         * Control.cs: ControlCollection.Count must be public. Fixed build of
483         unit tests.
484
485 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
486
487         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
488
489 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
490
491         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
492
493 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
494
495         * Control.cs: Invalidates control including when Width and Height is 
496         equal zero or is not visible, only Paint event must be care about 
497         this. Fixes #79913.
498
499 2006-12-26  Chris Toshok  <toshok@ximian.com>
500
501         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
502         more corcompare work.
503
504         * DataGridView.cs: fix compiler warning.
505
506         * ColumnHeader.cs: some corcompare work, and also take the
507         opportunity to make the internal fields private.
508
509         * ListView.cs: fix the fallout from the above field change.
510
511 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
512
513         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
514         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
515         ToolStripTextBox.cs: Fixes to events and corcompare.
516
517 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
518
519         * ListView.cs: Call owner.OnMousexx event to propagate events from
520         item to ListView. Fixes #80367.
521
522 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
523
524         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
525         if value is less than one. ItemHeight should not be set to a value
526         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
527         Removed extra tabs.
528
529 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
530
531         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
532         * ToolStripStatusLabel.cs: Add Spring for Moma.
533
534 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
535
536         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
537         Fixed code formatting. Removed debug code.
538         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
539
540 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
541
542         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
543         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
544         ArgumentOutOfRangeException if ColumnCount is negative. In 
545         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
546         less than 4 or higher than 32768.
547         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
548         Fixed FormatProvider to return CurrentCulture unless explicitly set.
549         Fixed IsFormatProviderDefault to return true if FormatProvider has
550         not been explicitly set.
551
552 2006-12-25  Chris Toshok  <toshok@ximian.com>
553
554         * Application.cs: add a couple of 2.0 events.
555
556 2006-12-25  Chris Toshok  <toshok@ximian.com>
557
558         * Control.cs: fix compiler warning.
559
560         * AxHost.cs: corcompare fixes.
561
562         * ApplicationContext.cs: corcompare fixes.
563
564 2006-12-25  Chris Toshok  <toshok@ximian.com>
565
566         * Control.cs: only update dist_right/dist_bottom if the
567         width/height is > 0.  this fixes anchored controls being resized
568         smaller until they disappear and then resized larger again.
569
570 2006-12-25  Chris Toshok  <toshok@ximian.com>
571
572         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
573         since they're nothing more than X/Left and Y/Top, respectively.
574
575         Also, move back to a per-control Bitmap/Graphics for
576         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
577         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
578         Height.
579
580 2006-12-25  Miguel de Icaza  <miguel@novell.com>
581
582         * MessageBox.cs: Implemented overload that takes a new "bool
583         displayHelpButton" by adding a new internal field "show_help".
584         When clicked this will raise the HelpRequested on the owner or the
585         main form. 
586
587         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
588         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
589
590         * ListView.cs: Add support ColumnWidthChanged and
591         ColumnWidthChanging. 
592
593         Add support for ColumnReordered event.
594         (ReorderColumn): Add NET_2_0 specific support for cancelling the
595         reorder.
596
597         Very nice codebase!
598
599         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
600
601         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
602
603 2006-12-24  Chris Toshok  <toshok@ximian.com>
604
605         * GridTablesFactory.cs: 2.0 corcompare work.
606
607         * ToolStripContainer.cs: add "override" to
608         ContextMenuStripChanged, and remove the local event object.
609
610         * ToolStripDropDown.cs: same with a couple properties.
611
612         * ToolStripPanel.cs: same with AutoSizeChanged event.
613
614         * TextBoxBase.cs: add "override" to AutoSizeChanged.
615
616         * Form.cs: add the remaining 2.0 events, and do some corcompare
617         attribute work.
618
619         * DateTimePicker.cs: add "new" to padding.
620
621         * ButtonBase.cs: use Control's use_compatible_text_rendering.
622
623         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
624
625         * DataGridView.cs: PaddingChanged is overridden.
626
627 2006-12-24  Chris Toshok  <toshok@ximian.com>
628
629         * Control.cs: corecompare work here too.
630
631         * DataGridViewElement.cs, DataGridView.cs,
632         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
633         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
634         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
635         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
636         work.
637
638 2006-12-24  Miguel de Icaza  <miguel@novell.com>
639
640         * Control.cs: Switched the error message on the console for a
641         todo.  A review of the code will have to cope with this anyways
642         (since its a large feature, it is in our radar) and it was
643         producing too much output when running PDN.
644
645         * ToolStripComboBox.cs: Set the text when the SelectedIndex
646         changes.  Applications depend on this (PDN 2.72)
647
648 2006-12-23  Chris Toshok  <toshok@ximian.com>
649
650         * TableLayoutSettings.cs: finish up the corcompare work for this
651         class.
652
653 2006-12-23  Chris Toshok  <toshok@ximian.com>
654
655         * Control.cs: make SetImplicitBounds internal, do some futzing
656         with LayoutEngine so that it's available in 1.1, and remove the
657         entire duplicated code mess from PerformLayout.  Use
658         System.Windows.Forms.Layout.DefaultLayout instead.
659
660         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
661
662 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
663
664         * Form.cs: Add MainMenuStrip property.
665
666 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
667
668         * Control.cs: Add ContextMenuStrip property and implementation.
669         Fix ContextMenu implementation to show menu centered on control when
670         activated using the keyboard instead of showing at screen (0,0).
671
672         * ToolStripDropDown.cs: Fix needed overload of Show ().
673
674 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
675
676         * Menu.cs: Name property added for 2.0 profile.
677         
678 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
679
680         * Menu.cs: Update information about FindMenuItem, method to be
681         implemented soon.
682
683 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
684
685         * MenuAPI.cs: When deselect items deselect also selected subitems.
686         
687 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
688
689         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
690         FindSubItemByCoord to found itens that is not active, also an
691         cheking added to FindSubItemByCoord to search for items only 
692         in visible popup windows. Fixes #80274.
693
694 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
695
696         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
697         internal property, it be care about change ExStyle. 
698
699 2006-12-22  Andreia Gaita  <avidigal@novell.com>
700
701         * ContainerControl.cs: set activeControl for parent forms up the 
702         tree when the new activecontrol is a container.
703         When validating the active control, if it is a container, also
704         raise up the validation for it's active control. Fixes #80280
705         
706         * Control.cs: Add internal property flag and check to prevent
707         Focus events from getting raised when Select() is called for
708         a ContainerControl. There are still too many focus events being
709         raised at the moment though.
710         Cleaned up the code a bit.
711
712 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
713
714         * Control.cs: Added all missing 2.0 events.and
715         fixed a couple of corcompare issues.
716         * TrackBar.cs: Implemented missing 2.0 bits.
717         * MonthCalendar.cs, 
718         * DateTimePicker.cs, 
719         * MdiClient.cs: Fixed some corcompare issues.
720
721 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
722
723         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
724         SplitterPanel.cs: corecompare work.
725
726 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
727
728         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
729         Clean up warnings for BackgroundImageChanged and PaddingChanged
730         events now that they are implemented in Control.cs.
731
732 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
733
734         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
735         
736         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
737         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
738         of TableLayoutPanel and supporting cast.
739
740 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
741
742         * XplatUIWin32.cs: 
743         - GrabWindow now confines the mouse pointer to the confine window.
744         - Added Win32ClipCursor and Win32GetClipCursor.
745
746         * Control.cs: 
747         - Added CaptureWithConfine to be able to capture and confine 
748         mouse pointer.
749         
750         * InternalWindowManager.cs: 
751         - Call CaptureWithConfine instead of Capture if we're an
752         MdiChild (fixes #79982).
753
754 2006-12-21  Chris Toshok  <toshok@ximian.com>
755
756         * DataGrid.cs: guard against the initial state of selection, where
757         selection_start == -1.  make sure we only select from index >= 0.
758         Fixes bug #80291.
759
760 2006-12-21  Chris Toshok  <toshok@ximian.com>
761
762         * Control.cs: we don't need to be so draconian with
763         UpdateDistances, and we thusly don't need to call it before
764         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
765
766 2006-12-21  Daniel Nauck  <dna@mono-project.de>
767
768         * ComboBox.cs,
769         TextBox.cs: Implemented AutoComplete properties.
770
771 2006-12-20  Chris Toshok  <toshok@ximian.com>
772
773         * DataGridView*.cs: some corecompare work.
774
775 2006-12-20  Jackson Harper  <jackson@ximian.com>
776
777         * XplatUIX11.cs: We need to hide the caret when deleting it,
778         otherwise you get carets left lying around everywhere.
779         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
780         prevents getting some weird half drawn caret tracers when
781         scrolling.
782         * TextControl.cs: Attempt to reduce the number of times we need to
783         recreate the caret.
784
785 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
786
787         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
788
789 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
790
791         * DateTimePicker.cs:
792         - Implemented missing 2.0 bits.
793         - Changed some default values to match MS.
794         
795 2006-12-20  Jackson Harper  <jackson@ximian.com>
796
797         * TextBoxBase.cs: When changing the font across the document we
798         can't recalculate after changing each line, since that will cahnge
799         the line count.
800         - PreferredHeight is a little different than i thought.
801         - When backspacing, move the caret before we do the actual char
802         delete, because when that delete crosses a wrap boundary the
803         positional information will change.
804
805 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
806
807         * Control.cs: Added some missing 2.0 bits: 
808         BackgroundImageLayout, BackgroundImageLayoutChanged, 
809         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
810         add IBindableComponent and IDropTarget implementation.
811         
812         * MonthCalendar.cs: 
813         - Added all missing 2.0 features:
814         BackgroundImageLayout, RightToLeftLayout, 
815         OnHandleDestroyed, RightToLeftLayoutChanged, 
816         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
817         PaddingChanged.
818         - Rewrote all the BoldDate code, it was completely broken.
819         - Fixed all the tests (the tests can now be re-enabled, the
820         problems were not with the tests, but with the control, it was
821         mostly broken).
822         
823         * DateTimePicker.cs: Changed the location where the 
824         MonthCalendar is shown.
825         
826 2006-12-19  Chris Toshok  <toshok@ximian.com>
827
828         * DataGridView.cs: add IDropTarget implementation.
829
830         * ToolStripPanel.cs: add IDropTarget implementation.
831
832 2006-12-19  Jackson Harper  <jackson@ximian.com>
833
834         * TextControl.cs: soft now means something different than what it
835         used to mean, we want to move the caret regardless of whether or
836         not this break was soft (would we really have wanted the caret
837         to not move with the break in the old context?)
838         * TreeView.cs: Make sure we factor in the vert scrollbar when
839         calculating the horizontal scrollbar's maximum.
840
841 2006-12-19  Andreia Gaita  <avidigal@novell.org>
842
843         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
844         check for keywords in alternate casing, close bug #80049.
845
846 2006-12-19  Chris Toshok  <toshok@ximian.com>
847
848         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
849         methods (which all do nothing).
850
851         * IDropTarget.cs: add the 4 missing methods.
852
853 2006-12-19  Chris Toshok  <toshok@ximian.com>
854
855         * TableLayoutRowStyleCollection.cs: corcompare work.
856         
857         * TableLayoutSettings.cs: same.
858
859         * TableLayoutStyle.cs: same.
860
861         * TableLayoutColumnStyleCollection.cs: same.
862
863 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
864
865         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
866         TableLayoutPanel I've had in my local tree for way too long.
867
868 2006-12-19  Miguel de Icaza  <miguel@novell.com>
869
870         * TableLayoutSettings.cs: Finish the public API (still needs all
871         the logic to update on changes). 
872
873         * TableLayoutPanelCellPosition.cs: new file.
874         
875         * TableLayoutRowStyleCollection.cs,
876         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
877         TableLayoutSettings.cs: Track the final 2.0 table api.
878
879 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
880
881         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
882         and Image List 2.0 members for ColummnHeader.
883         * ListView.cs: Add key-related 2.0 methods for
884         ColumnHeaderCollection.
885
886 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
887
888         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
889         ArgumentNullException if items argument is null. Ignore null item in
890         arrays. Removed extra tabs.
891
892 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
893
894         * MonthCalendar.cs: Fixed InvalidCastException.
895
896 2006-12-19  Jackson Harper  <jackson@ximian.com>
897
898         * TextControl.cs: Don't increment the position here.
899         - When calculating char positions only add in the line break size
900         for hard line breaks.
901
902 2006-12-19  Andreia Gaita  <avidigal@novell.org>
903
904         * SendKeys.cs: Changed some things to match ms.net behaviour
905         when parsing shifted capital letters.
906         
907         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
908         Add window handle as parameter to SendInput. X11 needs the 
909         window handle, and the handle being passed      to it in the keys 
910         queue is the active control handle (which windows needs), not 
911         the window handle.
912         
913         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
914         to support SendKeys on X.       
915         
916         * X11Keyboard: Implement helper method to lookup a linux keycode
917         given the virtual keycode. Added table of keycode-2-virtualkey
918         values to support this.
919
920 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
921
922         * ListView.cs: Add support for SelectedIndexCollection
923         and SelectedItemCollection 2.0 methods. Implement support
924         for ImageKey too.
925         * ListViewItem.cs: Add support for ListViewSubItemCollection
926         2.0 methods. Also, fix an incorrect behavior of AddRange method
927         (it shouldn't call Clear).
928         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
929
930 2006-12-19  Jackson Harper  <jackson@ximian.com>
931
932         * RichTextBox.cs: 
933         * TextBoxBase.cs: New args for FormatText
934         * TextControl.cs: Rewrote the main drawing method, this version
935         feels a little easier to understand and debug to me.  Hopefully it
936         does to others also
937         - Fix FormatText to OR in the new formating values.  Added
938         FormatSpecified param, basically this works in the same way as
939         BoundsSpecified in Control.
940         - Set the caret properties when the caret is positioned.
941         - When wrapping text make sure that we calculate the width of the
942         last character
943         - when calculating alignments we might have wrapped down to the
944         next line, so don't search for an individual tag, search for the
945         end of the line
946         - We need to invalidate the selection area when we replace the
947         selection.
948         
949 2006-12-19  Daniel Nauck  <dna@mono-project.de>
950
951         * Application.cs: add Restart () 2.0 support
952
953 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
954
955         * MenuItem.cs: Invalidate menu item rectangle after change Enable
956         property. Fixes #80268.
957         
958 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
959
960         * MenuAPI.cs: Dont trigger select event when closes top menu
961         item. Fixes #80270.
962
963 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
964
965         * MenuAPI.cs: When you click on menuitem only trigger onselect
966         event for top menu itens. Fixes #80271.
967         
968 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
969
970         * MdiWindowManager.cs: Make IconicBounds depend on
971         the bottom of MdiClient, not the top (fixes #80267)
972         
973 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
974
975         * MdiClient.cs: Added missing 2.0 attribute
976
977 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
978
979         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
980         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
981
982 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
983
984         * MenuAPI.cs: Fix click when menuitem is not popup,
985         this regression was caused by last commit (#80272).
986
987 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
988
989         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
990         fire click event or close menu. Fixes #80272.
991
992 2006-12-17  Daniel Nauck  <dna@mono-project.de>
993
994         * ListViewHitTestInfo.cs: add
995
996 2006-12-17  Daniel Nauck  <dna@mono-project.de>
997
998         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
999         * FlatButtonAppearance.cs: add
1000         * DockingAttribute.cs: add
1001
1002 2006-12-17  Chris Toshok  <toshok@ximian.com>
1003
1004         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
1005         and rebind our columns when it does - this way, if you make
1006         changes to the DataTable (or set the Table attribute on a DataView
1007         after setting it as the DataGrid's DataSource, the changes are
1008         made visible.)  Fixes bug #80107.
1009
1010 2006-12-17  Daniel Nauck  <dna@mono-project.de>
1011
1012         * ListViewGroup.cs: add internal Location property for layouting.
1013         * Theme.cs: add abstract ListViewGroupHeight function.
1014         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
1015
1016 2006-12-16  Andreia Gaita  <avidigal@novell.com>
1017
1018         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
1019         Added reset of selected index to 0 when adding first tab page.
1020         Fixes #80264
1021         
1022         * NumericUpDown.cs: Fix NET_2_0 check
1023
1024 2006-12-16  Daniel Nauck  <dna@mono-project.de>
1025
1026         * ListViewGroup.cs: fixed DefaultValueAttribute value
1027
1028 2006-12-16  Daniel Nauck  <dna@mono-project.de>
1029
1030         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
1031
1032 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1033
1034         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
1035         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
1036         ScrollableControl.cs: Add a handful of methods that are
1037         overwritten in 2.0 
1038
1039 2006-12-15  Chris Toshok  <toshok@ximian.com>
1040
1041         * XplatUIWin32.cs: initial implementation of the Reversible
1042         drawing functions.  there are some problems.  DrawReversibleFrame
1043         doesn't seem to work at all for Dashed FrameStyle, and in the
1044         Thick case there are drawing errors at the corners (we probably
1045         need to bind Rectangle instead of doing moveto/lineto's.)
1046
1047 2006-12-16  Andreia Gaita  <avidigal@novell.com>
1048         
1049         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
1050         to send blocks of key messages. Send accumulates keys to send with Flush, 
1051         while SendWait sends all keys immediately.
1052                 
1053         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
1054         XplatUIX11.cs,  XplatUIX11-new.cs:
1055         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
1056         to Win32 SendInput.
1057         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
1058         
1059         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
1060         testing for ms.net on this class is very tricky, as the tests run too fast 
1061         to allow the hook to release, essentially freezing the keyboard and the 
1062         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
1063         category :p
1064
1065 2006-12-16  Daniel Nauck  <dna@mono-project.de>
1066
1067         * Padding.cs: fixed serialization compability to MS ("_var" field names),
1068                         added missing attributes.
1069  
1070 2006-12-15  Daniel Nauck  <dna@mono-project.de>
1071
1072         * ListViewGroup.cs: Added missing attributes.
1073         * ListViewGroupCollection.cs: Added missing attributes.
1074
1075 2006-12-15  Daniel Nauck  <dna@mono-project.de>
1076
1077         * ListViewItem.cs: fixed ListViewSubItem text property.
1078
1079 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1080         
1081         * Control.cs: Added missing 2.0 attributes
1082         
1083 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1084         
1085         * MdiClient.cs: Added missing 2.0 attribute.
1086         * MonthCalendar.cs: Added some missing 2.0 attributes 
1087         and properties.
1088         
1089 2006-12-15  Daniel Nauck  <dna@mono-project.de>
1090
1091         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
1092
1093 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
1094
1095         * MainMenu.cs: Add the new 2.0 constructor to help out people
1096         using the MainMenu in VS2005.
1097
1098 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1099         
1100         * MdiChildContext.cs: Removed it, no longer used.
1101         * MdiClient.cs: Added missing 2.0 attributes.
1102         
1103 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1104         
1105         * InternalWindowManager.cs: Fix a NullRef with previous 
1106         changes for toolwindows.
1107         
1108 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1109
1110         * Control.cs: 
1111         - Added AfterTopMostControl to allow for certain controls 
1112         to always stay on top when normal controls are brought to 
1113         front.
1114         
1115         * XplatUIWin32.cs: 
1116         - (DrawInversibleRectangle): Get window rectangle from Win32 
1117         in stead of from control, since Win32 doesn't calculate
1118         screen coords correctly from control's Location if it 
1119         have docked siblings.
1120         
1121         * MdiWindowManager.cs:
1122         - Correct the control menu popup location when clicked on
1123         the maximized form icon. (fixes #80223.1)
1124         - Don't show moving rectangle if mouse hasn't moved from
1125         the original clicked point.
1126         - Removed FormGotFocus handler (not used).
1127         - Calculate the control buttons location from the main
1128         window's size and not client size (fixes #79770).
1129         - Form is now closed when the form icon is double-clicked
1130         (fixes #79775). 
1131         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
1132         
1133         * InternalWindowManager.cs:
1134         - Moved some MDI-only methods to MdiWindowManager.
1135         - Removed unused properties and methods.
1136         - Unified method naming for methods handling wm messages.
1137         - Moved all message handling to seperate methods for
1138         each message.
1139         
1140         * ThemeWin32Classic.cs:
1141         - DrawManagedWindowDecorations now draws the title bar 
1142         with a gradient brush.
1143         - Add a CPDrawButtonInternal that allows us to specify
1144         light, normal and dark colors for the buttons (control 
1145         buttons for MDI children were drawn with the same light
1146         color as the background, therefore loosing the 3D effect).
1147         
1148         * SizeGrip.cs:
1149         - Add a CapturedControl property that is used to 
1150         determine the control to resize (defaults to parent). 
1151         Needed for MdiClient, since its SizeGrip's parent is
1152         MdiClient, but the control to resize is the main form.
1153         
1154         * MdiClient.cs:
1155         - Set SizeGrip's CapturedControl to the main form in order
1156         to resize the main form and not the MdiClient.
1157         - Override AfterTopMostControl to leave the scrollbars 
1158         always on top.
1159
1160 2006-12-15  Daniel Nauck  <dna@mono-project.de>
1161
1162         * ListView.cs: fixed ListViewItemCollection AddRange and
1163                         implemented ListViewItemCollection AddRange 2.0 support.
1164
1165 2006-12-15  Daniel Nauck  <dna@mono-project.de>
1166
1167         * ListViewGroup.cs: Add.
1168         * ListViewGroupCollection.cs: Add
1169         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
1170         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
1171                                 stub for ImageKey 2.0 support.
1172
1173 2006-12-14  Mike Kestner  <mkestner@novell.com>
1174
1175         * ListView.cs: add text padding to the autocalculation for columns
1176         of width -2.  Fixes #80207.
1177  
1178 2006-12-14  Mike Kestner  <mkestner@novell.com>
1179
1180         * ListView.cs: add some index guarding for partial row navigation 
1181         logic.  Fixes #80250.
1182
1183 2006-12-14  Mike Kestner  <mkestner@novell.com>
1184
1185         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
1186         are added or inserted to the collection.  Fixes #81099.
1187
1188 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
1189
1190         * MenuAPI.cs: Closes menu when right click out side of popup
1191         it fix problem in ContextMenu and MainMenu. Fixes #80252.
1192
1193 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1194
1195         * ListViewItem.cs: Fix dumb error.
1196
1197         * ListView.cs: Add Find and ContainsKey methods in 
1198         ListViewItemCollection, and also return true for IsReadOnly
1199         and IsFixedSize (changes for 2.0). 
1200
1201 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
1202
1203         * Control.cs: Allow Region to be set to null.
1204
1205 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1206
1207         * MdiWindowManager.cs: Remove unused (commented out) code.
1208         * Form.cs: When the MdiChild is maximized, the form needs 
1209         WM_NCMOUSELEAVE, so request it.
1210         * InternalWindowManager.cs: 
1211         - Added tooltips to control buttons.
1212         - Removed duplicated control button handling code.
1213         - Removed unused (commented out) code.
1214         
1215 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
1216
1217         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
1218         was used because we must set cursor without trigger ChangeCursor event
1219         and without change Cursor control property. Fixes #79963.
1220
1221 2006-12-12  Andreia Gaita  <avidigal@novell.com>
1222         
1223         * Control.cs: Check if Region setter value is null, and ignore
1224
1225 2006-12-12  Jackson Harper  <jackson@ximian.com>
1226
1227         * TextControl.cs: We were almost always drawing one more line then
1228         needed, since the GetLineByPixel will return the last line found
1229         at that pixel. In most cases though, we were invalidating up to
1230         the junction between two lines.
1231         - Improve debug code.
1232
1233 2006-12-12  Chris Toshok  <toshok@ximian.com>
1234
1235         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
1236         and FillReversibleRectangle.
1237
1238         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
1239         and FillReversibleRectangle.
1240
1241         * XplatUIWin32.cs: add stubs which do nothing for
1242         DrawReversibleFrame, DrawReversibleLine, and
1243         FillReversibleRectangle.
1244
1245         * XplatUIOSX.cs: add stubs which raise NIE for
1246         DrawReversibleFrame, DrawReversibleLine, and
1247         FillReversibleRectangle.
1248
1249         * XplatUIX11.cs: add working implementation for
1250         DrawReversibleFrame, DrawReversibleLine, and
1251         FillReversibleRectangle.
1252         
1253         * ControlPaint.cs: implement DrawReversibleFrame,
1254         DrawReversibleLine, and FillReversibleRectangle, by calling into
1255         the appropriate XplatUI method.
1256
1257 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1258
1259         * Form.cs: Make MdiClient have the focus even if it's
1260         not selectable, since it should receive WM_KEY* and WM_MOUSE 
1261         messages. Fixes #79907.
1262         
1263 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1264
1265         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
1266         queried after the window is created.
1267         
1268         * XplatUIX11.cs: Added SendParentNotify to implement 
1269         WM_PARENTNOTIFY logic. Fixes #79965.
1270         
1271         * Control.cs: Added MakeParam.
1272         
1273 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1274
1275         * MdiClient.cs: Resume Layout before setting window
1276         states (fixes #80201).
1277
1278 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1279
1280         * MenuAPI.cs: Deselect a menu item after performing
1281         the click (fixes #80197).
1282
1283 2006-12-11  Jackson Harper  <jackson@ximian.com>
1284
1285         * TextBoxBase.cs: We need to cap this value, since Maximum -
1286         ViewPortHeight can be less than zero.
1287         - Only do selection with the left mouse button.
1288         * TextBox.cs: Don't tell the world that we have a context menu.
1289         * Control.cs: New method so that we can control whether or not the
1290         context menu is visible outside MWF.
1291
1292 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
1293
1294         * ToolBarButton.cs: Fix text positon. 
1295
1296 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1297
1298         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
1299
1300         * Control.cs (DoubleBuffered): Add implementation.
1301
1302         * Application.cs (OpenForms): Add.
1303
1304 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
1305
1306         * Form.cs: Use opacity instead of Opactiy to determine if we need
1307         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
1308
1309 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
1310
1311         * Control.cs: Fix NRE if Control.Site was set to null.
1312
1313 2006-12-11  Chris Toshok  <toshok@ximian.com>
1314
1315         * Control.cs: ControlCollection.Remove should return if the arg is
1316         null, and ControlCollection.SetChildIndex should raise a ANE.
1317
1318 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
1319
1320         * Control.cs: Verify value set for Dock property. Code formatting
1321         updates.
1322
1323 2006-12-11  Jackson Harper  <jackson@ximian.com>
1324
1325         * TextControl.cs: Draw the caret and the selection when a flag is
1326         set on the owner.
1327         * TextBoxBase.cs: We want to draw the caret and the selection for
1328         TextBox but not for TextBoxBase.
1329         - If the window is resized and scrolling is no longer needed (the
1330         whole doc is visible) set the scroll position to zero.
1331         - The default SelectWord (the one TextBox uses) should move the
1332         caret to the end of the word.
1333         - SelectAll moves the caret to the end of the selection.
1334         * TextBox.cs: We don't selectall on focus, we just do it when the
1335         control is created.
1336         
1337 2006-12-11  Mike Kestner  <mkestner@novell.com>
1338
1339         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
1340
1341 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1342
1343         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
1344         2.0 support.
1345         * ListViewItem.cs: Add Name 2.0 property.
1346
1347 2006-12-11  Andreia Gaita  <avidigal@novell.com>
1348
1349         * TabControl.cs: Set visibility on selected or default tab 
1350         when tabcontrol handle is created, so that it's contents
1351         actually show up (duh). Fixes #80193
1352         Don't redraw the control if there is no handle created, as
1353         the selected index might be completely invalid. Added some tests
1354         to check for this.
1355
1356 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
1357
1358         * ToolBar.cs: Uses maximun width and height of all buttons as 
1359         button rectangle when ButtonSize specified, it looks strange but
1360         is what happens in Win32. Fixes #80189.
1361
1362 2006-12-11  Jackson Harper  <jackson@ximian.com>
1363
1364         * TextControl.cs: Need to track undo levels ourself, since
1365         compound actions will mess them up.
1366
1367 2006-12-10  Andreia Gaita  <avidigal@novell.com>
1368
1369         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
1370         SelectedIndex value is changed (even if it's not valid).
1371         Reset SelectedIndex to 0 when the handle is created and if
1372         the current index is invalid.
1373         Fixes SelectdeIndex unit tests and #80128
1374
1375 2006-12-08  Chris Toshok  <toshok@ximian.com>
1376
1377         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
1378         calls EndEdit, it needs to be called before we set current_cell to
1379         its new value.  Otherwise, we end up committing the value in the
1380         textbox to the new cell as well.  Fixes bug #80160.
1381
1382 2006-12-08  Chris Toshok  <toshok@ximian.com>
1383
1384         * Form.cs (set_CancelButton): if the button's DialogResult is
1385         None, set it to Cancel.  Fixes bug 80180.
1386
1387 2006-12-08  Jackson Harper  <jackson@ximian.com>
1388
1389         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
1390         to watch ourselves when setting the canvas size and setting the
1391         scrollbar values.
1392
1393 2006-12-08  Chris Toshok  <toshok@ximian.com>
1394
1395         * DataGrid.cs: comment out the two MakeTransparent calls for the
1396         time being so people using trunk (and not 1.2.2) on windows can
1397         actually use the datagrid.  This deals with bug #80151.
1398
1399 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
1400
1401         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
1402         Graphics.DrawImage (image, int, int, int, int) overload instead
1403         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
1404         the dpi difference and was blurring images it drew.
1405         [Fixes bug #79960]
1406
1407 2006-12-08  Chris Toshok  <toshok@ximian.com>
1408
1409         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
1410         rowcnt is 0 (such as with an empty datasource), and make sure we
1411         initialize not_usedarea.Y to cells.Y, so we don't draw over the
1412         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
1413
1414 2006-12-08  Chris Toshok  <toshok@ximian.com>
1415
1416         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
1417         grid.
1418
1419 2006-12-08  Chris Toshok  <toshok@ximian.com>
1420
1421         [ Fixes bug #80167 ]
1422         
1423         * ThemeWin32Classic.cs: don't draw the image if the button's flat
1424         style is FlatStyle.System.
1425
1426         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
1427         ButtonBase.flat_style private, and switch uses of it to the public
1428         property.
1429         
1430 2006-12-08  Chris Toshok  <toshok@ximian.com>
1431
1432         [ Fixes bug #80121 ]
1433         
1434         * ThemeWin32Classic.cs: center the caption text in the datagrid
1435         when we draw it.
1436
1437         * DataGrid.cs: lessen the amount we add to the caption height from
1438         6 to 2.  6 was making it huge.
1439
1440 2006-12-08  Andreia Gaita  <avidigal@novell.com>
1441
1442         * UpDownBase: Handle MouseWheel call directly instead of capturing
1443         the inner textbox's OnMouseWheel. Fixes #80166
1444
1445 2006-12-08  Jackson Harper  <jackson@ximian.com>
1446
1447         * TextControl.cs: We need to invalidate the textbox when we empty
1448         it (how had this not been discovered before?)
1449
1450 2006-12-08  Jackson Harper  <jackson@ximian.com>
1451
1452         * TextBoxBase.cs: Reworked the mouse down code so I could get it
1453         to behave like MS, we now ignore the eventargs.Click and just
1454         track state ourself, which we were already doing anyways.
1455         - Constrain the double click handler to the double click size.
1456         
1457 2006-12-08  Chris Toshok  <toshok@ximian.com>
1458
1459         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
1460         direction if that scrollbar isn't shown.  fixes bug #80158.
1461
1462 2006-12-08  Andreia Gaita  <avidigal@novell.com>
1463
1464         * NumericUpDown.cs: Update value on getter. Fixes #79950
1465
1466 2006-12-08  Chris Toshok  <toshok@ximian.com>
1467
1468         * MenuItem.cs: add back in the event cloning code.  I didn't know
1469         how to do it in the face of the EventHandlerList work i'd done
1470         last week.  Fixes bug #80183.
1471
1472 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
1473
1474         * Control.cs: Add an invalidate to the BackgroundImage setter.
1475         [Fixes 80184]
1476
1477 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
1478
1479         * ToolStrip*: Add some small properties reported by MoMA, fix event
1480         firing and default properties based off of unit tests, and add some
1481         attributes based off of the class status page.
1482
1483 2006-12-07  Jackson Harper  <jackson@ximian.com>
1484
1485         * TextBoxBase.cs: Take HideSelection into account when determining
1486         whether or not to show the selection.
1487         * RichTextBox.cs: After inserting the RTF into the document move
1488         the cursor to the beginning of the document.
1489
1490 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
1491
1492         * Control.cs: Remove static ArrayList "controls" which maintained
1493         a reference to every control created.
1494         * Application.cs: Create a static FormCollection to maintain a reference
1495         to every form created.  Use it in places that formerly enumerated through
1496         the controls one looking for forms.
1497         * Form.cs: Add and remove self from above FormCollection.
1498
1499 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
1500
1501         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
1502           not libgdk (though it makes me wonder why I didn't have any
1503           problems)
1504
1505 2006-12-07  Chris Toshok  <toshok@ximian.com>
1506
1507         [ you had to know this was coming after that last commit...]
1508         
1509         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
1510         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
1511         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
1512         XCopyArea).
1513
1514 2006-12-07  Chris Toshok  <toshok@ximian.com>
1515
1516         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
1517         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
1518         all the behavior we need for double buffering.
1519
1520         * XplatUIDriver.cs: implement the 3 double buffer methods using a
1521         client side Bitmap, just like the old Control-based double buffer
1522         code did.  The methods are virtual, so each XplatUI driver
1523         subclass can replace the implementation to use a faster, platform
1524         specific approach.
1525
1526         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
1527         double buffer code, and clean things up a bit in the process.
1528
1529 2006-12-06  Chris Toshok  <toshok@ximian.com>
1530
1531         * Control.cs: reindent WndProc.
1532
1533 2006-12-06  Chris Toshok  <toshok@ximian.com>
1534
1535         [ I wanna be like BenM when I grow up ]
1536         
1537         * Hwnd.cs: create a single static Graphics object on the static
1538         Bitmap we create.  use this for our text measurements.
1539
1540         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
1541         This was causing us to allocate a backbuffer for every control,
1542         even when it wasn't flagged as double buffered.  Instead use the
1543         single graphics instance.  This might have implications for
1544         multithreaded applications.  If we run into problems we can switch
1545         to creating 1 Graphics per control, on the static Hwnd bitmap.
1546
1547         this change nets us a 7M savings in private dirty mappings when
1548         running FormsTest.exe.
1549
1550 2006-12-06  Chris Toshok  <toshok@ximian.com>
1551
1552         * ListView.cs: the BackgroundImage override is just to set
1553         attributes.  chain up to base.BackgroundImage.
1554
1555         * RichTextBox.cs: same.
1556
1557         * ToolBar.cs: same, but we need to also redraw the toolbar when it
1558         changes, so instead a handler for BackgroundImageChanged.
1559         
1560         * Control.cs: make background_image private.
1561
1562 2006-12-06  Chris Toshok  <toshok@ximian.com>
1563
1564         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
1565         sure we even need this assignment, but roll with it for now.
1566
1567         * Control.cs: make the cursor field private.
1568
1569 2006-12-06  Chris Toshok  <toshok@ximian.com>
1570
1571         * Form.cs: we don't need to explicitly set ImeMode to
1572         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
1573         behavior in the face of ImeMode.Inherit.
1574
1575         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
1576         change the ctor's assignment to use ImeMode instead of ime_mode.
1577
1578         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
1579         ImeModeInherit.  Only check for the parent's imemode (and return
1580         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
1581         This fixes the button unit test, which sets both ImeMode and
1582         DefaultImeMode to ImeMode.Disable.
1583
1584         also make the ime_mode field private.
1585
1586 2006-12-06  Chris Toshok  <toshok@ximian.com>
1587
1588         * Control.cs: make control_style private.
1589
1590         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
1591         setting the styles to true, then setting them to false instead of
1592         reverting to their previous values.
1593
1594         also, call SetStyle on the scrollbars instead of using
1595         control_style directly.
1596
1597 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
1598
1599         * FormCollection.cs: Implement. [2.0]
1600
1601 2006-12-06  Chris Toshok  <toshok@ximian.com>
1602
1603         * Control.cs: make tab_stop private.
1604
1605         * Label.cs: set TabStop, not tab_stop.  reformat some event
1606         add/remove methods to make them more compact.
1607
1608 2006-12-06  Chris Toshok  <toshok@ximian.com>
1609
1610         * RadioButton.cs: fix TabStop handling.
1611
1612 2006-12-06  Chris Toshok  <toshok@ximian.com>
1613
1614         * TextBox.cs: remove the explicit assignments to has_focus.
1615         Control does that.
1616
1617         * ButtonBase.cs: remove the assignment to has_focus.  Control will
1618         manage that.
1619         
1620 2006-12-06  Chris Toshok  <toshok@ximian.com>
1621
1622         * ButtonBase.cs: remove all uses of is_enabled from this code.
1623         it's always true when any of the code containing the checks is
1624         executed.
1625
1626 2006-12-06  Chris Toshok  <toshok@ximian.com>
1627
1628         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
1629         with different semantics (some are present in both 1.1 and 2.0
1630         profiles) so that we match MS's behavior in our unit tests.
1631
1632 2006-12-06  Jackson Harper  <jackson@ximian.com>
1633
1634         * TextControl.cs: Make this operation undoable.
1635         * TextBoxBase.cs: Factor the border width into the preferred
1636         height.
1637         - implement Modified as per the spec.
1638
1639 2006-12-06  Chris Toshok  <toshok@ximian.com>
1640
1641         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
1642
1643 2006-12-06  Chris Toshok  <toshok@ximian.com>
1644
1645         * Control.cs: make right_to_left and context_menu fields private.
1646
1647 2006-12-06  Chris Toshok  <toshok@ximian.com>
1648
1649         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
1650         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
1651         Control.child_controls private.  switch all uses over to
1652         Control.Controls.
1653
1654 2006-12-06  Chris Toshok  <toshok@ximian.com>
1655
1656         * System.Windows.Forms/GroupBox.cs,
1657         System.Windows.Forms/AccessibleObject.cs,
1658         System.Windows.Forms/ErrorProvider.cs,
1659         System.Windows.Forms/Control.cs,
1660         System.Windows.Forms/UpDownBase.cs,
1661         System.Windows.Forms/ScrollBar.cs,
1662         System.Windows.Forms/DateTimePicker.cs,
1663         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
1664         System.Windows.Forms/ToolTip.cs,
1665         System.Windows.Forms/RadioButton.cs,
1666         System.Windows.Forms/LinkLabel.cs,
1667         System.Windows.Forms/Splitter.cs,
1668         System.Windows.Forms/TextBoxBase.cs,
1669         System.Windows.Forms/ToolStripTextBox.cs,
1670         System.Windows.Forms/ContainerControl.cs,
1671         System.Windows.Forms/ThemeWin32Classic.cs,
1672         System.Windows.Forms/SizeGrip.cs,
1673         System.Windows.Forms/ToolStripDropDown.cs,
1674         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
1675         private.  switch all uses over to Control.Parent.
1676
1677 2006-12-06  Chris Toshok  <toshok@ximian.com>
1678
1679         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
1680         Control does this before calling emitting these events.
1681
1682         * TabControl.cs: same.
1683
1684         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
1685         Control.client_rect.
1686
1687         * ButtonBase.cs: use the ClientSize property instead of the
1688         client_size field.
1689
1690         * ScrollableControl.cs: same.
1691
1692         * Control.cs: another pass at making properties private.  also,
1693         move the initialization of tab_stop to the ctor.
1694
1695 2006-12-05  Andreia Gaita <avidigal@novell.com>
1696
1697         * TabControl.cs: Let the selected index be set freely if the 
1698         control handle is not yet created.
1699
1700 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
1701
1702         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
1703         internal until I can rewrite DefaultLayout.
1704         * ToolStrip.cs: Fix build error and some general cleaning.
1705         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
1706         Fix build errors caused by making some of Control's fields private.
1707
1708 2006-12-05  Jackson Harper  <jackson@ximian.com>
1709
1710         * TextControl.cs: Redo Insert a little so that it use IndexOf
1711         instead of Split, this prevents it from messing up on things like
1712         \n\n\n. Also more effecient since the split array doesn't need to
1713         be created.
1714         * TextBoxBase.cs: AppendText doesnt handle multiline and non
1715         multiline text differently, this is the first of many fixes that
1716         will make multiline/non-multiline the same thing as far as the
1717         TextBoxBase is concerned.
1718         - Don't split the text and insert lines, this can lose some line
1719         endings (like is the last line a soft or hard break). Instead use
1720         the new Insert.
1721         - Fix an off by one when combining all the lines in the Text
1722         getter.
1723         - Remove separate multiline handling from the Text getter/setter.
1724
1725 2006-12-05  Chris Toshok  <toshok@ximian.com>
1726
1727         * ButtonBase.cs: a few changes:
1728
1729         - don't reinitialize internal Control fields in the ctor when they
1730         have the same values as Control sets them.
1731
1732         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
1733         this before calling those methods.
1734
1735         - we don't need to call Refresh for anything.  use Invalidate
1736         instead.
1737
1738         - OnEnabledChanged doesn't need to redraw at all - Control.cs
1739         calls Refresh in its OnEnabledChanged.
1740         
1741         - several of the events we were registered for in the ctor to
1742         redraw ourselves already include calls to Invalidate in the
1743         property setters that raise the events.  remove the extra
1744         invalidation.
1745
1746         - reformat a switch statement that was 83274658 columns wide.
1747         
1748 2006-12-05  Mike Kestner  <mkestner@novell.com>
1749
1750         * ComboBox.cs: fix a unit test regression from a TextBox
1751         SelectionLength return of -1 when there's no selection.  
1752
1753 2006-12-05  Chris Toshok  <toshok@ximian.com>
1754
1755         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
1756         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
1757         cleaning up some of the internal Control fields being used by
1758         subclasses.
1759
1760 2006-12-05  Mike Kestner  <mkestner@novell.com>
1761
1762         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
1763         listbox after AddImplicit calls since it defaults to hidden. Add a 
1764         hack to preserve requested heights across DropDownStyle changes.
1765
1766 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
1767
1768         * PropertyGrid.cs: Hide FindFirstItem method from public API.
1769
1770 2006-12-05  Chris Toshok  <toshok@ximian.com>
1771
1772         * DataGridView.cs: fix compiler warnings.
1773
1774         * PrintControllerWithStatusDialog.cs: same.
1775
1776         * ToolBar.cs: same.
1777
1778         * FolderBrowserDialog.cs: same.
1779
1780         * Splitter.cs: same.
1781
1782         * DataGridViewComboBoxCell.cs: same.
1783
1784         * XplatUIWin32.cs: same.
1785
1786         * PictureBox.cs: same.
1787
1788         * Win32DnD.cs: same.
1789
1790         * PageSetupDialog.cs: same.
1791
1792         * FileDialog.cs: same.
1793
1794         * PrintDialog.cs: same.
1795
1796         * DataGridTextBoxColumn.cs: same.
1797
1798         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
1799
1800 2006-12-05  Chris Toshok  <toshok@ximian.com>
1801
1802         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
1803         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
1804         System.ComponentModel.EventHandlerList work.
1805
1806 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
1807
1808         * DrawTreeNodeEventArgs.cs: Added.
1809
1810 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1811         
1812         * InternalWindowManager.cs: Remove an unused field.
1813         
1814 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1815
1816         * InternalWindowManager.cs:
1817         - Save the point where the title bar is clicked.
1818         
1819         * MdiWindowManager.cs:
1820         - Only allow moving of the window as long as the 
1821         clicked point on the title bar does not get out of
1822         MdiClient's rectangle. Fixes #79982.
1823         
1824         * MdiClient.cs:
1825         - Added Horizontal/VerticalScrollbarVisible.
1826         - Simplified the scrollbar sizing algorithm.
1827         - Cache the difference in scrolled value in
1828         H/VBarValueChanged and move the calculation out
1829         of the for loop.
1830
1831 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1832
1833         * Control.cs: Make the Console.WriteLine in WndProc 
1834         write more info.
1835
1836 2006-12-05  Chris Toshok  <toshok@ximian.com>
1837
1838         * ToolStripManager.cs, ToolStripButton.cs,
1839         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
1840         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
1841         ToolStripSplitButton.cs, ToolStripSeparator.cs,
1842         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
1843         ToolStripProgressBar.cs, ToolStripContainer.cs,
1844         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
1845         to using System.ComponentModel.EventHandlerList.
1846
1847 2006-12-04  Chris Toshok  <toshok@ximian.com>
1848
1849         * LinkLabel.cs: fix up compiler warnings.
1850
1851         * TableLayoutSettings.cs: same.
1852
1853         * TreeView.cs: same.
1854
1855         * ToolBar.cs: same.
1856
1857         * TabControl.cs: same.
1858
1859         * RichTextBox.cs: same.
1860
1861         * ListViewItem.cs: same.
1862
1863         * PropertyGrid.cs: same.
1864
1865         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
1866
1867         * ToolTip.cs same.
1868
1869         * TextRenderer.cs: fix up compiler warnings.
1870
1871         * Label.cs: same.
1872
1873         * Form.cs: corcompare fixes.
1874
1875         * PictureBox.cs: fix up compiler warnings.
1876
1877         * ImageListStreamer.cs: same.
1878
1879         * TrackBar.cs: corcompare fix.
1880
1881         * Control.cs: fix up compiler warnings.
1882
1883         * SplitterPanel.cs: same.
1884
1885         * NumericTextBox.cs: same.
1886
1887         * ImageList.cs: same.
1888
1889         * StatusStrip.cs: same.
1890
1891         * ProgressBar.cs: corcompare fix.
1892
1893         * ToolStripButton.cs: fix up compiler warnings.
1894
1895         * ToolStripStatusLabel.cs: same.
1896
1897         * ToolStripSplitButton.cs: same.
1898
1899         * ToolStripSeparator.cs: same.
1900
1901         * ToolStripProgressBar.cs: same.
1902
1903         * ToolStripDropDownMenu.cs: same
1904
1905         * ToolStripDropDown.cs: same.
1906
1907         * ToolStripDropDownButton.cs: same.
1908
1909         * ToolStrip.cs: same.
1910
1911         * ToolStripControlHost.cs: same.
1912
1913         * ToolStripContentPanel.cs: same.
1914
1915         * ToolStripDropDown.cs: same.
1916
1917         * ToolStripContainer.cs: same.
1918
1919         * ToolStripPanel.cs: same, and add "new" where we need it to work
1920         with the new ArrangedElementCollection.
1921
1922         * ToolStripItemCollection.cs: add "new" where we need it to work
1923         with the new ArrangedElementCollection.
1924
1925 2006-12-04  Andreia Gaita <avidigal@novell.com>
1926
1927         * TabControl.cs: Fix default tab selection to after TabControl
1928         gets focus and not before. Fixes #80128
1929
1930 2006-12-04  Chris Toshok  <toshok@ximian.com>
1931
1932         * DataGridTableStyle.cs: remove the gross calling of
1933         datagrid.Refresh from here.  It's a broken idea and it doesn't
1934         work anyway.
1935
1936         * DataGrid.cs: instead, just register/unregister from the
1937         DataGridTableStyle events in CurrentTableStyle.  we play it
1938         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
1939         even though some would most likely not require it.  Fixes bug
1940         #80115 (and one portion of #80117 as a side effect).
1941
1942 2006-12-04  Chris Toshok  <toshok@ximian.com>
1943
1944         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
1945         so the textbox (if any) goes away.  Fixes bug #80117.
1946
1947 2006-12-04  Chris Toshok  <toshok@ximian.com>
1948
1949         * DataGridColumnStyle.cs: set the column's readonly property
1950         initially based on the property descriptor's IsReadOnly.  Fixes
1951         bug #80044.
1952
1953 2006-12-04  Chris Toshok  <toshok@ximian.com>
1954
1955         * ComboBox.cs: wrap the dropdown style changing work in
1956         SuspendLayout/ResumeLayout.  Fixes bug #79968.
1957
1958 2006-12-04  Jackson Harper  <jackson@ximian.com>
1959
1960         * TextBoxBase.cs: Fix off by one, since these are one-based.
1961         * TextBox.cs: Select all the text when we get focus.  The TextBox
1962         does this but the RTB does not.
1963
1964 2006-12-04  Chris Toshok  <toshok@ximian.com>
1965
1966         * DataGridTextBoxColumn.cs: remove some spew.
1967
1968         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
1969         but some part of me is saying "it shouldn't be here.."  At any
1970         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
1971         setting the value.
1972
1973 2006-12-04  Chris Toshok  <toshok@ximian.com>
1974
1975         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
1976         to reassign the propertydescriptor.
1977
1978 2006-12-04  Jackson Harper  <jackson@ximian.com>
1979
1980         * TextBoxBase.cs:
1981         * TextControl.cs: Remove some unused variables.  Maybe this will
1982         patch things up between mike and I.
1983         - don't split lines less then one char wide, if the viewport is
1984         that small text won't be visible anyways.
1985         
1986 2006-12-04  Jackson Harper  <jackson@ximian.com>
1987
1988         * TextBoxBase.cs: Default selection length is -1, need to do some
1989         more testing on windows to see when this is used for the property.
1990         - Redid the Lines [] property to that we properly remove soft line
1991         breaks
1992         - added support for preserving carriage returns
1993         -  CanUndo is not a variable like 'is undo enabled' it just returns
1994         true if there is undo operations available.
1995         - AppendText doesn't need to grab the last tag itself anymore,
1996         this happens automatically when we move the cursor.
1997         * TextControl.cs: Add CompoundActions to the undo class. This
1998         allows combining the other operations into one big option.  ie a
1999         paste will combine { delete old, insert new, move cursor }
2000         - Add InsertString undo operation
2001         - New method for deleting multiline text
2002         - Add carriage returns to lines. So we can preserve carriage
2003         returns when text is 'roundtripped'
2004
2005 2006-12-04  Chris Toshok  <toshok@ximian.com>
2006
2007         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
2008         minimum 0.  Fixes the scrollbar exception in bug #80136.
2009
2010 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2011
2012         * MdiClient.cs: 
2013         * MdiWindowManager: Removed unused fields and methods.
2014         
2015 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2016         
2017         * StatusBar.cs: Update all panels when a AutoSize=Contents
2018         panel needs updating.
2019         
2020         * StatusBarPanel.cs: Remove twidth and only use initialize.
2021         Fixes #80031.
2022                 
2023 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2024
2025         * Form.cs: When a form's MdiParent is set add it directly
2026         on top of the z-order in stead of relying on MdiClient's
2027         ActivateChild to do it. Fixes #80135.
2028         
2029         * MdiClient.cs: 
2030         - Remove original_order, mdi_child_list is already doing
2031         the same thing.
2032         - Create mdi_child_list on construction in
2033         stead of first use (avoids a few null checks).
2034
2035         * MenuItem.cs: Use an already existing list of mdi children
2036         to get the correct order of children and remove the other
2037         redundant list.
2038
2039 2006-12-04  Chris Toshok  <toshok@ximian.com>
2040
2041         * PropertyGridView.cs: cached_splitter_location is only used in
2042         !DOUBLEBUFFER code.
2043
2044         * PropertyGrid.cs: implement the ComComponentNameChanged event
2045         using Events, hoping that would fix the warning.  Looks like a
2046         compiler bug instead (#80144).
2047
2048         * PropertyManager.cs: remove unused method.
2049
2050 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
2051
2052         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
2053         include parentesis to fix expression evaluation. Fixes #79634.
2054
2055 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
2056         
2057         * MenuAPI.cs:
2058         - Changes to fix behavior in Menu control, some reported in #80097
2059         and other detected during behavior refactory like a select event
2060         problems.
2061         - Remove unneded "if's" conditions.
2062         - Created an internal to flag when popup is active in control, we need 
2063         it because in .NET you can have menu active but without popup active
2064         when you active menu using popup without visible items.
2065         - Mimic win32 behavior for Select and Popup events.  
2066         - Dont open popup menu when you dont have visible subitems.
2067         - Do nothing when click on disabled menu item.
2068         - Some small changes to follow the coding style guidelines.
2069         - Unselect menu only when another control gives focus. Fixes #80097.
2070         - Remove unused code.
2071         
2072         * MenuItem.cs: internal VisibleItems method to check if menu
2073         theres visible subitems, it will be usefull to fix some 
2074         behavior in Menu control.
2075         
2076 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
2077         
2078         * Timer.cs: Tag property for 2.0 profile.
2079         
2080 2006-12-01  Chris Toshok  <toshok@ximian.com>
2081
2082         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
2083         
2084         * Win32DnD.cs: comment out some unused fields.
2085
2086         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
2087         some unused properties/methods.
2088
2089         * XplatUIX11.cs: fix MousePosition so we override the base class's
2090         property instead of conflicting with it.
2091
2092         * PictureBox.cs: comment out some unused fields
2093
2094         * OSXStructs.cs: make some struct fields public.
2095
2096         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
2097         MousePosition so we override the base class's property instead of
2098         conflicting with it.
2099
2100         * X11Dnd.cs: comment out some unused fields
2101
2102         * X11DesktopColors.cs: fix some struct field visibility to quiet
2103         the compiler.
2104
2105         * X11Dnd.cs: remove some debug code.
2106
2107         * ThemeClearlooks.cs: comment out unused field.
2108
2109         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
2110
2111         * ThemeGtk.cs: comment out some unused pinvokes.
2112
2113         * Timer.cs: remove some unused fields.
2114
2115         * ThemeClearlooks.cs: comment out unused field.
2116
2117         * UpDownBase.cs: comment out unused field.
2118
2119         * DataObject.cs: comment out unused field.
2120
2121         * DataGridBoolColumn.cs: reomve unused field.
2122
2123         * DataGrid.cs: remove unused field.
2124
2125         * Cursor.cs: remove old ToBitmap code.
2126
2127         * ControlPaint.cs: remove unused method.
2128
2129         * ScrollBar.cs: remove unused fields.
2130
2131         * ComboBox.cs: remove unused field, and chain up to
2132         AccessibleObject ctor.
2133
2134         * ListBox.cs: remove unused field.
2135
2136         * ButtonBase.cs: wrap a couple fields in NET_2_0.
2137
2138         * GridEntry.cs: remove unused fields.
2139
2140         * Binding.cs: remove unused fields.
2141
2142         * AxHost.cs: remove unused method.
2143
2144         * ContainerControl.cs: remove unused field.
2145
2146         * ScrollableControl.cs: remove unused fields.
2147
2148 2006-12-01  Chris Toshok  <toshok@ximian.com>
2149
2150         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
2151         the Where/WhereString stuff.  it's easy enough to CWL
2152         Environment.StackTrace.
2153
2154         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
2155         unused private fields.
2156
2157 2006-12-01  Jackson Harper  <jackson@ximian.com>
2158
2159         * TextControl.cs: Do not update the view while inserting multiline
2160         text. If we update the view we might wrap lines, before entering
2161         the new lines, which causes the new line insertion calculations to
2162         be totally fubared.
2163         - Remove an old TODO
2164         - Make debug output a little nicer
2165         
2166 2006-12-01  Chris Toshok  <toshok@ximian.com>
2167
2168         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
2169
2170 2006-12-01  Chris Toshok  <toshok@ximian.com>
2171
2172         [ fix the majority of the CS0108 warnings we've been suppressing ]
2173         
2174         * TreeView.cs: mark BackgroundImageChanged as 'new'.
2175
2176         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
2177         to "LayoutToolBar" to quiet mcs.
2178         
2179         * TabControl.cs: mark our ControlCollection class as 'new'.
2180
2181         * TextBoxBase.cs: mark some events as 'new'.
2182
2183         * Splitter.cs: TabStop is 'new'.
2184
2185         * ControlBindingsCollection.cs: mark a few methods as new since
2186         they change the visibility from protected to public.
2187
2188         * RadioButton.cs: DoubleClick -> base class, and remove unused
2189         HaveDoubleClick.
2190
2191         * MonthCalendar.cs: ImeMode property -> base class, and mark many
2192         events as new.
2193
2194         * NumericUpDown.cs: TextChanged -> base class.
2195
2196         * CheckedListBox.cs: mark our ObjectCollection class as new to
2197         quiet mcs.
2198
2199         * FolderBrowserDialog.cs: make HelpRequest event new and have it
2200         muck with the base class.
2201
2202         * StatusBar.cs: fix some mcs warnings about Update being the same
2203         name as a base class method.
2204
2205         * RichTextBox.cs: mark some events as new, and make them do things
2206         to the base class impl.
2207
2208         * UserControl.cs: mark TextChanged as new, and have it manipulate
2209         base.TextChanged.
2210
2211         * UpDownBase.cs: mark some things new.
2212
2213         * CheckBox.cs: mark DoubleClick "new", and add some text about
2214         what we need to look at.
2215
2216         * Panel.cs: make the events "new", and manipulate the base
2217         version.  these are just here for attributes.
2218
2219         * AccessibleObject.cs: make owner private.
2220
2221         * Control.cs: deal with AccessibleObject.owner being private.
2222         cache our own copy if we need it.
2223
2224         * Button.cs: add "new" to the DoubleClickEvent.
2225
2226         * ListBox.cs: no need to track our own has_focus here.  let
2227         Control.has_focus do it for us.  Also some other work to clear up
2228         warnings about not overriding base class methods of the same name.
2229         
2230         * ComboBox.cs: clear up some warnings about not override base
2231         class methods of the same name.
2232
2233 2006-12-01  Chris Toshok  <toshok@ximian.com>
2234
2235         * Form.cs: flag a few things as "new" to quiet some of the mcs
2236         warnings.
2237
2238         * AxHost.cs: same.
2239
2240         * PrintPreviewDialog.cs: same.
2241
2242         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
2243         now DGV isn't so horrible on the class status page.  also, move
2244         all events to using System.ComponentModel.EventHandlerList.  my
2245         wrists hurt.
2246
2247 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2248
2249         * MdiWindowManager.cs:
2250         - Set form to active mdi child if shown,
2251         and update the active mdi child to the next 
2252         remaining child in the z-order if the form is hidden.
2253
2254         * Form.cs: 
2255         - Track if the form has been visible and if its 
2256         visibility is beeing changed, so that the MdiClient
2257         can properly decide the ActiveMdiChild. The MdiClient 
2258         cannot track this since the form can change visibility 
2259         before MdiClient is created.
2260
2261         * MdiClient.cs:
2262         - Don't activate anything of the parent form is changing
2263         its visibility.
2264         - Rework ActiveMdiChild to only return visible mdi 
2265         children and take into account several other corner 
2266         cases.
2267
2268 2006-12-01  Chris Toshok  <toshok@ximian.com>
2269
2270         * IBindableComponent.cs: new 2.0 interface.
2271
2272 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
2273
2274         * DataGrid.cs: Font for caption area is bold by default.
2275
2276 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
2277
2278         * Menu.cs: Tag property for 2.0.
2279         
2280 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
2281
2282         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
2283         
2284 2006-12-01  Chris Toshok  <toshok@ximian.com>
2285
2286         * TreeView.cs: doh, the Begin* events should be
2287         TreeViewCancelEventHandler.
2288
2289 2006-12-01  Chris Toshok  <toshok@ximian.com>
2290
2291         * Form.cs: Form.ControlCollection already stores off the
2292         form_owner field.  don't access the base class's internal "owner"
2293         field.
2294
2295         * Control.cs: make all the fields in Control.ControlCollection
2296         private.  there's no need for any internal fields here.
2297
2298 2006-12-01  Chris Toshok  <toshok@ximian.com>
2299
2300         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
2301         OnHandleCreated.  Fixes bug #80109.
2302
2303 2006-12-01  Chris Toshok  <toshok@ximian.com>
2304
2305         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
2306         SplitContainer.cs, Control.cs, StatusStrip.cs,
2307         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
2308         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
2309         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
2310         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
2311         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
2312         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
2313         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
2314         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
2315         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
2316         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
2317
2318         do most of the work to convert our code over to use
2319         System.ComponentModel.Component.Events for
2320         adding/removing/dispatching events.
2321
2322
2323 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
2324
2325         * DataGridView.cs: Fix an ArgumentNullException reported 
2326         twice today in IRC.
2327
2328 2006-11-30  Mike Kestner  <mkestner@novell.com>
2329
2330         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
2331         grabbed listbox.  Fixes #80036 and #80101.
2332
2333 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
2334
2335         * Message.cs: Changed ToString() to match MS.
2336         
2337 2006-11-30  Jackson Harper  <jackson@ximian.com>
2338
2339         * TextBoxBase.cs: You can still change the selected text on a read
2340         only textbox.
2341         * TextControl.cs: Lower magic number for wrap calculations. This
2342         lets text get closer to the right (far) edge.
2343
2344 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
2345
2346         * Control.cs: Tweak 2.0 layout properties.
2347         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
2348         * TextRenderer.cs: Add a new overload.
2349         * ToolStrip*: Huge amount of changes and new features.
2350
2351 2006-11-30  Mike Kestner  <mkestner@novell.com>
2352
2353         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
2354         scroll range correct.  Fixes #79994.
2355
2356 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
2357
2358         * MdiWindowManager.cs: Update main form's text when
2359         a form is closed. (fixes #80038)
2360         
2361 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
2362
2363         * ToolBar.cs:
2364         - Fix an regression in ButtonSize.
2365         - Get ImeMode default value change to "Disable".
2366         - Get ShowTooltips default value change to true, default value is 
2367         "false" but after make a test in .NET we get "true" result as default.
2368         
2369 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
2370
2371         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
2372
2373 2006-11-29  Chris Toshok  <toshok@ximian.com>
2374
2375         * XplatUIWin32.cs (GetWindowTransparency): check return value of
2376         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
2377         SetWindowTransparency hasn't been called.
2378
2379 2006-11-29  Chris Toshok  <toshok@ximian.com>
2380
2381         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
2382         if it's supported.
2383         (set_AllowTransparency): reorder things a little so that the
2384         WS_EX_LAYERED style is removed properly.
2385
2386 2006-11-29  Chris Toshok  <toshok@ximian.com>
2387
2388         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
2389         
2390         * Form.cs: only call the XplatUI transparency method (get/set) if
2391         SupportsTransparency says it's supported. Otherwise fallback to
2392         doing nothing (in the set case) or returning the instance field we
2393         cache (in the get case).
2394
2395         * XplatUIStructs.cs: add TransparencySupport flag enum.
2396         
2397         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
2398         change to SupportsTransparency.
2399
2400         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
2401         TransparencySupport.None from SupportsTransparency.
2402
2403         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
2404         TransparencySupport.Set from SupportsTransparency.
2405
2406         * XplatUIWin32.cs: implement GetWindowTransparency calling
2407         GetLayeredWindowAttributes, and implement SupportsTransparency by
2408         checking whether or not both
2409         GetWindowTransparency/SetWindowTransparency are available
2410         entrypoints.  We need to do this since SetWindowTransparency is
2411         available as of win2k, but GetWindowTransparency requires winxp.
2412         yay win32 api.
2413
2414         * XplatUI.cs: Add GetWindowTransparency, and change
2415         SupportsTransparency to allow for either/both Get/Set.
2416
2417 2006-11-29  Chris Toshok  <toshok@ximian.com>
2418
2419         * DataGrid.cs: keep from going into an infinite loop redrawing a
2420         datagrid that has no datasource.  Fixes bug #80033.
2421
2422 2006-11-29  Chris Toshok  <toshok@ximian.com>
2423
2424         * MenuItem.cs: fix the NRE when we assign text (and therefore call
2425         Invalidate) before the mainmenu has been assigned to a control.
2426
2427 2006-11-29  Chris Toshok  <toshok@ximian.com>
2428
2429         * DataGrid.cs: detect when we should be double the double click
2430         row/column autosize stuff, although that codepath has yet to be
2431         written.  part of the work for bug #79891.
2432
2433 2006-11-29  Chris Toshok  <toshok@ximian.com>
2434
2435         * Binding.cs (SetControl): fix unit test.
2436
2437 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2438
2439         * PageSetupDialog.cs: Validate the margins and set them in
2440         PageSettings. 
2441         * NumericTextBox.cs: New class to mimic the behavior of the
2442         textboxes used in the printing dialogs.
2443
2444 2006-11-29  Andreia Gaita  <avidigal@novell.com>
2445         
2446         * Form.cs: Revert previous change (remove call UpdateBounds
2447         from form constructor), because it messes with the handle creation
2448         order, and that one needs lots and lots of love.
2449         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
2450         for valid printer and throw InvalidPrinterException if document
2451         is set but printer not valid), adding a MonoTODO. Once 
2452         handle creation is done properly, we can put this back in.
2453
2454 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
2455
2456         * MenuItem.cs: Create a invalidate method for menu item, to be
2457         calling from set text, it make text changes to imadiate update
2458         on screen. Fixes #80013. 
2459         
2460 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
2461
2462         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
2463         fixes bug #80070 and some other problem on toolbar buttons
2464         layout.
2465
2466 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
2467
2468         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
2469         with dotted brush.      Fixes #79564
2470         
2471 2006-11-28  Andreia Gaita  <avidigal@novell.com>
2472
2473         * Form.cs: Removed call to UpdateBounds on Form
2474         constructor, it was causing a call to CreateHandle
2475         before it was supposed to.
2476         * PrintControllerWithStatusDialog: Applied patch
2477         by Chris Toshok to hide controller when there are
2478         no printers available.
2479         PrintDialog.cs: initialize printer settings to 
2480         null - correct DefaultValues test #5
2481         * PrintPreviewControl.cs: Move PrintController
2482         initialization to GeneratePreview
2483         * PrintPreviewDialog.cs: 
2484         - Remove Preview generation     from Document_set(). It is 
2485         called on OnPaint
2486         - Throw InvalidPrinterException on CreateHandle if
2487         a Document is set but there are no printers or 
2488         printer is not valid.
2489         * ThemeWin32Classic: don't paint PrintPreviewControl
2490         if there is nothing to paint    
2491
2492 2006-11-28  Miguel de Icaza  <miguel@novell.com>
2493
2494         * Form.cs: Add another popular method.
2495
2496         * TabPage.cs: ditto.
2497
2498 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2499
2500         * MenuItem.cs: Fixed a warning.
2501         * InternalWindowManager: Fixed a warning.
2502
2503 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2504
2505         * MenuItem.cs:
2506         - When cloning a menu also clone MdiList and clone the 
2507           window menu items properly (as the forms and menuitems
2508           are kept in an internal hashtable, these need updating 
2509           as well)
2510         - Rewrote the window menu code, menu items are added in the
2511           order the forms were added to their parent, and they are
2512           updated every time the window menu is shown (before the
2513           list was only generated once, in the current order of the
2514           forms, and would never be updated). A checkmark is shown
2515           next to the item corresponding to the active mdi child.
2516
2517 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2518
2519         * XplatUIStructs.cs: 
2520         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
2521         
2522         * XplatUIWin32.cs: 
2523         - Added TME_NONCLIENT to TMEFlags.
2524         - Handles WM_NCMOUSEMOVE in GetMessage to 
2525           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
2526
2527         * MdiWindowManager:
2528         - Now merges mdi child menu to parent menu when maximized.
2529         - Recalculate NC areas of both mdi child and mdi parent. 
2530           Fixes #79757 (4).
2531           on window state and size changes.Fixes #79844 (3).
2532         - Handle WM_NCCALCSIZE to properly calculate borders.
2533
2534         * Form.cs:
2535         - Add/remove to the mdi containers list of mdi children 
2536           in the order they are added.
2537         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
2538           to the maximized mdi child.
2539         
2540         * InternalWindowManager.cs:
2541         - Only execute a click on the control buttons on the mouse up,
2542           not on the mouse down. Show the state of the button 
2543           (was only showing Normal state, never Pressed state). The
2544           pressed button now follows the mouse (if you click the Close 
2545           button and move the mouse over the Maximize button, the 
2546           Maximize button will be shown as pressed). Since Win32 does
2547           not generate WM_NCLBUTTONUP if you release the button outside
2548           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
2549           it as a mouse up.
2550         
2551         * ThemeWin32Classic.cs:
2552         - Draw a missing border around mdi child forms. Fixes #79844 (2).
2553
2554         * MdiClient.cs:
2555         - Added a list of forms which contains the order the forms are
2556           added to the mdi parent.
2557         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
2558         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
2559         - If the active form changes set the scrollbars to the top
2560           of the Z order, otherwise the form could hide them.
2561         - Scrollbars are now sized according to ClientSize, not 
2562           to Size, and they take into account the other scrollbar
2563           to determine maximum.
2564         
2565 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
2566         
2567         * XplatUI.cs:
2568         * XplatUIDriver.cs:
2569         * XplatUIX11.cs:
2570         * XplatUIWin32.cs:
2571         * XplatUIOSX.cs:
2572         - Added RequestAdditionalWM_NCMessages for windows to 
2573           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
2574           Currently only implemented in XplatUIWin32.
2575
2576 2006-11-27  Chris Toshok  <toshok@ximian.com>
2577
2578         * Hwnd.cs: only add the hwnd to the windows hash in
2579         set_WholeWindow and set_ClientWindow if whole_window/client_window
2580         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
2581
2582 2006-11-27  Mike Kestner  <mkestner@novell.com>
2583
2584         * ComboBox.cs: remove redundant OnDropDown call.  It is called
2585         from the ComboListBox.ShowWindow code. Fixes #79969.
2586
2587 2006-11-27  Chris Toshok  <toshok@ximian.com>
2588
2589         * Hwnd.cs: remove the setters for ExposePending and
2590         NCExposePending - noone uses them.
2591
2592 2006-11-27  Jackson Harper  <jackson@ximian.com>
2593
2594         * TextControl.cs: new param for ReplaceSelection which determines
2595         whether we select the new selection, or set the cursor to the end
2596         of the new selection.
2597         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
2598         pasting, select the new text.
2599         * RichTextBox.cs: Use new param for ReplaceSelection.
2600
2601 2006-11-27  Jackson Harper  <jackson@ximian.com>
2602
2603         * TextBoxBase.cs: Set the selection to the caret after the caret
2604         is moved, otherwise they get out of sync.
2605
2606 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
2607
2608         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
2609         it fixes #80015
2610
2611 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
2612
2613         * ThemeWin32Classic.cs: 
2614         - Fix toolbar drop down arrow position.
2615         - Fix drop down appearance when ToolBar.Appearance is normal,
2616         it fixes #80018.
2617         
2618 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
2619
2620         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
2621         * Control.cs: Same.
2622         * UpDownBase.cs: Same.
2623         * ButtonBase.cs: Same.
2624         * ScrollBar.cs: Same.
2625         * TrackBar.cs: Same.
2626         * PictureBox.cs: Same.
2627         * UserControl.cs: Same.
2628         * Label.cs: Same.
2629         * ListControl.cs: Same.
2630         * TextBoxBase.cs: Same.
2631         * ListView.cs: Same.
2632         * RichTextBox.cs: Same.
2633         * TreeView.cs: Same.
2634
2635 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
2636
2637         * PrintDialog.cs:
2638         - Text label for where 
2639         - Text label comment was not shown
2640
2641 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
2642
2643         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
2644
2645 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2646
2647         * InternalWindowManager.cs: 
2648         - Handle WM_PARENTNOTIFY to activate the form
2649         if any child control is clicked.
2650         - The form is only sizable if not minimized.
2651
2652         * MdiWindowManager.cs:
2653         - Save the IconicBounds if the form is moved.
2654         - Rework SetWindowState, now the window bounds 
2655         are stored only if the old window state is Normal.
2656         
2657         * MdiClient.cs:
2658         - In SetWindowStates store the old window state if 
2659         the window is maximized and restore window state if
2660         the window looses focus.
2661         - Don't handle any scrollbar value changes if 
2662         initializing the scroll bars. Fixes #79771.
2663         - Reworked ArrangeIconicWindows. Current algorithm
2664         tests bounds agains all other minimized windows, if
2665         any intersections create new bounds (going left to 
2666         right, bottom to top) and then test again. When 
2667         successful the bounds are saved and never computed
2668         again. Fixes #79774.
2669
2670 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2671
2672         * InternalWindowManager.cs: Added HandleTitleBarUp.
2673
2674 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2675
2676         * NumericUpDown.cs: In .NET 1.1, user entered text is still
2677         hexadecimal in ParseUserEdit.
2678
2679         
2680 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
2681
2682         * MdiWindowManager.cs: 
2683         - Handle a click on the form's icon to show the 
2684         system menu (when maximized). Fixes #79775.
2685         - Change the existing click handler for the form's
2686         icon when not maximized to show on MouseUp.
2687         Fixes #79776.
2688
2689         * Form.cs: In OnResize only layout the mdi child's
2690         parent if it actually has a parent. Might not if
2691         the window is closing.
2692
2693
2694 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2695
2696         * MdiClient.cs: Ignore active MDI client for text of parent, if
2697         child has no text set.
2698
2699 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
2700
2701         * ToolBar.cs: Fixed ToString to match MS.
2702
2703 2006-11-22  Andreia Gaita  <avidigal@novell.com>
2704
2705         * NumericUpDown: 
2706         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
2707         update inner values on set. Fixes #79966.
2708         - Override OnLostFocus to update value on NET 2. Fixes #79950.
2709         - Fix hexadecimal parsing.
2710         
2711         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
2712         parent. Fixes #79957
2713
2714 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2715
2716         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
2717         the actual size has to be queried, since if height /
2718         width is negative Win32 changes it to 0. 
2719         Fixes #79999 on Windows.
2720         
2721         * XplatUIX11.cs: Set height / width to 0 if negative
2722         in SetWindowPos. Fixes #79999 on Linux.
2723         
2724 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
2725
2726         * ThemeWin32Classic.cs: Fix text redenring when button is
2727         pressed.
2728
2729 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
2730
2731         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
2732         and later navigate by mouse. Fixes #79528.
2733
2734 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
2735
2736         * ToolBar.cs: Set default value for TabStop to false in
2737         constructor, it fixes remaining behavior of bug #79863.
2738
2739 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2740
2741         * MdiWindowManager.cs:
2742         * InternalWindowManager.cs:
2743         - Moved a few methods specific to Mdi from 
2744         InternalWindowManager to MdiWindowManager.
2745         Fixes #79996.
2746         
2747 2006-11-21  Chris Toshok  <toshok@ximian.com>
2748
2749         * XplatUIOSX.cs: stub out InvalidateNC.
2750
2751         * XplatUIWin32.cs: implement InvalidateNC using the call I found
2752         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
2753
2754         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
2755
2756         * XplatUIDriver.cs: add InvalidateNC abstract method.
2757
2758         * XplatUI.cs: add InvalidateNC.
2759
2760 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
2761
2762         * ToolBar.cs: Invalidate complete button area when pressed status 
2763         was changed.
2764         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
2765         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
2766         by 1 when button is pressed.
2767
2768 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2769
2770         * ToolButton.cs: Invalidate middle of DropDown button when
2771         ToolBar theres DropDownArrows.
2772         * ThemeWin32Classic.cs: Change position of DropDown arrow and
2773         fix DropDown drawing operations.
2774
2775 2006-11-20  Chris Toshok  <toshok@ximian.com>
2776
2777         * NativeWindow.cs: fix the formatting of functions ('{' on the
2778         following line), and enable the thread exception dialog.
2779
2780         * Application.cs: remove the duplicate exception catching from
2781         here.
2782
2783 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2784
2785         * Toolbar.cs: Triggers button click event when click on icon
2786         of dropdown ToolBarButton. Fixes #79912.
2787         
2788 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2789
2790         * Theme.cs:
2791         * ThemeWin32Classic.cs:
2792         - Added a property WindowBorderFont to enable themeing
2793           of mdi child windows' Text.
2794           
2795 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2796
2797         * InternalWindowManager.cs:
2798         * Form.cs:
2799         * MdiClient.cs:
2800         * MdiWindowManager.cs: 
2801         - If mdi child is maximized, set mdi parent's
2802           text to "Parent - [Child]". Fixes #79770.
2803         - If there is any maximized mdi child windows, only the active 
2804           window (and any new windows) is maximized, the rest are normal.
2805         - On a WindowState change only save mdi child's window bounds 
2806           if the old window state was normal. Fixes #79774.
2807         - The scroll bars are now calculated on hopefully all
2808           necessary events. Fixed #79771 / #79844->6 / #79906.
2809         - MdiClient.SizeScrollBars() now takes into account docked 
2810           controls in the parent when calculating available space.
2811         - InternalWindowManager now always repaints the entire title
2812           area. Fixes #79844->1/4/5.
2813         - Added RequestNCRecalc on mdi child windowstate changes.
2814           Fixes #79772.
2815
2816 2006-11-20  Mike Kestner  <mkestner@novell.com>
2817
2818         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
2819         in the MouseUp handler of the listbox and move the return handling
2820         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
2821
2822 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
2823
2824         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
2825
2826 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
2827
2828         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
2829           working in 1.2.x anymore. So, updated.
2830
2831 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
2832
2833         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
2834         NumberGroupSeparator of current culture instead of assuming en-US.
2835         Fixed bug #79967.
2836
2837 2006-11-17  Mike Kestner  <mkestner@novell.com>
2838
2839         * Control.cs: Add the concept of implicit bounds setting so that
2840         dock/undock round trips preserve explicitly set size/locations.
2841         Fixes #79313.
2842
2843 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
2844
2845         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
2846           can't handle those filters. (Fixes bug #79961)
2847
2848 2006-11-17  Chris Toshok  <toshok@ximian.com>
2849
2850         [ fixes the exit/crashes associated with #79835.  it's clearly
2851         suboptimal though, we need to figure out a better way to solve
2852         this. ]
2853         
2854         * PrintPreviewControl.cs: deal with the new invalid printer
2855         exceptions.
2856
2857         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
2858         and return false (so CommonDialog.ShowDialog doesn't actually show
2859         the form.)
2860
2861         * PrintDialog.cs: enable/disable the Ok button depending on
2862         whether or not the printer is valid.
2863
2864         * CommonDialog.cs (ShowDialog): only actually show the form if
2865         RunDialog returns true.
2866
2867 2006-11-17  Jackson Harper  <jackson@ximian.com>
2868
2869         * TextControl.cs: When soft splitting a line, mark it as a soft
2870         split line. Also carry over the current line break to the next
2871         line.
2872
2873 2006-11-17  Chris Toshok  <toshok@ximian.com>
2874
2875         * XplatUIX11.cs: when scrolling a window with an invalid area, we
2876         only want to shift the part of the invalid area that overlaps the
2877         area we're scrolling.  we also don't want to clear the invalid
2878         area unless the invalid area was entirely contained within the
2879         scrolling area.
2880
2881 2006-11-16  Chris Toshok  <toshok@ximian.com>
2882
2883         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
2884         also make sure to free the memory returned by XGetWindowProperty
2885         in GetText().
2886
2887         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
2888
2889 2006-11-16  Chris Toshok  <toshok@ximian.com>
2890
2891         * XplatUI.cs: add a new super secret way to get at the totally
2892         unsupported X11 backend.
2893
2894 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
2895
2896         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
2897
2898 2006-11-16  Jackson Harper  <jackson@ximian.com>
2899
2900         * TreeView.cs: Allow more explicit setting of top node position
2901         for scrollbars. Slower algo, but more accurate.
2902         - CollapseAll should maintain the current top node.
2903         * TextBoxBase.cs: When positioning the caret, use the line, pos
2904         method, since the x, y method does not grab the correct tag, and
2905         the caret height never gets set correctly. (Maybe I should just do
2906         away with the caret having its own height, and always use the
2907         carets current tag for height).
2908
2909 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
2910
2911         [Fixes 79778, 79923]
2912
2913         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
2914         Parent to the FosterParent instead.
2915
2916 2006-11-16  Jackson Harper  <jackson@ximian.com>
2917
2918         * TreeView.cs: Need to recalc the topnode when we expand or
2919         collapse. The scrolling methods can't handle this on their own,
2920         since they use differences between the last scroll position, and
2921         those difference get completely messed up since we are expanding
2922         nodes.  This problem should probably be fixed in the scrolling
2923         methods, so they can figure out exactly where they are, but this
2924         will slow things down a little.
2925         * ThemeWin32Classic.cs: Special case for groupboxes with empty
2926         strings, makes nunit-gui look a lot nicer.
2927
2928 2006-11-16  Chris Toshok  <toshok@ximian.com>
2929
2930         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
2931         the broken multithreaded event handling we have in here.  File
2932         this entry under "Why we should move to the new X11 backend".
2933
2934         Any thread can make it into UpdateMessageQueue, which gets events
2935         from the X socket - some of which could belong to hwnds being
2936         managed by a different thread.  We can also have multiple threads
2937         in UpdateMessageQueue at the same time, with each one reading from
2938         the X socket.  This leads to many problems, with the following
2939         solutions:
2940
2941         We can't use hwnd.Queue.Enqueue anywhere in here and must use
2942         EnqueueLocked.
2943
2944         The MotionNotify compression we do can't work across threads
2945         (without locking the entire queue, perhaps) since we call
2946         hwnd.Queue.Peek, so we just punt and don't compress motion events
2947         unless the owning thread is the one which got the X event.
2948
2949         ConfigureNotify is another fun one, since it modifies the hwnd's
2950         bounds and then enqueues the event.  We add a lock to Hwnd which
2951         is held when setting configure_pending to true (and enqueuing the
2952         event).
2953
2954         There is a race wrt the wake socket.  we need to make sure that
2955         only 1 thread is waiting on that socket, or else a thread could
2956         sleep waiting for data that never comes.  It's difficult (but not
2957         impossible) to make happen, because it seems to require something
2958         like the following:
2959
2960             1. Thread 1 polls on wake_receive
2961         
2962             2. poll returns saying there's data to be read on
2963                wake_receive.
2964         
2965             3. Thread 2 polls on wake_receive and immediately returns
2966                saying there's data to be read.
2967
2968             4. Thread 2 reads the wakeup byte from wake_receive
2969
2970             5. Thread 1 attempts to read the wakeup byte from
2971                wake_receive.
2972
2973             6. Thread 2 exits (due to a form closing, perhaps).
2974
2975             7. Thread 1 blocks forever.
2976         
2977         Fun, eh?
2978
2979         Fixing the Expose handling isn't done yet, and the races inherent
2980         in that piece of code are responsible for the drawing mistakes you
2981         see when generating expose events in a MT app (like NPlot).  This
2982         one is the likely to be the hardest to bandaid, and it doesn't
2983         appear to cause anything but drawing problems.  The other issues
2984         caused apps to exit or hang.
2985
2986         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
2987         called from a different thread than the one that should be calling
2988         these functions.
2989
2990         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
2991
2992 2006-11-15  Chris Toshok  <toshok@ximian.com>
2993
2994         * Application.cs: null out the context's MainForm when we exit
2995         RunLoop.  Fixes a newly checked in unit test as well as the last
2996         ODE from bug #79933.
2997
2998 2006-11-15  Chris Toshok  <toshok@ximian.com>
2999
3000         * Form.cs (set_Owner): allow a null value so we can clear the
3001         form's owner.
3002         (Dispose): set all our owned_form's Owner properties to null, and
3003         clear the owned_forms collection.
3004         (WM_CLOSE): clean up this a little bit.. still not right though.
3005
3006         * ApplicationContext.cs: OnMainFormClosed should only call
3007         ExitThreadCore if the main form isn't recreating.  Fixes unit
3008         test.
3009
3010 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3011
3012         [Fixes 78346]
3013
3014         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
3015
3016 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3017
3018         [Fixes 79433]
3019
3020         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
3021         keep popup window types from stealing focus from the main form
3022         on Windows.
3023
3024         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
3025
3026         * MenuAPI.cs: Set above flag to true.
3027
3028 2006-11-15  Chris Toshok  <toshok@ximian.com>
3029
3030         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
3031         the button being released is not in wParam.
3032
3033 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3034
3035         * Form.cs: Add the released button to MouseEventArgs.Button
3036         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
3037         on Win32.
3038
3039 2006-11-15  Chris Toshok  <toshok@ximian.com>
3040
3041         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
3042         GetText().  untested because it's unused in our implementation.
3043         Control.Text always caches the text, even if
3044         ControlStyles.CacheText is not set.
3045
3046         fixes bug #79939.
3047
3048 2006-11-15  Chris Toshok  <toshok@ximian.com>
3049
3050         [ fixes #79933 ]
3051         
3052         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
3053         message.  no hiding, no disposing.
3054
3055         in the WM_CLOSE handler, hide the form if it's modal.
3056
3057 2006-11-15  Chris Toshok  <toshok@ximian.com>
3058
3059         * XplatUIX11.cs: use AddExpose instead of sending a message.
3060         fixes textbox border drawing.
3061
3062 2006-11-15  Chris Toshok  <toshok@ximian.com>
3063
3064         * PropertyGridView.cs: keep from crashing on mouse move/down when
3065         the property grid is empty.
3066
3067 2006-11-14  Jackson Harper  <jackson@ximian.com>
3068
3069         * TextControl.cs: Make PageUp and PageDown more like the MS
3070         versions.
3071         * TextBoxBase.cs: When we set the text property position the
3072         cursor at the beginning of the document.
3073
3074 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3075
3076         * Form.cs: if a mdi child's WindowState has changed
3077         before it's creation, it would display wrong control
3078         buttons.
3079         
3080 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
3081
3082         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
3083           (Fixes bug #79927)
3084
3085 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3086
3087         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
3088         the window gets to paint its borders even if the window is
3089         getting smaller.
3090         
3091         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
3092         otherwise the old control buttons would still be painted 
3093         if the window gets bigger.
3094         
3095         * PaintEventArgs.cs: add an internal method so that the clip 
3096         rectangle can be changed.
3097         
3098 2006-11-13  Chris Toshok  <toshok@ximian.com>
3099
3100         [ fixes bug #79745 ]
3101         
3102         * NotifyIcon.cs: lots of cleanup.
3103
3104         * X11Structs.cs: add an enum for XEMBED messages.
3105
3106         * XplatUIX11.cs: reindent one of the giant switch statements, it
3107         was taking up an additional tab stop, and this file is already way
3108         too wide for my laptop's screen.
3109
3110         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
3111         we get it, resize the hwnd to the WMNormalHints max_width/height.
3112
3113 2006-11-13  Jackson Harper  <jackson@ximian.com>
3114
3115         * TextBoxBase.cs: Compute the value changes for the mouse wheel
3116         teh simple way.
3117
3118 2006-11-13  Chris Toshok  <toshok@ximian.com>
3119
3120         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
3121         #79898.  force a reference to the Region to stick around so the
3122         unmanaged object isn't collected (rendering our handle in the MSG
3123         stale).
3124
3125 2006-11-13  Chris Toshok  <toshok@ximian.com>
3126
3127         * XplatUIX11.cs: fix #79917 for window managers which support
3128
3129         using XStoreName on the raw utf8, and we need to convert to
3130         COMPOUND_TEXT if it's non-latin1.
3131
3132 2006-11-13  Chris Toshok  <toshok@ximian.com>
3133
3134         * Form.cs (set_DialogResult): we need to set closing to false if
3135         we're setting our result to None.  fixes bug #79908.
3136
3137 2006-11-13  Jackson Harper  <jackson@ximian.com>
3138
3139         * TextControl.cs: When formatting text, compute the adjusted tag
3140         lengths correctly, using FindTag for the end tag instead of trying
3141         to figure it out outselves.
3142         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
3143         the item, ItemHeight doesn't work, because trees with large
3144         imagelists use those for their height
3145         * TreeView.cs: ActualItemHeight factors in the image height
3146         - compute left edge of checkboxes correctly
3147         - when expanding/collapsing move the bottom down one pixel, so we
3148         aren't moving part of the node
3149
3150 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3151
3152         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
3153         stack in PaintEventStart so that it won't get disposed by the gc
3154         before reaching PaintEventEnd.
3155
3156 2006-11-13  Jackson Harper  <jackson@ximian.com>
3157
3158         * TextBoxBase.cs: Don't select the word if we are on a line with
3159         no text.
3160         - We don't need to position the caret on mouse up, since the mouse
3161         move handler should be doing this
3162         - When double clicking a blank line, the caret is advanced to the
3163         next line.
3164
3165 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
3166
3167         * TreeNodeCollection.cs: Avoid duplicating indexer code.
3168
3169 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
3170
3171         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
3172         Fixes part of bug #79910.
3173
3174 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
3175
3176         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
3177           (bug #79903). Some minor string updates to match ms.
3178
3179 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
3180
3181         * FileDialog.cs: Don't add an extension if the filename
3182           already ends with that extension.
3183
3184 2006-11-10  Jackson Harper  <jackson@ximian.com>
3185
3186         * TreeView.cs: Use the currently highlighted node for the
3187         BeforeSelect event.
3188         * TextBoxBase.cs: There is no need to expand selection on
3189         MouseMove.
3190         - CanUndo means 'is there any undo operations', not 'is undo
3191         allowed on this textcontrol. Fixed ClearUndo unit test.
3192
3193 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
3194
3195         * Button.cs: only perform click when button is Selectable (so as 
3196         not to activate default buttons when they're disabled)
3197         
3198         * Control.cs: Rewrite of the SelectNextControl and related 
3199         methods. HandleClick now selects next control if the current one
3200         is being disabled.
3201         
3202         * Form.cs: OnActivated selects next active control only if Load 
3203         has already occurred. If Load hasn't run, there's no point in 
3204         selecting here, Load might change the state of controls.
3205         
3206         * FocusTest.cs: Tests marked as working again for these fixes
3207
3208 2006-11-10  Chris Toshok  <toshok@ximian.com>
3209
3210         * XplatUIX11.cs: a couple of fixes.
3211
3212         - use XInternAtoms with almost all the atoms we need to register,
3213         instead of many, many calls to XInternAtom.  should help a bit on
3214         startup time, at the expense of making the code look a little
3215         worse.
3216
3217         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
3218         isn't reparented (which seems to be a clue that we're running fon
3219         compiz) and they have an Owner form.  This fixes the tool windows
3220         in paint.net when running under compiz.
3221
3222         - when setting the opacity of a window, support both the case
3223         where the window has been reparented and also when it hasn't been.
3224         Since compiz/beryl doesn't seem to reparent windows, and these are
3225         the only window managers which support translucency, I'm not sure
3226         why we need the hwnd.reparented case at all.. but leave it in.
3227         now we get translucent windows in paint.net under compiz/beryl.
3228
3229 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
3230
3231         * FileDialog.cs: Always return the value for FilterIndex that
3232           was set. Internally convert it to values that make sense.
3233
3234 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
3235         
3236         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
3237
3238 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
3239
3240         * Toolbar.cs: Change default value of DropDownArrows to true, the 
3241         signature still using false to make it compatible with MS but the 
3242         initial value is true. Fixes #79855.
3243
3244 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
3245
3246         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
3247           only available on Linux.
3248
3249 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
3250
3251         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
3252         reduce number of calls to redraw method during toolbar creation.
3253
3254 2006-11-09  Mike Kestner  <mkestner@novell.com>
3255
3256         * ListView.cs : raise SelectedIndexChanged when an item is selected
3257         programmatically via the Item.Selected property.  Gert's nice 
3258         ListViewSelectedIndexChanged test fixture now runs clean.
3259
3260 2006-11-09  Mike Kestner  <mkestner@novell.com>
3261
3262         * ListView.cs : raise SelectedIndexChanged when a selected item is
3263         removed from the item collection using Remove or RemoveAt.
3264
3265 2006-11-09  Mike Kestner  <mkestner@novell.com>
3266
3267         * ListView.cs : raise SelectedIndexChanged once per selected item
3268         for compat with MS.  Fixes #79849+.
3269
3270 2006-11-09  Chris Toshok  <toshok@ximian.com>
3271
3272         * TabControl.cs: initialize row_count to 0, and set it to 1 when
3273         we need to (if we have any tab pages).  Fixes unit test.
3274
3275 2006-11-09  Chris Toshok  <toshok@ximian.com>
3276
3277         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
3278         width is 0, not 3.  Fixes a unit test.
3279
3280 2006-11-09  Mike Kestner  <mkestner@novell.com>
3281
3282         * ListView.cs : use Implicit scrollbars so that focus isn't 
3283         stolen from the listview when they are clicked. Fixes #79850.
3284
3285 2006-11-09  Chris Toshok  <toshok@ximian.com>
3286
3287         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
3288         have a root item.  Fixes #79879.
3289
3290 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
3291
3292         * FileDialog.cs:
3293           - Fix ToString ()
3294           - An ArgumentException is now thrown if a wrong filter
3295             is applied (matches ms). The previous filter doesn't change
3296             anymore if an exception is thrown.
3297           - Changing the FileName property also affects FileNames
3298         * ColorDialog.cs: The length of the CustomColors array is always
3299           16. It doesn't matter if we use a smaller array or null to update
3300           or change the custom colors property.
3301         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
3302           for RootFolder if we get a undefined value.
3303
3304 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3305
3306         * StatusBarPanel.cs: 
3307         - Width is set to MinWidth if Width is smaller than
3308         MinWidth. Fixes #79842.
3309         - MinWidth now always overrides Width (MSDN says MinWidth
3310         is set to Width when AutoSize = None, but they do not 
3311         behave like that).
3312         - Style has now the the correct default value.
3313         
3314 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3315  
3316         * TrackBar.cs: 
3317         - The control is completely invalidated on 
3318         Got/LostFocus to draw the focus rectangle correctly.
3319         - When AutoSize then height is always 45 (width for 
3320         vertical controls).
3321         
3322         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
3323         on the mouse when moved and it doesn't move when grabbed
3324         until the mouse moves as well. Also fixed some wrong 
3325         calculations when clicking on the thumb (control thought
3326         click was outside of thumb and didn't grab it).
3327         Fixes some of the issues in #79718.
3328
3329 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
3330
3331         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
3332
3333 2006-11-08  Chris Toshok  <toshok@ximian.com>
3334
3335         * PropertyGridView.cs: only call ToggleValue if the item is not
3336         readonly.
3337
3338 2006-11-08  Jackson Harper  <jackson@ximian.com>
3339
3340         * TextBoxBase.cs: The RichTextBox and textbox have very different
3341         word selection methods.  Implement the textbox's simple word
3342         selection here, and let the RichTextBox override and provide it's
3343         own.
3344         - Don't do extra selection on mouseup
3345         * RichTextBox.cs: Use the documents word selection algorithm, I
3346         think ideally, this function will be pulled into the
3347         RichTextBox.cs code someday.
3348
3349 2006-11-08  Chris Toshok  <toshok@ximian.com>
3350
3351         * RootGridEntry.cs: new class to represent GridItemType.Root.
3352
3353         * CategoryGridEntry.cs: reformat, and add boilerplate.
3354         
3355         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
3356         returns the UI parent anyway, and we need special handling to
3357         implement the GetTarget method in the face of it.  Also, implement
3358         Select().
3359
3360         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
3361         a root grid item, and use that instead of PropertyGrid.grid_items.
3362         Also, make use of TypeConverters (and add limitted support for
3363         ICustomTypeDescriptors) when initially populating the grid.
3364         Arrays now show up more or less properly.
3365
3366 2006-11-08  Chris Toshok  <toshok@ximian.com>
3367
3368         * Application.cs: set the modal dialog to non modal after we close
3369         it.  Fixes bug #79866.
3370
3371 2006-11-08  Jackson Harper  <jackson@ximian.com>
3372
3373         * TextControl.cs: When combining lines carry over the line end
3374         style from the end line.
3375         - Invalidate the selected area when setting it, if it is visible.
3376         * TextBoxBase.cs: Only rich text box can do full line selects.
3377         - Make sure to set the cursor position when there is a click,
3378         otherwise two clicks in separate areas could cause a large chunk
3379         to be selected.
3380
3381 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3382
3383         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
3384         Fixes #79863.
3385
3386 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3387
3388         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
3389         time. Remove tooltips when ToolButton click events.  Fixes #79856.
3390
3391 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3392
3393         * MenuAPI.cs: Ignore right click for menu actions and fixes
3394         menu border when clicked.  Fixes #79846.
3395
3396 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3397
3398         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
3399         MouseState after create wParam for message, this fixes mouse button 
3400         equal none in mouse up events.
3401         
3402 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
3403
3404         * Control.cs : Focus() now calls Select to set the Container's
3405         Active Control and to give it focus. To avoid infinite recursion
3406         (because ActiveControl also calls Focus at one point), a check 
3407         is made in Focus with the help of a new internal variable
3408         is_focusing.
3409
3410 2006-11-07  Mike Kestner  <mkestner@novell.com>
3411
3412         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
3413         if there's a selection.  Fixes #79849.
3414
3415 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
3416
3417         * PropertyGrid.cs: Avoid fixed height of help description label.
3418         Fixes part of bug #79829.
3419
3420 2006-11-07  Chris Toshok  <toshok@ximian.com>
3421
3422         * XplatUIX11.cs: fix #79790 again, by using the
3423         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
3424
3425 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3426
3427         * ToolBar.cs: Fix left click checking.
3428
3429 2006-11-07  Chris Toshok  <toshok@ximian.com>
3430
3431         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
3432
3433 2006-11-07  Chris Toshok  <toshok@ximian.com>
3434
3435         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
3436         PropertyManager unit tests.
3437
3438         * PropertyManager.cs: make property_name internal.
3439
3440 2006-11-07  Chris Toshok  <toshok@ximian.com>
3441
3442         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
3443         pass a unit test.  Also, don't set image_index to anything in
3444         response to setting the ImageList property.
3445
3446 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
3447
3448         * ToolBar.cs: Ignore click events when mouse button is not a
3449         left button, only accepts other button for dropdown menus.  
3450         Fixes #79854.
3451
3452 2006-11-07  Chris Toshok  <toshok@ximian.com>
3453
3454         * DataGrid.cs: make the back and parent row buttons a little less
3455         ugly.
3456
3457 2006-11-07  Jackson Harper  <jackson@ximian.com>
3458
3459         * TextBoxBase.cs: When converting to Text don't put line breaks in
3460         for soft line breaks.
3461         * TextControl.cs: There is an initial "fake" line in the document,
3462         this is now a soft break line, so that an extra line feed doesn't
3463         get added to the end of documents.
3464
3465 2006-11-07  Chris Toshok  <toshok@ximian.com>
3466
3467         [ fix bug #79778 ]
3468         
3469         * CurrencyManager.cs: if the list is readonly, don't bother
3470         checking if IBindingList.AllowNew is true.
3471
3472         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
3473         for non-DataRowView datasources..  or rather, make it not crash.
3474         (DataGridPaintRelationRow): make sure we limit the row painting to
3475         the area not covered by the row header, and make our cell width at
3476         least large enough to cover the relation area.  This allows grids
3477         that have relations but no rows to render correctly.
3478         (DataGridPaintRowContents): same type of changes here.
3479         (SetDataSource): move back to always calling
3480         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
3481         navigating back through relations.
3482         (HitTest): handle the case where we have no cells but have
3483         relations.  Right now we generate a hit in cell 0 of whatever the
3484         row is, not sure if this is strictly correct, but it works for our
3485         purposes.
3486         
3487         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
3488         bother doing anything.
3489
3490 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
3491
3492         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
3493         early version of StatusStrip.  Not responsible for eaten
3494         application or firstborn children.
3495
3496 2006-11-06  Chris Toshok  <toshok@ximian.com>
3497
3498         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
3499         call GetTabRect with a -1 index.  Fixes #79847.
3500
3501 2006-11-06  Jackson Harper  <jackson@ximian.com>
3502
3503         * TreeNodeCollection.cs: Update scrollbars after clearing.
3504
3505 2006-11-06  Chris Toshok  <toshok@ximian.com>
3506
3507         * NumericUpDown.cs: fix the ToString method for some unit test
3508         love.
3509
3510 2006-11-06  Chris Toshok  <toshok@ximian.com>
3511
3512         * PropertyGrid.cs:
3513         - set the initial SelectedGridItem if we can.
3514
3515         - Exclude non-mergable properties only if we're merging > 1
3516         object.  Merging 1 object isn't really merging, obviously.
3517
3518         - Handle PropertySort.NoSort just like Alphabetical, which is
3519         wrong of course, but at least gets things on the screen.
3520         
3521         * PropertyGridView.cs:
3522         - Add method "FindFirstItem" which finds the first property grid
3523         item, so we can select it by default.
3524
3525         - make use of GridEntry.CanResetValue.
3526
3527         - Don't call RedrawBelowItemOnExpansion here anymore, the
3528         individual GridEntry's will do that.
3529
3530         - Remove the ITypeDescriptorContextImpl internal class.
3531         
3532         * GridEntry.cs:
3533         - this class needs to implement ITypeDescriptorContext, as it's
3534         what MS's PropertyDescriptorGridEntry does, which means we can
3535         remove the ITypeDescriptorContextImpl internal class from
3536         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
3537
3538         - keep a reference to our PropertyGridView, and move the call to
3539         RedrawBelowItemOnExpansion here from PGV.  This means
3540         programmaticly setting Expanded actually does something visible.
3541
3542         - add a CanResetValue() function which takes into account our
3543         possibly multiple "selected_objects" in the merged case.  Shifting
3544         PropertyGridView to use this method fixes another unreported
3545         crasher found running the test for #79829.
3546
3547         - when Top or Bounds is updated, make sure the PropertyGridTextBox
3548         is updated to reflect this.
3549
3550         * CategoryGridEntry.cs: the ctor takes the PGV now.
3551         
3552 2006-11-06  Jackson Harper  <jackson@ximian.com>
3553
3554         * TextControl.cs: These are 1 based.
3555         * TextBoxBase.cs: When setting the selected text, don't change the
3556         selected text tags, this is done by ReplaceText, just position the
3557         cursor at the end of the new text.
3558
3559 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
3560
3561         * ListView.cs: Allow label edit only when, when LabelEdit is
3562           set to true.
3563
3564 2006-11-06  Jackson Harper  <jackson@ximian.com>
3565
3566         * TextControl.cs: If a suitable wrapping position isn't found,
3567         just wrap right in the middle of a word.
3568
3569 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
3570
3571         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
3572           bug #79820.
3573
3574 2006-11-06  Jackson Harper  <jackson@ximian.com>
3575
3576         * TreeView.cs: Can't use the VisibleCount property when setting
3577         scrollbar heights, because this doesn't take into account whether
3578         or not the horz scrollbar just came visible.
3579
3580 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
3581
3582         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
3583         activated.  Fixes #79369, #79832.
3584
3585 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
3586
3587         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
3588           had to remove support for links that point to a directory. FileInfo
3589           returns no usefull information (means, the directory they point to)
3590           for such links. Replaced some empty string ("") with String.Empty.
3591
3592 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
3593
3594         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
3595         NullReferenceException when attempting to remove node that is not in
3596         collection. Throw NullReferenceException when null is passed to 
3597         Remove. Allow first element of the collection to be removed. Fixes
3598         bug #79831.  In GetEnumerator ().Current return null if positioned 
3599         before the first element of the collection. In GetEnumerator ().Reset,
3600         position before first element of the collection.
3601
3602 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
3603
3604         * PropertyGrid.cs: To match MS, remove default title and description
3605         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
3606         buttons.
3607
3608 2006-11-04  Chris Toshok  <toshok@ximian.com>
3609
3610         * Theme.cs: add a Clamp method, just for kicks.
3611
3612         * ThemeWin32Classic.cs: clamp all color components to [0..255].
3613
3614 2006-11-04  Chris Toshok  <toshok@ximian.com>
3615
3616         * Form.cs: if the form isn't visible, Close() does nothing.
3617
3618 2006-11-03  Chris Toshok  <toshok@ximian.com>
3619
3620         * Form.cs (Close): if the form is modal, don't Dispose of it, only
3621         Hide it.
3622         (WndProc): don't Dispose after handling the WM_CLOSE message.
3623
3624         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
3625         them as such, instead of using casts from Control to Form.  Also,
3626         don't Dispose of the modal dialog when we fall out of the loop -
3627         Close() it instead.
3628
3629         fixes bug #79813.
3630
3631 2006-11-03  Chris Toshok  <toshok@ximian.com>
3632
3633         * Control.cs (Dispose): only go through the dispose thing if we're
3634         @disposing, and we haven't already been disposed.  Fixes bug
3635         #79814.
3636
3637         * Form.cs: no reason to call "base.Dispose()" here instead of
3638         "Dispose()".
3639
3640 2006-11-03  Mike Kestner  <mkestner@novell.com>
3641
3642         * ComboBox.cs : use ToString instead of casts in AddItem for
3643         sorting functionality.  Fixes #79812.
3644
3645 2006-11-03  Chris Toshok  <toshok@ximian.com>
3646
3647         * Application.cs: pave the way for actually using the thread
3648         exception dialog.  it's ifdefed out at the moment.
3649
3650 2006-11-03  Chris Toshok  <toshok@ximian.com>
3651
3652         * ThreadExceptionDialog.cs: until we get a better layout, actually
3653         hide the details textbox and label when we shouldn't see them.
3654
3655 2006-11-03  Jackson Harper  <jackson@ximian.com>
3656
3657         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
3658         multiline textboxes anymore.  This method also determines the
3659         width/height of a textboxes canvas area.
3660         - Sorta a revert of the last patch.  For multiline just position
3661         the controls, then bail.  This way the scrollbar width won't be
3662         altered.
3663
3664 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
3665
3666         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
3667         it dont need.  Fixes #79537.
3668
3669 2006-11-02  Jackson Harper  <jackson@ximian.com>
3670
3671         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
3672         send the status after firing the DndOver event.
3673
3674 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3675
3676         * TrackBar.cs: Now orientation only switches height / width if
3677         the control's handle is created (Win32 does it like this). Also 
3678         fixed a typo in ToString() for a test to pass, changed the 
3679         exception thrown in set_LargeChange and set_SmallChange to 
3680         match Win32 behaviour, and added TrackBar tests to the unit 
3681         tests.
3682
3683 2006-11-02  Chris Toshok  <toshok@ximian.com>
3684
3685         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
3686         not _NET_WM_STATE_NO_TASKBAR.
3687
3688 2006-11-02  Jackson Harper  <jackson@ximian.com>
3689
3690         * TextControl.cs: Increment count by one, since in the update view
3691         count - 1 is used.
3692
3693 2006-11-02  Jackson Harper  <jackson@ximian.com>
3694
3695         * TextBoxBase.cs: Use client rectangle not bounds for checking if
3696         the mouse is in the client rectangle (duh).
3697
3698 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3699         
3700         * TrackBar.cs: Fixed trackbar jumping around when clicking
3701         on it - the trackbar was not detecting correctly at which
3702         side of the thumb the click was done. (fixes #79718)
3703
3704 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3705
3706         * ListBox.cs: scroll visible area when change SelectedIndex to
3707         a non visible area.  Fixes #79481.
3708
3709 2006-11-01  Jackson Harper  <jackson@ximian.com>
3710
3711         * TextControl.cs: When replacing the selection move the selection
3712         start/end/anchor to the end of the new text.
3713
3714 2006-11-01  Jackson Harper  <jackson@ximian.com>
3715
3716         * XplatUIWin32.cs: When setting the parent change the controls
3717         visibility to it's visibility flag, not to it's old parents
3718         visibility (.Visible walks the parent chain).
3719
3720 2006-11-01  Chris Toshok  <toshok@ximian.com>
3721
3722         * XplatUIX11.cs: revert the #79790 fix, as the simple.
3723         XSetTransientForHint fix breaks paint .net's tool windows.  more
3724         work needed for that one.
3725
3726 2006-11-01  Chris Toshok  <toshok@ximian.com>
3727
3728         * ScrollBar.cs: throw ArgumentException instead of Exception in
3729         LargeChange/SmallChange setters.  fixes unit tests.
3730
3731 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
3732
3733         * ContainerControl.cs: reverted rev.67183 (which was itself
3734         a reversion of rev.66853... eh).
3735         
3736         * Control.cs: Fixes Reflector hang by changing Focus() call
3737         to what it was before rev.66643 (calling Select() here sets 
3738         ActiveControl, which in some situations calls back Focus and 
3739         eventually does a stack overflow). Temp fix.    
3740         Changes to GetNextControl() to not look for children to select when
3741         parent cannot be selectable (so it looks for siblings instead)  
3742         
3743 2006-10-31  Mike Kestner  <mkestner@novell.com>
3744
3745         * CheckedListBox.cs : off by one error in returned index from
3746         ObjectCollection.Add.  Fixes #79758.
3747
3748 2006-10-31  Chris Toshok  <toshok@ximian.com>
3749
3750         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
3751         calls for the textbox/spinner, to keep from recursing to the point
3752         where we crash.  Fixes #79760.
3753
3754 2006-10-31  Chris Toshok  <toshok@ximian.com>
3755
3756         * ListControl.cs (set_SelectedValue): don't throw exceptions on
3757         null/"" value, just return.  matches ms's behavior and fixes some
3758         failing tests.
3759
3760 2006-10-31  Chris Toshok  <toshok@ximian.com>
3761
3762         * Control.cs (set_Capture): make a logic a little easier to
3763         follow.
3764
3765         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
3766         if it's being destroyed.  A necessary fix surely, but a bandaid
3767         also, to fix the stuck capture problem in bug #78413.
3768
3769 2006-10-31  Chris Toshok  <toshok@ximian.com>
3770
3771         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
3772         convention of clearing hwnd.ClientRect when we set the
3773         width/height (so it'll be recalculated by Hwnd).
3774
3775 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
3776
3777         * ContainerControl.cs: reversed Contains check from
3778         ActiveControl due to hanging problems. This fix
3779         partly regresses #79667 (button does not have
3780         initial focus), so this might be a symptom for 
3781         a larger parenting problem (set_ActiveControl
3782         is being called but the child control does
3783         not have the parent set yet?)   
3784         
3785 2006-10-31  Mike Kestner  <mkestner@novell.com>
3786
3787         * MenuAPI.cs : fix keynav when menu is click activated.
3788
3789 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
3790
3791         * ToolStrip*: Version 0.2.
3792
3793         * MenuStrip.cs: Version 0.1.
3794
3795         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
3796
3797 2006-10-30  Chris Toshok  <toshok@ximian.com>
3798
3799         [ fixes the oversized notify icon issue in bug #79745 ]
3800         
3801         * NotifyIcon.cs: scale the icon down to the size we're given by
3802         the XplatUI layer (this would be faster if we did it once instead
3803         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
3804         since it's never invoked.
3805
3806         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
3807         pixels high by default, so let's hardcode our systray icon to that
3808         size.  The SYSTEM_TRAY protocol should really have a way for
3809         client apps to query for the correct icon size.. but oh well.  A
3810         couple of patches to deal with the screwy client_window ==
3811         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
3812         instance, and also make sure we don't XSelectInput twice).
3813
3814 2006-10-30  Chris Toshok  <toshok@ximian.com>
3815
3816         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
3817         recreating forms.  Control recreation is the bane of my existence.
3818         Fix it in a way that keeps everyone happy.
3819
3820 2006-10-30  Chris Toshok  <toshok@ximian.com>
3821
3822         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
3823         just non-CHILD ones.  otherwise sometimes scrollbars end up with
3824         client_windows not being resized to the proper size (ReportBuilder
3825         shows this extremely well).
3826
3827 2006-10-30  Chris Toshok  <toshok@ximian.com>
3828
3829         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
3830         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
3831         showing up in the gnome taskbar.  Fixes bug #79790.
3832
3833 2006-10-30  Chris Toshok  <toshok@ximian.com>
3834
3835         * ApplicationContext.cs: guard against a NRE.
3836
3837         * Application.cs: null out the old MainForm for the context, so we
3838         don't try to use it again once it's disposed.  Fixes bug #79783.
3839
3840 2006-10-30  Chris Toshok  <toshok@ximian.com>
3841
3842         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
3843         BindingContext, set the data source directly, otherwise do the
3844         lazy approach - the actual ListManager will be created when we get
3845         a BindingContext. Fixes bug #79700.
3846
3847 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3848
3849         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
3850           XplatUIX11.cs: Remove old 2 parameter SetVisible.
3851
3852         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
3853
3854 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
3855
3856         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
3857         of SetVisible that allows a window to be shown, but not activated.
3858         This is needed on Windows for MenuStrip, and can probably be used
3859         with MainMenu and ComboBox to fix the focus stealing issues on
3860         Windows.
3861
3862         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
3863
3864 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
3865
3866         * PictureBox.cs: Fix the output of the ToString method.
3867
3868 2006-10-29  Chris Toshok  <toshok@ximian.com>
3869
3870         * Control.cs (get_TopLevelControl): fix bug #79781.
3871
3872 2006-10-29  Chris Toshok  <toshok@ximian.com>
3873
3874         * ListControl.cs (set_DataSource): throw Exception here, not
3875         ArgumentException, to match MS behavior.
3876
3877 2006-10-29  Chris Toshok  <toshok@ximian.com>
3878
3879         * Form.cs: remove the try-catch's around calls to GetWindowState.
3880         We can just check the return value.
3881
3882         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
3883         Instead return -1.
3884
3885         * XplatUI.cs: Add note about additional return value for
3886         GetWindowState.
3887
3888 2006-10-29  Chris Toshok  <toshok@ximian.com>
3889
3890         * Control.cs (CreateHandle): when we create our handle, we also
3891         create the handles of our child controls.  Fixes one of the
3892         Control unit tests (CH11).
3893
3894 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3895
3896         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
3897
3898 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
3899
3900         * ThemeClearlooks.cs: A little speedup.
3901
3902 2006-10-27  Chris Toshok  <toshok@ximian.com>
3903
3904         * Control.cs: implement Control.FromChildHandle in a way that
3905         matches the docs (and fixes the failed test.)
3906
3907 2006-10-27  Chris Toshok  <toshok@ximian.com>
3908
3909         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
3910         comments).
3911
3912         * DataGrid.cs: implement ResetForeColor such that the tests
3913         succeed.
3914         
3915 2006-10-27  Chris Toshok  <toshok@ximian.com>
3916
3917         * ToolBarButton.cs: setting text/tooltiptext to null results in it
3918         being set to "".  Fixes bug #79759.
3919
3920 2006-10-27  Jackson Harper  <jackson@ximian.com>
3921
3922         * TextControl.cs: We need to clear the entire selection area when
3923         setting the start, otherwise multiline selections are still
3924         visible.
3925
3926 2006-10-26  Chris Toshok  <toshok@ximian.com>
3927
3928         * PropertyGridView.cs: 
3929
3930         - ifdef all the code specific to the double
3931         buffer case, and provide some alternatives in the non-doublebuffer
3932         code, which makes heavy use of XplatUI.ScrollWindow to move things
3933         around without having to invalidate (and cause flicker).  There
3934         are still some drawing problems in the non-doublebuffered case, so
3935         DOUBLEBUFFER is defined by default.
3936
3937         - Fix the way dropdowns are handled.  now we explicitly watch for
3938         the events which might cause the dropdown to close, and break out
3939         of the nested event loop there.  This gets rid of all Capture
3940         code, at the expense of the Msg special casing.  Seems to work,
3941         though, and fixes bug #79743.
3942
3943 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
3944         * Control.cs: SetIsRecreating now recreates implicitly added
3945         child controls as well. Finally fixes #79629. The flag passed to 
3946         SetIsRecreating has also been removed since it wasn't used.
3947         
3948 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3949
3950         * PageSetupDialog.cs: Clean some code, fix some bits, 
3951         add some checks, and add a printer sub-dialog.
3952
3953 2006-10-26  Chris Toshok  <toshok@ximian.com>
3954
3955         * PropertyGrid.cs: make set_SelectedObject call
3956         set_SelectedObjects, and move the duplicate logic to the
3957         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
3958
3959         * PropertyGridView.cs: hide the textbox when we get a
3960         SelectedObjectsChanged event.
3961
3962         Fixes bug #79748.
3963
3964 2006-10-26  Chris Toshok  <toshok@ximian.com>
3965
3966         * PropertyGridView.cs: deal with the type converter not supporting
3967         GetStandardValues() or GetStandardValues() returning null, which
3968         is does in the default case.  Fixes #79742.
3969
3970 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3971
3972         * CheckedListBox.cs: nunit no longer crashes when selecting 
3973         Project/Edit menu option
3974         
3975 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3976
3977         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
3978         is no menu selected. fixes #79739
3979
3980 2006-10-25  Chris Toshok  <toshok@ximian.com>
3981
3982         * PropertyGridView.cs: factor out the splitter invalidation code
3983         into the SplitterPercent setter, and for kicks implement the
3984         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
3985         amount in either direction.
3986
3987 2006-10-25  Chris Toshok  <toshok@ximian.com>
3988
3989         * PropertyGridView.cs: do some cleanup of the brush used to draw
3990         text - read only fields should be grayed out.  not sure how to do
3991         this with the textbox, though.  but the textbox's should also be
3992         readonly now at least.  Also, hide/show the textbox when resizing
3993         the control.
3994         
3995         * CursorConverter.cs: use System.Reflection when getting the
3996         properties of Cursors, as TypeDescriptor.GetProperties isn't
3997         returning static properties.
3998
3999 2006-10-25  Chris Toshok  <toshok@ximian.com>
4000
4001         * PropertyGridView.cs: factor out the up/down handling, and reuse
4002         it for page up/down.  also add End/Home support.
4003
4004 2006-10-25  Chris Toshok  <toshok@ximian.com>
4005
4006         * PropertyGridView.cs:
4007
4008         - ensure the selected grid item is visible in the scrolled area,
4009         fixes bug #79572.
4010
4011         - fix Keys.Down handling when you're on the last item in the
4012         propertygrid.
4013
4014 2006-10-25  Mike Kestner  <mkestner@novell.com>
4015
4016         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
4017         clicks too.  Fixes #79725.
4018
4019 2006-10-24  Chris Toshok  <toshok@ximian.com>
4020
4021         * PropertyGrid.cs: use property.Converter instead of
4022         TypeDescriptor.GetConverter(property.PropertyType), so we catch
4023         TypeConverters declared on the property as well as on the
4024         PropertyType.  Fixes bug #79678.
4025
4026 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
4027
4028         * MimeIcon.cs, Mime.cs:
4029           Fallback to the default platform handler if no shared mime info
4030           stuff exists (fixes #79693).
4031
4032 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
4033         * ContainerControl.cs: Incorrect contains check in ActiveControl 
4034         from previous fix (duh).
4035
4036 2006-10-20  Chris Toshok  <toshok@ximian.com>
4037
4038         * PropertyGridView.cs: the dropdown should be MIN(number of items
4039         in list, 15).  Fixes #79551.
4040
4041 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
4042         Fixes #79384, #79394, #79652, #79667
4043         * Application.cs: 
4044         
4045         - Modal windows are now destroyed in the proper order for windows
4046         
4047         * ContainerControl.cs:
4048         
4049         - ActiveControl setter has more conditions on when to return:
4050                 - if we're reselecting the active control, but it actually
4051                 didn't have focus (window hidden or some such), it runs
4052                 - if the active control being selected doesn't actually 
4053                 exist in the container, it returns
4054         
4055         * Form.cs
4056         
4057         - The ShowDialog now gets the current form as the owner when
4058         invoking without parameters, and correctly activates the owner 
4059         when returning
4060         
4061         * MessageBox.cs
4062         
4063         - MessageBox now catches the Escape key to exit
4064
4065 2006-10-20  Chris Toshok  <toshok@ximian.com>
4066
4067         * PropertyGridView.cs: fix a number of issues (bug #78565, and
4068         most of bug #79676):
4069
4070         - you can navigate around the property grid with the arrow keys.
4071
4072         - the dropdown is sized properly when the pg has a vertical
4073         scrollbar.
4074
4075         - fix the indentation for subentries, and properly select the
4076         entire label rect.
4077
4078         - fix the gray bar's drawing (only draw it to the last element,
4079         not for the height of the control.  Also make sure we draw that
4080         last horizontal grid line.
4081
4082         - use the same mechanism the datagrid uses wrt the editing textbox
4083         when scrolling/resizing/etc.  Namely, we hide it first, do the
4084         operation, then show it again (if it's still visible).
4085         
4086         - aggressively remove a lot of unnecessary refreshes (and also
4087         calls to Invalidate(). call more limited variants, and only redraw
4088         what we need.)
4089         
4090         * PropertyGrid.cs:
4091
4092         - when we're populating the merged collection, fill in the UI
4093         parent with either the passed in item, or the category item we
4094         create.
4095
4096         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
4097
4098         * GridItem.cs: drop some fully qualified names.
4099         
4100         * GridEntry.cs: add a "UIParent", which is basically the parent
4101         treenode.
4102
4103         * GridItemCollection.cs: add an IndexOf method.
4104
4105 2006-10-20  Mike Kestner  <mkestner@novell.com>
4106
4107         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
4108         a working win32 NC invalidation mechanism, we can't invalidate
4109         menus.  [Fixes #79705]
4110
4111 2006-10-20  Mike Kestner  <mkestner@novell.com>
4112
4113         * ListBox.cs : don't update the VScrollbar if the list is empty,
4114         just hide it.  [Fixes #79692]
4115
4116 2006-10-20  Jackson Harper  <jackson@ximian.com>
4117
4118         * RichTextBox.cs: Handle some special chars better, and don't skip
4119         the entire group when we encounter a special char that we don't
4120         handle correctly.
4121
4122 2006-10-18  Chris Toshok  <toshok@ximian.com>
4123
4124         * PropertyGridView.cs: address a number of issues from bug #79676,
4125         mostly of the cosmetic variety.
4126
4127         - The highlight rectangle for indented items not extends all the
4128         way to the left.
4129
4130         - Indented items aren't indented so much.
4131
4132         - the dropdown is properly sized width-wise if the pg has a
4133         vertical scrollbar.
4134
4135 2006-10-18  Chris Toshok  <toshok@ximian.com>
4136
4137         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
4138         systray stuff is rather convoluted to begin with.
4139
4140         systray icons are a single window for some reason (that I haven't
4141         figured out yet), and for them, client_window == whole_window.
4142         Given the way the tests are structured elsewhere to determine
4143         which paints are pending (client vs. nc), that situation will
4144         always yield PAINT, not NCPAINT.  So, if we have a pending
4145         nc_expose and no pending expose, remove the hwnd from the paint
4146         queue, and also set nc_expose_pending to false, to keep us from
4147         blocking further expose's adding the hwnd to the paint queue.
4148
4149         phew.  like i said, a rather convoluted change.  Fixes the
4150         notifyicon repaint issues in bug #79645.
4151
4152 2006-10-18  Chris Toshok  <toshok@ximian.com>
4153
4154         * Form.cs: when getting the backcolor of the form, don't get
4155         base.BackColor, as this allows parents to influence the background
4156         color.  This breaks mdi forms.  Instead, if the background_color
4157         is empty, return the default.
4158
4159 2006-10-18  Chris Toshok  <toshok@ximian.com>
4160
4161         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
4162         to being private instead of internal static.
4163
4164         * Control.cs: remove all the stupid ParentWaitingOnRecreation
4165         crap, it wasn't working for more deeply nested controls anyway,
4166         and we already have the is_recreating flag - use that instead.
4167         Before calling DestroyHandle in RecreateHandle, recurse through
4168         the control tree setting it to true.  this returns the recreate
4169         code to much of its original simplicity, while now guaranteeing we
4170         actually recreate everything we're supposed to.  This change gets
4171         fyireporting actually showing mdi children.
4172
4173 2006-10-17  Chris Toshok  <toshok@ximian.com>
4174
4175         * Form.cs: remove some debug spew, and collapse some duplicate
4176         code at the end of SetClientSizeCore.
4177
4178         * XplatUIX11.cs: 
4179         - add some more debug spew here too wrt Destroy handling.
4180         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
4181         in Control's handling of WM_DESTROY.
4182         - Remove the handling of zombie window DestroyNotifies from the
4183         event loop - we don't need it.  Now the only DestroyNotifies we
4184         actually handle are ones generated by X.
4185         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
4186         match gtk's (functioning) handling of this. This keep metacity
4187         from leaving droppings in the form of wm borders with no window
4188         contents all over the place.
4189
4190         * Control.cs:
4191         - add a bunch of debug spew wrt control recreation.
4192         - fix a bug where we weren't tracking Visible properly on
4193         recreated hwnds.
4194         - fixed the WM_PAINT double buffer handling to support re-entrant
4195         calls (yes, i know it's gross, but it's happening to us).
4196
4197 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
4198         * ThemeWin32Classic.cs: changed drawing of selected days
4199         to make them look better.
4200
4201 2006-10-16  Chris Toshok  <toshok@ximian.com>
4202
4203         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
4204         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
4205
4206         * XplatUIX11.cs: move away from using hwnd.client_dc and
4207         hwnd.non_client_dc and on to a stack of dc's (and in window's
4208         case, PAINTSTRUCT's), so we can deal with nested Paint calls
4209         without puking or not disposing of Graphics objects.
4210
4211         * XplatUIOSX.cs: same.
4212
4213         * XplatUIWin32.cs: same.
4214
4215 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
4216
4217         * FileDialog.cs: Don't call on_directory_changed inside
4218           OnSelectedIndexChanged (it changes the SelectedIndex too).
4219           Instead move it to OnSelectionChangeCommitted.
4220
4221 2006-10-13  Chris Toshok  <toshok@ximian.com>
4222
4223         * XplatUIX11.cs: more Destroy work.  the current code does the
4224         following things, in order:
4225
4226         1. Enumerates all handles of all controls at or below the one
4227         being destroyed, in pre-order.  As it is doing this, it marks the
4228         handles as zombie and clears all references to them.
4229         
4230         2. calls XDestroyWindow on the window passed in.
4231
4232         3. SendMessage's WM_DESTROY to all he handles in the accumulated
4233         list.
4234
4235 2006-10-13  Chris Toshok  <toshok@ximian.com>
4236
4237         * XplatUIX11.cs: set hwnd.zombie to true before calling
4238         SendMessage (WM_DESTROY).  this keeps us from marking the new
4239         window a zombie, and also keeps us from calling sendmessage at
4240         all.
4241
4242 2006-10-13  Jackson Harper  <jackson@ximian.com>
4243
4244         * TextControl.cs: Do not show the caret and selection at the same
4245         time.  Reduces ugliness by 35%.
4246
4247 2006-10-13  Chris Toshok  <toshok@ximian.com>
4248
4249         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
4250         zombie after we do the recursive call, so we actually do call
4251         SendMessage on the children controls.
4252         (GetMessage): if we find a pending paint event for a zombie hwnd,
4253         remove the hwnd from the paint queue, or else it will always be
4254         there (and we'll effectively loop infinitely)
4255
4256 2006-10-13  Mike Kestner  <mkestner@novell.com>
4257
4258         * MenuItem.cs : add Selected format under keynav too.
4259         Fixes #79528.
4260
4261 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
4262
4263         * PropertyGrid.cs: Fixed some NRE's and small difference between our
4264         implementation and that of MS.
4265
4266 2006-10-13  Chris Toshok  <toshok@ximian.com>
4267
4268         * Control.cs (OnInvalidated) only futz with the invalid_region if
4269         the control is double buffered.  this fixes the apparent hang in
4270         the ListView unit tests.  Someone needs to make the
4271         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
4272
4273 2006-10-13  Chris Toshok  <toshok@ximian.com>
4274
4275         * PropertyGridView.cs:
4276
4277         - do a little refactoring so that only one place calls
4278         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
4279         else call that.  Also make it Refresh, since there are redraw bugs
4280         otherwise (we should take a look at that...)
4281
4282         - do a little more refactoring work to share the body of code
4283         involved with the drop down.  it was duplicated in the code
4284         dealing with the listbox handling and in the code dealing with the
4285         UITypeEditors.
4286
4287         - add a Capture to the dropdown form's control once it's
4288         displayed, and add a MouseDown handler that checks to make sure
4289         the position is inside the control.  If it's not, close the
4290         dropdown.  This fixes #78190.
4291
4292         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
4293         if the value is different than the initial value.
4294         
4295 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
4296
4297         * Control.cs: see #78650
4298         - Fixed GetNextControl for several cases:
4299                 - Changed FindFlatForward to return 
4300                 correct sibling control when more than one
4301                 control has same TabIndex as the currently 
4302                 focused one.
4303                 - Changed FindFlatBackward to loop children
4304                 from last to first and apply same logic as in
4305                 FindFlatForward
4306                 - Changed FindControlForward to search for
4307                 children when control is not a container
4308                 but has children, or search for siblings if
4309                 control is a container...
4310                 - Changed FindControlBackward   to continue
4311                 searching for child controls when hitting 
4312                 Panel-like parents
4313                 
4314         - Fixed Focus method to update ActiveControl
4315         (FocusTest.FocusSetsActive failure)
4316         
4317         * TabControl.cs:
4318         - Focus rectangle now refreshes when gaining
4319         or losing focus
4320         - Removed grab for Tab key on IsInputKey that 
4321         was keeping tab navigation from working (#78650)
4322
4323 2006-10-13  Chris Toshok  <toshok@ximian.com>
4324
4325         * PropertyGridView.cs:
4326         - Rewrite SetPropertyValue to loop over SelectedGridItem's
4327         SelectedObjects.
4328
4329         - Deal with GridItem.Value == null a few places.
4330
4331         * PropertyGrid.cs: 
4332         - replace the PopulateGridItemCollection with a pair of methods
4333         which compute the intersection of all the properties in the
4334         SelectedObjects array.  Fixes #79615.
4335
4336         - Throw ArgumentException from set_SelectedObjects if there's a
4337         null in the array.
4338
4339         - Add GetTarget method which can be used to traverse up the
4340         GridItem.Parent chain.  It depends on the assumption that
4341         selected_objects for different GridEntries are always in the same
4342         order (a safe assumption).  Use this method and loop over all the
4343         selected objects in the entry when calling RemoveValueChanged and
4344         AddValueChanged.
4345         
4346         * GridEntry.cs: Make this handle multiple selected objects.
4347         .Value returns null if not all the selected objects share the same
4348         value.
4349
4350 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
4351         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
4352           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
4353           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
4354           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
4355           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
4356         add additional functionality.
4357
4358 2006-10-12  Mike Kestner  <mkestner@novell.com>
4359
4360         * ErrorProvider.cs : new ToolTipWindow ctor sig.
4361         * HelpProvider.cs : new ToolTipWindow ctor sig.
4362         * ToolTip.cs : remove ToolTip param from Window sig since it is
4363         not used.
4364         * ToolBar.cs : add tooltip support.  Fixes #79565.
4365
4366 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
4367
4368         * ComboBox.cs: move the events in set_SelectedIndex to 
4369         after the call to HighlightIndex in order to avoid 
4370         possible recursion and subsequent problems with the call
4371         to HighlightIndex and include a range check in 
4372         set_HighlightIndex. Fixes #79588
4373         
4374 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
4375
4376         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
4377         to ui thread's settings instead of sunday. 
4378         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
4379
4380 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
4381
4382         * DateTimePicker.cs
4383         * MonthCalendar.cs
4384         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
4385         and implement missing functionality (selecting different parts 
4386         of the date and edit them individually with the keyboard).
4387         
4388 2006-10-11  Chris Toshok  <toshok@ximian.com>
4389
4390         * Control.cs (OnInvalidated): fix NRE relating to last change.
4391
4392 2006-10-11  Chris Toshok  <toshok@ximian.com>
4393
4394         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
4395         atoms in _NET_WM_STATE here if the window is maximized.  We need
4396         to do this because we're *replacing* the existing _NET_WM_STATE
4397         property, so those atoms will be lost otherwise, and any further
4398         call to GetWindowState will return Normal for a window which is
4399         actually maximized.  Fixes #79338.
4400
4401 2006-10-11  Jackson Harper  <jackson@ximian.com>
4402
4403         * TextControl.cs: Special case for setting selection end to
4404         selection start, we basically kill the anchor.
4405         - some todo comments.
4406
4407 2006-10-11  Chris Toshok  <toshok@ximian.com>
4408
4409         * Control.cs: switch to using an "invalid_region" to track which
4410         parts of the image buffer need updating.  This is more code than
4411         the simple fix from r66532.  That version just attempted to always
4412         fill the entire buffer on redraw, which turns out to be
4413         inefficient when invalidating small rectangles.  This version
4414         simply adds the invalid rectangle to the invalid region.  When we
4415         get any WM_PAINT message we see if it can be filled using the
4416         image buffer, and if it can't (if the paint event's clip rectangle
4417         is visible in the invalid region) we first fill the image buffer.
4418         So, the image buffer is still a cache, we just fill it lazily.
4419
4420         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
4421         need it any longer.
4422
4423 2006-10-11  Chris Toshok  <toshok@ximian.com>
4424
4425         * XplatUIX11.cs (SetWindowPos): we need to update both position as
4426         well as size after calling XMoveResizeWindow.  This keeps us from
4427         ignoring future SetWindowPos calls.  Fixes the disappearing
4428         DateTimePicker in the ToolBarDockExample from bug #72499.
4429
4430 2006-10-11  Chris Toshok  <toshok@ximian.com>
4431
4432         * TextBoxBase.cs: reorder things a bit when it comes to
4433         resizing-causing-recalculation.  we were recalculating the
4434         document when our position was changed, which shouldn't happen.
4435         We only care about size changes.  Clear up some more redundant
4436         recalculation calls while I'm at it.  This makes the toolbar dock
4437         example snappy when you're just dragging toolbars around (since it
4438         causes a relayout whenever you move one.)
4439
4440 2006-10-11  Chris Toshok  <toshok@ximian.com>
4441
4442         * ToolBarButton.cs (get_Rectangle): this only returns
4443         Rectangle.Empty if Visible == false, or Parent == null.
4444         Parent.Visible doesn't matter.
4445
4446 2006-10-10  Chris Toshok  <toshok@ximian.com>
4447
4448         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
4449         by .net 1.1, so switch to an internal method instead.
4450
4451 2006-10-10  Chris Toshok  <toshok@ximian.com>
4452
4453         * Control.cs (WM_PAINT): when a control is double buffered we draw
4454         initially to the ImageBuffer and then copy from there.  But when a
4455         parent control which has child controls is double buffered, the
4456         initial drawing doesn't encompass the entire ClientRectangle of
4457         the parent control, so we end up with uninitialized bits (this is
4458         easily seen by dragging the top toolbar in
4459         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
4460         manually set the ClipRectangle of the paint_event (only the one we
4461         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
4462         of the nastiness in bug #72499.
4463
4464         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
4465         which we use in Control.cs's WM_PAINT handling.
4466
4467 2006-10-10  Jackson Harper  <jackson@ximian.com>
4468
4469         * TextBoxBase.cs: Finish off the autoscrolling stuff.
4470
4471 2006-10-10  Chris Toshok  <toshok@ximian.com>
4472
4473         * Cursor.cs: Apply a slightly different patch to the one suggested
4474         in #79609.
4475
4476 2006-10-10  Jackson Harper  <jackson@ximian.com>
4477
4478         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
4479         not the parent form.
4480         * TextControl.cs: use difference in old line count vs new count to
4481         calculate how many lines were added, this takes into account soft
4482         line breaks properly.
4483
4484 2006-10-10  Chris Toshok  <toshok@ximian.com>
4485
4486         * LinkLabel.cs: don't call MeasureCharacterRanges against a
4487         rectangle located at 0,0 and the size of the text.  Use
4488         ClientRectangle instead.  This fixes rendering of non-left aligned
4489         link labels.
4490
4491 2006-10-10  Jackson Harper  <jackson@ximian.com>
4492
4493         * TextBoxBase.cs: When we set the selection start position the
4494         caret.
4495         * TextControl.cs: Need to update the caret when we decrement it to
4496         zero.
4497         - Make sure that the selection_visible flag gets reset to false if
4498         the selection isn't visible.  Before this you could get it set to
4499         visible by changing the selection start, then changing the end to
4500         equal the start.
4501
4502 2006-10-09  Jackson Harper  <jackson@ximian.com>
4503
4504         * TreeView.cs: Don't update scrollbars when we aren't visible.
4505         * TreeNodeCollection.cs: Only need to update scrollbars if being
4506         added to an expanded visible node or the root node.
4507
4508 2006-10-09  Chris Toshok  <toshok@ximian.com>
4509
4510         * XplatUIX11.cs (SendMessage): fix NRE.
4511
4512 2006-10-09  Jackson Harper  <jackson@ximian.com>
4513
4514         * TextBoxBase.cs: Implement horizontal autoscrolling.
4515         * TextControl.cs: Add a movement types that allows moving forward
4516         and backwards without wrapping.
4517
4518 2006-10-09  Mike Kestner  <mkestner@novell.com>
4519
4520         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
4521         with focus "expansion" of labels.  Fixes #79532 and then some.
4522         * ThemeWin32Classic.cs : add LineLimit to ListView label format
4523         when wrapping.
4524
4525 2006-10-09  Jackson Harper  <jackson@ximian.com>
4526
4527         * TextBoxBase.cs: Set the default max values to MaxValue since
4528         we use the scrollbar for autoscrolling and the default value is
4529         100.  If we don't do this the caret won't keep up with typing
4530         after about 18 characters.
4531         * TextControl.cs: Make sure the selection is offset by the
4532         viewport x.  This fixes selection when using auto scrolling.
4533
4534 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
4535         
4536         * Form.cs: The active control should be selected after the 
4537         OnLoad so that any child control initialization that affects
4538         the selection is done. Fixes #79406
4539
4540 2006-10-06  Chris Toshok  <toshok@ximian.com>
4541
4542         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
4543         to have no evil effects.
4544
4545         - Stop selecting StructureNotifyMask on non-toplevel windows.
4546
4547           The only way children should be resized is by using the SWF api,
4548           and we already send WM_WINDOWPOSCHANGED messages in those cases.
4549           Toplevel windows can be interacted with via the window manager,
4550           and so we keep the input mask there.
4551
4552           The other event StructureNotifyMask gives us (that we care
4553           about) is DestroyNotify.  The code is already structured such
4554           that it assumes we won't be getting a DestroyNotify event for
4555           the window we pass to XDestroyWindow (which is what
4556           StructureNotifyMask is supposed to guarantee.)  So, that code
4557           shouldn't be affected by this either.
4558
4559         - Stop selecting VisibilityChangeMask altogether.
4560
4561           We weren't doing anything with the resulting events anyway.
4562         
4563         This vastly reduces the number of X requests and events we see
4564         when resizing/laying out a large ui.
4565
4566 2006-10-06  Chris Toshok  <toshok@ximian.com>
4567
4568         * ScrollableControl.cs (DisplayRectangle): we need to take into
4569         account the DockPadding regardless of whether or not auto_scroll
4570         == true.  rework this slightly to this effect, and fix bug #79606,
4571         and part of #72499 (you can now see the drag handles and drag
4572         toolbars around).
4573
4574 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
4575
4576         * ListViewItem.cs: Collections of selected and checked items are now
4577         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
4578         we mark the collection "dirty".
4579         * ListView.cs: Marked collections readonly. Modified UpdateSelection
4580         to only clear SelectedItems when a new item is selected and MultiSelect
4581         is enabled. CheckedItems and SelectedItems now subscribe to Changed
4582         event of ListViewItemCollection, and mark its list dirty whenever
4583         that event is fire. This allows us to return selected/checked items 
4584         in the same order as they are in the Items collection. This matches
4585         the MS behavior.
4586
4587 2006-10-06  Chris Toshok  <toshok@ximian.com>
4588
4589         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
4590         right mouse clicks.  Fixes bug #79593.
4591
4592 2006-10-06  Chris Toshok  <toshok@ximian.com>
4593
4594         * Splitter.cs: doh, fix splitters that don't want to cancel the
4595         movement when you drag them.  Also, impose the limits on the
4596         values we send to the SplitterMovingEvent.  Fixes #79598.
4597
4598 2006-10-06  Jackson Harper  <jackson@ximian.com>
4599
4600         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
4601         since we use this for auto scrolling also.
4602
4603 2006-10-05  Chris Toshok  <toshok@ximian.com>
4604
4605         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
4606         beginning to think that most datagrid column types don't need this
4607         method.  Fixes bug #79392.
4608
4609 2006-10-05  Chris Toshok  <toshok@ximian.com>
4610
4611         * DataGrid.cs: move back to a more lazy scheme for creating the
4612         CurrencyManager, so we aren't updating it every time you set
4613         either DataSource or DataMember.  Also, don't call
4614         RecreateDataGridRows if the currency manager hasn't changed.
4615
4616 2006-10-05  Chris Toshok  <toshok@ximian.com>
4617
4618         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
4619         emitted, SelectedIndex should already be updated.  Fixes bug
4620         #78929.
4621
4622 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
4623
4624         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
4625           ToolStripTextBox.cs: Initial commit.
4626         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
4627
4628 2006-10-05  Jackson Harper  <jackson@ximian.com>
4629
4630         * TabControl.cs: We need to invalidate the tab control area when
4631         new ones are added (duh).
4632
4633 2006-10-03  Chris Toshok  <toshok@ximian.com>
4634
4635         * Form.cs (ProcessDialogKey): if the focused control is in this
4636         form and is a button, call its PerformClick method here.  Fixes
4637         #79534.
4638
4639 2006-10-04  Jackson Harper  <jackson@ximian.com>
4640
4641         * TabPage.cs: Ignore setting of Visible, and add an internal
4642         method for setting the controls visibility.  TabPage's Visible
4643         property is a little strange on MS, this seems to make us
4644         compatible, and fixes cases where people set all the tab pages to
4645         visible.
4646         * TabControl.cs: Use the new internal setting on tab pages
4647         visibility.
4648
4649 2006-10-03  Mike Kestner  <mkestner@novell.com>
4650
4651         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
4652
4653 2006-10-03  Mike Kestner  <mkestner@novell.com>
4654
4655         * ListView.cs : use is_visible instead of Visible to check if 
4656         scrollbars should be placed/sized.  Also some max_wrap_width
4657         love for LargeIcon view.  [Fixes #79533]
4658
4659 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
4660
4661         * TextControl.cs :
4662           Make set_TextAlign() do actually update the align. Fixed #78403.
4663
4664 2006-10-03  Chris Toshok  <toshok@ximian.com>
4665
4666         * DataGrid.cs: fix a crash when switching datasources if the
4667         vertical scrollbar is at someplace other than Value = 0.  Also,
4668         reduce the number of recalculation passes we do in SetDataSource
4669         from 2 to 1.
4670
4671 2006-10-03  Jackson Harper  <jackson@ximian.com>
4672
4673         * TextBoxBase.cs: Move the if value the same bail check up, we
4674         don't want to empty the document if it is already empty, this
4675         seems to severly mess up the caret.  TODO: I should probably fix
4676         the empty statement to update teh caret somehow.
4677
4678 2006-10-03  Chris Toshok  <toshok@ximian.com>
4679
4680         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
4681         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
4682         reflection, an internal row type, properties on said type, etc.)
4683         will work with our datagrid.  Fixes #79531.
4684
4685 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
4686
4687         * FileDialog.cs: Don't crash if a path is not accessible
4688           (System.UnauthorizedAccessException). Fixes #79569.
4689         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
4690           a ':' too. Return unknown icon for those paths/files.
4691
4692 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
4693
4694         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
4695         GetContainerControl returns null.
4696
4697 2006-10-02  Chris Toshok  <toshok@ximian.com>
4698
4699         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
4700         call to XGetWindowAttributes instead of "handle".  fixes an X
4701         error using notifyicon after the NotifyIconWindow to Form base
4702         class switch.
4703
4704 2006-10-02  Chris Toshok  <toshok@ximian.com>
4705
4706         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
4707         server grab and looping we need to do to get down to the most
4708         deeply nested child window.
4709         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
4710         QueryPointer again after the WarpPointer so we can generate a
4711         proper (fake) MotionNotify event to be enqueued in the destination
4712         window's queue.
4713         (GetCursorPos): call QueryPointer.
4714
4715         Fixes #79556.
4716
4717 2006-10-02  Jackson Harper  <jackson@ximian.com>
4718
4719         * NotifyIcon.cs: Derive the notify icon from a form, so things
4720         like FindForm work on it.
4721         - Swallow the WM_CONTEXTMENU message, since that is generated on
4722         mouse down, and context menu is a mouse up kinda guy.  I believe
4723         the correct fix here is probably to make the notify icon entirely
4724         NC area, but this seems to work fine for anyone not manipulating
4725         WndProc.
4726
4727 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
4728
4729         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
4730           ToolStripItemCollection.cs, ToolStripLabel.cs,
4731           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
4732           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
4733           Initial implementation.
4734         * TextRenderer.cs: Provide padding to MeasureText.
4735
4736 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
4737
4738         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
4739         of ButtonBaseAccessibleObject. Fix bug #79552.
4740
4741 2006-10-02  Jackson Harper  <jackson@ximian.com>
4742
4743         * MdiWindowManager.cs: When maximizing use the containers client
4744         rect, not it's bounds, so nc area is accounted correctly.
4745         - Use the parent form's size for the menu position, since the
4746         client isn't always the full form size.
4747
4748 2006-10-01  Chris Toshok  <toshok@ximian.com>
4749
4750         * ScrollableControl.cs: make sure neither right_edge or
4751         bottom_edge are < 0, since they're used as LargeChange for the
4752         horiz/vert scrollbars respectively.  Fixes #79539.
4753
4754 2006-10-01  Chris Toshok  <toshok@ximian.com>
4755
4756         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
4757         the xplatuix11 code can cause us to destroy/recreate our handle.
4758
4759         * XplatUIX11.cs
4760         (SystrayAdd):
4761         - this code can be invoked many times for the same Hwnd.  Make
4762           sure we only destroy the client window once (the first time this
4763           method is called).  This fixes bug #79544.
4764         - Remove the call to the improperly bound XSync.  why we had two
4765           bindings to this, I will never know, but this call resulted in
4766           events being discarded from the queue(!).
4767         - correct a misunderstanding of _XEMBED_INFO - the second atom is
4768           not our current state but the state we wish to be in.  So, 0 if
4769           we don't want to be mapped.  Change it to 1.
4770         (SystrayRemove): The XEMBED spec makes mention of the fact that
4771         gtk doesn't support the reparent of client windows away from the
4772         embedder.  Looking at gtksocket-x11.c seems to agree with this.
4773         The only avenue we have for removing systray icons is to destroy
4774         them.  We don't want the handle to go away for good, though, so
4775         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
4776         #79545.
4777         
4778 2006-10-01  Chris Toshok  <toshok@ximian.com>
4779
4780         * Form.cs (WndProc): inline the native_enabled variable usage into
4781         the cases in which it's used.  Fixes #79536.
4782
4783 2006-09-29  Mike Kestner  <mkestner@novell.com>
4784
4785         * ListView.cs : toggle the selection state for ctrl clicks in 
4786         multiselect mode. [Fixes #79417]
4787
4788 2006-09-29  Mike Kestner  <mkestner@novell.com>
4789
4790         * ListView.cs : kill CanMultiSelect and refactor the selection
4791         code to support multiselection in the absence of mod keys. Steal
4792         arrow/home/end keys by overriding InternalPreProcessMessage to
4793         restore regressed keynav behavior.
4794         [Fixes #79416]
4795
4796 2006-09-29  Jackson Harper  <jackson@ximian.com>
4797
4798         * MdiClient.cs: Repaint the titlebars when the active window is
4799         changed.
4800
4801 2006-09-29  Chris Toshok  <toshok@ximian.com>
4802
4803         * Application.cs: when entering a runloop with a modal, make sure
4804         the hwnd is enabled.  Fixes #79480.
4805
4806 2006-09-29  Chris Toshok  <toshok@ximian.com>
4807
4808         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
4809         when ListManager.CanAddRows == false, bump us back one.
4810
4811         * DataGridColumnStyle.cs (ParentReadOnly): remove the
4812         listmanager.CanAddRows check.  This makes ArrayLists uneditable
4813         using a datagrid, which is not right.
4814         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
4815         is an IEditable, but call property_descriptor.SetValue regardless.
4816         fixes #79435.
4817
4818 2006-09-29  Chris Toshok  <toshok@ximian.com>
4819
4820         * DataGridBoolColumn.cs: we need to test equality in the face of
4821         possible null values (as is the case with the default NullValue).
4822         This patch keeps us from crashing in that case.
4823
4824 2006-09-29  Jackson Harper  <jackson@ximian.com>
4825
4826         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
4827         here, since it will get called for every node collection in the
4828         tree. This is now done in the treeview once the sorting is
4829         finished.
4830         * TreeView.cs: Recalculate the visible order, and update the
4831         scrollbars after sorting, set the top nope to the root so that the
4832         recalc actually works.
4833
4834 2006-09-29  Chris Toshok  <toshok@ximian.com>
4835
4836         * LinkLabel.cs: more handling of the default link collection in
4837         the face of LinkArea manipulation.  The default link collection
4838         contains 1 element (start=0,length=-1).  If the user sets LinkArea
4839         to anything and the links collection is the default, clear it.
4840         Then only add the link if its nonempty.  Fixes #79518.
4841
4842 2006-09-29  Chris Toshok  <toshok@ximian.com>
4843
4844         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
4845         piece correctly when we hit a '\n'.  Fixes #79517.
4846
4847 2006-09-29  Chris Toshok  <toshok@ximian.com>
4848
4849         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
4850         change the binding of gdk_init_check to take two IntPtr's, and
4851         pass IntPtr.Zero for both of them.  Fixes #79520.
4852
4853 2006-09-29  Mike Kestner  <mkestner@novell.com>
4854
4855         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
4856         [Fixes #78779]
4857
4858 2006-09-28  Jackson Harper  <jackson@ximian.com>
4859
4860         * XplatUIX11.cs: When translating NC messages make sure we go from
4861         whole window to screen, not client window to screen.
4862         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
4863         method doesn't exist
4864         - Skip over controls that aren't forms when arranging.
4865
4866 2006-09-28  Jackson Harper  <jackson@ximian.com>
4867
4868         * XplatUIWin32.cs: Clip the rect to the parent window.
4869         * XplatUIStructs.cs: Add clipping modes struct.
4870         * InternalWindowManager.cs: New private method that factors title
4871         bar heights in when calculating the pos of an NC mouse message.
4872         - Use SendMessage to force a paint when the form's size is changed
4873         instead of painting the decorations immediately.
4874         - Don't let the NC button click messages get to DefWndProc,
4875         because they will attempt to handle windowing themself, and this
4876         messes up z-order (it will put them in front of the scrollbars).
4877         * XplatUIX11.cs: Make sure that we don't reset window managers if
4878         we already have one (ie the window is an MDI window).
4879
4880 2006-09-28  Chris Toshok  <toshok@ximian.com>
4881
4882         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
4883         menu code really needs going over.
4884
4885 2006-09-27  Chris Toshok  <toshok@ximian.com>
4886
4887         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
4888         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
4889         window is maximizable.  So, we need to make sure that even if we
4890         clear the border/wm frame of those functions, they're still
4891         available (basically, we remove the decoration without removing
4892         the function).  Half the fix for #79338.
4893
4894 2006-09-27  Chris Toshok  <toshok@ximian.com>
4895
4896         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
4897         Fixes bug #79515.
4898
4899 2006-09-27  Chris Toshok  <toshok@ximian.com>
4900
4901         * Splitter.cs: reorder things a bit so that we don't actually
4902         draw/move the splitter until after calling OnSplitterMoving.  This
4903         lets users cancel/disallow the movement by explicitly setting
4904         event.SplitX/SplitY.  Fixes #79372.
4905
4906 2006-09-27  Jackson Harper  <jackson@ximian.com>
4907
4908         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
4909         because it is most likely on a window being destroyed, and that
4910         will give us an X11 error.
4911
4912 2006-09-27  Chris Toshok  <toshok@ximian.com>
4913
4914         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
4915         the dropdown button now toggles between showing and hiding the
4916         dropdown.  Also, get rid of dropdown_form_showing and just use
4917         dropdown_form.Visible.  We still don't do a grab, but I'll leave
4918         that part to someone who has handled Capture-fu before.
4919
4920 2006-09-27  Chris Toshok  <toshok@ximian.com>
4921
4922         * DataGrid.cs: return false if alt isn't pressed when '0' is
4923         pressed.  this keeps the '0' key from being swallowed, and fixes
4924         bug #79350.
4925
4926 2006-09-27  Chris Toshok  <toshok@ximian.com>
4927
4928         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
4929         Calling Refresh (in response to a scrollbar event) screws up the
4930         scrollbar painting.  Fixes bug #78923.
4931
4932 2006-09-27  Chris Toshok  <toshok@ximian.com>
4933
4934         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
4935         then insert into hashtable" blocks threadsafe.
4936
4937 2006-09-27  Chris Toshok  <toshok@ximian.com>
4938
4939         * MessageBox.cs (CreateParams): the styles should be |'ed with our
4940         baseclass's, since otherwise the
4941         ControlBox/MinimizeBox/MaximizeBox assignments above have no
4942         effect.  This gets the close button back in messageboxes.
4943
4944 2006-09-27  Chris Toshok  <toshok@ximian.com>
4945
4946         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
4947         flag, not just != 0.  this makes flags that are actually multiple
4948         bits (like WS_CAPTION) work.  fixes bug #79508.
4949
4950 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
4951
4952         * PageSetupDialog.cs: add support for getting and settings the 
4953         paper size, source and orientation.
4954
4955 2006-09-26  Chris Toshok  <toshok@ximian.com>
4956
4957         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
4958         and caption == "", we need to remove the resize handles as well as
4959         the title bar.
4960
4961         * Control.cs (set_Text): turns out that setting Text on a form
4962         should change the WM styles on the window, since if ControlBox ==
4963         false, the only way to get a window border is to have a non-""
4964         Text property.  check winforms/forms/text.cs for an example.  so,
4965         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
4966         update both window styles and title.  This fixes a lot of dialogs
4967         (including the preferences dialog in MonoCalendar.)
4968
4969 2006-09-26  Chris Toshok  <toshok@ximian.com>
4970
4971         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
4972         control isn't a Form), call Win32ShowWindow to hide the window,
4973         but don't update the control Visible property.  When we reparent
4974         back to a parent control, call SetVisible in order for the
4975         window's visibility to be reinstated.
4976
4977         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
4978         the FosterParent.
4979
4980         * Control.cs (ControlCollection.Remove): remove that value.Hide()
4981         call for good, since it breaks MonoCalendar (and other things I'm
4982         sure.) Also, set all_controls to null *after* the owner calls,
4983         which end up regenerating it.
4984         (ChangeParent): allow new_parent to be == null, passing
4985         IntPtr.Zero down to XplatUI.
4986
4987         this fixes #79294 the right way.
4988
4989 2006-09-26  Mike Kestner  <mkestner@novell.com>
4990
4991         * GridEntry.cs : internal SetParent method.
4992         * PropertyGrid.cs : attach to property changed on the proper
4993         target if we have a hierarchical grid with subobjects. Setup
4994         GridItem.Parent for hierarchical items.
4995         * PropertyGridView.cs : Set value on the correct target for
4996         hierarchical grids. [Fixes #78903]
4997
4998 2006-09-26  Chris Toshok  <toshok@ximian.com>
4999
5000         * Control.cs (ChildNeedsRecreating): this should return true if
5001         either we're being recreated and the child is in our list, or our
5002         parent is waiting for our recreation.
5003
5004 2006-09-26  Chris Toshok  <toshok@ximian.com>
5005
5006         * Control.cs (ControlCollection.Remove): reinstate the
5007         value.Hide() call as suggested in bug #79294.
5008
5009 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
5010
5011         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
5012         coordinates (versus a relative move).
5013
5014 2006-09-26  Chris Toshok  <toshok@ximian.com>
5015
5016         * Control.cs: rework child recreation a little bit.  It turns out
5017         that we race between the DestroyNotify the WM_DESTROY message.  If
5018         the parent gets its DestroyNotify before the child gets the
5019         WM_DESTROY message, the child ends up not recreating (since the
5020         parent finishes its recreation on DestroyNotify, and the child
5021         checks ParentIsRecreating.)
5022
5023         So, instead we store off a list of all the child controls which
5024         need to be recreated when the parent control starts to recreate
5025         itself.  Then, when child controls get their WM_DESTROY message we
5026         check to see if they're in the parent's pending recreation list,
5027         and if so, we recreate.  This removes all dependency on ordering
5028         from the code and fixes the initial MonoCalendar upgrade dialog.
5029         
5030 2006-09-26  Jackson Harper  <jackson@ximian.com>
5031
5032         * TextControl.cs: Use the Line to get the length of the line,
5033         since soft line breaks can change the end line.
5034
5035 2006-09-26  Chris Toshok  <toshok@ximian.com>
5036
5037         * Control.cs (ControlCollection.AddImplicit): don't add the
5038         control again if it's already in one of our lists.  This keeps us
5039         from adding controls over and over again for comboboxes when their
5040         handle gets recreated (as the combobox adds implicit controls in
5041         OnHandleCreated).  Fixes the X11 errors in bug #79480.
5042
5043 2006-09-26  Jackson Harper  <jackson@ximian.com>
5044
5045         * TextControl.cs: When deleting characters make sure that any
5046         orphaned zero lengthed tags get deleted.
5047         - Fix ToString for zero lengthed tags.
5048
5049 2006-09-25  Jackson Harper  <jackson@ximian.com>
5050
5051         * TextControl.cs: When getting a tag at the location there can be
5052         multiple tags at the same spot, these are 0-lengthed tags that
5053         appear when extra formatting has been stuck in a location.  We
5054         need to pull out the last of these 0 lengthed tags.
5055
5056 2006-09-25  Jackson Harper  <jackson@ximian.com>
5057
5058         * TextControl.cs: Fix print out in debug method.
5059         * TextBoxBase.cs: When text is set bail if we are setting to the
5060         previous value.
5061         
5062 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
5063
5064         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
5065           It is now possible to change the selected index in a FontXXXListBox
5066           with the up and down arrow keys from the FontXXXTextBoxes.
5067           Also, send the FontXXXTextBox mouse wheel event to the corresponding
5068           FontXXXListBoxes to match ms.
5069
5070 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
5071
5072         * SystemInformation.cs: Return a clone of the theme's MenuFont because
5073         anyone can dispose it, anytime. All other properties returns enums, 
5074         structs or basic types so they don't need such tricks.
5075
5076 2006-09-22  Jackson Harper  <jackson@ximian.com>
5077
5078         * XplatUI.cs:
5079         * XplatUIWin32.cs:
5080         * Clipboard.cs:
5081         * DataFormats.cs:
5082         * XplatUIOSX.cs:
5083         * XplatUIDriver.cs: Update interface to add a primary selection
5084         flag, so the driver can use the primary selection buffer if
5085         needed.
5086         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
5087
5088         * RichTextBox.cs: We need to supply the data object to paste now
5089         (so we can choose to supply CLIPBOARD or PRIMARY).
5090         * TextBoxBase.cs: Supply data object to paste (see above).
5091         - Middle click uses the primary selection data object.
5092         
5093 2006-09-21  Chris Toshok  <toshok@ximian.com>
5094
5095         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
5096         of SetWMStyles.  It's still a rat's nest and is largely
5097         order-dependent which I dislike immensely.  This also fixes the X
5098         button disappearing from toplevel forms.
5099
5100 2006-09-21  Mike Kestner <mkestner@novell.com>
5101
5102         * ListBox.cs: move Jordi's click/dblclick raising code to the
5103         mouse up handler.
5104
5105 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
5106
5107         * ListBox.cs: Fixes 79450
5108
5109 2006-09-21  Mike Kestner <mkestner@novell.com>
5110
5111         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
5112         to deal with people updating the TreeNodeCollection after the tree
5113         is disposed.  "Fixes" 79330.
5114
5115 2006-09-20  Jackson Harper <jackson@ximian.com>
5116
5117         * TextControl.cs: Push the cursor record onto the undo stack
5118         before the delete action. This fixes 78651.
5119
5120 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
5121
5122         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
5123         CreateParams. Fixes 79329.
5124
5125 2006-09-19  Chris Toshok  <toshok@ximian.com>
5126
5127         * XplatUIX11.cs: a couple of blanket code massage passes to clean
5128         things up a bit.  First, get rid of the NetAtoms array (and the NA
5129         enum), and just embed the atoms as static fields.  Also, add a
5130         couple of functions (StyleSet and ExStyleSet) to clean up all the
5131         bitmask testing of styles.
5132
5133         * X11Structs.cs: remove the NA enum, not needed anymore.
5134         
5135 2006-09-19  Chris Toshok  <toshok@ximian.com>
5136
5137         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
5138         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
5139         added cleanup to get MessageBox titles appearing again, which were
5140         broken by my earlier fix for caption-less/ControlBox-less windows.
5141
5142 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
5143
5144         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
5145           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
5146           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
5147           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
5148           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
5149           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
5150           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
5151           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
5152           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
5153           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
5154           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
5155             Inital import.
5156         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
5157           ToolStripButton.cs: Stubs needed for above.
5158         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
5159
5160 2006-09-15  Chris Toshok  <toshok@ximian.com>
5161
5162         * XplatUIX11.cs:
5163         - make the MessageQueues hashtable Synchronized.
5164         
5165         - SendMessage: if the Hwnd is owned by a different thread, use the
5166         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
5167         thread.  Fixes bug #79201.
5168
5169 2006-09-15  Chris Toshok  <toshok@ximian.com>
5170
5171         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
5172         ControlBox == false, we disallow maximize/minimize/close.  If the
5173         form Caption is "" we also disallow move (and get rid of the Title
5174         decoration).  Unfortunately, regardless of how things are set,
5175         we're stuck with the Title and WM menu.
5176
5177 2006-09-15  Chris Toshok  <toshok@ximian.com>
5178
5179         * Application.cs: add locking around the static message_filters
5180         ArrayList, part of #79196.
5181
5182 2006-09-15  Chris Toshok  <toshok@ximian.com>
5183
5184         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
5185         Form.ControlBox == false, the window has no titlebar nor resize
5186         handles.  fixes bug #79368.
5187
5188 2006-09-15  Chris Toshok  <toshok@ximian.com>
5189
5190         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
5191         >= 0.  Fixes bug #79370.
5192
5193 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
5194         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
5195         * Control.cs:
5196             Add properties: LayoutEngine, Margin, DefaultMargin.
5197             Add method: GetPreferredSize.
5198             Move layout logic from PerformLayout to layout engines. 
5199
5200 2006-09-13  Chris Toshok  <toshok@ximian.com>
5201
5202         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
5203         fix for #79326 broke #78718, so this change addresses that.
5204
5205         - in SendWMDestroyMessages remove the call to
5206         CleanupCachedWindows, since we might be recreating the control and
5207         need to maintain the references to right Hwnd handles.  Also, set
5208         the zombie flag to true for each of the children in the hierarchy
5209         instead of calling hwnd.Dispose.  This will cause GetMessage to
5210         ignore all events for the window except for DestroyNotify.
5211
5212         - In GetMessage, ignore messages except for DestroyNotify for
5213         zombie hwnds.
5214         
5215         * Control.cs: revert the is_recreating fix from the last
5216         ChangeLog.  It's definitely "right", but it breaks switching from
5217         an MDI form to a non-MDI form.  Will need to revisit that.
5218
5219         * Hwnd.cs: add a zombie flag, which means "the
5220         client_window/whole_window handles are invalid, but we're waiting
5221         for the DestroyNotify event to come in for them".  Set the flag to
5222         false explicitly if setting WholeWindow/ClientWindow, and also
5223         when Disposing.
5224         
5225 2006-09-13  Chris Toshok  <toshok@ximian.com>
5226
5227         * XplatUIX11.cs: rework window destruction slightly.
5228
5229         - when destroying the windows associated with a control, we don't
5230         need 2 separate XDestroyWindow calls.  Just the one for the
5231         whole_window (or for client_window if whole_window is somehow
5232         IntPtr.Zero -- can this happen?) is enough.
5233
5234         - reworked SendWMDestroyMessages slightly, so we always dispose
5235         the child control hwnd's after sending the messages.
5236         
5237         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
5238         the two places it was used (one was even using hwnd.Handle and the
5239         other hwnd.client_window.  ugh), adding another call in
5240         SendWMDestroyMessages.  We need this new call because now the
5241         DestroyNotify events in the queue will be ignored for the child
5242         controls (as their hwnd's were disposed, and the window id's
5243         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
5244
5245         - this fixes bug #79326.
5246
5247 2006-09-13  Chris Toshok  <toshok@ximian.com>
5248
5249         * Control.cs: don't always set is_recreating to false at the end
5250         of RecreateHandle, since sometimes we're not done (and won't be
5251         until WndProc handles the WM_DESTROY message).  Also, set
5252         is_recreating to false in the WM_DESTROY handling code.  Part of
5253         the fix for bug #79326.
5254
5255 2006-09-13  Miguel de Icaza  <miguel@novell.com>
5256
5257         * X11DesktopColors.cs: Start the droppage of debugging messages.
5258
5259         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
5260
5261 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
5262
5263         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
5264
5265 2006-09-12  Chris Toshok  <toshok@ximian.com>
5266
5267         * DataGrid.cs (get_ListManager): if the list_manager is null, try
5268         to create it using SetDataSource.  Fixes bug #79151.
5269
5270 2006-09-11  Chris Toshok  <toshok@ximian.com>
5271
5272         * XEventQueue.cs: add a DispatchIdle property.
5273
5274         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
5275         either the queue is null, or the queue has DispatchIdle set to
5276         true.
5277         (DoEvents): set queue.DispatchIdle to false around the
5278         peek/translate/dispatch message loop in this method.  This keeps
5279         Application.Doevents from emitting idle events.  Part of the fix
5280         for #78823.
5281
5282 2006-09-11  Chris Toshok  <toshok@ximian.com>
5283
5284         * DataGrid.cs (set_DataSource): make this work for both the
5285         winforms/datagrid test and ReportBuilder.  It seems as though when
5286         we've created a ListManager (or maybe it's if we have a
5287         BindingContext?), when we set the DataSource it clears the
5288         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
5289         #79333.
5290
5291 2006-09-11  Chris Toshok  <toshok@ximian.com>
5292
5293         * XplatUIX11.cs: deal with queue being null, which happens in all
5294         the Clipboard functions.  Fixes one of the two problems mentioned
5295         in #78612.
5296
5297 2006-09-11  Chris Toshok  <toshok@ximian.com>
5298
5299         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
5300         button on various spots (including outside the menu) works closer
5301         to MS, and doesn't crash.  Fixes #79343.
5302
5303 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
5304
5305         * ListView.cs: Do not initialize item_sorter in init. To match MS,
5306         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
5307         and the internal comparer is set. When a new ListViewItemSorter is set,
5308         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
5309         was specified. No further processing is necessary if SortOrder is set
5310         to it's current value. If Sorting is modified to None, and View is
5311         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
5312         (either custom or our internal ItemComparer) to null, on 1.0 profile
5313         only set item_sorter to null if its our internal IComparer. If Sorting
5314         is modified to Ascending or Descending, then use our internal IComparer
5315         if none is set, and if the current IComparer is our internal one then:
5316         on 2.0 profile always replace it with one for new Sorting, and on 1.0
5317         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
5318         Enum.IsDefined to verify whether a valid View value is specified in
5319         its setter. Automatically sort listview items when listview is
5320         created. In Sort, do nothing if ListView is not yet created, or if
5321         no item_sorter is set (no Sorting was set, Sorting was explicitly set
5322         to None or ListViewItemSorter was set to null). Added Sort overload
5323         taking a bool to indicate whether the ListView should be redrawn when
5324         items are sorted (we use this in ListViewItemCollection to avoid double
5325         redraws). Modified our internal IComparer to take the sort order into
5326         account. In Add and AddRange methods of ListViewItemCollection, also
5327         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
5328         view), but use overload with noredraw option to avoid double redraw.
5329         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
5330         true when View is Tile, and do the same when attempting to set View to
5331         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
5332         for selected/checked indices, as it involves overhead when sorting is
5333         done while these collections are not used all that often. Instead
5334         we'll build the indices on demand. Modified IList implementation of
5335         CheckedIndexCollection to use public methods if object is int.
5336         Modified CheckedListViewItemCollection to hide checked items if
5337         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
5338         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
5339         IList implementation in SelectedIndexCollection to use public methods
5340         if object is int. Modified SelectedListViewItemCollection to hide
5341         selected items if listview is not yet created.
5342         * ListViewItem.cs: CheckedIndices list no longer needs to be
5343         maintained separately (see ListView changes). Also clone font, fixes
5344         test failure.
5345
5346 2006-09-11  Mike Kestner  <mkestner@novell.com>
5347
5348         * ComboBox.cs: if we are updating the contents of the currently
5349         selected index, refresh the control or the textbox selection.
5350         [Fixes #79066]
5351
5352 2006-09-11  Mike Kestner  <mkestner@novell.com>
5353
5354         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
5355         the 'specified' logic has been moved there.  This seems like a bug 
5356         in Control.cs, since our current SetBoundsCore completely ignores 
5357         the specified parameter.  Peter's commit seems to indicate that is 
5358         the way the MS control implementation works.  [Fixes #79325]
5359
5360 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
5361
5362         * XplatUI.cs: Set default_class_name to be composed
5363         of current domain id. This allows MWF to be loaded in multiple
5364         domains on Win32.
5365
5366 2006-09-09  Miguel de Icaza  <miguel@novell.com>
5367
5368         * X11Keyboard.cs: If we are unable to obtain the input method, do
5369         not call CreateXic to create the input context.   Should fix
5370         #78944/79276.
5371
5372 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
5373
5374         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
5375           Simplified gnome support by adding more pinvokes to get the
5376           icon for a file or mime type.
5377
5378 2006-09-08  Jackson Harper  <jackson@ximian.com>
5379
5380         * MenuAPI.cs: Deslect popup context menu items before closing the
5381         window, so that you don't see the previously selected item
5382         selected when you reopen the menu.
5383         * TextControl.cs: Update the cursor position even if we don't have
5384         focus.  This fixes typing in things like the ComboBox.  I'm not
5385         totally sure we should always set the visibility if we don't have
5386         focus, but couldn't find any corner cases where the cursor showed
5387         up when it shouldn't.
5388
5389 2006-09-08  Chris Toshok  <toshok@ximian.com>
5390
5391         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
5392         our arrays are length 256.  & 0xff before indexing.  Fixes the
5393         crash in bug #78077.
5394         
5395 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5396
5397         * ThemeWin32Classic.cs: 
5398         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
5399         is true. Handle that check box too.
5400
5401 2006-09-07  Chris Toshok  <toshok@ximian.com>
5402
5403         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
5404         79244.
5405
5406 2006-09-07  Chris Toshok  <toshok@ximian.com>
5407
5408         * Control.cs: in set_BackColor only do the work if
5409         background_color != value.
5410
5411         * XplatUIX11.cs: move the clearing of invalid areas (both client
5412         and nc) to the same block of code where we set (nc_)expose_pending
5413         to false.  That is, move it from PaintEventEnd to PaintEventStart,
5414         so things that cause invalidates from within OnPaint will trigger
5415         another call to OnPaint.  Fixes bug #79262.
5416
5417 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
5418
5419         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
5420         * FileDialog.cs: Fix typo
5421
5422 2006-09-07  Jackson Harper  <jackson@ximian.com>
5423
5424         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
5425         for tab pages if they have any.
5426
5427 2006-09-06  Mike Kestner  <mkestner@novell.com>
5428
5429         * Splitter.cs: use the "current" rect when finishing drag handle
5430         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
5431
5432 2006-09-06  Mike Kestner  <mkestner@novell.com>
5433
5434         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
5435         support offset splitters. [Fixes #79298]
5436
5437 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
5438
5439         * Mime.cs: Fixed a bug that could override the global mime type
5440           result.
5441
5442 2006-09-05  Jackson Harper  <jackson@ximian.com>
5443
5444         * TabControl.cs: Better calculation method for setting the slider
5445         pos. Prevents crashes on really wide tabs.
5446         - Draw Image on tab pages if an image list is used.
5447
5448 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5449
5450         * MonthCalendar.cs: When Font changes, the Size should be
5451         updated to fit the new font's space requirements.
5452
5453 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
5454
5455         * ListBox.cs: If the items are cleared with Items.Clear set
5456           top_index to 0.
5457
5458 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5459
5460         * MonthCalendar.cs: Handle arrow keys as input keys. Also
5461         fire DateChanged event instead of DateSelected event when
5462         the date was changed by keyboard interaction.
5463
5464 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5465
5466         * DateTimePicker.cs: Handle DateChanged for the associated
5467         month_calendar control, and set month_calendar.Font from 
5468         OnFontChanged method, as well as resize the height of the
5469         control when needed. Make PreferredHeight proportional.
5470
5471 2006-09-01  Chris Toshok  <toshok@ximian.com>
5472
5473         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
5474         properties.
5475
5476         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
5477
5478 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
5479
5480         * FileDialog.cs: Set ClientSize instead of window size, to allow space
5481           for decorations (Fixes #79219)
5482
5483 2006-09-01  Mike Kestner  <mkestner@novell.com>
5484
5485         * ComboBox.cs: first stab at sorting plus some selection handling
5486         fixes to bring us more in line with MS behavior.  Also switches back
5487         to index based selection.  Alternative patches for index-based 
5488         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
5489         and latency@gmx.de on bug 78848.  I assume they were similar to this
5490         code I've had simmering in my tree forever.
5491         [Fixes #78848]
5492
5493 2006-09-01  Chris Toshok  <toshok@ximian.com>
5494
5495         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
5496         when setting list position guard against ending up with a -1 index
5497         (the other part of the fix for #78812).  Should probably make sure
5498         we don't need the analogous fix in the ItemDeleted case.
5499
5500         * DataGrid.cs:
5501         - in SetDataSource, work around the fact that the way
5502         OnBindingContextChanged is invoked will cause us to re-enter this
5503         method.  I'll remove the hack once I investigate
5504         OnBindingContextChanged.
5505
5506         - fix the logic in set_DataSource and set_DataMember (basically
5507         what to do if the other of the two is null.)
5508         
5509         - in OnListManagerItemChanged, we need to take into account the
5510         edit row when deciding whether or not to call RecreateDataGridRows
5511         (part of the fix for #78812).
5512
5513 2006-09-01  Jackson Harper  <jackson@ximian.com>
5514
5515         * Splitter.cs: Don't do anything if there is no control to affect
5516         (prevents us from crashing in weird tet cases).
5517         * TreeView.cs: Bounding box for the mouse movement reverting
5518         focus/selection back to previously selected node.  This matches
5519         MS, and makes the tree a lot more useable.
5520         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
5521         use clipping so they are not drawn.  This fixes when the control
5522         is set to have a transparent background, or if it was over an
5523         image.
5524
5525 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
5526
5527         * MimeIcon.cs: Improved handling for reading default icons when
5528           using gnome (2.16 made it necessary). Check and read svg icons
5529           first, then 48x48 and then 32x32 icons.
5530
5531 2006-08-31  Chris Toshok  <toshok@ximian.com>
5532
5533         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
5534         visible.
5535
5536         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
5537         ProcessKeyPreview.  Fixes part of #77806.
5538
5539         * DataGrid.cs: big patch.
5540
5541         - revert the queueing up of DataSource/DataMember if inside
5542         BeginInit/EndInit calls.  That's not the way the datagrid achieves
5543         its delayed databinding.  Instead, call SetDataSource in
5544         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
5545         #78811.
5546
5547         - Also, it wasn't mentioned in #78811, but the test case exhibits
5548         behavior that was lacking in our datagrid implementation - Columns
5549         that have mapping names that don't exist in the datasource's
5550         properties aren't shown.  Yuck.  To fix this I added the bound
5551         field to the column style, and basically any calculation to figure
5552         out anything about columns uses a loop to find the bound columns.
5553         still need to investigate if I can cache an array of the bound
5554         columns or if the indices must be the same.
5555
5556         - When setting CurrentCell, we no longer abort if the cell being
5557         edited was in the add row.  This fixes the other part of #77806.
5558
5559         - The new code also fixes #78807.
5560         
5561         * ThemeWin32Classic.cs: perpetrate the same disgusting
5562         column.bound field hack, and only render bound fields.
5563
5564 2006-08-31  Chris Toshok  <toshok@ximian.com>
5565
5566         * DataGridColumnStyle.cs: add bound field.  this field is true if
5567         the datasource has a property corresponding to the mapping name.
5568
5569         * DataGridTableStyle.cs: set the bound field on the column styles
5570         depending on whether or not we have a column for that property.
5571
5572 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
5573
5574         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
5575           splitter control (fixes #79228)
5576
5577 2006-08-31  Chris Toshok  <toshok@ximian.com>
5578
5579         * DataGridColumnStyle.cs: we need to delay the assignment of
5580         property descriptor until the last possible moment due to the lazy
5581         databinding stuff in the datagrid.  Also, fix the exceptions
5582         thrown by CheckValidDataSource to match MS.
5583
5584 2006-08-31  Jackson Harper  <jackson@ximian.com>
5585
5586         * Form.cs: When activated select the active control, if there is
5587         no active control, we select the first control.
5588         * XplatUIX11.cs: If there is no focus control when we get a
5589         FocusIn event, find the toplevel form and activate it.  This
5590         occurs when you popup a window, it becomes the focus window, then
5591         you close that window, giving focus back to the main window.
5592
5593 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5594
5595         * MonthCalendar.cs: 
5596         * ThemeWin32Classic.cs: Cache Font in bold style, as well
5597         as StringFormat with Center alignments in MonthCalendar,
5598         instead of creating new ones when drawing the control. 
5599         Also, draw the month name in bold style.
5600
5601 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
5602
5603         * Control.cs:
5604           - PerformLayout(): It would seem MS performs the fill even if the 
5605             control is not visible (part of #79218 fix)
5606           - ResetBackColor(): Use the setter to reset the color, to allow
5607             overriders to catch the change.
5608         * Form.cs:
5609           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
5610           - CreateHandle(): dito (part of $79218 fix)
5611           - Don't set an icon if we have a dialog
5612         * ScrollableControl.cs:
5613           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
5614           - ScrollIntoView(): No need to scroll if control is already visible
5615             (resolves fixme and fixes #79218)
5616
5617 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5618
5619         * MonthCalendar.cs: Change proportions in SingleMonthSize
5620         to match the aspect of the original control.
5621
5622 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
5623
5624         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
5625           get updated when they get maximized.
5626
5627 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
5628
5629         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
5630
5631 2006-08-29  Chris Toshok  <toshok@ximian.com>
5632
5633         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
5634
5635 2006-08-29  Jackson Harper  <jackson@ximian.com>
5636
5637         * TreeView.cs: Need to track selected node and highlighted node,
5638         they aren't always the same thing, when the mouse is down on a
5639         node it is hilighted, but not selected yet.
5640         - Do the HideSelection stuff right
5641         - Need to focus on rbutton mouse down. And redraw selection when
5642         right click is mouse upped.
5643
5644 2006-08-29  Mike Kestner  <mkestner@novell.com>
5645
5646         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
5647         when SubItems.Count < Columns.Count.  [Fixes #79167]
5648
5649 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
5650
5651         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
5652
5653 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
5654
5655         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
5656           from X. Only send based on ConfigureNotify if we don't have the
5657           correct location in hwnd (if the window manager moved us)
5658
5659 2006-08-28  Mike Kestner  <mkestner@novell.com>
5660
5661         * ListView.cs: remove a TODO. 
5662         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
5663         [Fixes ListView part of #79166]
5664
5665 2006-08-28  Mike Kestner  <mkestner@novell.com>
5666
5667         * ListView.cs: move wheel handler to parent since it is focused
5668         instead of the item_control now.  [Fixes #79177]
5669
5670 2006-08-28  Mike Kestner  <mkestner@novell.com>
5671
5672         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
5673         when the control is focused. [Fixes #79171]
5674
5675 2006-08-28  Mike Kestner  <mkestner@novell.com>
5676
5677         * ListView.cs: size the item and header controls for empty and
5678         unscrollable views.
5679         * ThemeWin32Classic.cs: draw disabled backgrounds.
5680         [Fixes #79187]
5681
5682 2006-08-28  Chris Toshok  <toshok@ximian.com>
5683
5684         * Form.cs: remove unused "active_form" static field.
5685
5686         * Hwnd.cs: lock around accesses to static windows collection.
5687
5688         * Application.cs: lock threads in Exit ().
5689
5690 2006-08-28  Chris Toshok  <toshok@ximian.com>
5691
5692         * NativeWindow.cs: lock around accesses to window_collection.
5693         
5694 2006-08-28  Chris Toshok  <toshok@ximian.com>
5695
5696         * Control.cs: err, fix this the right way, by locking on controls
5697         when using it.  not by making it synchronized.
5698
5699 2006-08-28  Chris Toshok  <toshok@ximian.com>
5700
5701         * Control.cs: make the static "controls" field synchronized, as it
5702         gets updated from multiple threads.
5703
5704 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
5705
5706         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
5707           Prevent other threads from exiting when calling thread sets quit state.
5708         * XEventQueue.cs: Added PostQuitState property
5709
5710 2006-08-27  Chris Toshok  <toshok@ximian.com>
5711
5712         * AsyncMethodData.cs: add a slot for the window handle.
5713
5714         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
5715         window (the destination control's window, not the foster window).
5716
5717         * Control.cs (BeginInvokeInternal): store the window's handle in
5718         the AsyncMethodData.
5719         
5720
5721 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
5722
5723         * XplatUIX11.cs:
5724           - PostQuitMessage: Removed resetting S.D display handle, we might have
5725             another loop started after calling PostQuitMessage (Fixes #79119)
5726           - Created destructor to reset S.D handle
5727
5728 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
5729
5730         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
5731
5732 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5733
5734         * TextControl.cs (Insert): Update the caret position even if we don't
5735           have a handle yet, just don't call the driver in that case.
5736         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
5737           to the end of the new selection text (Fixes #79184)
5738
5739 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5740
5741         * Form.cs (Activate): Only activate if the handle is created)
5742         * Control.c:
5743           - Mark window as invisible when it's disposed
5744           - Check if window handle is created when setting window visible, 
5745             instead of relying just on the is_created variable
5746           - Check if object is disposed when creating the control (Fixes #79155)
5747
5748 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5749
5750         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
5751           when allowing layout again. Otherwise we re-generate the anchoring 
5752           distance to the border again and actually alter what the user wanted
5753           This is ugly, it'd be better if we used DisplayRectangle instead of
5754           ClientRectangle for Control.UpdateDistances, but that causes us to
5755           have other problems (initial anchoring positons would be wrong)
5756           (Fixes #78835)
5757
5758 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5759
5760         * Control.cs:
5761           - The size and location setters shouldn't go directly to 
5762             SetBoundsCore, but to SetBounds, which triggers layout on the
5763             parent, then calls SetBoundsCore. (Related to fix for #78835)
5764           - SetBounds: Moved actual location update code into this function
5765             from SetBoundsCore, to match MS. Added call to PerformLayout if
5766             we have a parent (to trigger resizing of anchored parents if the 
5767             child size has changed (see testcase for #78835) 
5768         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
5769           new control code
5770         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
5771
5772 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5773
5774         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
5775           System.Drawing when a toplevel window gets closed; there might
5776           be other toplevel windows belonging to the same app (Fixes #78052)
5777
5778 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
5779
5780         * FileDialog.cs: After reading FileDialog settings from mwf_config
5781           use Desktop prefix only if a real folder doesn't exist anymore.
5782         * FontDialog.cs: Added char sets.
5783           It is now possible to select the font, size or style with the
5784           textboxes.
5785
5786 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
5787
5788         * PrintPreviewDialog.cs: Use assembly name constants.
5789
5790 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5791
5792         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
5793           scrollbar from whacking it's buttons)
5794
5795 2006-08-24  Chris Toshok  <toshok@ximian.com>
5796
5797         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
5798         in this patch (aggregating setting Left/Top/Width/Height to
5799         setting Bounds on the scrollbars), but the crux of the fix is in
5800         Recalculate, where we scroll by the remaining scroll_position if
5801         we're hiding a scrollbar.  The 2*$5 reward in the comment is
5802         serious.
5803
5804 2006-08-24  Jackson Harper  <jackson@ximian.com>
5805
5806         * MdiClient.cs:
5807         * MdiWindowManager.cs: If the form is made a non-mdi window we
5808         need to remove the form closed event so that closing forms works
5809         correctly.
5810
5811 2006-08-24  Jackson Harper  <jackson@ximian.com>
5812
5813         * Control.cs: Make IsRecreating internal so that the driver can
5814         check it
5815         - Temporarily remove the Hide when controls are removed, its
5816         making a whole bunch of things not work because visibility isn't
5817         getting reset elsewhere correctly
5818         * Form.cs: Need to do a full handle recreation when the mdi parent
5819         is set.
5820         * XplatUIX11.cs: If we are recreating handles don't dispose the
5821         HWNDs.  What was happening is the handles were being recreated in
5822         SendWMDestroyMessages, but then flow continued on in that method
5823         and destroyed the new handles.
5824
5825 2006-08-23  Jackson Harper  <jackson@ximian.com>
5826
5827         * Form.cs: MdiClient is always at the back of the bus
5828         * Control.cs: When the order of items in the collection is changed
5829         we need to reset the all_controls array
5830         - do the same sorta setup thats done when adding a control when a
5831         control is set on the collection.
5832
5833 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
5834
5835         * TextBoxBase.cs (get_Text): Return an empty array if our document
5836           is empty (fixes #79052)
5837
5838 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5839
5840         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
5841           on WM_SYSCHAR messages (fixes #79053)
5842
5843 2006-08-23  Chris Toshok  <toshok@ximian.com>
5844
5845         * DataGrid.cs: fix flickering when scrolling vertically.
5846
5847 2006-08-23  Chris Toshok  <toshok@ximian.com>
5848
5849         * DataGrid.cs (EndEdit): only invalidate the row header when we
5850         need to.
5851
5852 2006-08-23  Chris Toshok  <toshok@ximian.com>
5853
5854         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
5855         methods.  fixes the flicker when scrolling around.
5856
5857 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5858
5859         * FileDialog.cs: Making sure the control is created before we get a 
5860           chance to use it with BeginInvoke (Fixes #79096)
5861
5862 2006-08-23  Chris Toshok  <toshok@ximian.com>
5863
5864         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
5865         width to use when painting the rows.
5866
5867 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
5868
5869         * TextBoxBase.cs:
5870           - Throw ArgumentException if a negative value is passed to SelectionLength
5871           - Update the selection end if start is moved. end needs to be always
5872             after start. (Fixes #79095)
5873           - Track selection length; MS keeps the selection length even if start
5874             is changed; reset on all other operations affection selection
5875
5876 2006-08-22  Jackson Harper  <jackson@ximian.com>
5877
5878         * TreeView.cs: Make sure both scrollbars get displayed and sized
5879         correctly when the other bar is visible.
5880         - Use the original clip rectangle for checking if the area between
5881         the two scrollbars is visible, not the viewport adjusted clipping
5882         rectangle.
5883
5884 2006-08-22  Jackson Harper  <jackson@ximian.com>
5885
5886         * Binding.cs: We don't use IsBinding because it requires the
5887         control to be created, which really shouldn't be necessary just to
5888         set a property on the control.
5889
5890 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5891
5892         * ComboBox.cs: Some CB.ObjectCollection methods must throw
5893         ArgumentNullReferenceException when the argument is null.
5894
5895 2006-08-21  Jackson Harper  <jackson@ximian.com>
5896
5897         * Timer.cs: Track the thread that the timer is started in (NOT
5898         CREATED), this way messages for it will only be triggered on its
5899         queue.
5900         * XEventQueue.cs: Track the timers here, this makes timers per
5901         thread, like MS.
5902         * XplatUIX11.cs: The timers are moved to the XEventQueue.
5903
5904 2006-08-19  Chris Toshok  <toshok@ximian.com>
5905
5906         * XplatUIX11.cs: after further communication with pdb, we get the
5907         best of both worlds.  SetZOrder working for un-Mapped windows, and
5908         no X errors for un-mapped windows.
5909
5910 2006-08-19  Chris Toshok  <toshok@ximian.com>
5911
5912         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
5913         as it was causing pdn toolbars to not have the correct stacking.
5914
5915 2006-08-18  Mike Kestner  <mkestner@novell.com> 
5916
5917         * ListView.cs : guard against negative ClientArea.Width in scrollbar
5918         calculation.  Not sure why control should ever be setting a negative
5919         width though.  Fixes #78931.
5920
5921 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5922
5923         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
5924         null items in ObjectCollection class.
5925         * ListBox.cs.: Likewise.
5926
5927 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
5928
5929         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
5930           as the base method in ThemeWin32Classic should work fine.
5931           Fixed bug #78607.
5932
5933 2006-08-18  Jackson Harper  <jackson@ximian.com>
5934
5935         * Binding.cs: When validating if the value entered doesn't convert
5936         properly reset to the old value.
5937         * RadioButton.cs: Don't fire click when we get focus.
5938
5939 2006-08-18  Jackson Harper  <jackson@ximian.com>
5940
5941         * FileDialog.cs: Paint the selection on the directory combobox the
5942         same way as on MS. 
5943
5944 2006-08-17  Jackson Harper  <jackson@ximian.com>
5945
5946         * ErrorProvider.cs: Don't allow the error control to be selected.
5947         * Control.cs: Don't send the SetFocus messages, the control
5948         activation will do this, and if we do it blindly here validation
5949         does not work.
5950
5951 2006-08-17  Jackson Harper  <jackson@ximian.com>
5952
5953         * Control.cs:
5954         * ContainerControl.cs: Make validation events fire in the correct
5955         order.  TODO: For some reason the first validation event is not
5956         getting fired.
5957
5958 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5959
5960         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
5961
5962 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5963
5964         * ComboBox.cs : implement scroll wheel support for popped-down
5965         state. Fixes #78945. 
5966
5967 2006-08-17  Jackson Harper  <jackson@ximian.com>
5968
5969         * TreeView.cs: Specify treeview actions (old patch that didn't get
5970         committed for some reason).
5971         - Don't let the mouse wheel scroll us too far.  Just want to make
5972         the bottom node visible, not scroll it all the ways to the top.
5973
5974 2006-08-17  Jackson Harper  <jackson@ximian.com>
5975
5976         * XplatUIX11.cs: Mouse wheel events go to the focused window.
5977
5978 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5979
5980         * ComboBox.cs : don't do mouseover selection in simple mode.
5981
5982 2006-08-16  Jackson Harper  <jackson@ximian.com>
5983
5984         * Form.cs: Fire the closing events for all the mdi child windows
5985         when a window is closed.  If the cancel args are set to true, the
5986         main window still gets the event fired, but it doesn't not close.
5987         * MdiWindowManager.cs: Do this closing cleanup in a Closed
5988         handler, instead of when the button is clicked, so cancelling the
5989         close works correctly.
5990         * ComboBox.cs: Send the mouse down to the scrollbar.
5991
5992 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5993
5994         * ListBox.cs: When passing 'null' to SelectedItem,
5995         set SelectedIndex to -1, to unselect items. This is the
5996         observed behaviour in .Net.
5997
5998 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
5999
6000         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
6001           MS flags saying there won't be any. (fixes #78800)
6002         * Control.cs (HandleClick): Made virtual
6003
6004 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6005
6006         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
6007           cultures. Fixed bug #78399.
6008
6009 2006-08-16  Jackson Harper  <jackson@ximian.com>
6010
6011         * Form.cs: Use the MdiClients MdiChildren property to access
6012         MdiChildren instead of creating the array from the child controls.
6013         * MdiClient.cs: Maintain a separate array of the mdi children, so
6014         that insertion order is maintained when the Z-order is changed.
6015
6016 2006-08-16  Mike Kestner  <mkestner@novell.com> 
6017
6018         * ListView.cs : add an ItemComparer and default to it for sorting.
6019         Fixes #79076, but sorting needs a complete overhaul to be compat with
6020         MS.
6021
6022 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
6023
6024         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
6025
6026 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
6027
6028         * Hwnd.cs (Mapped): Properly traverse the tree
6029
6030 2006-08-15  Chris Toshok  <toshok@ximian.com>
6031
6032         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
6033         pass manager.Current.GetType() to ParseData.  It has to be the
6034         property type.  So, hold off doing the ParseData until we're in
6035         SetPropertyValue where we know the type.  This fixes the crash in
6036         #78821 but the textbox is still empty.
6037
6038 2006-08-15  Chris Toshok  <toshok@ximian.com>
6039
6040         * DataGrid.cs:
6041         - when we're scrolling, only call Edit() again if the
6042         current cell is still unobscured. Fixes bug #78927.
6043         - when handling mousedown on a cell, ensure the cell is visible
6044         before calling Edit.
6045         - remove the properties from DataGridRow, and remove the
6046         DataGridParentRow class altogether.
6047         
6048
6049 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
6050
6051         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
6052           fire OnTextChanged by ourselves. There's no point calling base,
6053           we don't set the base value anywhere else. Fixes #78773.
6054
6055 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6056
6057         * ListBox.cs: Call CollectionChanged when modifying
6058         an item from Items indexer, to update the actual items
6059         in the list box.
6060
6061 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6062
6063         * PrintDialog.cs: Small fixes for focus and a pair of checks,
6064         to match .Net behaviour.
6065
6066 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
6067
6068         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
6069
6070 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
6071
6072         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
6073
6074 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
6075
6076         * MessageBox.cs: Prevent potential NRE exception.
6077         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
6078
6079 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
6080
6081         * MessageBox.cs: Calculate the owner of a messagebox, also make
6082           it topmost. Fixes #78753
6083
6084 2006-08-14  Chris Toshok  <toshok@ximian.com>
6085
6086         * XplatUIX11.cs: A couple of fixes so that metacity will let us
6087         programmatically move windows.  first, set the PPosition hint as
6088         well as the USPosition hint.  Second include some code from pdb
6089         that sets the window type to NORMAL when we set the transient for
6090         hint.  This is because, in the absence of a window type, metacity
6091         thinks any window with TransientFor set is a dialog, and refuses
6092         to let us move it programmatically.  fascists.
6093
6094 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
6095
6096         * XplatUIX11.cs: When setting normal hints, take into consideration
6097           an different hints previously set so we don't delete them (fixes #78866)
6098
6099 2006-08-12  Chris Toshok  <toshok@ximian.com>
6100
6101         * ToolBarButton.cs: make Layout return a boolean, if something to
6102         do with the button's layout changed.
6103
6104         * ToolBar.cs:
6105         - add another parameter to Redraw, @force, which all existing
6106           calls set to true.
6107         - make the Layout function return a boolean which is true if the
6108           layout has actually changed.  Redraw now uses this (and @force)
6109           to determine when to invalidate.  At present the only place
6110           where @force can be false is the call from OnResize, when
6111           background_image == null.  So, resizing a toolbar when the
6112           layout doesn't change results in no drawing.
6113
6114 2006-08-12  Chris Toshok  <toshok@ximian.com>
6115
6116         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
6117         the VScrollBar and HScrollbar reversed.  oops.
6118
6119         * DataGrid.cs: fix the logic that assigns sizes to the implicit
6120         scrollbars.  we were assigning them twice (once in
6121         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
6122         therefore causing two scrollbar resizes (and redraws?) to happen
6123         per grid resize.
6124
6125 2006-08-12  Chris Toshok  <toshok@ximian.com>
6126
6127         * ToolBarButton.cs: redraw the entire button if the theme tells us
6128         to.
6129
6130         * Theme.cs: add ToolBarInvalidateEntireButton.
6131
6132         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
6133         buttons, just the border.
6134
6135         * ThemeNice.cs: redraw the entire toolbar button since we need to
6136         draw the highlight image.
6137
6138         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
6139         we need to redraw the entire button (not just the border).
6140
6141 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
6142
6143         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
6144           for vertical bars. Fixes the mismatches shown by #78513
6145
6146 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
6147
6148         * FileDialog.cs: If a saved/remembered path doesn't exist
6149           anymore, fall back to "Desktop".
6150
6151 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
6152
6153         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
6154           parent. It's apparently legal to not have one
6155         * XplatUIX11.cs:
6156           - SetZOrder: Don't try to set Z-Order on an unmapped window
6157           - CreateWindow: 0,0 are legal coordinates for a window. don't move
6158             it unless the coordinates are negative
6159
6160 2006-08-10  Mike Kestner  <mkestner@novell.com>
6161
6162         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
6163         when setting to null per msdn docs.  Fixes #78854.
6164
6165 2006-08-10  Chris Toshok  <toshok@ximian.com>
6166
6167         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
6168         flickering by setting a clip rectangle on the Graphics when we
6169         need to redraw just a particular menuitem.  Also, rename "OnClick"
6170         to "OnMouseDown" to reflect what it actually is.
6171         
6172         * Form.cs: track the OnMouseDown change.
6173
6174 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
6175
6176         * CommonDialog.cs: Properly inherit the CreateParams from the form
6177           and only change what we need. Fixes #78865
6178
6179 2006-08-10  Chris Toshok  <toshok@ximian.com>
6180
6181         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
6182         flickering in flat mode (and most of the flickering in general) by
6183         only invalidating the button border (and not the entire rectangle)
6184         when the state changes.  A couple of cases still flicker:
6185         ToggleButtons, and the dropdown arrow case when the user mouse
6186         ups.
6187
6188 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
6189
6190         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
6191           for german keyboards. Numlock state shouldn't affect the behaviour
6192           of the Del key. Fixes bug #78291.
6193
6194 2006-08-10  Chris Toshok  <toshok@ximian.com>
6195
6196         * ListControl.cs: remove the items.Clear line from BindDataItems,
6197         as this is the first thing done by both subclasses in their
6198         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
6199         passed -1, refresh the list.  This gets databinding working when
6200         the datasource is set on the list before the datasource is
6201         populated (as in wf-apps/ReportBuilder.)
6202
6203         * ComboBox.cs: remove the argument to BindDataItems.  This call
6204         should really go away, and be initiated by the ListControl code.
6205
6206         * ListBox.cs: same.
6207
6208 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
6209
6210         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
6211           if no data is in the document when the control is displayed
6212
6213 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
6214
6215         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
6216           yes (fixes #78806)
6217         * TextControl.cs: 
6218           - PositionCaret: Allow positioning of caret but don't call methods 
6219             requiring a handle if the window isn't created yet
6220           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
6221           - owner_HandleCreated: Don't position the caret, just update it's 
6222             location. User might have already set a different position
6223
6224 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
6225
6226         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
6227           windows. Screws up the returned coordinates for child windows. 
6228           Fixes #78825. I'm hoping this doesn't break something, since the
6229           code was explicitly put in 8 months ago, but no bug was attached.
6230           Menus still seem to work properly.
6231
6232 2006-08-08  Chris Toshok  <toshok@ximian.com>
6233
6234         * DataGrid.cs: make BeginInit/EndInit actually do what they're
6235         supposed to do - delay data binding until the EndInit call.  Also,
6236         make the table style collection's CollectionChangeAction.Refresh
6237         work properly.
6238
6239         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
6240         (with action = Refresh) when a consituent table's MappingName is
6241         changed.
6242
6243 2006-08-08  Chris Toshok  <toshok@ximian.com>
6244
6245         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
6246         Invalidate, since changing the text can change the size of the all
6247         toolbar buttons.
6248
6249 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
6250
6251         * Form.cs (AddOwnedForm): Still need to add the form to our listif
6252           we don't have it yet
6253
6254 2006-08-08  Chris Toshok  <toshok@ximian.com>
6255
6256         * PrintControllerWithStatusDialog.cs: don't .Close() the status
6257         dialog, as this causes X errors later on, since we actually
6258         destroy the window.  Instead, .Hide() it.
6259
6260 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
6261
6262         * ComboBox.cs: Added focus reflection for popup window
6263         * XplatUIX11.cs: 
6264           - Removed transient setting for non-app windows for now, not sure it
6265             was needed
6266           - Fixed logic checking if we have captions when deciding 
6267             override_redirect, WS_CAPTION is two bits and a 0 check was not
6268             sufficient
6269           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
6270             complicated
6271         * Form.cs: 
6272           - AddOwnedForm: Don't just add the form to the list, call the property
6273             to ensure the driver is informed about the ownership as well
6274           - CreateHandle: Set the TopMost status in the driver if we have an owner
6275         * XplatUI.cs: Fixed debug statement
6276
6277 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
6278         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
6279           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
6280           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
6281           TrackBarRenderer.cs: Make constructor private.
6282         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
6283         * ProfessionalColorTable.cs: Make properties virtual.
6284
6285 2006-08-06  Duncan Mak  <duncan@novell.com>
6286
6287         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
6288         is not changing.
6289
6290 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
6291         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
6292           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
6293           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
6294           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
6295           Initial import of new 2.0 classes.
6296
6297 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
6298         * Application.cs: Add 2.0 VisualStyles properties.
6299
6300 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
6301         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6302           XplatUIX11.cs: Create property to allow access to existing private
6303           variable "themes_enabled"
6304
6305 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6306
6307         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
6308         file size, as otherwise our class libraries fail using windows. Fixes
6309         bug #78759.
6310
6311 2006-08-04  Jackson Harper  <jackson@ximian.com>
6312
6313         * Form.cs:
6314         * XplatUIX11.cs: Move the toolwindow window manager creation into
6315         the X11 driver, this way on win32 we can let windows create/handle
6316         the toolwindows.
6317
6318 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6319
6320         * PrintDialog.cs: Remove some redundant checks, add some others,
6321         clean some code, and move the focus to the text boxes when the
6322         values are incorrect.
6323
6324 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
6325
6326         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
6327
6328 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
6329
6330         * NumericUpDown.cs: Setting the Minimum and Maximum is now
6331           handled correctly. Fixes bug #79001.
6332
6333 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6334
6335         * PrintDialog.cs: The "Copies" numeric up down must have
6336         set the Minimum property to 1; only if the value is bigger
6337         than 1, activate "Collate" check box. This is the behaviour of .Net.
6338         Also modify the Document elements only if it is not null.
6339
6340 2006-08-03  Jackson Harper  <jackson@ximian.com>
6341
6342         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
6343         length. (We have a larger array then actual node count).
6344                 
6345 2006-08-03  Jackson Harper  <jackson@ximian.com>
6346
6347         * ComboBox.cs: Don't show selection by default.
6348         - The SelectAll isn't needed here, since the focus code should do
6349         that
6350         - DDL style lists to manual selection drawing, so when they
6351         get/lose focus they have to invalidate.
6352
6353 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
6354
6355         * TextBoxBase.cs: Don't always show all selections by default.
6356
6357 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
6358         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
6359           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
6360           Fixed various typos.
6361
6362 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
6363
6364         * Control.cs: Removing the controls in a ControlCollection with
6365           Clear now hides the controls as expected. Fixes bug #78804. 
6366
6367 2006-08-03  Jackson Harper  <jackson@ximian.com>
6368
6369         * Control.cs: Revert previous focus patch, it breaks reflector.
6370
6371 2006-08-03  Jackson Harper  <jackson@ximian.com>
6372
6373         * ComboBox.cs: Cleanup selection and focus with the combobox.
6374         This also eliminates some duplicated keyboard code, since now
6375         everything is handled by the main class.
6376         - Make list selection work on mouse up instead of down, to match
6377         MS.
6378
6379 2006-08-02  Jackson Harper  <jackson@ximian.com>
6380
6381         * Control.cs: Setting focus needs to go through the whole
6382         selection mechanism.
6383
6384 2006-08-02  Chris Toshok  <toshok@ximian.com>
6385
6386         * PrintPreviewDialog.cs: change MinimumSize to use
6387         base.MinimumSize so it works.
6388
6389 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
6390
6391         * TextControl.cs:
6392           - UpdateCaret: Added sanity check in case caret isn't defined yet
6393           - Line.Delete: Now updating selection and caret markers if we're
6394             transfering a node (Properly fixes #78323)
6395           - SetSelectionEnd: Added sanity check
6396         * TextBoxBase.cs: Removed broken attempt to fix #78323
6397
6398 2006-08-01  Chris Toshok  <toshok@ximian.com>
6399
6400         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
6401         Close() call is handled in Form, not here.
6402
6403 2006-08-01  Chris Toshok  <toshok@ximian.com>
6404
6405         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
6406         layout/rendering.
6407
6408         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
6409         for sizes < 100% zoom.  The code now aggressively attempts to keep
6410         from calling document.Print (), and tries not to use the scaling
6411         g.DrawImage whenever possible (it still does if you scale to >
6412         100%, since usually that involves huge images).
6413
6414         * PrintPreviewControl.cs: hook up the close button.
6415
6416 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
6417         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
6418           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
6419           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
6420           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
6421           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
6422           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
6423           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
6424           Removed [Serializable] for 2.0 Event Handlers.
6425
6426 2006-07-31  Jackson Harper  <jackson@ximian.com>
6427
6428         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
6429         * TextControl.cs: Uncomment out the body of this method.
6430
6431 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
6432
6433         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
6434           standard cursors.
6435
6436 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
6437
6438         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
6439           that embed TextBox and need selections visible even if textbox is not
6440           focused to enforce that behaviour.
6441         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
6442           selection drawing
6443
6444 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
6445
6446         * TextControl.cs:
6447           - Added new SetSelectionStart/SetSelectionEnd overloads
6448           - Fixed viewport width assignment to be accurate
6449           - Adjusted alignment line shift calculations to allow cursor on right
6450             aligned lines to be always visible at the right border (like MS)
6451         * TextBoxBase.cs:
6452           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
6453           - TextBoxBase_SizeChanged: recalculating canvas on size changes
6454           - CalculateScrollBars: Use ViewPort size instead of window size, to
6455             properly consider space occupied by the border and scrollbars 
6456             (Fixes #78661)
6457           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
6458             calculations; no longer leaves artifacts
6459           - CaretMoved: Adjusted window scrolling to match MS and fixed several
6460             calculation bugs (Still missing right/center align calculations)
6461
6462 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
6463
6464         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
6465           use of both scroll rect and clip rect, as they do the same.
6466
6467 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
6468
6469         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
6470           in the event handler (fixes #78912)
6471
6472 2006-07-31  Chris Toshok  <toshok@ximian.com>
6473
6474         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
6475         grid.ListManager.Count, since grid.ListManager might be null.
6476         This of course begs the question "why are we drawing rows for a
6477         grid with no list manager (and therefor no rows)?"  Fixes the
6478         crash in bug #78929.
6479
6480 2006-07-31  Chris Toshok  <toshok@ximian.com>
6481
6482         * RelatedPropertyManager.cs: Don't always chain up to the parent
6483         ctor.  instead, call SetDataSource if the parent's position is !=
6484         -1.  Fixes the crash in #78822.
6485
6486 2006-07-31  Chris Toshok  <toshok@ximian.com>
6487
6488         * DataGrid.cs (get_ListManager): use field instead of property
6489         accessors for datasource and datamember.
6490         (RowsCount): make internal again.
6491         (OnMouseDown): end edits before resizing columns/rows.
6492         (OnMouseUp): restart edits after resizing columns/rows.
6493
6494 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
6495
6496         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
6497           This fixes the situation where the last set cursor is displayed
6498           whenever the mouse is over scrollbars.
6499
6500 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6501
6502         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
6503         Document properties, as well as initial values.
6504
6505 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
6506
6507         * XplatUIWin32.cs (SetBorderStyle): Setting both border
6508           and ClientEdge results in a 3-pixel border, which is
6509           wrong.
6510
6511 2006-07-28  Jackson Harper  <jackson@ximian.com>
6512
6513         * TreeNodeCollection.cs: Fix the clear method.
6514         - Fix the Shrink also
6515
6516 2006-07-27  Jackson Harper  <jackson@ximian.com>
6517
6518         * TreeView.cs: Make sure the visible order is computed when we
6519         attempt to size the scrollbars (for trees that mess with the
6520         scrolling when they shouldn't.
6521         - Make sure to give the scrollbars valid values.
6522
6523 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
6524
6525         * XplatUIX11.cs: Move motion compression code to where it
6526           has less performance impact
6527
6528 2006-07-26  Jackson Harper  <jackson@ximian.com>
6529
6530         * UpDownBase.cs: When the control is selected make the child
6531         controls non selectable, so that a click on them won't do a
6532         focus/unfocus cycle.
6533         - Don't give focus to the text box when the spinner is selected.
6534         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
6535
6536 2006-07-26  Chris Toshok  <toshok@ximian.com>
6537
6538         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
6539         satisfied with this solution.  If the bitmaps are small, we should
6540         just cache them in the PrintPreviewDialog and draw them here.
6541         Also, the layout is broken for the 2-up and 3-up cases.
6542
6543         * Theme.cs: add PrintPReviewControlPaint.
6544
6545         * PrintPreviewDialog.cs: first pass implementation.
6546
6547         * PrintPreviewControl.cs: first pass implementation.  No
6548         scrollbars yet.
6549
6550         * PrintDialog.cs: only validate fields if that particular portion
6551         of the UI is enabled.  Also, set the document's controller to a
6552         PrintControllerWithStatusDialog wrapping the document's print
6553         controller.
6554
6555         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
6556         bring up a SaveFileDialog (i hope we don't want to match the
6557         behavior of the crappy windows file entry) and set the
6558         PrinterSettings.PrintFileName accordingly.
6559
6560 2006-07-26  Jackson Harper  <jackson@ximian.com>
6561
6562         * ContainerControl.cs: Add a field that disables auto selecting
6563         the next control in a container when the container is activated.
6564         * UpDownBase.cs: Don't select the text box when the up down is
6565         selected.
6566
6567 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
6568
6569         * XEventQueue.cs: Added methods for peeking (used for compression
6570           of successive events)
6571         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
6572           mouse move events (fixes #78732)
6573
6574 2006-07-25  Jackson Harper  <jackson@ximian.com>
6575
6576         * UpDownBase.cs: Use an internal class for the textbox so that we
6577         can control focus.  the updown control should always have focus,
6578         if either the text area or the buttons are clicked.
6579         - Send the key messages to the textbox, since it never actually
6580         has focus
6581         - Activate and decativate the textbox caret.
6582
6583 2006-07-24  Jackson Harper  <jackson@ximian.com>
6584
6585         * Control.cs: Use the directed select when selecting a control,
6586         this way the container controls override will get called and the
6587         whole ActiveControl chain will get triggered.  TODO: probably need
6588         to make sure this gets done everywhere instead of the old
6589         Select(Control).
6590         * ContainerControl.cs: Implement the directed Select method to
6591         find and activate the correct child control.    
6592         
6593 2006-07-22  Mike Kestner  <mkestner@novell.com>
6594
6595         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
6596         menu handling code so that clicks without a grab work too.
6597         [Fixes #78914]
6598
6599 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
6600
6601         * FileDialog.cs: Enable the BackButton when dirstack has one element.
6602           Added some small optimizations.
6603
6604 2006-07-21  Matt Hargett  <matt@use.net>
6605
6606         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
6607
6608 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
6609
6610         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
6611           tests pass and match MS in some strange border cases.
6612
6613 2006-07-21  Chris Toshok  <toshok@ximian.com>
6614
6615         * ThemeWin32Classic.cs: handle drawing of the relation links and
6616         parent row buttons.
6617
6618         * Theme.cs: change args to DataGridPaintParentRow.
6619
6620         * DataGrid.cs: Don't use controls for the relation links and
6621         parent buttons, so we have to handle all their interactions in
6622         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
6623         when we're navigating through child tables, so we can reinstate
6624         selection, expanded state, current cell, etc.
6625
6626 2006-07-20  Chris Toshok  <toshok@ximian.com>
6627
6628         * ToolBar.cs: When we redraw a button, for whatever reason,
6629         there's no reason to redraw the entire toolbar.  Also, don't call
6630         Control.Refresh from within Redraw, as it's much heavier than
6631         Invalidate (which is really what we want).
6632
6633 2006-07-20  Chris Toshok  <toshok@ximian.com>
6634
6635         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
6636         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
6637         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
6638         traces from within a debug IBindingList datasource
6639         (in mono/winforms/datagrid) for *days*, I've finally gotten things
6640         to work in a similar fashion.
6641
6642 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6643
6644         * ListBox.cs: Don't call Sort () when setting 
6645         the Sorted property to false (avoid an unnecessary sort).
6646
6647 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6648
6649         * ListControl.cs: DataSource should throw an ArgumentException
6650         instead of a normal exception when the argument is not of the 
6651         correct type.
6652
6653 2006-07-20  Mike Kestner  <mkestner@novell.com>
6654
6655         * Control.cs: add InternalPreProcessMessage to allow us to steal
6656         key events before MWF gets its paws on them.  Adapted from a
6657         suggestion by eno.
6658         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
6659         up/down/left/right navigation. Override the new internal control
6660         method to steal the events since they never make it to WndProc.
6661         * ToolBarButton.cs: don't worry about pushed when setting hilight
6662         since the drawing code prefers pushed to hilight. Invalidate on 
6663         Hilight changes. Fixes #78547 and #78525.
6664
6665 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
6666
6667         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
6668           the canvas size. Fixes #78868
6669
6670 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
6671
6672         * Splitter.cs: Track requested split position until first layout
6673           is performed. Fixes #78871
6674
6675 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
6676
6677         * Application.cs: Removed code that forces 1.x for the version
6678           number if the version started with 0. Not sure why that code was
6679           there and I couldn't find any bugs that indicated we needed it.
6680           Fixes #78869
6681
6682 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
6683
6684         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
6685           ResetDefaults(), just write some output to the console until it's
6686           implemented. Fixes bug #78907 for now. Eliminated two warnings.
6687
6688 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
6689
6690         * PropertyGridView.cs: set StartPosition of drop down forms
6691         so they appear in correct initial spot.  Fixes #78190.
6692
6693 2006-07-19  Mike Kestner  <mkestner@novell.com>
6694
6695         * ThemeWin32Classic.cs: use parent background color when drawing
6696         flat toolbars.  Restructure the conditionals to make sure non-flat
6697         non-Divider toolbars are filled too.  Fixes #78837.
6698
6699 2006-07-19  Mike Kestner  <mkestner@novell.com>
6700
6701         * ListBox.cs: Sort on collection changes even if the handle
6702         isn't created yet.  Fixes #78813.
6703
6704 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6705
6706         * ListControl.cs: DisplayMember should never be null,
6707         and now we assign String.Empty when null is passed to it (this
6708         is the .Net way).
6709
6710 2006-07-17  Mike Kestner  <mkestner@novell.com>
6711
6712         * ListViewItem.cs: restructure Font and subitem Font handling 
6713         to hold a specific font and refer back to owner on null.
6714         Fixes #78761.
6715
6716 2006-07-17  Mike Kestner  <mkestner@novell.com>
6717
6718         * ToolBar.cs: bandaid for side-effect of previous patch which was
6719         discarding explicit heights for non-AutoSize toolbars.  Need to
6720         extend my format tester to deal with AutoSize=false. Fixes #78864.
6721
6722 2006-07-15  Jackson Harper  <jackson@ximian.com>
6723
6724         * LabelEditTextBox.cs:
6725         * TreeView.cs: Use a new LabelEdit class for node editing, this
6726         class automatically 'closes' itself when it gets the enter key or
6727         loses focus.
6728         - Use the client rectangle when setting the trees scrollbars, so
6729         border style is taken into account.
6730         
6731 2006-07-14  Jackson Harper  <jackson@ximian.com>
6732
6733         * TreeNode.cs:
6734         * TreeView.cs: Make the editing work similar to MSs, firing the
6735         events correctly and ending edits correctly.
6736
6737 2006-07-14  Mike Kestner  <mkestner@novell.com>
6738
6739         * ToolBarButton.cs:
6740         * ToolBar.cs: layout restructuring and redraw enhancements to support
6741         formatting changes gracefully, like setting TextAlign, ImageList, 
6742         ButtonSize, and Appearance.  Handles explicit button sizing quirks
6743         of the MS controls.  Things like flat toolbars ignoring button size
6744         but becoming constant sized at the largest button's size.  Normal
6745         toolbars with an image set cannot be shrunk smaller than the image,
6746         but text can be clipped/ignored.
6747         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
6748         is zero.  Seems like DrawString should be smart enough to not put
6749         anything on screen though. Also trim labels and ellipsize at the char
6750         boundary, not word.
6751         Fixes #78711 and #78483.
6752
6753 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6754
6755         * FolderBrowserDialog.cs: Disable "New Folder" button and
6756           "New Folder" contextmenu menuitem if a folder like "My Computer"
6757           is selected.
6758
6759 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6760
6761         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
6762         * FolderBrowserDialog.cs:
6763           - Use MWFConfig to store and read size and position settings
6764           - Added code to create a new folder (button or context menu).
6765             Use TreeView labeledit to change the name of the new folder.
6766
6767 2006-07-14  Jackson Harper  <jackson@ximian.com>
6768
6769         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
6770         when the tree is scrolled we end editing.
6771
6772 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
6773
6774         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
6775           Down arrows
6776
6777 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
6778
6779         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
6780         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
6781         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
6782         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
6783         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
6784         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
6785         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
6786         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
6787         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
6788         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
6789         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
6790         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
6791         ListViewItemSelectionChangedEventHandler.cs,
6792         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
6793         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
6794         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
6795         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
6796         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
6797         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
6798         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
6799         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
6800         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
6801         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
6802         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
6803         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
6804         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
6805         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
6806         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
6807         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
6808         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
6809         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
6810         WebBrowserNavigatingEventHandler.cs, 
6811         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
6812
6813 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
6814
6815         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
6816         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
6817         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
6818         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
6819         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
6820         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
6821         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
6822         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
6823         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
6824         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
6825         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
6826         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
6827         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
6828         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
6829         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
6830         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
6831         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
6832         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
6833         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
6834         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
6835         ListViewItemStates.cs, MaskFormat.cs: Added
6836
6837 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
6838
6839         * PropertyGridView.cs: Fix keyboard navigation of drop down.
6840         Patch from eno for bug 78558.
6841         
6842 2006-07-13  Jackson Harper  <jackson@ximian.com>
6843
6844         * TreeView.cs: When an edit is finished make sure that the
6845         selected node is visible.
6846         - When setting the top/bottom use the scrollbars is_visible, so
6847         everything will be set correctly even if the tree isn't visible
6848         yet.
6849
6850 2006-07-13  Jackson Harper  <jackson@ximian.com>
6851
6852         * ComboBox.cs: Revert the item->index part of my previous patch.
6853         * TreeView.cs: Use LostFocus instead of Leave for detecting when
6854         the edit box has lost focus (duh).
6855         - Just make the edit box not visible when we get return, that will
6856         take the focus, which will call EndEdit
6857         * TreeNode.cs When we start editing, notify the treeview.
6858
6859 2006-07-12  Jackson Harper  <jackson@ximian.com>
6860
6861         * ComboBox.cs: Clear out old items before setting the item list.
6862         This prevents databound controls from having their items added
6863         twice.
6864         - Switch the combobox to use indices whereever possible instead of
6865         using Item's.  This allows usto navigate through lists that have
6866         more then one item with the same string value (ie a, b, b, a).
6867         - Scroll the listboxes scrollbar when a non visible item is
6868         highlighted
6869         - Allow keypress to cycle through all the possible values. For
6870         example if you have b1, b2, b3 and hold down the B key all the
6871         values will be cycled through.
6872         
6873 2006-07-12  Jackson Harper  <jackson@ximian.com>
6874
6875         * TextBoxBase.cs:
6876         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
6877         this using the internal methods.
6878         * Control.cs: Add OnGotFocusInternal.  A new method that allows
6879         controls to "override" OnGotFocus and change focus behavior if
6880         needed.
6881         - Same thing for LostFocus
6882         * ComboBox.cs: Pass off focus to the text control properly.
6883
6884 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
6885
6886         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
6887         * FolderBrowserDialog.cs: Almost a complete rewrite.
6888           - Better support for Environment.Specialfolders
6889           - Added support for MWFVFS
6890           - Made setting SelectedPath work
6891
6892 2006-07-12  Jackson Harper  <jackson@ximian.com>
6893
6894         * Control.cs: Optimze getting all the controls.
6895
6896 2006-07-11  Jackson Harper  <jackson@ximian.com>
6897
6898         * ContainerControl.cs: Override SETFOCUS in the container control,
6899         so that it is not selected on mouse click.
6900
6901 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
6902
6903         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
6904           Hopefully we will have a better way once all of focus is complete.
6905
6906 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
6907
6908         * ThemeWin32Classic.cs: Commented out some debug code and fixed
6909           a compile error with csc.
6910
6911 2006-07-11  Jackson Harper  <jackson@ximian.com>
6912
6913         * Control.cs: When hiding a control only select the next control
6914         if the current control was focused.
6915         - Don't handle enter/leave when setting/killing focus, this is
6916         done by the container control.
6917         - Remove is_selected, it's not needed anymore.
6918         - Add utility methods for selecting a child control, and for
6919         firing the Enter/Leave events.
6920         * ContainerControl.cs: When a control is activated fire the
6921         enter/leave events.
6922         - Don't wrap when processing the tab key, so that focus can be
6923         moved outside of the container.
6924         - Use the correct active control
6925
6926 2006-07-11  Jackson Harper  <jackson@ximian.com>
6927
6928         * ComboBox.cs: Remove some debug code that was blinding me.
6929         * UpDownBase.cs: These controls actually aren't implicit, they are
6930         visible to the user.
6931
6932 2006-07-10  Chris Toshok  <toshok@ximian.com>
6933
6934         * DataGrid.cs: move back to the is_adding boolean field.  god i
6935         hate this is_editing/is_adding/is_changing stuff.
6936
6937 2006-07-10  Chris Toshok  <toshok@ximian.com>
6938
6939         * DataGridTableStyle.cs: just check if the property type is bool.
6940         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
6941         Don't use CanRenderType.
6942
6943         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
6944         if our text == NullText.  Remove CanRenderType.
6945
6946         * DataGridBoolColumn.cs: nuke CanRenderType.
6947
6948         * DataGrid.cs: reenable some code to end the current edit inside
6949         of set_CurrentCell.  This fixes the other 1.1.16 regression.
6950         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
6951         Also, remove the visible_row_count arg from CalcRowHeaders, since
6952         we don't need to worry about the actual height of the area.
6953
6954 2006-07-10  Chris Toshok  <toshok@ximian.com>
6955
6956         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
6957         mode, just return.
6958
6959         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
6960         the real sense of the IsInEditOrNavigateMode property (true =
6961         navigate, false = edit).  Also, update OnKeyPress to reflect this.
6962
6963         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
6964         column style exists, we still need to set its property descriptor
6965         to match up with our list manager.
6966
6967 2006-07-10  Chris Toshok  <toshok@ximian.com>
6968
6969         * ThemeWin32Classic.cs: implement the new row/header painting
6970         approach.  The parent row painting will likely go away and
6971         replaced with label controls, but the rest seems to work ok (and
6972         efficiently).
6973
6974         * Theme.cs: change the way we draw datagrid rows.  we don't draw
6975         the row headers as a block now.  Instead we draw them in the
6976         normal draw-row loop.  Add some calls for drawing parent rows and
6977         relation rows.
6978
6979         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
6980         a default table style.  Set the defaults from ThemeEngine.Current,
6981         not SystemColors.  Fix lots of misc issues with property setters.
6982
6983         * DataGrid.cs: move loads of style information out of this class
6984         as it's being duplicated with DataGridTableStyle.  keep track of a
6985         special DataGridTableStyle for the properties we used to mirror
6986         here.  Switch all the style properties to access this table style
6987         instead of instance fields of this class.  Also add a internal
6988         class to represent parent rows (more needs to be stored here, like
6989         the selection state from the parent table, as well as the
6990         expansion state.)  Also, for datasources with relations, do the
6991         right thing for collapse/expand, and add support for the
6992         navigation/parent row buttons.
6993
6994         Lastly, fix the crash in the 1.1.16 build.
6995
6996         * GridTableStylesCollection.cs: make the explicit interface
6997         implementations call the class's methods as opposed to duplicating
6998         them.
6999
7000         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
7001         0 so the text doesn't jump around when we move the cursor.
7002
7003 2006-07-10  Jackson Harper  <jackson@ximian.com>
7004
7005         * TextBoxBase.cs:
7006         * ListBox.cs: Match MS's ToString (this makes debugging focus
7007         stuff infinitely easier).
7008
7009 2006-07-10  Jackson Harper  <jackson@ximian.com>
7010
7011         * Control.cs (SelectNextControl): When checking the control's
7012         parent use this instead of ctrl.parent so that null can be passed
7013         to SelectNextControl. (I have unit tests for this).
7014         - Remove unused var.
7015
7016 2006-07-10  Chris Toshok  <toshok@ximian.com>
7017
7018         * CurrencyManager.cs: correct one regression, the removal of the
7019         finalType field.  Also, add a MonoTODO on CanAddRows, implement
7020         Refresh() correctly, and fix some event emission in
7021         ListChangedHandler.
7022
7023 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
7024
7025         * FileDialog.cs: Don't use brackets for new folders if they exist
7026           under *nix. Instead use -(number of existing folders +1).
7027
7028 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
7029
7030         * FileDialog.cs:
7031           - Fixed really nasty bug #78771
7032           - Don't block the whole GUI when reading directories with a lot of
7033             entries. Use an other thread instead and call BeginInvoke to
7034             update the ListView in MWFFileView
7035
7036 2006-07-07  Chris Toshok  <toshok@ximian.com>
7037
7038         * Control.cs (Dispose): release any Capture when disposing.
7039
7040 2006-07-07  Chris Toshok  <toshok@ximian.com>
7041
7042         * LinkLabel.cs (Select): if we chain up to the parent, set
7043         focused_index to -1 so we'll search for the first available link
7044         the next time the user tabs into us.  Also, if the direction is
7045         backward and focused_index == -1, start the search from the last
7046         element.
7047
7048 2006-07-07  Chris Toshok  <toshok@ximian.com>
7049
7050         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
7051         is beyond the end of the text, don't do anything.
7052         (CreateLinkPieces): set our ControlStyles.Selectable based on
7053         whether or not we have any links.
7054         (Link.Invalidate): use a loop instead of foreach.
7055         (Link.set_Start): null out owner.sorted_links so it'll be
7056         recreated by CreateLinkPieces.
7057
7058 2006-07-06  Chris Toshok  <toshok@ximian.com>
7059
7060         * LinkLabel.cs: revert the SetStyle change.
7061
7062 2006-07-06  Chris Toshok  <toshok@ximian.com>
7063
7064         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
7065         (OnEnableChanged): s/Refresh/Invalidate
7066         (OnGotFocus): if we have a focused index already, refocus it (so
7067         if we mouse out/in to the window it'll focus the right link).
7068         (OnKeyDown): move the tab handling out of here.
7069         (OnLostFocus): don't set focused_index to -1, so we can refocus it
7070         when we lose focus.
7071         (OnMouseDown): don't Capture here - Control handles it.  Also,
7072         focus the active link.
7073         (OnMouseUp): don't deal with Capture.
7074         (OnPaintBackgroundInternal): remove.
7075         (OnTextAlignChanged): CreateLinkPieces before calling the
7076         superclass's method.
7077         (OnTextChanged): call CreateLinkPieces before calling superclass's
7078         method.
7079         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
7080         move around.
7081         (Select): implement this, moving the selection between different
7082         links, and call parent.SelectNextControl if we don't have another
7083         link to focus in the given direction.
7084         (CreateLinkPieces): call Invalidate instead of Refresh.
7085         
7086 2006-07-06  Chris Toshok  <toshok@ximian.com>
7087
7088         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
7089         new LinkLabel internals.
7090
7091         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
7092         over pieces looking for active/focused/etc links.  also, deal with
7093         runs of text (and links) with embedded \n's in them, and use
7094         MeasureCharacterRanges instead of MeasureString to figure out the
7095         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
7096         two-step.
7097
7098 2006-07-04  Jackson Harper  <jackson@ximian.com>
7099
7100         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
7101         XKB or key auto repeat, do it manually.  Without key auto repeat,
7102         when a key is held down we get key press, key release, key press,
7103         key release, ... with auto repeat we get key press, key press, key
7104         press ..., and then a release when the key is actually released.
7105
7106 2006-07-03  Jackson Harper  <jackson@ximian.com>
7107
7108         * TabControl.cs:
7109         * ThemeWin32Classic.cs: Tabs do not obey normal background color
7110         rules, they are always control color regardless of the background
7111         color.
7112
7113 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
7114
7115         * FileDialog.cs: Added internal class MWFConfig.
7116           Removed Registry support and replaced it with support for the new
7117           MWFConfig class. See MWFConfig comments for more information.
7118
7119 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
7120
7121         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
7122           rectangle. Added some patches from eno from bug #78490 and fixed
7123           the arrow position for small up and down CPDrawScrollButtons.
7124
7125 2006-06-30  Jackson Harper  <jackson@ximian.com>
7126
7127         * InternalWindowManager.cs: Remove some debug code.
7128         * Form.cs: When an MdiParent is set to null, the window is
7129         "detatched" and becomes a normal window.
7130         * MdiClient.cs: Don't bring the new child form to the front until
7131         it is activated (setting it as active does this), this makes the
7132         previously active forms titlebar get redrawn as inactive.
7133
7134 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
7135
7136         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
7137           with later controls
7138
7139 2006-06-29  Mike Kestner  <mkestner@novell.com>
7140
7141         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
7142         arrow in keynav state.  Fixes #78682.
7143
7144 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
7145
7146         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
7147           order (fixes #78393)
7148
7149 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
7150
7151         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
7152           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
7153           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
7154           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
7155           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
7156           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
7157           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
7158           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
7159           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
7160           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
7161           enumerations (FlagsAttribute, SerializableAttribute, added/removed
7162           values)
7163
7164 2006-06-28  Mike Kestner  <mkestner@novell.com>
7165
7166         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
7167
7168 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
7169
7170         * PropertyGrid.cs,
7171           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
7172           item lines from other area (It also makes BackColor consistent and
7173           compatible with .NET). Fixed bug #78564.
7174
7175 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
7176
7177         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
7178         Patch from Eno for #78555.
7179
7180 2006-06-27  Chris Toshok  <toshok@ximian.com>
7181
7182         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
7183
7184         * DataGridColumnStyle.cs: same.
7185
7186         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
7187         
7188         * DataGridDrawingLogic.cs: nuke.
7189
7190 2006-06-27  Chris Toshok  <toshok@ximian.com>
7191
7192         * DataGridTableStyle.cs: clean up the constructors, and build the
7193         list of child relations for this table.  I have no idea if this is
7194         where we should be doing it (it probably isn't), but since we're
7195         already iterating over the properties..
7196
7197         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
7198         struct and array for keeping track of row information, similar to
7199         what's shown in a hack on
7200         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
7201
7202         * Theme.cs: be consistent about the naming of DataGrid methods,
7203         prefering ColumnWidths and RowHeights over columnsWidths and
7204         RowsHeights.
7205
7206         * ThemeWin32Classic.cs: same, and also add support for variable
7207         sized rows (and the +/- expansion icons for related rows).
7208
7209 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
7210
7211         * TextBoxBase.cs: Applied Eno's patch from #78660
7212
7213 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
7214
7215         * Form.cs (ScaleCore): We don't want to scale our form if it's
7216           state is minimized or maximized, but we still need to scale our
7217           child windows. Also, added try/finally block to ensure layout
7218           gets reset (Fixes #78697)
7219
7220 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
7221
7222         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
7223
7224 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
7225
7226         * Form.cs: Fixed c+p error and added check to resize form if minimum
7227           size is bigger than current size (Fixes #78709)
7228
7229 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
7230
7231         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
7232
7233 2006-06-26  Mike Kestner  <mkestner@novell.com>
7234
7235         * ComboBox.cs: only do Keypress handling in the combo when there  
7236         are items in the collection. Fixes #78710.
7237
7238 2006-06-26  Chris Toshok  <toshok@ximian.com>
7239
7240         * Binding.cs: make this work bi-directionally.  also, clear up
7241         other mixups between Push/Pull Data (e.g. we're supposed to pull
7242         data when validating).
7243
7244         * BindingManagerBase.cs: trim some fully qualified collection
7245         types.
7246
7247         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
7248
7249 2006-06-23  Chris Toshok  <toshok@ximian.com>
7250
7251         * PropertyManager.cs: It appears (according to the unit tests)
7252         that PropertyManager doesn't use
7253         PropertyDescriptor.AddValueChanged to track propery value changes
7254         in its datasource, but uses the same scheme as Binding, where it
7255         looks for a <Property>Changed event and binds to it.
7256
7257         Also, according to the docs, IsSuspended always returns false for
7258         a property manager with a non-null datasource.
7259
7260 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
7261
7262         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
7263           need to update the actual DialogResult. (Fixes #78613)
7264
7265 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
7266
7267         * Form.cs (ShowDialog): Release any captures before running the
7268           new message pump (fixes #78680)
7269
7270 2006-06-22  Mike Kestner  <mkestner@novell.com>
7271
7272         * ListView.cs: Layout column widths properly in details mode even 
7273         if HeaderStyle.None is set.  Fixes #78691.
7274
7275 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
7276
7277         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
7278
7279 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
7280
7281         * Control.cs (ContainsFocus): Using new driver method to get focused
7282           window, instead of trying to use internal tracking var, which can
7283           recursion issues (Fixes #78685)
7284         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
7285           XplatUIWin32.cs: Added GetFocus method to return focused window
7286
7287 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7288
7289         * ColorDialog.cs: when the mouse button is pressed inside the color
7290         matrix, don't let the cursor move out of it until the button is
7291         released, which is the behavior on windows. Changed 'colours' by
7292         'colors' to use the same word consistently.
7293
7294 2006-06-21  Chris Toshok  <toshok@ximian.com>
7295
7296         * DataGrid.cs: add in some basic navigation stuff (navigating to a
7297         child relation and back, using a stack).  Also, remove
7298         GetDataSource and the code that calls it - it's not needed.  Also,
7299         track CurrencyManager.ListName's removal.
7300
7301 2006-06-21  Chris Toshok  <toshok@ximian.com>
7302
7303         * CurrencyManager.cs: push some of the original type checking from
7304         BindingContext.CreateBindingManager to here, and remove some of
7305         the finalType stuff.  Need more tests to make sure I've got the
7306         ListName part right, and we might need more in SetDataSource.
7307
7308         * PropertyManager.cs: add a ctor that takes just the datasource,
7309         and no property name.  Make SetDataSource work with a null
7310         property_name, and make Current return the data_source if the
7311         property descriptor is null.  this makes 'string foo = "hi";
7312         BindingContext[foo].Current' return "hi" as it should.
7313
7314         * RelatedCurrencyManager.cs: make this code more generic - there's
7315         no reason the parent manager has to be CurrencyManager, and
7316         there's no reason to pass the DataRelation.  It suffices to use a
7317         BindingManagerBase and PropetyDescriptor.
7318
7319         * RelatedPropertyManager.cs: make a similar change here.
7320         
7321         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
7322         flower I knew it could be.
7323
7324 2006-06-20  Chris Toshok  <toshok@ximian.com>
7325
7326         * PropertyManager.cs: the PropertyChangedHandler is invoked when
7327         data in the source has changed and we need to update the control,
7328         so s/PullData/PushData.
7329
7330         * CurrencyManager.cs: Refresh is meant to update the control from
7331         data in the datasource.  So, s/PullData/PushData.
7332
7333         * BindingContext.cs: add more ugliness (we weren't handling the
7334         case where data_source = DataTable and data_member = column_name).
7335
7336         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
7337         from the perspective of the datasource.  PullData pulls from the
7338         control, PushData pushes to the control.
7339
7340 2006-06-20  Chris Toshok  <toshok@ximian.com>
7341
7342         * BindingContext.cs: rewrite the CreateBindingManager code to
7343         handle navigation paths more or less properly.  This could
7344         definitely stand some more work, in particular to push the
7345         recursion up to the toplevel.  But that relies on fixes in other
7346         places (System.Data comes to mind).
7347
7348         Also, move to a flat hashtable (and encode the twolevel nature of
7349         the dictionary into the hash key).  This lets us implement the
7350         IEnumerable.GetEnumerator method.
7351
7352         * RelatedCurrencyManager.cs: new class.  Update our view based on
7353         our relation and our parent CurrencyManager's position.
7354
7355         * CurrencyManager.cs: split out some logic from the ctor into
7356         SetView, so it can be called from the new RelatedCurrencyManager
7357         subclass.
7358
7359         * RelatedPropertyManager.cs: new class.  Update our datasource
7360         based on the position of our parent CurrencyManager.
7361
7362         * PropertyManager.cs: split out some logic from the ctor into
7363         SetDataSource, so it can be called from the new RelatedDataSource
7364         subclass.  Also, make the Current getter return the value
7365         of the PropertyDescriptor, not the data_source.
7366
7367         * Binding.cs: no need to duplicate the string splitting code here.
7368
7369 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
7370
7371         * Control.cs:
7372           - set_Enabled: OnEnabledChanged is not called if the inherited state 
7373             of the control is not altered, even though  we might be changing the
7374             internal state of the control (#78458)
7375           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
7376             OnEnabledChanged, to allow easy altering of any child window state
7377           - OnEnabledChanged: Added code to enable/disable driver window state
7378           - OnParentEnabledChanged: Instead of firing the event, call 
7379             OnEnabledChanged, which will fire the event and also a) set driver
7380             window state and pass the enabled state to any grandchildren (#78458)
7381
7382 2006-06-19  Jackson Harper  <jackson@ximian.com>
7383
7384         * InternalWindowManager.cs: We don't set the cursor explicitly
7385         thats done via the response to NCHITTESTs.
7386         - Don't need to adjust for titlebar heights anymore, the
7387         coordinates are coming in the correct coordinates now (see peters
7388         last patch).
7389
7390
7391 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
7392
7393         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
7394           being translated relative to whole window, instead of client window.
7395           That caused broken offsets on mouseclick (and caused gas for our
7396           InternalWindowManager)
7397
7398 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
7399
7400         * TextControl.cs:
7401           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
7402           - Undo(): Added replay of cursor move on DeleteChars action; added
7403             calling Undo() again if a recorded cursor move is invalid (to
7404             ensure that some action is performed on Undo)
7405         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
7406
7407 2006-06-16  Jackson Harper  <jackson@ximian.com>
7408
7409         * MdiClient.cs: Instead of just sizing maximized windows when
7410         there is a resize we also have to adjust the Y of minimized
7411         windows, so they stay pinned to the bottom of the mdi container.
7412         - Eliminate separate tracking of the active control, we can just
7413         get this from the controls collection.
7414         - Paint the decorations for the newly activated titlebar so we get
7415         a pretty blue bar.
7416         * InternalWindowManager.cs:
7417         * ThemeWin32Classic.cs: Minimized windows get all three buttons
7418         even if they are a tool window.
7419         
7420 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
7421
7422         * TextControl.cs (Undo): Handle non-existent cursor locations in the
7423           undo buffer, these can happen when text was deleted and the cursor
7424           was recorded first. Since we will also have a recorded cursor
7425           after the delete this is not an issue. (Fixes #78651)
7426
7427 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
7428
7429         * AccessibleObject.cs: Remove dependence on Control.is_selected;
7430           instead properly track control states internally (allows us to
7431           remove is_selected from Control)
7432
7433 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7434
7435         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
7436         whose width is not a multiple of 8.
7437
7438 2006-06-13  Jackson Harper  <jackson@ximian.com>
7439
7440         * MdiClient.cs:  Only maximize the next child if the current one
7441         is maximized.
7442
7443 2006-06-13  Chris Toshok  <toshok@ximian.com>
7444
7445         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
7446         modified.  Also, guard against grid or grid_drawing being null in
7447         Invalidate.
7448
7449         * DataGrid.cs: Reformat tons of getters/setters.  In the
7450         DataMember setter, just call SetNewDataSource instead of
7451         duplicating some of its functionality.  In SetNewDataSource, don't
7452         check ListManager for null, since the property getter creates the
7453         object if needed.
7454
7455         * DataGridTableStyle.cs: don't set TableStyle or call
7456         SetDataGridInternal on the column here, it's done in
7457         GridColumnStylesCollection.Add.
7458
7459         * GridColumnStylesCollection.cs: fix all the explicit interface
7460         implementations to just call our methods.  Nuke AddInternal() and
7461         move the body of it to Add().  Also, add a call to
7462         column.SetDataGridInternal to Add().
7463
7464         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
7465         base()+duplicate code.  Also, use the Format property instead of
7466         format to generate an Invalidate ala MS.  Lastly, create the
7467         textbox here, unconditionally.
7468         (set_Format): call Invalidate.
7469         (get_TextBox): no need to call EnsureTextBox.
7470         (Commit): remove the message box.
7471         (Edit) remove the call to EnsureTextBox.
7472         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
7473         (EnterNullValue): no need to check textbox for null.
7474         (HideEditBox): no need to check textbox for null.
7475         (SetDataGridInColumn): add the textbox to the grid's controls.
7476         (EnsureTextBox): nuke.
7477         
7478 2006-06-13  Jackson Harper  <jackson@ximian.com>
7479
7480         * MdiWindowManager.cs: Hook up to the maximized menus paint event
7481         and redraw the buttons when needed. Unhook when the window is
7482         unmaximized.
7483         * MainMenu.cs: Add an internal Paint event, the mdi window manager
7484         needs this so that it can redraw its buttons when the menu is
7485         repainted.
7486         * InternalWindowManager.cs:
7487         * Form.cs: The method order has changed for DrawMaximizedButtons,
7488         so that it can be a PaintEventHandler.
7489         
7490 2006-06-13  Jackson Harper  <jackson@ximian.com>
7491
7492         * MdiClient.cs: When we close a maximized mdi window, the next mdi
7493         window is activated and maximized, even if it wasn't before.
7494         - When  a new window is activated repaint the decorations of the
7495         old one, so that it no longer has the Active "look" (the blue
7496         titlebar).
7497         * InternalWindowManager.cs: Open up CreateButtons to base classes
7498         so they can recreate the buttons on state changes.
7499         - If a window is maximized give it all three buttons
7500         * MdiWindowManager.cs: Create the titlebar buttons when the state
7501         is changed, this is needed because a toolwindow will not have all
7502         three buttons until it is maximized.
7503
7504 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
7505
7506         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
7507           Fixed bug #78609.
7508
7509 2006-06-12  Jackson Harper  <jackson@ximian.com>
7510
7511         * KeysConverter.cs: Make sure we handle the Ctrl special case
7512         if its the only key.
7513         
7514 2006-06-12  Jackson Harper  <jackson@ximian.com>
7515
7516         * Theme.cs: Add a method to get the size of a managed window
7517         toolbar button.
7518         * InternalWindowManager.cs: Remove the ButtonSize property, this
7519         should be retrieved from the theme.
7520         * MdiWindowManager.cs: Get the button size from the theme
7521         * ThemeWin32Classic.cs: Make the method to get the managed window
7522         titlebar button size public.
7523         - Handle the different button sizes of maximized toolwindows
7524         (should match any maximized window).
7525         - Get the titlebar height from the theme, not the WM (which gets
7526         it from the theme).
7527
7528 2006-06-12  Jackson Harper  <jackson@ximian.com>
7529
7530         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
7531         event down to the mdi window manager.
7532         - Expose some extra stuff to base classes
7533         - Make sure to end the Capture on an NC Mouse up, so that we can
7534         get double clicks properly, and the sizing doens't stick.
7535         - When doing PointToClient contain it in the workable desktop
7536         area, this prevents windows from changing size when the cursor is
7537         pulled outside of the working area while sizing.
7538         * MdiWindowManager.cs: When we get a double click maximize the
7539         window.
7540         - Reset the cursor after handling mode changes.
7541
7542 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
7543
7544         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
7545           current desktop, instead of just assuming a 0, 0 origin. This
7546           is needed for our internal window manager, to know the top
7547           margin of the desktop
7548
7549 2006-06-12  Chris Toshok  <toshok@ximian.com>
7550
7551         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
7552         we need this to get rid of the selected background in the bool
7553         column.
7554         (CancelEditing): move the ConcedeFocus call to above the Abort
7555         call.  Also, set is_changing to false and invalidate the row
7556         header if we were changing before.
7557         (ProcessKeyPreviewInternal): remove, since noone outside this
7558         class calls it anymore.  Roll the code into ProcessKeyPreview.
7559         (EndEdit): remove the internal version.
7560         (InvalidateCurrentRowHeader): make private.
7561
7562         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
7563         Keys.Escape handling (and with it the last call to
7564         DataGrid.EndEdit from outside the class.)
7565
7566
7567 2006-06-12  Chris Toshok  <toshok@ximian.com>
7568
7569         * DataGridTextBox.cs (.ctor): isedit defaults to false.
7570         (OnKeyPress): set isedit to true.
7571         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
7572         already handled by the grid.
7573
7574         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
7575         right.  ugh.
7576         (set_DataSource): SetDataSource always returns true, so stop
7577         putting it in an if statement.
7578         (EndEdit): get rid of some {}'s
7579         (ProcessGridKey): return true in case Keys.Escape.
7580         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
7581         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
7582         PositionChanged, stopped connecting to CurrentChanged.
7583         (GetDataSource): simplify this a bunch.
7584         (SetDataSource): change return type from bool to void.
7585         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
7586         to this, and make sure we don't set ListManager.Position inside
7587         set_CurrentCell.
7588         (OnListManagerItemChanged): if we're passed an actual index,
7589         redraw that row.
7590
7591         * CurrencyManager.cs (set_Position): don't call PullData here.
7592
7593 2006-06-09  Jackson Harper  <jackson@ximian.com>
7594
7595         * TreeNode.cs:  Recalculate the visible order before doing the
7596         Expand/Collapse Below calls, because those calls generate an
7597         expose.
7598         - Reduce calls to the TreeView property, which is mildly expensive
7599         by using a local var.
7600         * Form.cs: Layout the MDI child windows when creating the parent
7601         form.
7602         - Don't use the internal constructor anymore
7603         * MdiClient.cs: use the parent form width/height (if available)
7604         when laying out the child windows, we do this because the
7605         mdiclient isn't docked yet when the initial layout is done.
7606         - Don't need an internal constructor anymore.
7607
7608 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7609
7610         * FileDialog.cs: handle access errors when trying to create a folder
7611         or changing to a directory. No need to initialize out parameters.
7612
7613 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7614
7615         * FileDialog.cs: Append a number when creating a new folder if the
7616           folder already exists (use parenthesis instead of square brackets)
7617
7618 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7619
7620         * FileDialog.cs:
7621           - Disabled registry support for windows and added better registry
7622             error checking for other systems (need to investigate why it
7623             works perfectly on my system)
7624           - If a folder already exist show an error MessageBox instead of
7625             trying to create an indexed name.
7626           - Fixed a non intentional typo.
7627
7628 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7629
7630         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
7631
7632 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7633
7634         * FileDialog.cs: When creating a new folder don't crash if the
7635           folder already exists.
7636
7637 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7638
7639         * FileDialog.cs: Allmost a complete rewrite.
7640           - added a "virtual" file system that handles the differences
7641             between unix and windows file systems (especially the directory
7642             structure). Moved most of the directory and file handling code
7643             into the vfs.
7644             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
7645             UnixFileSystem and FSEntry.
7646           - Recently used folder/directory, size, location and used file names
7647             (file name ComboBox) are now stored in the registry and get read
7648             before the dialog shows up (fixes part 6 of bug #78446).
7649           - Creation of new folders/directories is now possible (context menu
7650             or ToolBar). Added TextEntryDialog for this that fills in the gap
7651             until ListView.LabelEdit works.
7652           - Fixed cursor handling (bug #78527) and focus handling for
7653             PopupButtonPanel
7654           - Various "Search in" ComboBox enhancements. The content of the
7655             dropdown listbox now almost matches ms.
7656           - Changed the behaviour when the user switches to SpecialFolder
7657             Recent to show the ListView in View.Details.
7658           - Beside using the ToolBar to change the View property of the
7659             file ListView it is now possible to use the context menu too.
7660
7661 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
7662
7663         * ComboBox.cs: Don't create a new ObjectCollection when an item
7664           gets inserted. Just insert the item in the existing object_items
7665           ArrayList.
7666
7667 2006-06-08  Jackson Harper  <jackson@ximian.com>
7668
7669         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
7670         that the treeview and root node checks are done also, this fixes a
7671         regression i caused in the unit tests.
7672
7673 2006-06-07  Wade Berrier <wberrier@novell.com> 
7674
7675         * RichTextBox.cs: More ISO8859-1 -> unicode
7676
7677 2006-06-07  Mike Kestner  <mkestner@novell.com>
7678
7679         * ComboBox.cs : use items to hold highlight/selection so that
7680         collection insertions don't require synchronization.
7681
7682 2006-06-07  Jackson Harper  <jackson@ximian.com>
7683
7684         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
7685         routine.  We now always keep the sized edge at the cursor instead
7686         of computing movement and adjusting rects.  There is one buglet
7687         with this method though when the cursor is moved over area that
7688         the window can not expand too (such as the toolbars on the desktop).
7689
7690 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7691
7692         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
7693         here. Fixes crash on startup in AlbumSurfer.
7694
7695 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
7696
7697         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
7698           values
7699
7700 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7701
7702         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
7703         statement to avoid calling XNextEvent which will block if another thread
7704         took the event that we were expecting. Fixes bug #78605.
7705
7706 2006-06-07  Mike Kestner  <mkestner@novell.com>
7707
7708         * ListView.cs : isolated checkbox clicking from the selection logic.
7709         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
7710
7711 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7712
7713         * Form.cs: Check that the value passed to Form.DialogResult
7714         is a valid enum value.
7715
7716 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7717
7718         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
7719         Computer'. Clicking it in the network view goes to 'My Computer'.
7720         Added CIFS filesystem type. Display the mount point of filesystems.
7721         Avoid duplicate mount points (happens for me with CIFS);
7722
7723 2006-06-06  Jackson Harper  <jackson@ximian.com>
7724
7725         * InternalWindowManager.cs: Draw the maximized windows buttons
7726         when resizing.
7727
7728 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7729
7730         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
7731         all other dialogs. Fixes bug #78585.
7732
7733 2006-06-06  Mike Kestner  <mkestner@novell.com>
7734
7735         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
7736         Only invalidate checkbox on checkstate changes to avoid flicker.
7737         * ListBox.cs : avoid unselect/select when clicking selected item.
7738         avoid reselection flicker for already multiselected items.
7739         Fixes #78382.
7740
7741 2006-06-06  Jackson Harper  <jackson@ximian.com>
7742
7743         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
7744         the parent form so that the menu is removed if needed.
7745
7746 2006-06-06  Mike Kestner  <mkestner@novell.com>
7747
7748         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
7749         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
7750
7751 2006-06-06  Mike Kestner  <mkestner@novell.com>
7752
7753         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
7754
7755
7756 2006-06-06  Jackson Harper  <jackson@ximian.com>
7757
7758         * Control.cs: Use the property (instead of the field) to get the
7759         default cursor so it is instantiated correctly.
7760         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
7761         resizes so we need to manually repaint the window decorations here.
7762         - Set the titlebar button locations as soon as they are created,
7763         otherwise they are not set correctly on win32.
7764         
7765 2006-06-06  Chris Toshok  <toshok@ximian.com>
7766
7767         * CurrencyManager.cs (set_Position): call PullData before
7768         OnCurrentChanged.
7769         (AddNew): after calling IBindingList.AddNew, update our
7770         listposition, and call OnCurrentChanged/OnPositionChanged (without
7771         calling PullData).
7772         (OnCurrentChanged): remove the call to PullData from here.
7773         (OnItemChanged): remove the call to PushData from here.
7774         (OnPositionChanged): change the test from == null to != null to
7775         match the other methods.
7776         (ListChangedHandler): the grossest part of the patch.  Implement
7777         this such that it passes the unit tests in CurrencyManagerTest and
7778         the output more or less matches that of MS's implementation.
7779  
7780 2006-06-06  Mike Kestner  <mkestner@novell.com>
7781
7782         * ListView.cs : only update check state on single click.
7783         * ThemeWin32Classic.cs : fix focus drawing for details view without
7784         fullrowselect.  Fixes #78454.
7785         * XplatUIX11.cs : fix for double click emission.
7786
7787 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
7788
7789         * PropertyGridView.cs : Applied Atsushi's patch to fix
7790         font dialog bug  (#78197).
7791
7792 2006-06-05  Jackson Harper  <jackson@ximian.com>
7793
7794         * TreeNode.cs: Compute the next node for expanding/collapsing
7795         correctly. We now factor in nodes without a NextNode
7796         correctly. (Fixes somes cases in nunit-gui).
7797         * InternalWindowManager.cs: Set the bounds when updating the
7798         virtual position of a tool window.
7799         
7800 2006-06-05  Chris Toshok  <toshok@ximian.com>
7801
7802         * DataGrid.cs: rename cached_currencymgr to list_manager.
7803         (set_CurrentCell): move SetCurrentCell code here, and clean it up
7804         some.
7805         (CurrentRow, CurrentColumn): single accessors so we can make the
7806         cursor movement code a lot easier to understand.
7807         (CurrentRowIndex): implement this in terms of CurrentRow.
7808         (BeginEdit): clean this up a bit.
7809         (CancelEditing): sort out the is_editing/is_changing/is_adding
7810         stuff a little.
7811         (EndEdit): minor changes.
7812         (OnKeyDown): add a comment about a (most likely) unnecessary
7813         check.
7814         (OnMouseDown): cancel editing when we click on a row header.  And
7815         use the CurrentRow setter, not CurrentCell.
7816         (ProcessDialogKey): directly call ProcessGridKey.
7817         (UpdateSelectionAfterCursorMove): factor out this common block of
7818         code (it's used everywhere that we move the cursor by updating row
7819         or column).
7820         (ProcessGridKey): pretty substantial overhaul.  Use the
7821         CurrentRow/CurrentColumn properties to make the code a lot more
7822         readable.  Only use the CurrentCell property when we have to
7823         modify both row and column at once.  Tab behavior is still broken,
7824         and Delete is untested.
7825         (Select): if we have no selected rows, set selection_start to
7826         @row.
7827         (EditCurrentCell): rename EditCell this.  It was only ever invoked
7828         with CurrentCell as the arg, so drop the arg and rename it.
7829
7830         * DataGridColumnStyle.cs: clean up the constructors a little, and
7831         drop CommonConstructor().
7832
7833         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
7834         actually get notified when the user hits it.
7835         (ProcessKeyMessage): *substantially* simplify this method.
7836         There's no reason (that I can see) for the textbox to be making
7837         calls into the datagrid at all.  Remove all of them but the ones
7838         for Enter handling.  those will take some more work.
7839
7840         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
7841         calling HideEditBox.
7842         (HideEditBox): if we have an active textbox, render it invisible
7843         without causing a re-layout of the datagrid.
7844
7845 2006-06-05  Mike Kestner  <mkestner@novell.com>
7846
7847         * ListView.cs : fix NRE crasher when focuseditem is cleared by
7848         collection changes by resetting it to Items[0].  Fixes #78587.
7849
7850 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7851
7852         * MessageBox.cs: if the height of the text is larger than the icon_size,
7853         use that. Fixes bug #78575.
7854
7855 2006-06-05  Jackson Harper  <jackson@ximian.com>
7856
7857         * TreeView.cs: Fix line drawing when scrolling.  To do this each
7858         node is basically responsible for drawing its entire horizontal
7859         area.  When drawing a node it draws its parent node lines if
7860         needed.
7861         - Adjust the clip area to the viewport rectangle
7862         - Fix Left/Right key handling to match MS. (It expand/collapses
7863         and moves to parents/first child but does not move selection to
7864         sibling nodes).
7865         - Fix SetTop to work with new bound calculation code
7866         - When scrollbars are no longer needed we need to reset scrolling
7867         vars and recalculate the visible order so the redraw is correct
7868         * TreeNode.cs: We can't expand/collapse nodes with no children.
7869
7870 2006-06-03  John Luke  <john.luke@gmail.com> 
7871
7872         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
7873         so the colors work without dev packages
7874         
7875 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
7876
7877         * Control.cs 
7878           - Select: Implemented to just use activate. Seems to match MS 
7879             behaviour closest. Documented to only do actual control walking 
7880             based on it's parameters if in a container control so I moved 
7881             the code there.
7882           - Removed selection check logic from our internal Select() method
7883         * ContainerControl.cs:
7884           - Select: Moved selection logic from Control here, since MS documents
7885             that containers obey the bool arguments. No longer calling base
7886
7887 2006-06-02  Jackson Harper  <jackson@ximian.com>
7888
7889         * TreeView.cs: If the selected node isn't changed when we get
7890         focus update the previously selected node so that we see the
7891         selection box.
7892
7893 2006-06-02  Mike Kestner  <mkestner@novell.com>
7894
7895         * ComboBox.cs: restructure grab and general mouse event handling.
7896         Make the composite control raise mouse events like it was a single
7897         control for leaves/enters/motion/up/down events.  fix dropdown list
7898         coordinate mangling and refactor it into the scrollbar subclass to
7899         reduce code duplication.  Fixes #78282 #78361 and #78457.
7900
7901 2006-06-02  Mike Kestner  <mkestner@novell.com>
7902
7903         * ScrollBar.cs: remove Capture setting/clearing, as it happens
7904         automatically in the Control.WndProc.
7905
7906 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7907
7908         * FileDialog.cs: fix crash when running SharpChess, which sets the
7909         FilterIndex to 2 with only one Filter.
7910
7911 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7912
7913         * ToolBar.cs: add SizeSpecified property.
7914         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
7915         try to figure out our real size, otherwise fallback to what the
7916         container says.
7917
7918 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7919
7920         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
7921         * Control.cs (WndProc): MS always calls the DefWndProc to pass
7922           up the event
7923
7924 2006-06-01  Mike Kestner  <mkestner@novell.com>
7925
7926         * ListView.cs: revamp the focus management in ListView.  It still
7927         causes churn of LostFocus/GotFocus emissions on clicks, but it's
7928         better than not handling focus at all.  Will revisit when pdb feels
7929         the general focus handling is solid.  Fixes #78526.
7930
7931 2006-06-01  Jackson Harper  <jackson@ximian.com>
7932
7933         * TreeView.cs: Set the default border style in the constructor.
7934         - Move painting to use OnPaintInternal instead of capturing
7935         WM_PAINT, this is the correct way of doing things
7936         - UpdateBelow shouldn't invalidate the scrollbar area
7937         - Cap the top on update below in case the node was above the top
7938         of the viewport rectangle.
7939         - ExpandBelow and Collapse below need to obey Begin/End Update.
7940         * TreeNode.cs: Make is_expanded internal so the treenode
7941         collection can change it without firing the whole event chain.
7942         * TreeNodeCollection.cs: When clearing all the child nodes make
7943         sure to recalc the visible order.
7944         - Improve algo for remove the top node
7945
7946 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
7947
7948         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
7949           SendMessage directly calling window procedures, which in turn might
7950           call SetFocus()
7951
7952 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
7953
7954         * Control.cs: Don't handle WM_SETFOCUS if the same window already
7955           has focus (works around X11 sending a FocusIn after our SetFocus)
7956         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
7957
7958 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
7959
7960         * Mime.cs: Fix for the NET_2_0 build.
7961           NameValueCollection needs StringComparer now.
7962
7963 2006-05-31  Chris Toshok  <toshok@ximian.com>
7964
7965         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
7966         return (via an out parameter) the starting X of the column.
7967         (UpdateVisibleColumn): track change to FromPixelToColumn.
7968         (HitTest): add a ColumnResize case here.
7969         (DrawResizeLine): new function, probably poorly named.
7970
7971         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
7972         only need to keep one reference.
7973         (set_ListManager): same.
7974         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
7975         Also, add support for HitTestType.ColumnResize.
7976         (OnMouseMove): add column resize behavior here, and change the
7977         cursor to the correct one as we move around the datagrid.
7978         (OnMouseUp): terminate the column resize if we're resizing.
7979         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
7980         for the current cell.
7981         (ConnectListManagerEvents): use cached_currencymgr.
7982         (DisconnectListManagerEvents): fill this in, using
7983         cached_currencymgr.
7984         (SetCurrentCell): remove cached_currencymgr_events handling.
7985         (SetDataMember): only call DisconnectListManagerEvents if
7986         cached_currencymgr is != null.
7987         (SetDataSource): same.
7988         (OnListManagerCurrentChanged): cached_currencymgr_events ->
7989         cached_currencymgr.
7990
7991 2006-05-31  Jackson Harper  <jackson@ximian.com>
7992
7993         * BindingManagerBase.cs: Remove somedebug code that creeped into
7994         SVN.
7995         * TreeNode.cs: We get the indent level dynamically right now, so
7996         don't track it as a member.
7997         * TreeNodeCollection.cs: Make sure all nodes added to the list
7998         have parents, treeviews/topnodes setup properly.
7999         - Don't attempt to track indent level.
8000
8001 2006-05-30  Jackson Harper  <jackson@ximian.com>
8002
8003         * BindingContext.cs: Create the currency manager tables here.
8004         This allows us to more easily create null tables (when bad data
8005         members are used), and more easily create related currency
8006         managers.
8007         * CurrencyManager.cs: All the table creation stuff is done by the
8008         binding context now.
8009         - Current should throw an exception if listposition is -1.
8010         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
8011         been bound yet.
8012
8013 2006-05-30  Mike Kestner  <mkestner@novell.com>
8014
8015         * ListView.cs: allow reexpansion of zero-width column headers.
8016         Fixes #78528.
8017
8018 2006-05-28  Chris Toshok  <toshok@ximian.com>
8019
8020         * CurrencyManager.cs (get_Current): after the late binding
8021         listposition = -1 fix, we need to guard against it here and return
8022         null, otherwise we raise an exception (which is swallowed
8023         elsewhere, and breaks datagrid databinding.)
8024
8025 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
8026
8027         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
8028           than WM_SYSKEY, don't throw if get something unexpected (#78507)
8029
8030 2006-05-26  Jackson Harper  <jackson@ximian.com>
8031
8032         * ControlPaint.cs:
8033         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
8034         values, it's faster and it's all we care about (we don't care if
8035         the names aren't equal).
8036         * KeyboardLayouts.cs: Eliminate some dead code.
8037         - Lazy init things
8038         * X11Keyboard.cs: Lazy init keyboard detection.
8039         - Cleanup access modifiers a little.
8040
8041 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
8042
8043         * XplatUIX11.cs: Once again, attempting to get layout just right.
8044
8045 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
8046
8047         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
8048           the sizes of each link section, that will result in sizes that
8049           match DrawString's layout (Fixes #78391)
8050
8051 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
8052
8053         * FileDialog.cs: If AddExtension property is true autocomplete the
8054           extensions in SaveFileDialog correctly. Fixes bug #78453.
8055           Set MyNetwork and MyComputer to "C:\" for windows. This should
8056           fix part 8 of bug #78446 for now.
8057
8058 2006-05-26  Chris Toshok  <toshok@ximian.com>
8059
8060         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
8061         invalidate the current row header if we need to, but presumably
8062         we'll invalidate the row corrsponding to the bounds or
8063         editingControl.
8064         (GridHScrolled): switch back to this method, as it's part of the
8065         public api.  *sigh*.
8066         (GridVScrolled): same.
8067         (OnMouseWheel): hack up something that more or less works.  Call
8068         GridHScrolled/GridVScrolled directly, instead of duplicating much
8069         of their code here.
8070         (EnsureCellVisibility): reinstate a bunch of this code, since we
8071         can't just set the scrollbar Value and expect to do all the work
8072         in the ValueChanged handler.  Also, Call Update() after scrolling
8073         in one direction so the other XplatX11.ScrollWindow call has the
8074         proper stuff in the proper places.
8075         (EditCell): set is_editing to true before calling .Edit.
8076
8077         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
8078         don't bother comparing first.
8079         (OnKeyPress): call grid.ColumnStartedEditing before calling
8080         base.OnKeyPress.  this will set is_changing and invalidate the row
8081         header if necessary.
8082         (ProcessKeyMessage): for WM_CHAR messages, call
8083         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
8084         and WM_KEYDOWN.
8085         
8086         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
8087         it's done in the DataGrid.
8088         (NextState): call grid.ColumnStartedEditing, which takes care of
8089         invalidating the row header (and setting is_changing).
8090
8091         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
8092         here.  it's done in the DataGrid.
8093
8094 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8095
8096         * Control.cs: allow changing the cursor when the mouse position is
8097         out of bounds but Capture is set.
8098         * LinkLabel.cs: handle the case when the mouse button is pressed on the
8099         linklabel but released somewhere else.
8100
8101 2006-05-25  Jackson Harper  <jackson@ximian.com>
8102
8103         * TreeView.cs: When we get focus if there is no selected node make
8104         it the top node
8105         - Remove some uneeded setup code from Draw.
8106         * TreeNodeCollection.cs: If the tree doesn't have a top node when
8107         a new node is inserted make the new node the top.
8108         * XplatUIX11.cs:
8109         * Timer.cs: Use Utc time so that no local time zone stuff needs to
8110         be used (should be faster).
8111         
8112 2006-05-25  Chris Toshok  <toshok@ximian.com>
8113
8114         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
8115         problem with the last commit.
8116
8117 2006-05-25  Chris Toshok  <toshok@ximian.com>
8118
8119         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
8120         need the invalidate call here, while scrolling right-to-left via
8121         the left arrow key (i.e. moving the editing cell while scrolling).
8122
8123         * DataGrid.cs (.ctor): remove the initialization of
8124         ctrl_pressed/shift_pressed.  We no longer track them using key
8125         up/down handlers, but by using Control.ModifierKeys.  Also, switch
8126         to using ValueChanged handlers on the scrollbars instead of
8127         Scrolled event handlers.  This simplifies a bunch of the scrolling
8128         code.
8129         (GridHValueChanged): rename from GridHScrolled, and change it to
8130         work with the new event args.
8131         (GridVValueChanged): same.
8132         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
8133         (OnMouseWheel): actually scroll the datagrid.  Don't change the
8134         selected cell.
8135         (ProcessGridKey): correct all the keyboard navigation stuff I
8136         could find.  Ctrl up/down/left/right/home/end work now.
8137         (EnsureCellVisibility): correct method name spelling.  Also,
8138         simplify this a touch by not explicitly calling the
8139         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
8140         scrollbar value.
8141         (OnKeyUpDG): no need for this method now.
8142         
8143 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8144
8145         * LinkLabel.cs: display the OverrideCursor when hovering the label.
8146         Fixes bug #78392.
8147
8148 2006-05-25  Chris Toshok  <toshok@ximian.com>
8149
8150         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
8151         r61019.
8152
8153 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
8154
8155         * Application.cs: Moved setting of is_modal and closing to before
8156           we create the control, to allow the event handlers called as a
8157           result of creation affect closing. Also removed Gonzalo's previous
8158           change to setting DialogResult, the behaviour has been moved to 
8159           Form.ShowDialog()
8160         * Form.cs: 
8161           - ShowDialog(): Removed explicit creation of the form, let RunLoop
8162             handle it instead
8163           - ShowDialog(): If no dialog result is set, we need to return Cancel
8164           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
8165             the close is cancelled
8166
8167 2006-05-25  Jackson Harper  <jackson@ximian.com>
8168
8169         * StatusBar.cs: We only need to update the sizes of the other
8170         panels when we have auto size contents.  Also we are only updating
8171         the contents of the panel, not the borders, so compensate for the
8172         border width (TODO: get this width from the theme somehow).
8173         * TreeView.cs: Scrollable is true by default
8174         - Use invalidate instead of refresh where needed
8175         - Factor the scrollable value into scrollbar updating
8176         - Update the scrollbars if the Scrollable property is altered
8177         - Update the selected node if its ImageIndex is changed
8178         - Handle null nodes in UpdateNode (mainly so we don't have to
8179         check if selected is null when updating it
8180         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
8181         are factored into the visible count
8182         - Use VisibleCount for clarity in the code
8183         - When the font is changed we need to recurse through all the
8184         nodes and invalidate their sizes
8185         
8186 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8187
8188         * Application.cs: set the DialogResult to fixed when the main form is
8189         hidden or destroyed while being modal.
8190
8191 2006-05-25  Miguel de Icaza  <miguel@novell.com>
8192
8193         * Theme.cs: Use Tangoified messagebox icons. 
8194
8195         (GetSizedResourceImage): Also cope with width = 0 and do not
8196         trigger a warning in that case (0 means "give me your icon from
8197         the resouce, no special size needed).
8198
8199 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
8200
8201         * Application.cs: Leave runloop if the the main modal form is 
8202           hidden (fixes #78484)
8203
8204 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8205
8206         * BindingContext.cs : reject null datasource in Contains() and
8207           Item[].
8208         * CurrencyManager.cs : check data_member validity when data_source
8209           is dataset. When it is late binding, the initial position is -1.
8210
8211 2006-05-24  Jackson Harper  <jackson@ximian.com>
8212
8213         * TreeNodeCollection.cs: Dont't recalculate the visible order on
8214         inserted nodes that aren't visible.  This changes the
8215         max_visible_order which confuses scrollbar settings.
8216         - Use the enumerator to get the prev node instead of duplicating
8217         code.
8218         * TreeView.cs: Use new method for setting scrollbar values
8219         - Don't set the bounds every time the scrollbar is updated
8220         - When updating below the root node use an invalidate instead of a
8221         refresh to prevent the child controls (scrollbars) from being
8222         refreshed. (UpdateBelow still needs to be reworked anyways).
8223         - Reenable SetBottom now that visible orders are set correctly,
8224         added some debug code incase we ever get bad values there again.
8225         - Set the scrollbar max to 2 less then the max value, this
8226         compensates for the max value being one above the node count, and
8227         for scrollbars adding one extra "notch".
8228         - When drawing image nodes if there is an imagelist we draw the
8229         first image in the list if the supplied image index is out of the
8230         image list's bounds.
8231         
8232 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
8233
8234         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
8235           we receive a size change from the WM (Fixes #78503)
8236
8237 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
8238
8239         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
8240           rectangle (Fixes #78501)
8241
8242 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
8243
8244         * ButtonBase.cs: 
8245           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
8246             as a bitfield.
8247           - Fixed MouseMove to no longer switch pressed state unless the left
8248             mouse button is pressed. Atsushi provided the original patch (#78485)
8249           
8250 2006-05-24  Jackson Harper  <jackson@ximian.com>
8251
8252         * ScrollBar.cs: New internal methods that allow us to change a
8253         couple values on the scrollbar (the most common case is maximum
8254         and large change) without getting multiple invalidates.
8255
8256 2006-05-24  Chris Toshok  <toshok@ximian.com>
8257
8258         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
8259         (Edit): save off the original state in oldState, and set
8260         grid.is_editing to true.
8261         (OnKeyDown): abort editing if escape is pressed.  also, call
8262         NextState if space is pressed.
8263         (OnMouseDown): call NextState.
8264         (NextState): factor out shared code from OnKeyDown and OnMouseDown
8265         here.  Also, only invalidate the row header once (on the initial
8266         is_changing switch) to save on redraws.
8267
8268 2006-05-24  Chris Toshok  <toshok@ximian.com>
8269
8270         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
8271         if the value in the cell is different than it was before.  This
8272         keeps us from triggering a layout when we move around a datarid
8273         with a highlighted cell.
8274         (Edit): suspend layout when creating/positining the text box, and
8275         resume passing false so we don't ever actually re-layout.
8276         (ReleaseHostedControl): same.
8277         (EnsureTextBox): reformat slightly, and set WordWrap to false.
8278
8279         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
8280         control-key sequences should go to the datagrid - remove that
8281         lock.  Also, modify the conditions under which we move between
8282         cells when moving the cursor within a cell, and remove the "this"
8283         and "base" from field accesses.  We weren't even consistent, given
8284         they all were in the base class.
8285
8286 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
8287
8288         * Binding.cs : (.ctor)
8289           An obvious NRE fix for BindingTest.CtorNullTest().
8290
8291 2006-05-23  Chris Toshok  <toshok@ximian.com>
8292
8293         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
8294         them between lines.  This fixes some quirks editing cells in the
8295         datagrid.
8296
8297 2006-05-23  Jackson Harper  <jackson@ximian.com>
8298
8299         * TreeView.cs: Use begin/end update when doing expand/collapse all
8300         so that we don't get flicker on the scrollbar.
8301
8302 2006-05-23  Jackson Harper  <jackson@ximian.com>
8303
8304         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
8305         treenode calculations to be independant of the painting code. To
8306         do this nodes track a visible order which is calculated by the
8307         treeview.
8308         - Call new methods for expanding/collapsing nodes.  These methods
8309         use scrollwindow so we don't have to update everything below the
8310         node.
8311         * TreeView.cs: Refactored drawing and scrolling code.  We don't
8312         need to update nodes when drawing anymore or calculate scrollbar
8313         stuff.
8314         - Added new methods for expanding/collapsing nodes. These methods
8315         use ScrollWindow so as to not have to redraw all the nodes below.
8316         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
8317         we add/remove nodes or sort.
8318         - Handle removing the selected and the top node properly.
8319
8320 2006-05-23  Chris Toshok  <toshok@ximian.com>
8321
8322         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
8323         maybe this should actually happen in the datagrid code?
8324         (EndEdit): no need to invalidate anything, given that
8325         ReleaseHostedControl causes the datagrid to relayout, which
8326         invalidates everything anyway.
8327
8328         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
8329         in SetCurrentCell).
8330         (set_SelectionBackColor): call InvalidateSelection instead of
8331         Refresh.
8332         (set_SelectionForeColor): same.
8333         (BeginEdit): Flesh this out a bit.
8334         (CancelEditing): only do any of this if we're editing/adding.
8335         (EndEdit): same.
8336         (OnMouseDown): there's no need to cancel editing here, it's done
8337         in SetCurrentCell.
8338         (SetCurrentCell): only invalidate the current row header if it's a
8339         different row than the new one.
8340         (ShiftSelection): fix this to work like MS does.
8341         (ResetSelection): factor out the invalidation of selected_rows to
8342         InvalidateSelection.
8343         (SetDataSource): cancel any editing that's going on.
8344
8345         * DataGridColumnStyle.cs
8346         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
8347         call the non-interface version.
8348
8349         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
8350         header rectangle with the clip rectangle so we don't redraw the
8351         entire header for just a small area.  Gets rid of the last flicker
8352         when horizontally scrolling.
8353         (DataGridPaintRow): same.
8354
8355 2006-05-23  Mike Kestner  <mkestner@novell.com>
8356
8357         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
8358         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
8359         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
8360         Critical bug report.
8361
8362 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
8363
8364         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
8365           and this fixes #78493
8366
8367 2006-05-23  Miguel de Icaza  <miguel@novell.com>
8368
8369         * Theme.cs (GetSizedResourceImage): Scale images if the proper
8370         size is not found.  
8371         
8372         * FileDialog.cs: Do not change the background for the side bar as
8373         it wont work nicely with the theme, and also reduces the artifacts
8374         in rendering the icons (which I want to fix too).
8375
8376         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
8377         resources, not resgen resources. 
8378
8379         (PlatformDefaultHandler): Pull images using the new API.
8380
8381 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
8382
8383         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
8384           a reference to the hwnd and will not remove it unless there are
8385           no pending exposures (fixes #78341)
8386         * XplatUI.cs: Improved debug
8387
8388 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
8389
8390         * MenuAPI.cs : don't handle OnClick event when it was not the left
8391           button. Fixed bug #78487.
8392
8393 2006-05-23  Mike Kestner  <mkestner@novell.com>
8394
8395         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
8396         prefer submenus to the top menu for item lookup, to avoid popping down
8397         top-row items.
8398
8399 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
8400
8401         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
8402           Graphics.FillRectangle as the visual results are really bad (even
8403           on win). We now draw perfect arrows (and perfect shadows when the
8404           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
8405           Pen.DashPattern to draw the dots of each line.
8406
8407 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
8408
8409         * FileDialog.cs: Update the filename combobox when navigating through
8410           the ListView with the cursor keys. Fixes part 7 of bug #78446.
8411
8412 2006-05-22  Mike Kestner  <mkestner@novell.com>
8413
8414         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
8415         Fixes #78463.
8416
8417 2006-05-22  Mike Kestner  <mkestner@novell.com>
8418
8419         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
8420         requests. Fix a misspelled parameter and a copy paste exception error
8421         in Select.
8422
8423 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
8424
8425         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
8426           to get the same width/height (5/13) on X11 as the default font has on
8427           win32. This means that our DefaultFont emSize is smaller than the 
8428           the MS SWF equivalent (even thought the width/height stays the same)
8429
8430 2006-05-20  Jackson Harper  <jackson@ximian.com>
8431
8432         * MdiClient.cs:
8433         * MdiWindowManager.cs:
8434         * InternalWindowManager.cs: Make sure to use the border width from
8435         the theme.
8436
8437 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
8438
8439         * PrintDialog.cs: Implements printer details
8440
8441 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
8442
8443         * FileDialog.cs: Added focus handling for PopupButtonPanel.
8444           Fixes part 1 and 2 of bug #78446
8445
8446 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
8447
8448         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
8449           instead of sticking to the first ever calculated value
8450
8451 2006-05-19  Mike Kestner  <mkestner@novell.com>
8452
8453         * ComboBox.cs: fix mouse motion selection to use MousePosition and
8454         PointToClient, since Capture is set. Fixes #78344.
8455
8456 2006-05-19  Mike Kestner  <mkestner@novell.com>
8457
8458         * ListView.cs: match MS behavior in Details view where items are not
8459         drawn if Columns.Count == 0. 
8460         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
8461         Use a separate pen to draw the check, since changing the width affects
8462         the box as well.  Fixes #78454.
8463
8464 2006-05-18  Miguel de Icaza  <miguel@novell.com>
8465
8466         * ListView.cs: ArgumentOutOfRangeException, single versions of the
8467         exception should throw the name of the invalid argument.
8468
8469         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
8470         there are no files listed. 
8471
8472 2006-05-18  Jackson Harper  <jackson@ximian.com>
8473
8474         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
8475         up.
8476
8477 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
8478
8479         * Control.cs: Brought back our old UpdateZOrder method as a private
8480           function and switched our calls from UpdateZOrder to the new one.
8481           This fixes the Paint.Net canvas disappearing bug.
8482
8483 2006-05-18  Jackson Harper  <jackson@ximian.com>
8484
8485         * Theme.cs:
8486         * ThemeWin32Classic.cs:
8487         * InternalWindowManager.cs: Move the drawing into the theme,
8488         expose everything the theme should need from the window manager.
8489
8490 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
8491
8492         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
8493           from the call to NativeWindow to avoid walking up the parent chain
8494           further than needed (speeds up setting cursors and avoids setting
8495           the wrong cursor if a parent has another cursor defined)
8496         * Cursor.cs: When loading an icon as cursor, MS uses the center of
8497           the icon as hotspot, not what's contained as hotspot in the icon
8498           file. This fixes the perceived drawing offset seen with Paint.Net
8499         
8500 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
8501
8502         * XplatUIX11.cs: 
8503           - Store the calculated rectangle in Hwnd object and use it when 
8504             setting the client size
8505           - Force Toolwindows to always be type Dock, to ensure they're on top
8506
8507 2006-05-18  Mike Kestner  <mkestner@novell.com>
8508
8509         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
8510         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
8511         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
8512         Substantial refactoring to remove confusing nested classes. Coding
8513         standard and Get+Set->property refactorings.  Shift to index based
8514         highlighting in ComboListBox instead of constantly using IndexOf and
8515         Items[]. Add invalidations on resize for DropDownList to fix ugliness
8516         in FileDialog growth.  Draw borders manually since Simple mode needs
8517         to look like two independent controls.  Make listbox border
8518         conditional to DropDownStyle.  Improved OwnerDraw support.
8519
8520 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
8521
8522         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
8523         Don't set the disposed graphics to null, so we can throw the "right"
8524         exception if the graphics is reused later (added a flag to avoid 
8525         double disposing). Some behaviours are different under 2.0 and are
8526         filled under bug #78448.
8527
8528 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
8529
8530         * Control.cs: When double-buffering is enabled, we need to reset
8531           our graphics context between paint calls. Otherwise, any 
8532           transformations and other alterations on the context will 
8533           become cumulative (#77734)
8534
8535 2006-05-18  Mike Kestner  <mkestner@novell.com>
8536
8537         * ListView.cs: do focused item selection like MS on clicks. 
8538         Rework focus handling for ItemControl so LostFocus invalidates as
8539         well.
8540         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
8541         the ListView ItemControl has focus.
8542
8543 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
8544
8545         * XplatUIX11.cs: If client_window ends up being width or height zero
8546           due to border settings, move it off window inside whole_window (#78433)
8547
8548 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
8549
8550         * Mime.cs: Shrink the mime file cache correctly.
8551
8552 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
8553
8554         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
8555
8556 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
8557
8558         * XplatUIX11.cs (AddExpose): More sanity checks
8559
8560 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
8561
8562         * XplatUIX11.cs:
8563           - AddExpose: Don't add expose ranges outside the size of our
8564             window
8565           - Cast opacity values to Int32 to avoid crashes with certain
8566             values
8567           - Added disabled code paths that protect against illegal cross-
8568             thread painting (Developers.exe)
8569
8570 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
8571
8572         * ProgressBar.cs: Invalidate the control when it's resized
8573           since block size is based on control size. (#78388)
8574
8575 2006-05-16  Miguel de Icaza  <miguel@novell.com>
8576
8577         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
8578         of setting the incoming argument to the "reset" value, we set the
8579         this.datamember to string.empty (before we were invalidating the
8580         incoming data).   
8581
8582         Fixes 78420
8583
8584 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
8585
8586         * Form.cs: Only apply transparency settings after the form
8587           is created. (Fixes #77800)
8588
8589 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
8590
8591         * ApplicationContext.cs: Grab the HandleDestroyed event so
8592           we know when to fire OnMainFormClosed 
8593
8594 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
8595
8596         * Application.cs: Introduced sub-class to allow tracking of
8597           threads and centralized triggering of the event mess for
8598           ThreadExit, AppExit, etc..  (#76156)
8599
8600 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
8601
8602         * MimeIcon.cs:
8603           - Do not return a null icon index value for a mime subclass.
8604             Instead try the main mime type class too.
8605           - Seems that some newer distributions don't have a link to some
8606             gnome default icons anymore. So check the default gnome dir too.
8607           
8608
8609 2006-05-16  Jackson Harper  <jackson@ximian.com>
8610
8611         * MdiClient.cs: Don't paint the parent background image if we have
8612         our own background image.
8613
8614 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
8615
8616         * Control.cs:
8617           - PerformLayout: Do not shrink space filled by DockStyle.Fill
8618             controls, all filled controls are supposed to overlap (#78080)
8619           - UpdateZOrder is supposed to update the control's z-order in the
8620             parent's z-order chain. Fixed to behave like that
8621           - BringToFront: Removed obsolete code
8622           - SendToBack: Simplyfied
8623           - SetChildIndex: Trigger layout calculations when Z-order changes
8624             since layout is done by z-order
8625
8626 2006-05-16  Chris Toshok  <toshok@ximian.com>
8627
8628         [ fixes bug #78410 ]
8629         * DataGrid.cs (set_AlternatingBackColor): use
8630         grid_drawing.InvalidateCells instead of Refresh().
8631         (set_BackColor): call grid_drawing.InvalidateCells.
8632         (set_BackgroundColor): use Invalidate instead of Refresh.
8633
8634         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
8635         invalidate the cell area.
8636
8637 2006-05-15  Chris Toshok  <toshok@ximian.com>
8638
8639         [ fixes bug #78011 ]
8640         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
8641         on to DataGridPaintRow.
8642         (DataGridPaintRow): take a clip argument, and only draw the cells
8643         which intersect it.  same with the not_usedarea.
8644
8645         * Theme.cs (DataGridPaintRow) add @clip parameter.
8646
8647         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
8648         XplatUI.ScrollWindow.
8649         (ScrollToRow): same.
8650
8651         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
8652         with last column which was causing a gray swath to appear with the
8653         XplatUI.ScrollWindow code.
8654
8655 2006-05-15  Chris Toshok  <toshok@ximian.com>
8656
8657         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
8658         use XplatUI.ScrollWindow.
8659         (VerticalScrollEvent): use XplatUI.ScrollWindow.
8660
8661 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
8662
8663         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
8664
8665 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
8666
8667         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
8668           file since there are no equivalent X11 cursors
8669
8670 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
8671
8672         * MonthCalendar.cs : DateTimePicker should reflect selected date
8673           on mouse*up*, not mouse*down*. Fixed originally reported part of
8674           bug #76474.
8675
8676 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
8677
8678         * TabControl.cs : When argument index is equal or more than tab
8679           count, just ignore. Fixed bug #78395.
8680
8681 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
8682
8683         * Control.cs: Dispose all child controls when control is diposed (#78394)
8684
8685 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8686
8687         * ColorDialog.cs: Finally it is possible to select the color with
8688           the text boxes
8689
8690 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8691
8692         * PrintDialog.cs: Fix typo
8693
8694 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
8695
8696         * PrintDialog.cs: PrintDialog is not resizable
8697         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
8698           color. Made some ToolBar drawing methods protected virtual.
8699
8700 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
8701
8702         * PrintDialog.cs: Implementation of the PrintDialog
8703
8704 2006-05-12  Chris Toshok  <toshok@ximian.com>
8705
8706         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
8707         thumb, instead use MoveThumb.  This has the side effect of making
8708         most of the other thumb moving machinery use MoveThumb as well.
8709         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
8710         need to actually invalidate the rectangle where the new thumb will
8711         go.
8712         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
8713         We force an Update() after, so it's not as fast as it could be,
8714         but at least there's zero flicker and no droppings.
8715         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
8716         (UpdateThumbPos): add another argument (dirty), which says whether
8717         or not to calculate/add dirty regions which we later invalidate.
8718         For cases where we know we're going to use MoveThumb, we pass
8719         false for this.  Otherwise, pass true.
8720
8721 2006-05-12  Jackson Harper  <jackson@ximian.com>
8722
8723         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
8724         the status bar.
8725         
8726 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
8727
8728         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
8729           and GetClipRegion methods and UserClipWontExposeParent property.
8730         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
8731           overriding UserClipWontExposeParent property, setting to false, since
8732           Win32 handles the required expose messages to draw our clipped parent
8733           areas internally
8734         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
8735           PaintEventStart to set the user clip region if set.
8736         * Control.cs: 
8737           - Now internally tracking the Region for the control since we need to
8738             store it if the handle is not yet created and only set it when it
8739             becomes created. Before setting the region forced handle creation
8740           - Added code to draw the parents underneath a user-clipped region
8741         * Hwnd.cs: Added UserClip property
8742
8743 2006-05-12  Chris Toshok  <toshok@ximian.com>
8744
8745         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
8746         (set_Maximum): same.
8747         (set_Minimum): same.
8748         (set_SmallChange): same.
8749         (OnMouseUpSB): remove the call to refresh when releasing the
8750         thumb.  We shouldn't need it.
8751         
8752 2006-05-12  Miguel de Icaza  <miguel@novell.com>
8753
8754         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
8755         AutoSize set to None, we do not need to relayout everything, we
8756         just need to invalidate the current region.
8757
8758         (Draw): Do not draw the entire ClientArea, just redraw the
8759         clip area being passed.
8760
8761         * MdiClient.cs: Make MdiClient constructor with the Form argument
8762         internal. 
8763
8764 2006-05-12  Jackson Harper  <jackson@ximian.com>
8765
8766         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
8767         parents background image,  but strangely not their own.
8768         - (DrawStatusBarPanel): Take into account horizontal alignment
8769         when drawing the strings and icons.
8770
8771 2006-05-12  Mike Kestner  <mkestner@novell.com>
8772
8773         * ListBox.cs: avoid invalidations for focus when the collection is
8774         empty. 
8775
8776 2006-05-12  Chris Toshok  <toshok@ximian.com>
8777
8778         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
8779         invalidate the entire thumb area.  Call InvalidateDirty which
8780         limits the redraw to the thumb itself and surrounding pixels.
8781
8782         * XplatUIX11.cs (ScrollWindow): optimize copying.
8783         
8784 2006-05-12  Chris Toshok  <toshok@ximian.com>
8785
8786         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
8787         Figure out the positioning/layout in a single pass instead of
8788         multiple recursive invocations.  Speeds up the initial display of
8789         the data grid.  Also, make many things private that were
8790         originally public but unused outside this class.
8791
8792 2006-05-11  Jackson Harper  <jackson@ximian.com>
8793
8794         * MdiClient.cs: Improved layout code.
8795
8796 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
8797
8798         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
8799           not SelectedObject.
8800
8801 2006-05-11  Chris Toshok  <toshok@ximian.com>
8802
8803         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
8804         union of that will always be {0,0,width,height}.
8805
8806 2006-05-11  Jackson Harper  <jackson@ximian.com>
8807
8808         * Form.cs: Match MS's DefaultSize for forms (they must have
8809         changed the size in sp2).
8810
8811 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
8812
8813         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
8814
8815 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
8816
8817         * TextControl.cs : Fixed bug #78109. This incorrect position
8818           comparison caused crash on automatic line split.
8819         * TextBoxBase.cs : reduce duplicate code.
8820
8821 2006-05-10  Jackson Harper  <jackson@ximian.com>
8822
8823         * MdiClient.cs: Active form is only sent to the back when using
8824         the Next form functionality, when a form is clicked the current
8825         active shouldn't be sent to the back.
8826         - Layout the mdi windows when the container is first made visible.
8827         * Form.cs: Give the MdiClient a ref to the containing form when we
8828         create it.
8829         
8830 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
8831
8832         * LinkLabel.cs : link_font could be uninitialized, so populate one
8833           before actual use. Fixed bug #78340.
8834
8835 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
8836
8837         * XplatUIX11.cs : clipboard format native value is IntPtr.
8838           Fixed bug #78283.
8839
8840 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8841
8842         * Control.cs: 
8843           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
8844             which is passed up the parent chain by DefWndProc
8845           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
8846             to DefWndProc (#77956)
8847         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
8848
8849 2006-05-10  Jackson Harper  <jackson@ximian.com>
8850
8851         * MdiClient.cs: We need to remove the controls from the mdi
8852         collection, when we close the window.
8853         * MdiWindowManager.cs: Special handling of closing mdi windows.
8854         * InternalWindowManager.cs: Make the close method virtual so the
8855         mdi window manager can handle it specially.
8856
8857 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
8858
8859         * DataGrid.cs:
8860           - Recalculate grid when the data source has changed
8861           - Matches styles provided by user from all data sources types
8862         * DataGridTableStyle.cs: For columns that provided by the user set the
8863         with the preferred value is there was unassigned.
8864         * CurrencyManager.cs: throw OnItemChanged event
8865
8866 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
8867
8868         * PictureBox.cs: Don't animate until handle is created. Start animation
8869           when handle is created.
8870
8871 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8872
8873         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
8874           current codebase.
8875         * XEventQueue.cs: We don't need to provide the extra info
8876
8877 2006-05-10  Jackson Harper  <jackson@ximian.com>
8878
8879         * MdiClient.cs: If the mdi clients parent form has a background
8880         image set, we draw that background image for the mdi area's
8881         background.
8882
8883 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
8884
8885         * TextBoxBase.cs: Set IBeam cursor (#78347)
8886
8887 2006-05-10  Mike Kestner  <mkestner@novell.com>
8888
8889         * ToolBar.cs: fix some text padding issues with ButtonSize
8890         calculation. Update the default size to match MS documentation.
8891         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
8892         button size. Fixes #78296.
8893
8894 2006-05-10  Mike Kestner  <mkestner@novell.com>
8895
8896         * ListBox.cs: use is_visible for scrollbar positioning in case the
8897         control isn't on screen yet.  Fix off by one with Right vs Width
8898         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
8899         
8900 2006-05-10  Jackson Harper  <jackson@ximian.com>
8901
8902         * X11Dnd.cs: Drop to a control with another control on top of it.
8903         * ToolBar.cs: Work on a copy of the buttons list, so that it can
8904         be modified in click handlers. TODO: Look for similar problems in
8905         other controls.
8906
8907 2006-05-09  Jackson Harper  <jackson@ximian.com>
8908
8909         * Form.cs: Window managers need the old window state when setting
8910         window state now.
8911         * InternalWindowManager.cs: Allow the base mdi window manager to
8912         handle more of the MDI only stuff (like maximize buttons).
8913         * MdiWindowManager.cs: Fix some snafus in changing the window
8914         state.  Add all the menu functionality, for both popup and
8915         maximized menus.
8916         * MdiClient.cs: When a new form is selected the currently
8917         activated form is sent to the back, this matches MS.
8918         - Implement a new method to activate the next mdi child window.
8919
8920 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
8921
8922         * Control.cs: 
8923           - Added new InternalCapture method to allow controls to prevent
8924             the capture behaviour on the click handlers
8925           - Switched to use InternalCapture
8926         * ComboBox.cs:
8927           - Using InternalCapture to prevent mouse captures from being released
8928             on mouse button release (Fixes #78100)
8929         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
8930           returns Form borders if a caption is present. (Fixes #78310)
8931
8932 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
8933
8934         * TreeNode.cs: Changed serialization .ctor to not require every field
8935           to be present. (#78265)
8936         * OwnerDrawPropertyBag.cs: Added serialization .ctor
8937
8938 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
8939
8940         * MimeIcon.cs: for is faster than foreach for strings.
8941
8942 2006-05-05  Mike Kestner  <mkestner@novell.com>
8943
8944         * CheckedListBox.cs: update check handling code to not use selected.
8945         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
8946         behavior for visual feedback, motion response, shift/ctrl handling,
8947         and properly deal with all 4 selection modes. Updates to bounds
8948         handling logic.  Add scroll wheel support. [Fixes #77842]
8949
8950 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8951
8952         * ListView.cs:
8953           - Moved adding of Implicit controls into .ctor. That way, subsequent
8954             creation of the controls will not cause them to think they are 
8955             toplevel windows (fixes #78200 header problem)
8956           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
8957           - Switched visibility setting of header control to use internal field
8958             to avoid triggering handle creation
8959           - Now checking if handle is created before causing a refresh when items
8960             are added (This makes us now match handle creation time with MS)
8961         * Splitter.cs: Removed loading of private splitter cursor, switched to
8962           Cursors version now that that is loading the right ones
8963         * Cursors.cs: Load proper splitter cursors from resources
8964         * Cursor.cs: Added second method of loading resource cursors for the 
8965           VS.Net users amongst us
8966
8967 2006-05-05  Mike Kestner  <mkestner@novell.com>
8968
8969         * ListView.cs: give header_control a minimum size based on the
8970         ListView size.
8971
8972 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8973
8974         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
8975           window seems to do that with metacity, so set that type. (#78120)
8976
8977 2006-05-05  Mike Kestner  <mkestner@novell.com>
8978
8979         * ListViewItem.cs: fix Details mode checkbox layout bug.
8980         * ThemeWin32Classic.cs: draw a ListView column header for unused space
8981         at the end of the header, if it exists. [Fixes for #78200]
8982
8983 2006-05-04  Jackson Harper  <jackson@ximian.com>
8984
8985         * MdiClient.cs: Add a helper property to get the container form.
8986         * MdiWindowManager.cs: We have to make sure to use the menu origin
8987         when drawing the icons and buttons, this fixes maximized window
8988         icons/buttons on win32.
8989         * InternalWindowManager.cs: Reset the restore captions when a
8990         window goes from Maximized to Minimized and vice versa. Move the
8991         DrawMaximizedButtons into the MdiWindowManager source, tool
8992         windows can't be maximized. NOTE: This could use a little
8993         refactoring if time ever permits.
8994         
8995 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8996
8997         * TextBox.cs: Add MWFCategoryAttributes
8998         * TextBoxBase.cs: Add MWFCategoryAttributes
8999         * Form.cs: Add MWFCategoryAttributes
9000
9001 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
9002
9003         * Control.cs: Add MWFCategoryAttributes
9004         * ScrollableControl.cs: Add MWFCategoryAttributes
9005
9006 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
9007
9008         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
9009           Divider is true. Fix a little glitch in PropertyToolBar
9010           drawing code
9011
9012 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
9013
9014         * Control.cs:
9015           - Dispose: Call base.Dispose, this causes the disposed event
9016             to be fired (and probably other, more important stuff)
9017           - SetVisibleCore: Set is_visible to true after creating the
9018             window so that the window still gets created invisible (if
9019             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
9020             to generate a WM_ACTIVE message
9021         * Form.cs: Call Dispose when we want to destroy the window, instead of
9022           just destroying the handle (Dispose will do that for us)
9023         * XplatUIX11.cs:
9024           - RootWindow also needs a queue, so we can properly process the
9025             property change events from RootWindow (like Activate)
9026           - Generatic synthetic WM_ACTIVE message when the active window is
9027             being destroyed
9028
9029 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
9030
9031         * LinkLabel.cs: Trigger a recalc of our label dimensions when
9032           bounds are changed
9033
9034 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
9035
9036         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
9037           for determining width and height (image might not be assigned if
9038           we're drawing an imagelist)
9039
9040 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
9041
9042         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
9043         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
9044           height from system
9045         * Theme.cs: No longer returns hardcoded menu height, instead calls
9046           new driver method
9047         * Form.cs (OnLoad): Scaling happens before triggering Load events 
9048           on MS (# 78257)
9049
9050 2006-05-01  Mike Kestner  <mkestner@novell.com>
9051
9052         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
9053
9054 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
9055
9056         * TextBoxBase.cs: Removed Fixme
9057         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
9058
9059 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
9060
9061         * XplatUIX11.cs:
9062           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
9063             the rectangle relative to the parent, considering borders. We
9064             don't really want that.
9065           - ScrollWindow: Fixed warning to be more understandable
9066         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
9067           scrollbars and scroll only the visible area
9068         * RichTextBox.cs: Removed debug output
9069
9070 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
9071
9072         * NumericUpDown.cs (Text): Just use base
9073         * UpDownBase.cs: Ensure txtView is created before using it
9074
9075 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
9076
9077         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
9078           casting to IntPtr to avoid 64bit overflow errors
9079
9080 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
9081
9082         * Control.cs:
9083           - AllowDrop: Don't force handle creation.
9084           - CreateHandle: Added call to tell driver if we're allowed to drop
9085
9086 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
9087
9088         * FileDialog.cs: Remember the last directory not only for the
9089           current instance but also for new FileDialog instances.
9090
9091 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
9092         
9093         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
9094           broke sending async messages
9095
9096 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
9097
9098         * XplatUIX11.cs:
9099           - ScrollWindow: Fixed method. We finally generate expose events again
9100             for scrolled areas. This was causing 'garbage' when scrolling
9101             textbox and other controls that used ScrollWindow
9102           - Switched from using the regular queue for paint events to the MS 
9103             model of 'generating' paint events when the queue is empty.
9104             We use the new XQueueEvent.Paint subclass to store which windows
9105             need painting.
9106           - AddExpose now takes the x/y/width/height of the exposed area
9107             and inserts the window into the paint queue if not already there
9108           - InvalidateWholeWindow: Switched to use new AddExpose method
9109           - UpdateMessageQueue: Added which queue to monitor for paint events
9110           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
9111             the unlikely case nothing above handles it. We reset the expose
9112             pending states to get them off the queue.
9113           - GetMessage: Now pulls a paint event if no other events are in the
9114             queue
9115           - Invalidate: Switched to new AddExpose method
9116           - PeekMessage: Updated to understand pending paint events
9117           - UpdateWindow: Fixed logic bug. We were only updating if the window
9118             didn't need updating. Also switched to sending WM_PAINT directly,
9119             like MS does.
9120         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
9121           and random access Remove(). The random access is needed to handle
9122           UpdateWindow() where a WM_PAINT is sent directly without accessing
9123           the queue.
9124         * ScrollBar.cs: Added Update() calls to cause immediate updates to
9125           allow for better feedback when scrolling. Scrollbars are small and
9126           the immediate update should make it 'feel' more responsive without
9127           slowing things down. ScrollBar still needs it's invaliate logic
9128           updated to not always invalidate the whole bar on certain changes.
9129
9130 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9131
9132         * Control.cs:
9133         (BackColor): if the control does not support a transparent background,
9134         return the default backcolor when the parent backcolor is transparent.
9135
9136 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
9137
9138         * Application.cs: Updated to new StartLoop/GetMessage API
9139         * RichTextBox.cs: Provide some output on RTF parsing errors
9140         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
9141           new queue_id argument to GetMessage and PeekMessage to allow faster
9142           handling of per-thread queues in drivers.
9143         * Hwnd.cs: Added Queue tracking and property
9144         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
9145         * XEventQueue.cs: Added thread trackingA
9146         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
9147         * XplatUIX11.cs:
9148           - Implemented new per-thread queue
9149           - GetMessage: Fixed return/break behaviour on several cases. We were
9150             returning stale messages in some cases, instead of just processing
9151             the next message
9152
9153 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
9154
9155         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
9156
9157 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
9158
9159         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
9160           fixed off-by-one comparisons between Width/Height and Right/Bottom.
9161
9162 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
9163
9164         * PropertyGridView.cs: Fix drop down width.
9165
9166 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
9167
9168         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
9169           a mess in DrawToolBar, so I removed one of them.
9170
9171 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
9172
9173         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
9174           needed (clip). Otherwise we get artifacts.
9175
9176 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
9177
9178         * FixedSizeTextBox.cs: Added constructor to allow specifying which
9179           dimension is fixed
9180         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
9181           and switched FixedSizeTextBox to only be fixed vertical (#78116)
9182         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
9183           if it matches the scale base font (avoids unneeded scaling)
9184
9185 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
9186
9187         * X11DesktopColors.cs: One gtk_init_check should be enough
9188
9189 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
9190
9191         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
9192           match MS behaviour
9193
9194 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
9195
9196         * TextBoxBase.cs: 
9197           - Generate OnTextChanged for Backspace even if we're only deleting
9198             the current selection
9199           - When setting the Text property, only select all text if the
9200             control does not have focus when it is being set. Otherwise
9201             just place the cursor at the beginning of the control
9202
9203 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
9204
9205         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
9206           Added a little helper to draw PropertyGrid ToolBar with a different
9207           border and a different BackColor.
9208         * PropertyGrid.cs: Some background parts didn't get painted with the
9209           correct background color. Added a class that helps us to draw the
9210           correct border for PropertyGridView and a class that helps us to
9211           draw ToolBars with a different backcolor
9212         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
9213
9214 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
9215
9216         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
9217         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
9218
9219 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
9220
9221         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
9222           into the palette entries. Also, since we're working on a copy
9223           we needed to copy the palette back onto the bitmap.
9224         * Cursor.cs: Same fix as XplatUIWin32.cs.
9225
9226 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
9227
9228         * ImageListStreamer.cs: Need to read the var (or we're off)
9229
9230 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
9231
9232         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
9233           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
9234           TextBoxBase.cs: Unused var fixes
9235         * AxHost.cs: Small 2.0 fix
9236         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
9237           as it seems that is what at least Metacity expects. This will make
9238           icons show up on 64bit platforms. We still have some 64bit size
9239           issues, though, since the startup app window size still won't match.
9240
9241 2006-04-25  Mike Kestner  <mkestner@novell.com>
9242
9243         * *.cs: cleanup newly reported exception var unused warnings.
9244
9245 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
9246
9247         * ThemeWin32Classic.cs: Button image alignment now matches exactly
9248           ms
9249
9250 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
9251
9252         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
9253           image. The image position is always the same, no matter if the
9254           button is pressed or not.
9255
9256 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
9257
9258         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
9259           selection and set the correct filename for SaveFileDialog.
9260           Patch by Emery Conrad.
9261
9262 2006-04-24  Mike Kestner  <mkestner@novell.com>
9263
9264         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
9265         check for item.X outside the ClientRect instead of item.Y. Fixes
9266         #78151.
9267
9268 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9269
9270         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
9271         trust that value blindly and do some sanity check. Fixes bug #77814.
9272
9273 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9274
9275         * ImageListStreamer.cs: save the mask as a 1bpp image.
9276
9277 2006-04-21  Mike Kestner  <mkestner@novell.com>
9278
9279         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
9280         pass Checked and Indeterminate to the Theme Engine. Improve
9281         encapsulation with ListBox.
9282         * ListBox.cs: Keep a StringFormat instead of calculating it every item
9283         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
9284         nested types.  Move all CheckState functionality to CheckedListBox.
9285         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
9286         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
9287         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
9288         single base list. Fix scrollbar sizing and placement to mirror MS.
9289         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
9290         used.
9291         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
9292         for CheckedListBox by using new DrawItemState info.  Center the
9293         checkboxes on the items. Use new StringFormat property.
9294
9295 2006-04-18  Jackson Harper  <jackson@ximian.com>
9296
9297         * Form.cs: MdiChildren don't do default locations the same way as
9298         regular forms.  This prevents a crash when trying to position the
9299         mdi windows.
9300
9301 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
9302
9303         * PropertyGridTextBox.cs: Formatting, copyright
9304         * PropertiesTab.cs: Formatting
9305         * PropertyGrid.cs: Formatting
9306         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
9307           click toggling of values
9308           
9309 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
9310
9311         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
9312         * Control.cs (.ctor): verify_thread_handle is static, don't reset
9313           every time a control is created
9314         * Application.cs: Removed obsolete EnableRTLMirroring method
9315
9316 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
9317
9318         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
9319         SelectedIndex to -1. Fixes bug #78121.
9320
9321 2006-04-17  Jackson Harper  <jackson@ximian.com>
9322
9323         * Binding.cs: Handle null values for Current and BindingContext.
9324         This occurs when binding is a little delayed.
9325         * CurrencyManager.cs: return null for Current when there are no
9326         items in the list.
9327         - Hookup to the listchanged event on the DataView and update
9328         bindings when the list is changed.  This fixes late binding of
9329         controls.
9330
9331 2006-04-17  Jackson Harper  <jackson@ximian.com>
9332
9333         * X11Dnd.cs:
9334         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
9335         Ringenbach.
9336
9337 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
9338
9339         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
9340           place
9341         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
9342           with the correct ButtonState
9343
9344 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
9345
9346         * XplatUIX11.cs: Improved distinguishing between window types to
9347           tell the WM a type closer to what the app wants (Fixes #78107)
9348
9349 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
9350
9351         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
9352           GrabHandle
9353
9354 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
9355
9356         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
9357           drawing code to reflect the size grip changes
9358
9359 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9360
9361         * ImageListStreamer.cs: fix handling of the mask that follows the main
9362         bitmap when deserializing and serialize it properly. The generated mask
9363         should better be a 1bpp image, but I'll do that later.
9364
9365 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
9366
9367         * FileDialog.cs: Show something in the DirComboBox on *nix if the
9368           path doesn't fit into some of our Current.Places
9369
9370 2006-04-13  Jackson Harper  <jackson@ximian.com>
9371
9372         * ComboBox.cs: Use borders instead of drawing our own decorations,
9373         try to obey correct rules for heights.
9374         * Theme.cs:
9375         * ThemeNice.cs:
9376         * ThemeClearLooks.cs:
9377         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
9378         this is now handled by borders.
9379         - Remove unused DrawListBoxDecorationSize method.
9380         
9381 2006-04-13  Mike Kestner  <mkestner@novell.com>
9382
9383         * MenuAPI.cs: null guarding for the disbled click check fixes crash
9384         reported by Alex.
9385
9386 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
9387
9388         * ThemeWin32Classic.cs: 
9389           - Fixed CPDrawStringDisabled
9390           - Corrected drawing of disabled menu items
9391           - Fixed drawing of disabled radio buttons (bug #78095)
9392           - Draw check in a disabled CheckBox with color ControlDark 
9393
9394 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
9395
9396         * Form.cs: Use the provided width when calculating the menu size;
9397           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
9398           and ClientSize.Width won't be updated yet
9399         * Application.cs: Use Visible instead of Show() to make form visible,
9400           this way we create the handle later and menusize is considered
9401
9402 2006-04-12  Mike Kestner  <mkestner@novell.com>
9403
9404         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
9405         reporting.
9406
9407 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
9408
9409         * TextBox.cs: Implemented context menu
9410
9411 2006-04-12  Mike Kestner  <mkestner@novell.com>
9412
9413         * ListView.cs: implement box selection. fixes #77838.
9414         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
9415
9416 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
9417
9418         * XplatUIX11.cs: Added setting of window type when transient window
9419           is created (metacity would move it otherwise)
9420         * X11Structs.cs: Added WINDOW_TYPE atoms
9421         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
9422           background (the control is Opaque but still wants transparent
9423           backgrounds)
9424
9425 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
9426
9427         * Control.cs: Added OnPaintBackgroundInternal to allow controls
9428           that set Opaque but don't mean it (like all ButtonBase-derived
9429           controls) to still draw their background
9430         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
9431           the background
9432
9433 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
9434
9435         * Control.cs (PaintControlBackground): Set the graphics object
9436           on our PaintEvent to null to prevent it from being disposed
9437           when the PaintEvent gets disposed
9438
9439 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
9440
9441         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
9442         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
9443
9444 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
9445
9446         * Control.cs: 
9447           - Added transparency check to BackColor property. Transparent
9448             backgrounds are only allowed if the control styles permit it
9449           - Added recursive painting of parent control background and
9450             foreground if a control with a transparent backcolor is drawn
9451             (Thanks to Tim Ringenback for providing his 'hack' as a base
9452              for this patch) Fixes #77985 and #78026.
9453           - Added Opaque style check before calling OnPaintBackground, no
9454             need to draw the background if the control is opaque
9455           - Removed ControlAccessibleObject owner variable (inherited from
9456             base, no need to define again)
9457           - Added some documentation links explaining the drawing events
9458             and styles
9459
9460 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
9461
9462         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
9463           that the affected control is the located at the left border of our
9464           parent (Fixes #77936)
9465
9466 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
9467
9468         * TextBoxBase.cs: When rendering disabled or readonly controls,
9469           draw the background with 'Control' instead of 'Window' color as
9470           long as the user hasn't specifically set a color
9471
9472 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
9473
9474         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
9475           since that won't be updated if the user types text (only if it's
9476           programatically set)
9477
9478 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
9479
9480         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
9481           layout changes do to app-triggered resizes will have the proper
9482           display rectangle for layout
9483
9484 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
9485
9486         * ThemeWin32Classic.cs:
9487           - Make use of the SystemBrushes and SystemPens wherever possible
9488           - Corrected some highlight colors
9489           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
9490             drawing
9491         * Theme.cs: Added Empty field to CPColor struct
9492
9493 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
9494
9495         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
9496           is displayed when calculating the display rectangle. Thanks to Mike
9497           for teaching me the err of my ways.
9498
9499 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
9500
9501         * ScrollableControl.cs:
9502           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
9503             (instead of 0,0) and we now return the real width/height instead of
9504             just the clientrectangle, adjusted for padding. The rectangle is
9505             now cached and created by the new CalculateDisplayRectangle method.
9506           - Created new CalculateDisplayRectange method, which basically does
9507             what get_DisplayRectangle() did originally, but now using the 
9508             right edge instead of DisplayRectangle to determine the size of
9509             our scrollbars
9510           - get_Canvas(): Fixed it to properly calculate canvas for 
9511             right/bottom controls which seem to be placed to the right/bottom
9512             of any controls that have a fixed location
9513           - Removed TODO that's taken care of
9514           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
9515             and SetDisplayRectLocation according to new MSDN2 docs
9516           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
9517             event when that is called, this is added for compatibility
9518           - ScrollControlIntoView(): Implemented.
9519           - Switched scrollbars to be implicit, they shouldn't be selectable
9520         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
9521           call it when the active control is set/changed
9522         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
9523         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
9524           implicit_control variable (used for native Win32 message generation)
9525         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
9526           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
9527         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
9528         * XplatUIStructs.cs: Added ScrollBarCommands enum
9529
9530 2006-04-10  Jackson Harper  <jackson@ximian.com>
9531
9532         * ButtonBase.cs:
9533         * CheckedListBox.cs:
9534         * ComboBox.cs:
9535         * DataGrid.cs:
9536         * DataGridView.cs:
9537         * Form.cs:
9538         * GroupBox.cs:
9539         * ListBox.cs:
9540         * PrintPreviewControl.cs:
9541         * ProgressBar.cs:
9542         * PropertyGrid.cs:
9543         * Splitter.cs:
9544         * StatusBar.cs:
9545         * TrackBar.cs:
9546         * UpDownBase.cs: Fixup base event overrides.
9547         
9548 2006-04-06  Mike Kestner  <mkestner@novell.com>
9549
9550         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
9551         all user-initiated value changes to min <= value <= max-thumbsz+1.
9552         (set_Value): check for vert/horiz when calculating new thumb position.
9553         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
9554         like MS does.
9555         (OnMouseMoveSB): refactor the thumb dragging code and refine
9556         invalidation logic to reduce flicker.
9557         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
9558         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
9559         (UpdateThumbPosition): small code readability cleanup
9560
9561 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
9562
9563         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
9564           different
9565
9566 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
9567
9568         * ThemeNice.cs: Use a better graphics effect when a button is pressed
9569
9570 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
9571
9572         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
9573         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
9574           This dramatically reduces the number of Pen.Dispose calls. 
9575           Where possible call ResPool methods only once instead of calling it
9576           over and over again (for example for the same color).
9577
9578 2006-04-06  Mike Kestner  <mkestner@novell.com>
9579
9580         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
9581         Also remove an unused private field on the collection. Fixes #77972.
9582
9583 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
9584
9585         * ThemeNice.cs: Added ToolBar drawing code
9586
9587 2006-04-06  Mike Kestner  <mkestner@novell.com>
9588
9589         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
9590         I'm assuming that means we need to look up the toplevel for the
9591         provided control. Fixes the crash trace in #77911 but exposes another
9592         crash in some strange reflection usage in NDocGui.
9593
9594 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
9595
9596         * ThemeNice.cs: Gave it a little silver touch and added Images
9597           method
9598         * FontDialog.cs: FontDialog is not resizable
9599         * FileDialg.cs: Added SizeGripStyle.Show
9600
9601 2006-04-05  Jackson Harper  <jackson@ximian.com>
9602
9603         * KeyboardLayouts.cs: Remove warning.
9604
9605 2006-04-05  Jackson Harper  <jackson@ximian.com>
9606
9607         * Control.cs: Enable OnPaintInternal so we can use it for drawing
9608         all of our controls instead of Paint +=.
9609         * ListBox.cs:
9610         * ListView.cs:
9611         * MenuAPI.cs:
9612         * MessageBox.cs:
9613         * NotifyIcon.cs:
9614         * ProgressBar.cs:
9615         * ScrollBar.cs:
9616         * Splitter.cs:
9617         * StatusBar.cs:
9618         * TabControl.cs:
9619         * TextBoxBase.cs:
9620         * ToolBar.cs:
9621         * TrackBar.cs:
9622         * UpDownBase.cs:
9623         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
9624         use OnPaintInternal. Remove Width/Height and Visible checks in
9625         paint handler, this is done at a higher level now.
9626         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
9627         * PaintEventArgs.cs: Add a handled flag so controls that don't
9628         want anymore painting after OnPaintInternal can make sure OnPaint
9629         isn't called.
9630
9631 2006-04-05  Mike Kestner  <mkestner@novell.com>
9632
9633         * Form.cs: fix the menu WndProc hacks to respect the native enabled
9634         state of the form, so that we don't process events when Modal dialogs
9635         are up. Fixes #77922.
9636
9637 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
9638
9639         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
9640           checking is done.
9641
9642 2006-04-05  Mike Kestner  <mkestner@novell.com>
9643
9644         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
9645
9646 2006-04-05  Mike Kestner  <mkestner@novell.com>
9647
9648         * ListView.cs (HeaderMouseMove): null guarding for the over column
9649         when setting up the drag_to_index.  Fixes #78015.
9650
9651 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
9652
9653         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
9654           in the taskbar. Transient windows seem to accomplish that.
9655
9656 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
9657
9658         * Form.cs:
9659           - Re-enabled CreateParams.X/Y code for FormStartPosition
9660           - Added code for manual placement when creating the Control
9661           - Incomplete patch to treat MDI forms differently when
9662             setting the ClientSizeCore. (Still need to figure out handling
9663             x/y coords there)
9664         * XplatUIX11.cs:
9665           - When we're explicitly setting the X/Y position of a non-Child
9666             window, let the WM know. Metacity really wants this.
9667
9668 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9669
9670         * ThemeNice.cs: Added CPDrawButton
9671
9672 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9673
9674         * ThemeNice.cs: Changed the color for focused buttons and activated
9675           the arrows for small scroll buttons.
9676
9677 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
9678
9679         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
9680           anymore. Changed some method modifiers to protected (virtual)
9681         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
9682           changes
9683         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
9684           Updated drawing of menus, buttons and progressbars; added
9685           CPDrawBorder3D 
9686
9687 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9688
9689         * ImageListStreamer.cs: implemented serialization/deserialization
9690         of the images.
9691
9692 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
9693
9694         * ThemeWin32Classic.cs:
9695           - Removed all the DrawFrameControl stuff; CPDrawButton,
9696             CPDrawCheckBox and CPDrawRadioButton are now handled directly
9697             inside the methods
9698           - Updated and corrected the drawing code of CPDrawButton,
9699             CPDrawCheckBox and CPDrawRadioButton to better match ms
9700           - Updated theme checkbox and radiobutton code to use the CP*
9701             methods
9702
9703 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
9704
9705         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
9706           bug is fixed
9707
9708 2006-03-31  Jackson Harper  <jackson@ximian.com>
9709
9710         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
9711         sometimes.
9712         * UpDownBase.cs: Don't CreateGraphics manually, use a
9713         Refresh. Ideally we would invalidate the correct areas here.
9714
9715 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
9716
9717         * XplatUIX11.cs: 
9718           - We now track the mapping state of windows. If a window (or 
9719             one of it's parents) is not mapped we no longer permit
9720             WM_PAINT messages to be generated since we'd otherwise get 
9721             lots of BadMatch X errors. Jackson did all the work figuring
9722             out the problem.
9723           - Destroying the caret if the window it's contained in is 
9724             destroyed. Can't use regular DestroyCaret method since it
9725             might fall into a drawing function (trying to remove the
9726             caret) and with that generate new BadMatch errors. Again,
9727             Jackson tracked this down.
9728           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
9729             make sure we send the messages to all windows. (The old code
9730             would send the WM_DESTROY to the window, and then all child
9731             windows would be 'gone' because the WM_DESTROY handle lookup
9732             would no longer find the destroyed window)
9733         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
9734         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
9735
9736 2006-03-31  Jackson Harper  <jackson@ximian.com>
9737
9738         * ScrollableControl.cs: Dont recalc if we are not visible.
9739
9740 2006-03-31  Mike Kestner  <mkestner@novell.com>
9741
9742         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
9743         the visibility branch.
9744
9745 2006-03-31  Jackson Harper  <jackson@ximian.com>
9746
9747         * ScrollBar.cs: Cap values when incrementing/decrementing.
9748
9749 2006-03-31  Mike Kestner  <mkestner@novell.com>
9750
9751         * MenuAPI.cs: setup menu.tracker for popup/context menus.
9752         * ToolTip.cs: guard against timer expirations with no active control.
9753         Not sure why it happened.
9754
9755 2006-03-31  Mike Kestner  <mkestner@novell.com>
9756
9757         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
9758         text.
9759         * ToolTip.cs: Position the tooltip based on where the cursor is at
9760         popup time, not at MouseEnter time.  Add a Down state so that we don't
9761         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
9762         positioning offset. Lookup DisplaySize at positioning time, since it
9763         can theoretically change during invocation.
9764         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
9765         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
9766
9767 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9768
9769         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
9770           Fixes behaviour when the Text property of the box is String.Empty
9771
9772 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
9773
9774         * XplatUIX11.cs: Only send mouseleave for our client windows, not
9775           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
9776           a window)
9777
9778 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9779
9780         * FileDialog.cs: Visual enhancement for the popup buttons in 
9781           PopupButtonPanel
9782
9783 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
9784
9785         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
9786           code
9787
9788 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
9789
9790         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
9791           highlighted menu items to match ms
9792
9793 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
9794
9795         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
9796
9797 2006-03-30  Mike Kestner  <mkestner@novell.com>
9798
9799         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
9800         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
9801         go active to account for HotLight to Selected transition.
9802         * MenuItem.cs: add internal Selected prop. Fill out the Status
9803         property by calculating it from item info. Add HotLight,
9804         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
9805
9806 2006-03-30  Mike Kestner  <mkestner@novell.com>
9807
9808         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
9809
9810 2006-03-29  Jackson Harper  <jackson@ximian.com>
9811
9812         * Form.cs: Implement TODO.
9813
9814 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
9815
9816         * PrintPreviewDialog.cs: Implemented missing methods and events; still
9817           missing proper dialog setup in the constructor
9818
9819 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
9820
9821         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
9822         * Control.cs:
9823           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
9824           - Fixed ResetBindings and removed TODO
9825           - Added check for cross-thread calls to get_Handle()
9826           - Added Marshaller attribute for set_Font to satisfy class status
9827         * FontDialog.cs: Removed TODOs that seemed implemented
9828         * UpDownBase.cs: Removed unneeded TODO and Fixme
9829         * MessageBox.cs: Implemented support for Default button and removed TODO
9830         * FileDialog.cs: Removed obsolete TODO
9831         * DomainUpDown.cs: Removed obsolete TODO
9832         * ButtonBase.cs: Removed obsolete TODO
9833         * XplatUIWin32.cs: Removed obsolete TODO
9834         * Form.cs:
9835           - Removed obsolete TODO
9836           - Calling CheckAcceptButton when the acceptbutton is changed to allow
9837             internal status updates
9838           - Making sure the active control is selected when the control is created
9839         * CurrencyManager.cs: Removed obsolete TODO
9840
9841 2006-03-29  Mike Kestner  <mkestner@novell.com>
9842
9843         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
9844         of PrintPreviewDialog and RichTextBox.
9845
9846 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9847
9848         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
9849           DarkDark, Light and LightLight colors for a specific color
9850         * ThemeWin32Classic.cs:
9851           - Use Button drawing code to draw RadioButtons and CheckBoxes with
9852             Appearance = Button 
9853           - Make use of the new ResPool helper CPColor
9854           - Draw ProgressBar and StatusBar with correct 3D borders
9855
9856 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
9857
9858         * ColorDialog.cs: Return selected color. Fixes bug #77940.
9859
9860 2006-03-28  Mike Kestner  <mkestner@novell.com>
9861
9862         * ListView.cs: fix Icon layout to plan for scrollbar widths when
9863         calculating col/row counts.
9864
9865 2006-03-28  Mike Kestner  <mkestner@novell.com>
9866
9867         * ColumnHeader.cs:
9868         * ListView.cs:
9869         * ListViewItem.cs:
9870         * Menu.cs: 
9871         switch to explicit interface method implementation for some methods
9872         corcompare identifies as inconsistent with MS.
9873
9874 2006-03-28  Mike Kestner  <mkestner@novell.com>
9875
9876         * MainMenu.cs: 
9877         * Menu.cs:
9878         add a few missing methods from the class status output.
9879
9880 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
9881
9882         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
9883           correct.
9884
9885 2006-03-28  Mike Kestner  <mkestner@novell.com>
9886
9887         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
9888
9889 2006-03-27  Mike Kestner  <mkestner@novell.com>
9890
9891         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
9892         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
9893
9894 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
9895
9896         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
9897
9898 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9899
9900         * ThemeWin32Classic.cs:
9901           - GroupBox: Inserted a little gap between the text and the lines
9902             on the right side
9903           - Made the code in CPDrawBorder3D more readable
9904           - Corrected the drawing location of the up and down arrows in 
9905             CPDrawScrollButton
9906
9907 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9908
9909         * ControlPaint.cs: Corrected line widths in DrawBorder for
9910           ButtonBorderStyle Inset and Outset
9911
9912 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9913
9914         * ThemeWin32Classic.cs:
9915           - Rewrote the totally broken CPDrawBorder3D method. That was
9916             one of the main problems for the terrific ThemeWin32Classic
9917             look
9918           - Updated and corrected Button drawing
9919           - Correct the dimensions of the SizeGrip to match ms ones
9920           - Removed a small drawing glitch in DrawComboBoxEditDecorations
9921         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
9922           Border3DStyle.Sunken to match ms.
9923
9924 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
9925
9926         * ThemeWin32Classic.cs: First small part of the "de-uglify
9927           ThemeWin32Classic" effort, SizeGrip
9928
9929 2006-03-24  Jackson Harper  <jackson@ximian.com>
9930
9931         * XplatUIX11.cs: Give a max idle time of one second, this matches
9932         MS and forces an Idle event every second when there are no other
9933         events in the queue.
9934
9935 2006-03-24  Mike Kestner  <mkestner@novell.com>
9936
9937         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
9938         * ListView.Item.cs: fix layout issues with null image lists and images
9939         smaller than checkbox size.
9940         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
9941         mode like MS does.  It's weird, but consistent.  ;-)
9942         Fixes #77890.
9943
9944 2006-03-24  Mike Kestner  <mkestner@novell.com>
9945
9946         * ListView.cs: Scroll wheel support for the item control.  Fixes
9947         #77839.
9948
9949 2006-03-23  Jackson Harper  <jackson@ximian.com>
9950
9951         * ScrollableControl.cs: Special case negative sized areas, not
9952         zero.
9953         * MonthCalendar.cs: Save the rect of the clicked date so we can
9954         use it for invalidation.
9955         - Try to cut down on the number of invalidates
9956         - Invalidate the rect the mouse is over and was over when moving
9957         the mouse, so we get the focus box following the cursor.
9958
9959 2006-03-23  Mike Kestner  <mkestner@novell.com>
9960
9961         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
9962         focus rectangle drawing. Fixes #77835.
9963
9964 2006-03-23  Mike Kestner  <mkestner@novell.com>
9965
9966         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
9967         the if and else if and reverting back to the original == check on the
9968         None conditional.
9969
9970 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9971
9972         * FontDialog.cs: Update the example panel if the selected index of
9973           the fontListBox changes.
9974
9975 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9976
9977         * FileDialog.cs: Make FileDialog remember which directory it was in
9978           last in the same execution.
9979
9980 2006-03-22  Mike Kestner  <mkestner@novell.com>
9981
9982         * FileDialog.cs: make the DropDownMenu on the toolbar display
9983         RadioChecks since they are mutually exclusive and that's what MS does.
9984
9985 2006-03-22  Mike Kestner  <mkestner@novell.com>
9986
9987         * Theme.cs: add Color param to CPDrawMenuGlyph.
9988         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
9989         checks and radio marks and arrows are visible on highlighted items.
9990         * ControlPaint.cs: update to use new Theme signature.
9991
9992 2006-03-22  Mike Kestner  <mkestner@novell.com>
9993
9994         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
9995         is active. Fixes #77870.
9996
9997 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9998
9999         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
10000           to be focused/selected after startup
10001
10002 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
10003
10004         * ColorDialog.cs: 
10005           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
10006             CustomColors and ShowHelp properties
10007           - Some internal rewrites to get better results when using the
10008             ColorMatrix
10009
10010 2006-03-22  Mike Kestner  <mkestner@novell.com>
10011
10012         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
10013         HoverSelection.  Fixes #77836.
10014
10015 2006-03-22  Mike Kestner  <mkestner@novell.com>
10016
10017         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
10018         ToggleButtons.  (De)Sensitize the Back button around a stack count of
10019         1, not 0.  Update ButtonSize based on a pixel count of the win32
10020         control.  Adjust the toolbar size/location for new button size.
10021
10022 2006-03-22  Jackson Harper  <jackson@ximian.com>
10023
10024         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
10025         true.
10026         * ScrollBar.cs: When doing increments and decrements we need to
10027         set the Value property so that ValueChanged gets raised. A
10028         possible optimization here would be to make an internal SetValue
10029         that doesn't invalidate immediately.
10030         * ToolTip.cs: Tooltips get added to their container (when
10031         supplied) so they get disposed when the container is disposed.
10032         - Don't create tooltips for String.Empty. This prevents all these
10033         little 2-3 pixel windows from showing up when running nunit-gui
10034         and driving me mad.
10035         * Form.cs: Don't set topmost when setting the owner if the handles
10036         haven't been created yet.  The topmost set will happen when the
10037         handles are created.
10038
10039 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
10040
10041         * XplatUIX11.cs:
10042           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
10043           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
10044             visible (to allow them to recalculate their sizes)
10045
10046 2006-03-21  Mike Kestner  <mkestner@novell.com>
10047
10048         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
10049         methods. Removed a ton of redundant code.  Still not really happy with
10050         the border rendering, but I think that's mainly because of the
10051         ControlDarkDark being black instead of a dark grey. Depending on how 
10052         close we want to be, we might want to revisit those color choices.
10053         Among the new features added during the refactor were DropDownArrow
10054         pressed rendering, Disabled image rendering.  Proper flat appearance
10055         boundary rendering.  Removed the Divider and Wrapping dividers since I
10056         can't figure out any combination of themes and conditions to make the
10057         MS control draw a horizontal line on a toolbar despite what the
10058         Divider property docs indicate.
10059         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
10060         conditions and incorrect layout.  Updated to coding standard.
10061         * ToolBarButton.cs: refactored layout and positioning code from
10062         ToolBar to here.  Invalidate wherever possible instead of forcing
10063         redraws of the whole toolbar. 
10064         (Known remaining issues: explicit ButtonSize smaller than provided
10065         images.)
10066
10067 2006-03-21  Mike Kestner  <mkestner@novell.com>
10068
10069         * ContextMenu.cs (Show): use the position parameter instead of just
10070         showing at the MousePosition.
10071
10072 2006-03-21  Jackson Harper  <jackson@ximian.com>
10073
10074         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
10075         control handle this.
10076         * TreeNodeCollection.cs: If we are clearing the root node we need
10077         to reset top_node so calcs can still happen.
10078         * ThemeWin32Classic.cs: This is a Flags so we need to check
10079         properly.
10080         
10081 2006-03-21  Jackson Harper  <jackson@ximian.com>
10082
10083         * DataGrid.cs: Create columns when the binding context has been
10084         changed.
10085         * X11Structs.cs: Keysyms are uints.
10086         - Add size to fix build.
10087
10088 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
10089
10090         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
10091           XplatUIOSX.cs: 
10092           - Added ResetMouseHover method to allow controls to retrigger
10093             hovering if they need it more than once
10094           - Implemented MouseHoverTime and MouseHoverSize properties
10095         * Timer.cs: Start() must reset the interval
10096         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
10097           properties
10098
10099 2006-03-21  Jackson Harper  <jackson@ximian.com>
10100
10101         * X11Keyboard.cs: improved layout detection. Move the nonchar
10102         tables into this file.
10103         * KeyboardLayouts.cs: Move the tables into resource files.
10104
10105 2006-03-21  Mike Kestner  <mkestner@novell.com>
10106
10107         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
10108
10109 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
10110
10111         * Mime.cs: Various speed optimizations. Looking up mime types
10112           is now 2 times faster than before
10113
10114 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
10115
10116         * CreateParams.cs: Added internal menu field
10117         * Control.cs: 
10118           - Switched call order for UpdateBounds; now we always call
10119             the one that also takes ClientSize, and we're calculating the 
10120             client size via driver method in the others. The previous
10121             method of tracking client size by difference wasn't working
10122             for forms where even the starting client size wouldn't match
10123             the overall form size (due to borders) (Part of fix for #77729)
10124           - CreateParams(): Do not use parent.Handle unless the handle is
10125             already created. Causes havoc with Nexxia and throws off our
10126             creation of controls
10127         * XplatUIX11.cs:
10128           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
10129           - Switched handling of ConfigureNotify over to new PerformNCCalc 
10130             method (consolidates code)
10131           - Changed RequestNCRecalc to use new PerformNCCalc method
10132           - Added calls to RequestNCRecalc when menus and borders are changed
10133             to allow app to set NC size. (Part of fix for #77729) This matches
10134             when MS send a WM_NCRECALC on Win32 windows.
10135           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
10136             (Part of fix for #77729). This matches what MS does, they also
10137             send that message when the form is made visible.
10138           - XException.GetMessage: Improved usability of X errors by including
10139             a translation of the window into Hwnd and Control class
10140           - Improved debug info for window creation, reparenting and destruction
10141           - Created helper method WindowIsMapped() [Currently not used]
10142         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
10143         * Form.cs:
10144           - CreateParams: Now setting our menu on the new internal menu field
10145           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
10146             avoid calculating the same property twice
10147         * Hwnd.cs:
10148           - Improved usability of ToString() for debugging purposes
10149           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
10150             determine the height of the menu, instead of just the font. This
10151             required to also create a graphics context and to keep a bmp 
10152             around (for performance reasons)
10153
10154 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
10155
10156         * MenuAPI.cs: Added OnMouseUp method
10157         * Form.cs:
10158           - Now remembering the requested client size, avoids size errors
10159           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
10160             instead of base if the menu is active. This is required due to
10161             control now capturing and releasing on down/up and it would
10162             prematurely release our menu capture
10163
10164 2006-03-17  Jackson Harper  <jackson@ximian.com>
10165
10166         * KeyboardLayouts.cs: Add the czech layouts.
10167
10168 2006-03-16  Jackson Harper  <jackson@ximian.com>
10169
10170         * Control.cs: Use the viewport space when sizing not the controls
10171         client size, so things like ScrollableControl that effect the
10172         viewport size (when scrollbars are added) are computed correctly.
10173         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
10174         of ManagerEntrys.
10175         - Handle creating BindingManagers for null data sources.
10176         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
10177         source, otherwise when rows are added they are added to the 'fake'
10178         datasource and we will crash when trying to set the position in
10179         those rows.
10180         - Use Implicit scrollbars on the datagrid so they arent
10181         selectable.
10182         
10183 2006-03-16  Jackson Harper  <jackson@ximian.com>
10184
10185         * Binding.cs:
10186         * InternalWindowManager.cs:
10187         * MdiWindowManager.cs:
10188         * X11Keyboard.cs: I really want Mike to love me again (fix
10189         compiler warnings).
10190
10191 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
10192
10193         * DataGrid.cs:
10194           - OnMouseDown: Switch to editing mode when clicking on the cell
10195                          even if we're clicking on the cell that's currently 
10196                          selected
10197           - ProcessGridKey: Left/Right now wrap like MS.Net does
10198           - ProcessGridKey: Tab now knows to add a new row when tab is
10199                             pressed in the cell of the last column of the 
10200                             last row
10201           - ProcessGridKey: Enter now adds another row  if pressed in the last
10202                             row and selectes the new row, same column cell
10203           - ProcessGridKey: Home/End navigate columns, not rows, like 
10204                             originally implemented
10205           - Broke ProcessKeyPreview code out into an extra Internal method
10206             so it can be called from the edit code
10207         * DataGridTextBox.cs (ProcessKeyMessage):
10208           - Switched to accept Tab keypresses
10209           - Added F2 handling to allow jumping to the end of the edited cell
10210           - Added logic to allow moving caret left/right inside edited cell
10211             and making the edited cell jump when the caret hits cell borders
10212           - Tab and Enter are now passed to the datagrid after being handled
10213         * TextBoxBase.cs:
10214           - Removed capture code now that Control handles it
10215           - set_SelectionStart now ensures caret is visible
10216
10217 2006-03-16  Jackson Harper  <jackson@ximian.com>
10218
10219         * TrackBar.cs: Debackwards the increment/decrement for handling
10220         mouse clicks on the bar with vertical trackbars.
10221         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
10222         bottom to match MS.
10223
10224 2006-03-16  Mike Kestner  <mkestner@novell.com>
10225
10226         * ListView.cs: make shift/ctrl keyboard and mouse selection 
10227         consistent with the MS control. Fix a bug in
10228         SelectedListViewItemCollection.Clear that was pissing me off for the
10229         better part of a day because the collection was being altered
10230         underneath us as we walked the list.
10231
10232 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
10233
10234         * Control.cs: Not sure how we could miss this so long, but it seems
10235           that MS.Net has Capture set all the way from before calling 
10236           OnMouseDown through sending the mouse events until after
10237           OnMouseUp. This will fix DataGrid's selection being set to end
10238           at the location of the MouseUp.
10239
10240 2006-03-15  Jackson Harper  <jackson@ximian.com>
10241
10242         * BindingContext.cs: Check the binding after its added so that it
10243           can initialize the binding managers and hookup to events.
10244         * Binding.cs: Data members seem to sometimes include rows/cols in
10245           the format Row.Column we now take this into account.
10246           - Hookup to the position changed event so we can update the
10247           control when the position has changed in the data set.
10248         * CurrencyManager.cs: Take into account the row/col naming
10249           convention when creating dataset tables.
10250         * BindingContext.cs: Using a newer better way of storing
10251           datasource/datamember pairs.  Hopefully this better matches MS for
10252           looking up binding managers.
10253
10254
10255 2006-03-15  Jackson Harper  <jackson@ximian.com>
10256
10257         * BindingContext.cs: The currency manager needs the data member
10258         name, if the member is a data set we use the name to find the
10259         correct table.
10260         * CurrencyManager.cs: When creating the list prefer an IList over
10261         an IListSource.
10262         - Attempt to create a DataTable from a DataSet (TODO: might need
10263         some better error checking here, although MS doesn't seem to have much)
10264         - If we have a DataTable create a view and use it as our list.
10265
10266 2006-03-15  Mike Kestner  <mkestner@novell.com>
10267
10268         * ListView.cs: keep a matrix of the icon mode layout to facilitate
10269         keyboard navigation. Support Up/Down/Left/Right selection correctly
10270         for all 4 View modes.
10271         * ListViewItem.cs: add internal row/col fields for icon layouts.
10272
10273 2006-03-15  Jackson Harper  <jackson@ximian.com>
10274
10275         * TabControl.cs: Redraw the tabs when we resize so their newly
10276         calculated sizes are drawn on screen.
10277         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
10278         composite characters.
10279         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
10280         - filter events so that composite characters can be created
10281         patches by peter
10282         * X11Structs.cs: Add XIMProperties enum.
10283
10284 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
10285
10286         * Control.cs (BringToFront, SendToBack): Don't use window or handle
10287           unless it's created
10288
10289 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
10290
10291         * Control.cs (PerformLayout): We don't need to consider visiblity
10292           for anchoring, only for docking. This fixes 'whacky' alignment
10293           in listbox and other controls that use implicit scrollbars after
10294           the previous PerformLayout patch
10295         * ListBox.cs: Switched to use implicit scrollbars
10296           
10297 2006-03-14  Mike Kestner  <mkestner@novell.com>
10298
10299         * ToolBar.cs: 
10300         * VScrollBar.cs:
10301         - chain up the "new event" overrides to base and use
10302         OnEvent to raise them.  Part of fix for bug #76509.
10303
10304 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
10305
10306         * FileDialog.cs: Do not select an item in the parent directory
10307           on backspace
10308
10309 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
10310
10311         * Control.cs (PerformLayout): It would seem that we considered
10312           invisible windows for our layout. Not quite the right thing
10313           to do. Now we don't any longer, thereby fixing bug #76889.
10314
10315 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
10316
10317         * Control.cs (CanFocus): I goofed. A control can have focus 
10318           even though it's not selectable. Made it match MS docs.
10319
10320 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
10321
10322         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
10323           center by default (fixes #76895)
10324         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
10325           all uses of Border3DSides.All with the explicit ORd together
10326           Left|Right|Top|Bottom because I assume that nobody was aware 
10327           that All also implies a center fill. Most places I checked had
10328           a fill right above.
10329         * ProgressBarStyle.cs: Added
10330
10331 2006-03-13  Mike Kestner  <mkestner@novell.com>
10332
10333         * ListView.cs: fix breakage in drag shadow header positioning 
10334         from Peter's csc compilation fix.
10335
10336 2006-03-13  Mike Kestner  <mkestner@novell.com>
10337
10338         * ListView.cs: fix NRE produced by backspacing twice in a focused
10339         FileDialog.
10340
10341 2006-03-13  Mike Kestner  <mkestner@novell.com>
10342
10343         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
10344
10345 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
10346
10347         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
10348           be changed
10349         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
10350           the allowed size before making programmatic size changes
10351
10352 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
10353
10354         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
10355           set, metacity is broken and will still use the emty sizes in 
10356           the struct. (Fix for #77089)
10357
10358 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
10359
10360         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
10361           WindowExStyles and marked both enums as Flags
10362         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
10363           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
10364           to match WindowStyles split
10365         * XplatUIX11.cs:
10366           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
10367           - Updated to match WindowStyles split
10368         * XplatUIWin32.cs:
10369           - Fixed FosterParent creation, was using ExStyle on the Style field
10370             (This should help with Popup focus issues)
10371           - Updated to match WindowStyles split
10372
10373 2006-03-13  Jackson Harper  <jackson@ximian.com>
10374
10375         * MdiWindowManager.cs: Use the system menu height. Fixes some
10376         strange sizing issues.
10377
10378 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
10379
10380         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
10381         * TextBoxBase.cs:
10382           - Scroll to caret after inserting text (#77672)
10383           - Make scroll range one pixel higher, fixes off-by-one error (and
10384             makes underlines visible on the last line)
10385
10386 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
10387
10388         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
10389           the keyboard state from being stuck with keys in 'pressed' state when
10390           focus is switched away via keyboard
10391         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
10392           reset the keyboard if no X11 KeyUp events are expected to come
10393         * X11Structs.cs: Switched type of Visible to bool to match driver
10394
10395 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
10396
10397         * TextControl.cs:
10398           - Switched caret to be just 1 pixel wide, matches MS and looks less
10399             clunky
10400           - Moved caret display 1 pixel down from the top of the control
10401             to improve view
10402           - InsertCharAtCharet: Update the selection start if moving the caret
10403             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
10404           - No longer always creating the caret when the caret methods are
10405             called. Only the actual ShowCaret/HideCaret will do that now
10406           - Only setting caret visible if the owner control has focus
10407           - UpdateView: Added invalidation-shortcut logic for center and right 
10408             aligned text. Previously we'd update all according to the left
10409             logic which caused drawing errors. Also fixed height of invalidated
10410             areas, now properly invalidating the whole area (was off-by-one)
10411           - owner_HandleCreated: Always generate the document when the
10412             handle is created; this ensures that 
10413         * TextBoxBase.cs:
10414           - Fixed situation where caret would disappear under the right
10415             window border, also improved scrolling behaviour on left-
10416             aligned textboxes
10417           - Fixed right-aligned textboxes to have a border to the
10418             right instead of the caret being under the right border
10419         * XplatUIX11.cs:
10420           - Switched from 'nested' to simple visible/not visible tracking 
10421             for caret (part of fix for #77671)
10422           - No longer passing through translated FocusIn/FocusOut messages
10423             since we were notifying too often and the wrong windows. Instead
10424             we just notify our focussed window of receiving or loosing focus
10425         * XplatUIWin32.cs: Switched from 'nested' show/hide 
10426           counting for caret to simple visible yes/no behaviour (part of 
10427           fix for #77671)
10428
10429 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
10430
10431         * Mime.cs: Remove debug code...
10432
10433 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
10434
10435         * MimeGenerated.cs: Removed
10436         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
10437           and subclasses) from /usr/(local/)share/mime and
10438           $HOME/.local/share/mime.
10439
10440 2006-03-10  Jackson Harper  <jackson@ximian.com>
10441
10442         * MdiWindowManager.cs: Recalc the NC area when a window is
10443         maximized/restored so that the menu area is drawn on forms that
10444         don't have a menu.
10445
10446 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
10447
10448         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
10449           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
10450           us to force a WM_NCCALCRESIZE message being sent. This is needed
10451           for MDI maximizing.
10452
10453 2006-03-10  Jackson Harper  <jackson@ximian.com>
10454
10455         * Form.cs: We need to use the ActiveMenu when calculating menu
10456         height.
10457         - Fix nullref when the window manager hasn't been created yet.
10458         * Control.cs: Fix nullref when we try to bring a control to the
10459         front that has no parent.
10460         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
10461         height.
10462         - Add a dummy item to the maximized menu so it always has the
10463         correct height. Otherwise when there are no menus we don't get our
10464         icon and buttons.
10465         
10466
10467 2006-03-10  Jackson Harper  <jackson@ximian.com>
10468
10469         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
10470         stuff.
10471         * Form.cs: Make the window_state internal so the window managers
10472         can track it.
10473         - When an MDI child is maximized let its window manager create the
10474         main menu (so it can add its icon).
10475         - Notify the window managers of state changes
10476         - Let the window manager paint its buttons and handle button
10477         clicks on the menu when it is maximized.
10478         * InternalWindowManager.cs: Move the prev_bounds into the mdi
10479         window manager, since tool windows don't use it, only mdi windows.
10480         - Tell the main form that we don't want it to handle NCPAINT
10481         itself to avoid extra painting.
10482         - Handle clicks on a maximized windows menu.
10483         - Handle window state changes
10484         - Handle minimize/maximize clicks correctly by setting the window state.
10485         * MdiWindowManager.cs: Add an icon menu that (the menu you get
10486         when clicking on the forms icon).
10487         - New method to create a forms maximized menu. This is its normal
10488         menu + an icon.
10489         - Handle window state changes.
10490         - Handle sizing of maximized windows.  Maximized windows are just
10491         drawn bigger then the parent visible area. All controls are still
10492         there, they are just outside the visible area (this matches windows).
10493         * MdiClient.cs: No scrollbars when a child window is maximized.
10494         - Let the children windows figure out how big they should be when
10495         sizing maximized windows.
10496         - Implement a version of ArrangeIconicWindows somewhat similar to
10497         Windows version.  There are some little differences, but I don't
10498         think any app will rely on the layout of minimized mdi windows.
10499
10500 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
10501
10502         * Padding.cs: Several fixes to allow compiling with csc 2.0
10503
10504 2006-03-09  Jackson Harper  <jackson@ximian.com>
10505
10506         * Menu.cs:
10507         * MenuItem.cs: Cheap hack so we can add items to the list without
10508         the events being raised.  This allows adding mdi items during
10509         drawing. TODO: Should probably find a better time to add the items.
10510
10511 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
10512
10513         * ThemeWin32Classic.cs:
10514           - CheckBox_DrawText: Added logic to not wrap if not enough space
10515             is available (Fix for bug #77727)
10516           - RadioButton_DrawText: Added logic not to wrap if not enough
10517             space is available (Fix for bug #77727). Also removed some
10518             duplicate code, DrawString always drawing the regular text
10519             before hitting the if statement.
10520
10521 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
10522
10523         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
10524
10525 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
10526
10527         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
10528         * ContainerControl.cs: Partial implementation of some 2.0 scaling
10529           methods. Moved the new 2.0 properties into alphabetical order with
10530           other properties and added MonoTODO tags
10531
10532 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
10533
10534         * AutoScaleMode.cs: Added. Fix build.
10535
10536 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
10537
10538         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
10539           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
10540           and was requiring premature handle creation for calls from above
10541         * Form.cs, Control.cs: Removed handle arguments from calls to
10542           CalculateClientRect()
10543
10544 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
10545
10546         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
10547           drag_column.column_rect is MarshalByRef and can't be used that way
10548
10549 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
10550
10551         * AxHost.cs: Added deserialization constructor for 
10552           AxHost+State (fixes 77743)
10553
10554 2006-03-09  Mike Kestner  <mkestner@novell.com>
10555
10556         * ListView.cs: 
10557         - Added column drag reordering for details view.
10558         - fixed behavior when mouse is dragged off column and
10559         AllowColumnReorder is false.
10560         * ColumnHeader.cs: clone the format too in Clone.
10561         * Theme.cs: add DrawListViewHeaderDragDetails method.
10562         * ThemeWin32Classic.cs:
10563         - impl new method for drawing drag column shadows and targets.
10564         - support column offset for details mode in DrawListViewItem.
10565
10566 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
10567
10568         * TextControl.cs: Reset the char_count when the document is cleared
10569           (Fixes bug reported on mono-winforms mailing list)
10570
10571 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
10572
10573         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
10574           of calling base we simply process the key ourselves, since both
10575           DefWindowProc and the handled method would set m.Result. 
10576           (Fixes #77732)
10577
10578 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
10579
10580         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
10581           method also moves the window; instead implemented a copy of
10582           Control.ScaleCore (Part of fix for #77456)
10583         * TextBoxBase.cs: 
10584           - Created new CreateGraphicsInternal method to allow providing
10585             a graphics context when no handle is created without triggering
10586             handle creation. (Part of fix for #77456)
10587           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
10588         * TextControl.cs: 
10589           - Switched Constructor to require TextBoxBase instead of Control (to
10590             allow uncast access to CreateGraphicsInternal)
10591           - Safeguarded use of owner.Handle property. No longer accessing it
10592             unless the handle is already created.
10593           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
10594           - Now triggering a recalc when owning control becomes visible
10595         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
10596           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
10597           premature handle creation (Part of fix for #77456)
10598         * Control.cs:
10599           - We now only destroy our double-buffering buffers when the
10600             control is resized or disposed, but not when visibility
10601             changes. (The code even re-created them twice every time)
10602           - Now requiring a redraw of the buffer on visibility changes
10603             (fixes bug 77654 part 2)
10604           - Not passing OnParentVisibleChanged up unless the control
10605             is visible
10606           - CanFocus: Fixed to match MS documentation
10607           - Focus: Fixed to return actual focus state and to check if
10608             setting focus is legal before setting it
10609
10610 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
10611
10612         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
10613           when to draw focus rectangle by looking at parent focus and
10614           selected state instead. This fixes TabPages on Linux sometimes
10615           having none or multiple focus rectangles.
10616         * XplatUIX11.cs (SetFocus): 
10617           - Don't set the focus if the same window already has focus
10618           - Use SendMessage instead of PostMessage (like it's Win32
10619             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
10620             to match MS behaviour
10621         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
10622           are not selectable.
10623
10624 2006-03-07  Jackson Harper  <jackson@ximian.com>
10625
10626         * PictureBox.cs: Revert line I accidently committed last week.
10627
10628 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10629
10630         * Control.cs: 
10631           - Added new IsRecreating and ParentIsRecreating properties to
10632             allow testing if RecreateHandle has been called on ourselves
10633             or one of our parents
10634           - WndProc(WM_DESTROY): If our control handle is being recreated
10635             we immediately need to create the handle when receiving the
10636             destroy, that way our child windows find a valid parent handle
10637             when they themselves are being recreated upon WM_DESTROY receipt
10638             (fix for bug #77654 part 1)
10639         * XplatUIX11.cs:
10640           - DestroyWindow: WM_DESTROY must be sent to our own window before
10641             notifying any child windows. MS documents that child windows
10642             are still valid when WM_DESTROY is received. (Control now relies on
10643             this behaviour)
10644           - Added some fine-grain debug options
10645
10646 2006-03-06  Jackson Harper  <jackson@ximian.com>
10647
10648         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
10649         box and base calculations off this.
10650         * MdiChildContext.cs:
10651         * MdiWindowManager.cs: Don't need to ensure scrollbars here
10652         anymore.
10653         
10654 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
10655
10656         * Splitter.cs: In situations where the affected control is added
10657           to the parent's control list after the splitter, we would not
10658           populate affected. Now we try populating it on mousedown, if
10659           it's not already set, and force it to be re-set whenever our
10660           parent changes.
10661
10662 2006-03-03  Matt Hargett  <matt@use.net>
10663
10664         * Control.cs: implement Control.Padding
10665         * Padding.cs: -Padding.All returns -1 when constructing with the
10666         implicit default ctor
10667         -Padding.ToString() matches MS.NET
10668         * ContainerControl.cs: implement
10669         ContainerControl.AutoScaleDimensions
10670         * ListControl.cs: implement ListControl.FormattingEnabled
10671         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
10672         * ButtonBase.cs:
10673         * TabPage.cs: Implement UseVisualStyleBackColor.
10674         * PictureBox.cs: Implement PictureBox.InitialImage.
10675
10676 2006-03-03  Mike Kestner  <mkestner@novell.com>
10677
10678         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
10679         event declarations to proxy to base event.
10680         * ListViewItem.cs: update to use ItemControl.
10681         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
10682         * ThemeWin32Classic.cs: update to new ListView theme API and fix
10683         column header label rendering for 0 width columns.
10684
10685 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
10686
10687         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
10688           that causes the control to be created. Fixes #77476.
10689
10690 2006-03-02  Jackson Harper  <jackson@ximian.com>
10691
10692         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
10693         expose_pending.
10694
10695 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
10696
10697         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
10698           passed in for the EventArgs (fixes #77690)
10699
10700 2006-03-01  Jackson Harper  <jackson@ximian.com>
10701
10702         * ScrollBar.cs: Refresh afterbeing resized.
10703
10704 2006-02-28  Mike Kestner  <mkestner@novell.com>
10705
10706         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
10707         Clean up a tracker compile warning.
10708         * MenuItem.cs: add internal PerformPopup method.
10709         [Fixes #77457]
10710
10711 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
10712
10713         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
10714           implicit expose) when the text is set to null
10715
10716 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
10717
10718         * RichTextBox.cs (FlushText): When newline is true, we always
10719           need to split the line, even if no text is on it and we may
10720           never eat newlines. (Fixes #77669)
10721
10722 2006-02-28  Mike Kestner  <mkestner@novell.com>
10723
10724         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
10725         and set Selected instead.
10726         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
10727         collections.
10728
10729 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
10730
10731         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
10732
10733 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
10734
10735         * FontDialog.cs:
10736           - Got rid of the panel. All controls are now directly added to
10737             the dialog form
10738           - It is now possible to set a font with the Font property
10739           - MinSize and MaxSize property do now what they should
10740           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
10741           - Searching and selecting a font with the font textbox works now,
10742             the same applies to the style and size textbox
10743           - Draw the correct 3D border in the example panel
10744           - Fixed a little mem leak (unused fonts didn't get disposed)
10745           - Many other internal updates/rewrites...
10746           - Fix typo
10747
10748 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
10749
10750         * TextControl.cs: 
10751           - InsertRTFFromStream: Added 'number of characters inserted' argument
10752           - set_SelectedRTF: Now using the number of characters to calculate
10753             the new location for the selection and cursor (x/y cannot be used
10754             due to potentially already wrapped text)
10755
10756 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
10757
10758         * TextControl.cs: Added property and implemented means to allow 
10759           disabling recalculation of a document (can be used to speed up
10760           multiple inserts and is needed to make RTF inserts predictable, see
10761           bug #77659)
10762         * RichTextBox.cs: Using the new NoRecalc property of Document to
10763           keep x/y insert locations predictable. Also makes it faster inserting
10764           large chunks of RTF
10765
10766 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
10767
10768         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
10769           it's easier for a child control to handle the other messages without
10770           having to duplicate the special functionality
10771         * TextBoxBase.cs
10772           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
10773             code to handle processing the key ourselves, in order to get 
10774             access to the result of KeyEventArgs.Handled. We now only call 
10775             ProcessKey if they key hasn't been handled already. Fixes #77526.
10776           - set_Text: If null or empty string is given, just clear the 
10777             document. Fixes part of #77526
10778
10779 2006-02-27  Jackson Harper  <jackson@ximian.com>
10780
10781         * SizeGrip.cs: Paint the background color before painting the grip
10782         so things look right.
10783         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
10784
10785 2006-02-27  Mike Kestner  <mkestner@novell.com>
10786
10787         * ListView.cs:
10788           - Restructure layout and invalidation model to remove a ton of
10789           flicker from the control and speed up performance in general.
10790           - Add manual column resize, flickers like crazy, but I already have
10791           some ideas on how I'll fix that. (#76822)
10792           - Merge the three Icon-based views into a single layout method.
10793           - Move item selection interaction logic from the item since 
10794           interaction with the collections is more appropriate to the view.
10795           - Deselection on non-item clicks.
10796         * ListViewItem.cs:
10797           - Encapsulate most of the layout. Add some internal props to trigger
10798           layout.  Move to a model where Items invalidate themselves instead
10799           of just invalidating the whole control every time something changes.
10800           - Invalidate on Text/Caption changes.
10801           - switch to an offset based layout model to avoid having to absolute
10802           position every element on item moves.
10803           - correct checkbox layout to conform to MS layout.
10804         * ThemeWin32Classic.cs:
10805           - refactor some column header drawing code.
10806           - fix string justification for column headers (#76821)
10807           - make SmallIcon labels top justified for compat with MS impl.
10808         * ThemeClearlooks.cs:
10809           - adjust to new ListViewItem internal checkbox bounds api.
10810
10811 2006-02-27  Jackson Harper  <jackson@ximian.com>
10812
10813         * Control.cs:  Change where implicit controls fall in the zorder.
10814         They are now on top of all children.
10815         - Synced AddImplicit code with Add
10816         - Removed unused enumerator.
10817         * SizeGrip.cs: Remove the TODO as its been TODONE.
10818
10819 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
10820
10821         * TextControl.cs(Insert): Combine the last lines unless the insertion
10822           string ends with \n\n, otherwise we leave one line too many (Fixes
10823           something I noticed with the testapp for #77526; the bug itself was
10824           already fixed in the previous checkin)
10825
10826 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
10827
10828         * RichTextBox.cs:
10829           - SelectionColor and SelectionFont methods no longer set absolute
10830             styles. Instead, the keep font or color respectively (This 
10831             resolves a long-standing FIXME in the code)
10832           - When flushing RTF text, the insert code now considers text trailing
10833             behind the insertion point (Fixes the bug where when replacing
10834             the selected text via SelectedRTF the remainder of the line behind 
10835             the selection would stay on the first insertion line)
10836         * TextBoxBase.cs:
10837           - AppendText now updates the selection points after inserting text
10838           - AppendText now ensures that the last tag (sometimes 0-length) of
10839             the document is used for the style information (Fixes part of 
10840             bug #77220)
10841         * TextControl.cs:
10842           - Created new FontDefiniton class to allow describing partial style
10843             changes
10844           - StreamLine() now takes a lines argument, to allow it to decide
10845             whether an encountered zero-length tag is the last in the document
10846             (which must be kept to not loose the font/color contained in it,
10847             for later appends)
10848           - Created Combine() and Split() methods for Marker structs, to 
10849             support marker updates due to reformatted documents (soft line
10850             wraps)
10851           - Implemented Document.CaretTag setter
10852           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
10853             of the last line (Not the cause, but also exposed by bug #77220)
10854           - Added LineTag argument to InsertString method, to allow callers
10855             to force a certain tag to be used (required to force use of the
10856             trailing zero-length tag of a document)
10857           - Now updating markers in Combine(), to avoid stale tag markers
10858           - Added some method descriptions to aid maintenance
10859           - Implemented new FormatText concept, allowing additive/subtractive
10860             formatting by only specifying the components that are to be 
10861             changed. This was needed for resolving the RTB.SelectedColor/
10862             RTB.SelectedFont fixmes
10863           - Added Break() support method to allow breaking up linetags (used
10864             for partial formatting)
10865           - Added GenerateTextFormat() method. It is used for partial 
10866             formatting and allows to generate a full font/color from given
10867             attributes and an existing tag.
10868
10869 2006-02-26  Jackson Harper  <jackson@ximian.com>
10870
10871         * XplatUIX11.cs:  Use the correct caption height.
10872         - Translate hittest coordinates to screen coords to match MS.
10873         * XplatUIWin32.cs: When we create MDI windows we need to reset
10874         some of the style flags, so we get a nice blank window, and can
10875         draw all the decorations ourselves.
10876         - Set a clipping rectangle on the non client paint event, the
10877         window manager drawing code needs one.
10878         * Form.cs: The window manager needs to know when the window state
10879         has been updated.
10880         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
10881         don't need to factor in border and title sizes in these
10882         methods. TODO: Remove the args and fix the call points.
10883         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
10884         properly.
10885         - Let the driver set the cursors.
10886         - Improve active window handling
10887         - Correct sizes for title bars and buttons.
10888         - Match MS drawing better
10889         * MdiWindowManager.cs: We don't need to handle border style
10890         updates specially anymore.
10891         - Check for scrollbars when windows are done moving
10892         - Handle Active properly.
10893         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
10894         correctly. I am spewing the exception though, so we don't hide the
10895         bugs.
10896         
10897 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
10898
10899         * DataGridViewRowPostPaintEventArgs.cs,
10900           DataGridViewCellPaintingEventArgs.cs,
10901           DataGridViewRowCollection.cs,
10902           DataGridViewRowPrePaintEventArgs.cs,
10903           DataGridViewCell.cs: Clear a few warnings and implement a few
10904           exceptions that should be thrown.
10905
10906 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10907
10908         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
10909           'inheriting' our parent's (non-default) cursor. (Part of
10910            the fix for #77479)
10911
10912 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
10913
10914         * XplatUIX11.cs: Fixed cast to make csc happy
10915
10916 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
10917
10918         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
10919           it's for the client area (part of fix for #77479 and needed
10920           for MDI window cursor handling)
10921         * XplatUIX11.cs
10922           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
10923             the appropriate default cursors and also passing the message
10924             up the parent chain 
10925           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
10926             for non-client areas
10927
10928 2006-02-15  Jackson Harper  <jackson@ximian.com>
10929
10930         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
10931         is a real MDI window
10932
10933 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
10934
10935         * X11DesktopColors.cs: Instead of checking the desktop session
10936           string for "KDE" check if it starts with "KDE"
10937
10938 2006-02-10  Jackson Harper  <jackson@ximian.com>
10939
10940         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
10941         systems).
10942
10943 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10944
10945         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
10946           errors
10947         * ColorDialog.cs:
10948           - Got rid of the panel. All controls are now directly added to
10949             the dialog form
10950           - Changed to mono coding style
10951
10952 2006-02-10  Jackson Harper  <jackson@ximian.com>
10953
10954         * InternalWindowManager.cs: We don't need the set visibility to
10955         false hack anymore now that peter has written beautiful shutdown
10956         code.
10957
10958 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
10959
10960         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
10961           where already explicitly destroyed
10962
10963 2006-02-10  Jackson Harper  <jackson@ximian.com>
10964
10965         * MdiClient.cs: Handle the case where windows are too high or to
10966         the left and we need scrollbars.
10967
10968 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10969
10970         * MimeIcon.cs: Added some icons
10971         * FileDialog.cs:
10972           - Fixed bug #77477
10973           - Got rid of the panel. All controls are now directly added to
10974             the dialog form
10975           - Changed to mono coding style
10976           - On Linux "My Computer" and "My Network" will now show some
10977             more usefull information. A new class, MasterMount, gathers
10978             this information from /proc/mount. Updated MWFFileView to make
10979             use of this information
10980           - Fixed a bug that caused FileDialog to crash when
10981             ".recently_used" file had a zero size
10982           - FilterIndex does now what it should
10983           - Some Refactoring
10984         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
10985             FileDialog changes
10986
10987 2006-02-09  Jackson Harper  <jackson@ximian.com>
10988
10989         * ComboBox.cs: Don't touch if null.
10990
10991 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
10992
10993         * Cursor.cs: 64bit safeness fix
10994         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
10995
10996 2006-02-09  Jackson Harper  <jackson@ximian.com>
10997
10998         * Form.cs: If a form is made into an MDI form update the styles so
10999         all the props can get set correctly.
11000         - Kill the mdi_container when we dont need it anymore.
11001         * InternalWindowManager.cs: Add missing NOT
11002
11003 2006-02-08  Jackson Harper  <jackson@ximian.com>
11004
11005         * InternalWindowManager.cs: Respek clipping when drawing MDi
11006         decorations.
11007
11008 2006-02-08  Jackson Harper  <jackson@ximian.com>
11009
11010         * Hwnd.cs: Add bits to track non client expose events.
11011         * XplatUIX11.cs: Track non client expose events on the hwnd. This
11012         gives us a proper invalid rect and will allow for some nice
11013         optimizations with NC client drawing
11014         - MDI windows are children windows, so move their style handling
11015         into the child window block.
11016         * InternalWindowManager.cs: Remove a state reset that was
11017         getting invoked at the wrong time. Fixes managed windows getting
11018         into a 'stuck' captured state.
11019
11020 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
11021
11022         * TextControl.cs (Document.ctor): Now initializing 
11023           selection_anchor. Fixes #77493
11024
11025 2006-02-07  Jackson Harper  <jackson@ximian.com>
11026
11027         * TrackBar.cs: The increment/decrements were backwards.
11028
11029 2006-02-07  Mike Kestner  <mkestner@novell.com>
11030
11031         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
11032         to the instance itself.
11033
11034 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
11035
11036         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
11037           on ulongs and pointers, the size differs between 32bit and 64bit
11038           systems. 
11039
11040 2006-02-07  Mike Kestner  <mkestner@novell.com>
11041
11042         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
11043         for 64 bit platforms to work around a metacity bug. 
11044
11045 2006-02-07  Jackson Harper  <jackson@ximian.com>
11046
11047         * TrackBar.cs: Process the input keys we need, and hookup to
11048         KeyDown instead of using WndProc, so we get key messages.
11049
11050 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
11051
11052         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
11053           machine we're on. 
11054         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
11055           we need to translate the XdndVersion atoms array before sending it
11056
11057 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
11058
11059         * XplatUIX11.cs: 
11060           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
11061             number of bits for the property, not the number of bytes. The
11062             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
11063             but would not crash since it specified 8 bits instead of 4 bits)
11064           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
11065             defined as XID -> long in the C headers)
11066           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
11067             references since those are now IntPtr to begin with
11068           - Switched all Atom.XXX 'int' casts to IntPtr casts
11069           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
11070           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
11071           - Added XChangeActivePointerGrab DllImport (for X11DnD)
11072         * X11Structs.cs:
11073           - Changed 'int' type for Atoms in XEvent structures to IntPtr
11074           - Changed atom in HoverStruct to be IntPtr
11075         * X11DnD.cs:
11076           - Removed local DllImports, switched code to use those from XplatUIX11
11077           - Removed/fixed casts related to the switch of Atom to be a IntPtr
11078
11079 2006-02-06  Mike Kestner  <mkestner@novell.com>
11080
11081         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
11082         method signatures in the import region.  There may still be some
11083         lingering struct marshaling issues, as I didn't drill down into those.
11084         Yet.
11085
11086 2006-02-06  Jackson Harper  <jackson@ximian.com>
11087
11088         * ComboBox.cs: Dont manually set the top_item, this is computed
11089         when the scrollbar position is set.
11090
11091 2006-02-06  Mike Kestner  <mkestner@novell.com>
11092
11093         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
11094         startup crashes on amd64.  There's other fixes needed.  All pinvoke
11095         usage of Atom needs to be mapped to IntPtr for example.  And there are
11096         likely other int/long issues to be addressed.
11097
11098 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
11099
11100         * FileDialog.cs: One more...
11101
11102 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
11103
11104         * FileDialog.cs: Next try
11105
11106 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
11107
11108         * FileDialog.cs: First part of fix for #77464
11109
11110 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
11111
11112         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
11113           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
11114           AcceptButton border drawing.
11115
11116 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
11117
11118         * Form.cs: Moved positioning of form after auto scaling is applied,
11119           otherwise it would possibly use wrong form size.
11120
11121 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
11122
11123         * Control.cs (RecreateHandle): No need to re-create any child
11124           controls, the child windows will get destroyed automatically by
11125           the windowing system or driver, and re-created when the handle
11126           is being accessed the first time. Fixes #77456
11127         * Form.cs: No longer setting the form to closing if the handle is 
11128           being recreated. This seems like the right thing to do, don't
11129           have a bug or testcase for this, though.
11130
11131 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
11132
11133         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
11134           controls to avoid unwanted side effects
11135
11136 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
11137
11138         * Control.cs: 
11139           - ScaleCore needs to scale the bounds, not the ClientSize of the 
11140             control. Fixes #77416.
11141           - DefaultSize is 0,0 for control
11142         * TextBoxBase.cs: 
11143           - DefaultSize is 100, 20
11144           - SetBoundsCore: Now enforcing the height, no matter if the provided
11145             height is more or less than the preferred one, as long as AutoSize
11146             is on
11147         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
11148
11149 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
11150
11151         * Control.cs:
11152           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
11153             call unless both performLayout is true *and* we have a pending
11154             layout change
11155           - ResumeLayout: MS does not completely nest Suspend and Resume,
11156             they bottom out at 0, fixed our code to match that.
11157           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
11158             SetBoundsCore, we were updating even when we shouldn't. This fixes
11159             swf-anchors mis-anchoring when resizing the app fast and lots.
11160           - UpdateDistances: Now only setting the left and top distance if 
11161             we have a parent and are not suspended, this is based on
11162             a suggestion by Don Edvaldson in bug #77355.
11163           - OnVisibleChanged: Fixed logic when to create the control. We may
11164             not create the control if we have no parent or if it's not visible;
11165             switched to using Visible property instead of is_visible field 
11166             since the property also considers parent states. This fixes a bug
11167             when starting Paint.Net
11168
11169 2006-02-02  Jackson Harper  <jackson@ximian.com>
11170
11171         * Form.cs: If the forms handle hasn't been created yet don't call
11172         into xplatui to make it top most, just set the topmost flag on the
11173         form in CreateParams
11174         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
11175
11176 2006-02-01  Jackson Harper  <jackson@ximian.com>
11177
11178         * ScrollableControl.cs: Refactored the Recalculate method a
11179         little, this wasn't handling all the variants of bottom and right
11180         bars needed to be added and added/removed based on their
11181         counterparts being added/removed (which changes the drawable
11182         size). Also we special case client widths and heights of 0 and
11183         don't add the scrollbar for those.
11184
11185 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
11186
11187         * XplatUIX11.cs: 
11188           - Added method to get AbsoluteGeometry(); currently unused, but might
11189             be used in the future, if we try again to figure out toplevel
11190             coordinates with some more crappy window managers
11191           - Added FrameExtents() method to retrieve the WM set decoration size
11192           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
11193             to deal with at least KDE, FVWM and metacity (Fixes #77092)
11194         * Hwnd.cs: 
11195           - Added whacky_wm tracking var for metacity
11196           - Added logic to have default menu height if the actual menu height
11197             has not yet been calculated (part of fix for #77426)
11198         * Form.cs: Keep track whether client size has been set and re-set 
11199           it if a menu is added/removed afterwards (Fixes #77426)
11200
11201 2006-01-31  Jackson Harper  <jackson@ximian.com>
11202
11203         * Control.cs: When a new Site is set on the component attempt to
11204         pull the AmbientProperties from it.
11205
11206 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
11207
11208         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
11209           in the background of the owning form. Fixes #77332
11210
11211 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
11212
11213         * MimeIcon.cs: Fix for #77409
11214
11215 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
11216
11217         * XplatUIX11GTK.cs: Initial import
11218
11219 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
11220
11221         * FixedSizeTextBox: fixes class signature
11222
11223 2006-01-30  Jackson Harper  <jackson@ximian.com>
11224
11225         * FixedSizeTextBox.cs: New internal class that represents a
11226         textBox that will not be scaled.
11227         * TreeView.cs:
11228         * ComboBox.cs:
11229         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
11230         standard TextBox.
11231                 
11232 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
11233
11234         * XplatUIX11.cs: Retrieve default screen number instead of
11235           assuming 0. Attempted fix for #77318
11236
11237 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
11238
11239         * XplatUIWin32.cs: 
11240           - GetWindowPos: When a window is parented by FosterParent, use 
11241             the desktop instead of FosterParent as the base to get coordinates
11242           - CreateWindow: Don't make FosterParent the parent window for Popups
11243             if we don't want a taskbar entry, Popups automatically don't get one
11244         * Hwnd.cs: Need to call remove to actually remove the key from the
11245           hash table
11246
11247 2006-01-30  Mike Kestner  <mkestner@novell.com>
11248
11249         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
11250
11251 2006-01-30  Jackson Harper  <jackson@ximian.com>
11252
11253         * TreeView.cs:
11254         * TreeNode.cs: Raise events no matter how the treenode is
11255         checked. Patch by Don Edvalson.
11256
11257 2006-01-30  Jackson Harper  <jackson@ximian.com>
11258
11259         * TreeNode.cs: Signature fix.
11260
11261 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
11262
11263         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
11264
11265 2006-01-20  Mike Kestner  <mkestner@novell.com>
11266
11267         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
11268         event forwarding when menus are active.
11269         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
11270         Most of the patch is pdb's with a little rework.
11271
11272 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
11273
11274         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
11275           Removed GetMenuDC and ReleaseMenuDC methods; replaced
11276           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
11277         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
11278         * InternalWindowManager.cs: Added use of PaintEventStart/End to
11279           handling of WM_NCPAINT message, now passing the PaintEventArgs to
11280           the PaintWindowDecorations method
11281         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
11282         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
11283         * MenuAPI.cs: Made tracker window invisible
11284         * XplatUIWin32.cs:
11285           - Removed GetMenuDC and ReleaseMenuDC methods
11286           - Implemented the client=false path for PaintEventStart and
11287             PaintEventEnd
11288
11289 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
11290
11291         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
11292         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
11293           styles
11294         * Form.cs: 
11295           - MaximizeBox, MinimizeBox: Recreate the handle when setting
11296             the style
11297           - CreateParams: Reworked the styles to match MS look'n'feel,
11298             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
11299             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
11300
11301 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
11302
11303         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
11304           window is not mapped, since otherwise every form that's being 
11305           created is considered minimized, which is wrong.
11306         * Form.cs: Catching the exception and returning our internal value
11307           instead
11308
11309 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
11310
11311         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
11312           SetWindowMinMax() to have means to tell the driver about the minimum,
11313           maximum and maximized state window sizes. (Part of the fix for #76485)
11314         * Form.cs:
11315           - Implemented tracking of minimum and maximum window size, now calling
11316             new SetWindowMinMax() driver method to tell the driver (Part of the
11317             fix for #76485)
11318           - Finished handling of WM_GETMINMAXINFO method, now setting all values
11319             (Completes fix for #76485)
11320           - Calling new SetWindowMinMax driver method when the handle for a 
11321             form is created, to make sure the driver knows about it even if
11322             the values have been set before the window was created
11323           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
11324             to avoid messing up our anchoring calculations (partial fix
11325             for #77355)
11326         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
11327         * XplatUIX11.cs:
11328           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
11329           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
11330             (and presumably other freedesktop.org compliant WMs). Left the
11331             assumption unmapped=minimized, needed for SetVisible to work.
11332           - Now setting the window state when creating windows
11333           - Fixed SetVisible to consider/set the window state when mapping
11334             a Form. We cannot set the state before it's mapped, and we cannot
11335             use Form.WindowState once it's mapped (since it would ask the
11336             driver and get 'normal'. Therefore, we grab the state before
11337             mapping, map, and then set state.
11338           - Implmemented SetWindowMinMax method; Metacity does not seem to
11339             honor the ZoomHints, though.
11340         * XplatUIWin32.cs:
11341           - Removed MINMAXINFO (moved to XplatUIStructs)
11342           - Added SetWindowMinMax stub (on Win32 the only way to set that
11343             information is in response to the WM_GETMINMAXINFO message, which
11344             is handled in Form.cs)
11345           - Added logic to SetVisible to set the proper window state when a 
11346             form is made visible (fixes #75720)
11347
11348 2006-01-26  Jackson Harper  <jackson@ximian.com>
11349
11350         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
11351         same way we handle them with Invoke.
11352
11353 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
11354
11355         * Form.cs:
11356           - Added tracking of window state so CreateParams can return
11357             the appropriate style
11358           - Moved setting of WS_CAPTION style in CreateParams to allow
11359             styles without caption
11360         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
11361           control if the TextBox property is accessed. Fixes #77345
11362         * Control.cs:
11363           - get_Created: now uses is_disposed and is_created to determine
11364             return value (suggested by Jackson)
11365           - CreateHandle: No longer exits if the handle is being recreated
11366           - RecreateHandle: If the handle is not yet created call the 
11367             appropriate method to create either control or handle. If the
11368             control is already created CreateHandle will simply exit instead
11369             of just creating the handle
11370         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
11371           now SendMessage WM_DESTROY directly to the control when DestroyWindow
11372           is called.
11373         * XplatUIX11.cs: 
11374           - When DestroyWindow is called, instead of waiting for the 
11375             DestroyNotification from X11, we directly post it to the WndProc
11376             and immediately dispose the hwnd object.
11377             Same applies to DestroyChildWindows, and this obsoletes the
11378             expose_pending tracking. Contrary to Win32 behaviour we destroy our
11379             child windows before our own, to avoid X11 errors.
11380           - Removed the direct sending of WM_PAINT on UpdateWindow
11381         * XplatUIWin32.cs:
11382           - Reworked DoEvents and GetMessage to allow access to internal queue
11383             even when trying non-blocking access to the queue.  Fixes #77335. 
11384             Based on a patch suggestion by Don Edvalson. The new private
11385             GetMessage can now also be used as a backend for a PeekMessage
11386             frontend version.
11387         * XplatUI.cs: Improved debug output for CreateWindow
11388
11389 2006-01-25  Jackson Harper  <jackson@ximian.com>
11390
11391         * Help.cs: Allow param to be null. Patch by Don Edvalson.
11392
11393 2006-01-24  Jackson Harper  <jackson@ximian.com>
11394
11395         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
11396         when we have a MaxDropItems lower then the selected index.
11397
11398 2006-01-24  Jackson Harper  <jackson@ximian.com>
11399
11400         * Control.cs: Don't allow selection of non visible controls, allow
11401         selection of controls without parents.
11402
11403 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
11404
11405         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
11406         * DataGridDrawingLogic.cs: Add editing row only when is necessary
11407
11408 2006-01-23  Jackson Harper  <jackson@ximian.com>
11409
11410         * UpDownBase.cs: Make the textbox handle all the selection and
11411         tabbing. This fixes tabing to updown controls.
11412
11413 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
11414
11415         * TextBoxBase.cs: fixes exception thown the object was null
11416
11417 2006-01-23  Jackson Harper  <jackson@ximian.com>
11418
11419         * ButtonBase.cs: Just use the base CreateParams. They set
11420         visibility and enabled correctly.
11421         * ComboBox.cs:
11422         * TrackBar.cs:
11423         * MonthCalendar.cs: Lets let the base set as much of the
11424         createparams as possible so we don't have duplicate code all over
11425         the place.
11426
11427 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
11428
11429         * ThemeGtk.cs: Added TrackBar and some experimental code to
11430           get double buffering back
11431
11432 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
11433
11434         * DataGrid.cs: Allows row number set internally higher than the last
11435         when creating a new row. Restores the editing functionality.
11436
11437 2006-01-20  Mike Kestner  <mkestner@novell.com>
11438
11439         * MimeIcon.cs: delay Image creation until the icons are accessed
11440         instead of creating 190 scaled images on GnomeHandler startup.
11441
11442 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
11443
11444         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
11445           first call base before processing the event. Fixes #77279
11446
11447 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
11448
11449         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
11450           that the stride for the GDI bitmap would match the stride of
11451           a DIB or a Cursor.
11452
11453 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
11454
11455         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
11456
11457 2006-01-19  Jackson Harper  <jackson@ximian.com>
11458
11459         * ComboBox.cs: Hookup the text controls keydown event so we get
11460         those when the text control has the focus.
11461
11462 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
11463
11464         * Label.cs: Now using the base events instead of defining new ones;
11465           this allows us to just call the base properties without having to
11466           duplicate all base property logic 
11467
11468 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
11469
11470         * Label.cs: A label by default is not a tabstop (Fixes one of our
11471           failing nunit tests)
11472
11473 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
11474
11475         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
11476         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
11477
11478 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
11479
11480         * Cursor.cs: Reimplemented creating cursor bitmaps without using
11481           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
11482           This fixes #77218
11483         * XplatUIWin32.cs: 
11484           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
11485             constructor creates images that can't be saved. Part of the fix
11486             for #76103
11487           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
11488           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
11489             bug fix for handling window state in forms properly)
11490
11491 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
11492
11493         * ThemeGtk.cs: Simplify ScrollBar drawing
11494
11495 2006-01-18  Jackson Harper  <jackson@ximian.com>
11496
11497         * Splitter.cs: Set the default dock style for the splitter control
11498         in the constructor.
11499
11500 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
11501
11502         * ThemeGtk.cs: Corrected StateType and ShadowType for
11503           gtk_paint_box
11504
11505 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
11506
11507         * Control.cs: Make use of Theme.DoubleBufferingSupported
11508         * ThemeGtk.cs:
11509           - Added drawing for flat style buttons
11510           - Added ScrollBar drawing
11511
11512 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
11513
11514         * ThemeClearlooks.cs: Removed some unneeded code.
11515         * ThemeGtk.cs: First part of ThemeGtk enhancements.
11516
11517 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
11518
11519         * LinkLabel.cs: We need to update the hover drawing when
11520           leaving the control as well.
11521
11522 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
11523
11524         * DataGrid.cs: Clicking on non empty areas in the columns
11525            area was giving an exception
11526
11527 2006-01-17  Jackson Harper  <jackson@ximian.com>
11528
11529         * ThemeWin32Classic.cs:
11530         * ListView.cs: Do not draw/clip the headers when the header style
11531         is None.
11532
11533 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
11534
11535         * DataGrid.cs: Fixes 77260
11536         
11537 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
11538
11539         * DataGrid.cs: Clicking on a column on a empty grid was giving
11540           an exception
11541
11542 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
11543
11544         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
11545           or any keypress will crash the grid.
11546
11547 2006-01-17  Mike Kestner  <mkestner@novell.com>
11548
11549         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
11550         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
11551         invisible/previously-visible items.
11552         [Fixes #76909]
11553
11554 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
11555
11556         * ThemeClearlooks.cs:
11557         - Added CL_Draw_Button method; now other theme controls that are 
11558           not derived from button or do not have a button can draw buttons
11559           too
11560         - Updated ComboBox drawing
11561         - Beautified RadioButton drawing
11562         - Corrected drawing of bottom and left tabs
11563         - Beautified DateTimePicker and MonthCalendar
11564         - Added CPDrawButton and CPDrawRadioButton
11565
11566 2006-01-16  Jackson Harper  <jackson@ximian.com>
11567
11568         * ComboBox.cs: Set the initial value of the scrollbar to the
11569         current index. Reduce the numbers of refreshs and IndexOfs called.
11570
11571 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
11572
11573         * FileDialog.cs: When the file listview is focused hitting the
11574           backspace key moves the fileview to the parent directory
11575
11576 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
11577
11578         * Form.cs: 
11579           - Added RecreateHandle call when changing taskbar visibility to 
11580             trigger reparenting in Win32 driver (Fixes #75719)
11581           - If a window has minimize or maximize buttons, it cannot have
11582             a help button
11583         * XplatUIWin32.cs:
11584           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
11585             the toplevel form with FosterParent (A toolwindow not on the
11586             taskbar) (Fixes #75719)
11587           - Made FosterParent a toolwindow
11588
11589 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
11590
11591         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
11592
11593 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
11594
11595         * ToolTip.cs: If SetToolTip is called from a control and the mouse
11596           is currently over that control, make sure that tooltip_window.Text
11597           gets updated
11598
11599 2006-01-13  Mike Kestner  <mkestner@novell.com>
11600
11601         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
11602
11603 2006-01-13  Jackson Harper  <jackson@ximian.com>
11604
11605         * TreeView.cs: On MS GetNodeAt never actually factors in the X
11606         value passed.  Also redraw the selected node when we recieve
11607         focus, so tabbing between trees works correctly.
11608
11609 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
11610
11611         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
11612           ~/.gconf/%gconf-tree.xml, so use
11613           .gconf/desktop/gnome/interface/%gconf.xml
11614
11615 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
11616
11617         * TextControl.cs: Draw text in gray if control is disabled
11618
11619 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
11620
11621         * TreeView.cs: Draw the focus rectangle outside the highlight, to
11622           make sure it's always visible. Fixes #76680.
11623
11624 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
11625
11626         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
11627
11628 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
11629
11630         * PageSetupDialog.cs: Added.
11631         * PrintDialog.cs: Attributes.
11632         * PrintPreviewControl.cs: Updates.
11633         * PrintPreviewDialog.cs: Updates.
11634         
11635 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11636
11637         * Control.cs: Undid my selection check fix, since it's not needed
11638         * TextBoxBase.cs:
11639           - Now considering the presence of hscroll/vscroll when sizing
11640             vscroll/hscroll respectively. Fixed bug #77077
11641           - Added Left/Up/Down/Right to IsInputKey list to prevent
11642             ContainerControl from stealing them. This fixes what I broke
11643             with my last checkin.
11644
11645 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
11646
11647         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
11648           I finally understand how the property can be set without a setter :-)
11649
11650 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11651
11652         * Application.cs:
11653           - Switched RunLoop to use static Message.Create to create a 
11654             Message object
11655           - Added PreProcessMessage call in runloop for keyboard events; this
11656             is part of the fix for #77219, I overlooked this originally in the
11657             MSDN doc for PreProcessMessage
11658         * Control.cs:
11659           - Removed call to PreProcessMessage from handling of keyboard 
11660             messages; it's supposed to be done in the message pump
11661           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
11662             per MSDN documentation.
11663           - IsInputChar: All chars are input chars by default; removed the 
11664             parent calling chain, MS does not document that
11665           - PreProcessMessage: If IsInputChar is true, we want to return false
11666             to allow dispatching of the message
11667           - When selecting the next control, now also check that we're not
11668             selecting ourselves again and therefore return a false positive.
11669         * TextBoxBase.cs:
11670           - Tried to match return values for IsInputKey and ProcessDialogKey
11671             to what MS returns; moved processing of our special keys outside
11672             ProcessDialogKey since MS does not seem to return true on those.
11673           - Moved code that previously was in ProcessDialogKey into new private
11674             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
11675           - Reworked handling of WM_CHAR to not have to duplicate code from
11676             Control.cs anymore, instead we simply call down to base.
11677            
11678 2006-01-12  Jackson Harper  <jackson@ximian.com>
11679
11680         * ComboBox.cs: We always need to refresh the text area when
11681         EndUpdate is called. Fixes the combobox in the file dialog.
11682         * Control.cs: Don't create the creator_thread until the controls
11683         handle is created.  Also in InvokeRequired we check if the
11684         creator_thread is null. This gives the effect of InvokeRequired
11685         returning true if the controls handle is not created yet, and
11686         matches MS.
11687
11688 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11689
11690         * XplatUI.cs:
11691           - Added StartLoop() driver method. This is used to allow drivers to
11692             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
11693             loop for a particular thread
11694           - Added EndLoop() driver method. This is called once the message
11695             pump for the thread is shut down
11696           - Added SupportsTransparency method to allow the driver to indicate
11697             opacity support for windows
11698         * Form.cs:
11699           - Removed TODO attribute, completed AllowTransparency property
11700           - Added documented logic to Opacity
11701         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
11702           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
11703           versions of CompatibleTextRendering
11704         * X11Structs.cs: Added opacity atom to our atom enumeration
11705         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
11706           of a form might be set before it's reparented by the WM, and we need
11707           the opacity value without calling up to Form)
11708         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
11709           SupportsTransparency() driver methods
11710         * Application.cs: Now calling StartLoop and EndLoop driver methods
11711         * XplatUIX11.cs:
11712           - Added opacity atom registration
11713           - Added StartLoop()/EndLoop() methods. They're empty right now but
11714             will need to get implemented when we switch to a per-thread queue
11715           - Implemented SupportsTransparency() method
11716           - Implemented SetWindowTransparency() method
11717           - Added support for setting the opacity value when a window is
11718             reparented (since the opacity needs to be set on the WM frame)
11719         * XplatUIOSX.cs, XplatUIWin32.cs:
11720           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
11721
11722 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
11723
11724         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
11725
11726 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
11727
11728         * FileDialog.cs: Added ToolTip for MWFFileView
11729         * MimeIcon.cs: Rewrote GnomeHandler.
11730           - Get currently used gnome icon theme from
11731             ($HOME)/.gconf/%gconf-tree.xml
11732           - Make use of inherited icon themes
11733           - Support SVG icon themes like Tango via librsvg
11734
11735 2006-01-12  Miguel de Icaza  <miguel@novell.com>
11736
11737         Revert's Jackson's revert which broke 2.0 builds.   Fix both
11738         builds. 
11739         
11740         * Application.cs: Move the use_compatible_text_rendering outside
11741         the NET_2_0 define.  If we ever need to use the
11742         use_compatible_text_rendering on the individual controls they will
11743         access the variable from the common shared code paths.
11744
11745 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
11746
11747         * XplatUI.cs:
11748           - Added more granular debug options
11749           - Added method to print both window text and id
11750           - Switched debug output to use new Window() debug method
11751           - Added IsEnabled() driver method
11752           - Added EnableWindow() driver method
11753         * Form.cs:
11754           - Removed end_modal; no longer needed, new loop handles termination
11755             via 'closing' variable
11756           - If form is modal, setting DialogResult will now initiate loop
11757             termination via 'closing' variable
11758           - Added support for is_enabled/WS_DISABLED to CreateParams
11759           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
11760             does all the work
11761           - Removed code that's now in RunLoop from ShowDialog()
11762           - Added various documented sanity checks to ShowDialog()
11763           - Added handling of WM_DESTROY message; we set 'closing' on getting
11764             the message to indicate the message pump to terminate
11765           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
11766             send by the Application.ExitThread method. (We send the message
11767             to destroy the window after all other events have been
11768             processed through the queue, instead of destroying the handle 
11769             directly)
11770           - Moved code from Close() method to WM_CLOSE handler; added logic
11771             to only send close-related events if the form is not displayed
11772             modal
11773         * Splitter.cs (..ctor): Fixed typo in resource name
11774         * Control.cs:
11775           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
11776             brush now
11777           - set_Cursor: Now only setting calling into XplatUI if the handle for
11778             the control is already created; this avoids implict handle creation
11779             or crashes if it's not created
11780           - set_Enabled: Now setting the enabled state via the new driver method
11781             instead of just tracking it
11782           - CreateParams: Added logic to set WS_DISABLED based on enabled state
11783           - CreateControl: Reordered event firing and method calls to more
11784             closely fire events in the order MS does. Now setting the
11785             enabled state in the driver when creating the control.
11786           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
11787             match MS order
11788         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
11789           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
11790         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
11791         * Hwnd.cs:
11792           - Added tracking of window enabled state (get_Enabled/set_Enabled)
11793           - Added EnabledHwnd property to easily allow a driver to find the
11794             handle of the first enabled window in the parent chain (this is
11795             used by drivers to pass up input events of disabled windows)
11796         * XplatUIDriver.cs: Added IsEnabled() method
11797         * Application.cs:
11798           - Removed crude and obsolete exiting tracking variable
11799           - Removed internal ModalRun(); replaced by RunLoop()
11800           - Implemented private CloseForms() method to allow closing all 
11801             windows owned by a particular (or all) threads
11802           - Exit() now properly closes all windows without forcing the message
11803             pump to quit
11804           - Removed obsolete InternalExit() method
11805           - Changed Run() methods to use new RunLoop() message pump
11806           - Implemented new RunLoop() method for both modal and non-modal forms
11807         * CommonDialog.cs:
11808           - get_CreateParams: Added setting of WS_DISABLED
11809           - Simplified ShowDialog(); now all the work is done in RunLoop(),
11810             invoked via Form.ShowDialog()
11811         * NativeWindow.cs: We don't remove the window from the collection when
11812           the handle is destroyed; there might still be messages for it in the
11813           queue (mainly the resulting WM_DESTROY); instead it will be removed
11814           when Control calls InvalidateHandle in the WM_DESTROY handler
11815         * XplatUIX11.cs:
11816           - CreateWindow: Added logic to handle the WS_DISABLED window style
11817           - EnableWindow: Implemented based on Hwnd.Enabled
11818           - GetMessage: Reset PostQuitState so the method can be called again
11819           - Implemented support for disabled windows (passing messages to the
11820             first enabled parent) in handling all input messages
11821           - Added optimizations for handling Expose events
11822           - Implemeted new driver method IsEnabled()
11823           - Now always resetting paint pending tracking vars when we start paint
11824           - Re-implemented UpdateWindow via just sending a WM_PAINT message
11825         * XplatUIOSX.cs: Added IsEnabled method stub
11826         * XplatUIWin32.cs: Implemented new IsEnabled() method
11827
11828 2006-01-11  Jackson Harper  <jackson@ximian.com>
11829
11830         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
11831         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
11832         variables a little.
11833         * ColorDialog.cs: Clear out the old form before adding the new
11834         panel.  
11835
11836 2006-01-11  Jackson Harper  <jackson@ximian.com>
11837
11838         * X11Dnd.cs: Make sure to add all the text formats when adding
11839         strings to the data object.
11840         * TreeNodeCollection.cs: When adding to a sorted tree we need to
11841         do some redrawing too.  Also change the UpdateNode to an
11842         UpdateBelow so the newly added node gets painted.
11843         
11844 2006-01-11  Miguel de Icaza  <miguel@novell.com>
11845
11846         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
11847         LinkLabel.cs, PropertyGrid.cs: Implement the
11848         UseCompatibleTextRendering property for 2.x
11849
11850         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
11851
11852 2006-01-11  Jackson Harper  <jackson@ximian.com>
11853
11854         * TreeView.cs: Use the property for setting the selected node so
11855         the correct events get raised.
11856         * TreeNode.cs: Update the tree when the fore/back colours of a
11857         node are set.
11858
11859 2006-01-10  Jackson Harper  <jackson@ximian.com>
11860
11861         * TreeView.cs: Allow setting SelectedNode to null.
11862
11863 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11864
11865         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
11866
11867 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11868
11869         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
11870
11871 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11872
11873         * PrintDialog.cs: Added attributes and set default property values.
11874
11875 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11876
11877         * PrintControllerWithStatusDialog.cs: 
11878         Added PrintControllerWithStatusDialog.
11879
11880 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11881
11882         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
11883         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
11884
11885 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
11886
11887         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
11888
11889 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11890
11891         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
11892         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
11893
11894 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11895
11896         * MimeIcon.cs: Added internal class SVGUtil.
11897
11898 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
11899
11900         * FileDialog.cs: Don't crash if there are two files with the
11901           same name but different locations.
11902
11903 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
11904
11905         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
11906         dates across multiple month grids. Used to not highlight entire 
11907         month, but does now.
11908         
11909 2006-01-06  Jackson Harper  <jackson@ximian.com>
11910
11911         * MonthCalendar.cs: Removed DoEvents call to prevent a running
11912         message loop. Change timer intervals to numbers that seem more
11913         natural.
11914
11915 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
11916
11917         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
11918           object for location info since screen object is now implemented.
11919
11920 2006-01-05  Jackson Harper  <jackson@ximian.com>
11921
11922         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
11923         * AsyncMethodResult.cs: We no longer use a WeakReference for the
11924         AsyncMethodResult, this is because we ALWAYS want the
11925         ManualResetEvent to get set.
11926         * Control.cs: When disposing use an async invoke to call shutdown
11927         code, so that thigns don't block on the finalizer thread.  Also
11928         check if we even have a message loop before trying to send
11929         messages, if we don't then don't bother sending messages.
11930         - No more weak references for async methods
11931         * XplatUIDriver.cs: No more weak references for async methods.
11932
11933 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11934
11935         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
11936           returns two FontFamily with the same name
11937
11938 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11939
11940         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
11941           drawing disabled text. Instead using the ColorGrayText color
11942
11943 2006-01-04  Jackson Harper  <jackson@ximian.com>
11944
11945         * TreeNode.cs: redraw the node when its image index is changed.
11946
11947 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
11948
11949         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
11950           time I checked there are no others like it.
11951
11952 2006-01-04  Jackson Harper  <jackson@ximian.com>
11953
11954         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
11955         this gives the behavoir I was looking for.
11956         * Control.cs: Special case Invoking EventHandlers, this matches MS
11957         and fixes part of bug #76326.
11958
11959 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11960
11961         * ThemeClearlooks.cs, FileDialog.cs:
11962           - Reflect the latest Theme class changes
11963           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
11964             with DateTime
11965             
11966 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11967
11968         * Theme.cs: Cache UI resource images and resize them if needed
11969
11970 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11971
11972         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
11973           is called. This fixes the crash in Nexxia when setting the font
11974           attributes in the chat. [However, RTF needs a look-over to make sure
11975           that all SelectionXXX methods handle the special case that selection
11976           is empty and therefore the change must be applied to all text starting
11977           at the cursor/selection start]
11978
11979 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
11980
11981         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11982           XplatUIOSX.cs: Added SendMessage and PostMessage methods
11983         * X11Keyboard.cs: Switched to new way of calling PostMessage
11984
11985 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11986
11987         * Theme.cs: Added theme interface for images to allow the theme to
11988           control what images are used for things like FileDialog, MessageBox
11989           icons, etc.
11990         * MessageBox.cs: Now uses the new Theme icon/image interfaces
11991
11992 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
11993
11994         * FileDialog.cs:
11995           - Removed some dead code
11996           - Opening a recently used file does work now
11997           - Small UI enhancements
11998           - Refactoring
11999
12000 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
12001
12002         * FileDialog.cs: Forgot too add __MonoCS__
12003
12004 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
12005
12006         * FileDialog.cs: We are able to read recently used files now let's
12007           go on and write them.
12008
12009 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
12010
12011         * FileDialog.cs: Breathe some life into "last open"/"recently used"
12012           button
12013         * MimeIcon.cs: Do a check for the top level media type also
12014
12015 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
12016
12017         * ThemeClearlooks.cs:
12018           - Added CPDrawStringDisabled
12019           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
12020             some chars if the text doesn't fit into text_rect
12021           - DrawListViewItem: If View = View.LargeIcon center the image;
12022             rewrote the drawing of ListViewItem.Text if View = 
12023             View.LargeIcon
12024
12025 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
12026
12027         * MimeIcon.cs: Use default KDE icon theme if there is no
12028           "48x48" directory for the current icon theme, fixes #77114
12029         * Mime.cs: Disable not working and actually not used code. 
12030         * ThemeWin32Classic.cs:
12031           - Replace "new SolidBrush" in GetControlBackBrush and
12032             GetControlForeBrush with ResPool.GetSolidBrush
12033           - Changed DrawListViewItem from private to protected virtual
12034         * FileDialog.cs:
12035           - Added form.MaximizeBox = true
12036           - Don't throw an exception if there is a broken symbolic link
12037
12038 2005-12-23  Jackson Harper  <jackson@ximian.com>
12039
12040         * TabControl.cs: Give the panels focus, keyboard navigation is
12041         fixed so this works correctly now.
12042         - We need these key events also.
12043         * ToolBar.cs: Remove some of the poor mans double buffering.
12044         
12045 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
12046
12047         * ComboBox.cs: The internal TextBox now returns the focus.
12048
12049 2005-12-23  Jackson Harper  <jackson@ximian.com>
12050
12051         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
12052
12053 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
12054
12055         * Control.cs: Removed debug code
12056         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
12057           implicit children
12058
12059 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
12060
12061         * Control.cs: When creating the control, update the Z-order after
12062           all it's children are created, too. (Fixes nexxia not showing
12063           picturebox bug)
12064
12065 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
12066
12067         * Control.cs: Do not update the anchoring distances if layout is
12068           suspended, instead do it once layout is resumed
12069
12070 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
12071
12072         * Control.cs: 
12073           - After many hours of debugging, for both Jackson and
12074             myself, it turns out that it helps to set the parent of a control
12075             if you want to actually see it onscreen. In the spirit of that
12076             discovery, we're now setting the parent of the control and
12077             it's children when the control's handle is created. This fix
12078             will make Lutz Roeder's Reflector run happily. 
12079           - now just creating the handle instead of the whole control when
12080             getting a graphics context for the control.
12081
12082 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
12083
12084         * ScrollableControl.cs: When calculating the canvas, don't consider
12085           the scrollbar widths. Instead, predict if horizontal scrollbar
12086           will affect canvas when deciding on vertical display and vice versa.
12087
12088 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
12089
12090         * RichTextBox.cs: Set default RTF font for documents that don't
12091           have a font table (Fixes #77076)
12092
12093 2005-12-22  Jackson Harper  <jackson@ximian.com>
12094
12095         * TextBoxBase.cs: It's difficult to do, but you can have an empty
12096         clipboard. This prevents a NullRef in that case.
12097         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
12098         clipboard. PRIMARY is for the currently selected text only. (We
12099         should implement PRIMARY at some point.
12100
12101 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
12102
12103         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
12104           a Unicode function with a structure that was defined in Ansi way.
12105           This fixes #76942.
12106
12107 2005-12-21  Jackson Harper  <jackson@ximian.com>
12108
12109         * StatusBar.cs: Statusbar handles its fore/back colours on it's
12110         on. Because thats how it rolls. (and this avoids it using ambient
12111         colours).
12112         * ThemeWin32Classic.cs: Use the proper back color for filling.
12113         * Menu.cs: Use the system menu bar color for drawing menu
12114         bars. Using the window back color will bring ambient colours into
12115         the picture.
12116
12117 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
12118
12119         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
12120           Bitmaps were created and not disposed.
12121
12122 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
12123
12124         * Control.cs (CreateControl): Don't do anything if the control is
12125           already created, otherwise we'd fire the OnCreated event more than
12126           once
12127
12128 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
12129
12130         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
12131           will always match. Instead return -1. Fixes #76464.
12132
12133 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
12134
12135         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
12136           neither the beginning nor the end of the line (Fixes bug #76479)
12137
12138 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
12139
12140         * Control.cs:
12141           - ControlNativeWindow.ControlFromHandle(): Now handling situation
12142             where handle is invalid
12143           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
12144             instead of slower linear search
12145         * NativeWindow.cs: Don't remove the window from the hashtable until
12146           after the driver has destroyed it (since the driver might use
12147           Control.FromHandle to lookup the control object
12148         * Hwnd.cs: Added DestroyPending property to track if a window is 
12149           already destroyed as far as the driver is concerned and only hasn't
12150           yet notified the control
12151         * XplatUIX11.cs:
12152           - Activate(): Check if the window is still valid before using the 
12153             handle
12154           - Implemented DestroyChildWindow() method to mark child windows as
12155             destroyed when a window is destroyed. This prevents situations 
12156             where we might call an X method based on queued events for a
12157             window that already has been destroyed but we haven't yet pulled
12158             the destroy method from the queue.
12159           - Added a call to the new DestroyChildWindow() method to the drivers
12160             DestroyWindow code. Also now marking the destroyed window itself
12161             as pending
12162
12163 2005-12-20  Jackson Harper  <jackson@ximian.com>
12164
12165         * StatusBar.cs:
12166         * StatusBarPanel.cs: Don't calculate panel sizes on draw
12167         anymore. Just do them when needed, also track the rects of panels
12168         so that we can optimize refreshing more in the future.
12169
12170 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
12171
12172         * ColorDialog.cs: Fixed focus drawing in small color controls
12173
12174 2005-12-19  Jackson Harper  <jackson@ximian.com>
12175
12176         * InternalWindowManager.cs:
12177         * MdiWindowManager.cs: Cleanup some coordinate system changes so
12178         moving windows works properly.
12179
12180 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
12181
12182         * Control.cs: 
12183           - Removed call to InitLayout() from SetBoundsCore(); doc says
12184             it's only called when a control is added to a container
12185           - Split InitLayout logic, moved to separate UpdateDistances() method
12186             since we need to perform those calculations more often than just
12187             when adding the control to a container. (Needed to fix #77022)
12188           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
12189           - Reduced the OnBindingContextChanged events count, don't send them
12190             unless the control is created, we still aren't totally matching
12191             MS, but I can't quite figure out some of their rules
12192
12193 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
12194
12195         * ThemeClearlooks.cs: Corrected distance between ProgressBar
12196           stripes
12197
12198 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
12199
12200         * ThemeClearlooks.cs:
12201           - Updated ProgressBar drawing
12202           - Corrected drawing of ScrollBars and scroll buttons
12203           - Some temporary fixes for minor pixel artefacts
12204
12205 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
12206
12207         * Control.cs:
12208           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
12209             cause events to be sent in the same order as MS does.
12210           - Added ChangeParent() method to trigger various OnXXXChanged events
12211             that need to be fired when a parent changes (This is a reworking
12212             of the patch from r54254, with the X11 errors fixed)
12213           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
12214             since on MS we get OnLayoutChanged events when calling Clear()
12215           - Changed Enabled property to consider parent state as well, if a
12216             parent is not enabled, the control will not be either
12217           - Changed Parent property to simply call Controls.Add() since that
12218             now does all the work required, this way we avoid code duplication
12219           - Threw in a few OnBindingsContextChanged calls to try and match
12220             when MS sends them. We seem to send a few too many, though.
12221           - Added call to CreateControl when adding the control to a parent.
12222             We were never calling CreateControl. Still needs some work, in
12223             some places we treat HandleCreated and ControlCreated as equal, 
12224             which is wrong
12225           - Removed obsolete commented out code from UpdateZOrder()
12226
12227 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
12228
12229         * ThemeClearlooks.cs: Updated TrackBar drawing.
12230
12231 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
12232
12233         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
12234
12235 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
12236
12237         * FileDialog.cs: Add the Help button and the open readonly
12238           checkbox only if needed
12239
12240 2005-12-16  Jackson Harper  <jackson@ximian.com>
12241
12242         * Control.cs: Make sure we have an active menu before trying to
12243         process commands on it. Prevents menu-less forms from crashing
12244         when Alt is pressed.
12245         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
12246         Dieter Bremes.
12247         * RichTextBox.cs: Expand statement to help out gmcs and fix the
12248         2.0 build.
12249
12250 2005-12-16  Jackson Harper  <jackson@ximian.com>
12251
12252         * InternalWindowManager.cs: Don't translate tool windows screen
12253         coordinates. This fixes windows 'bouncing' around when being moved.
12254
12255 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
12256
12257         * TextBoxBase.cs:
12258           - MaxLength now treats 2^31-1 equal to unlimited length (this is
12259             not quite MS compatible, MS uses that number only for single line
12260             and 2^32-1 for multi-line, but I figure it won't hurt keeping
12261             the limit at 2GB)
12262           - Now enforcing the MaxLength limit when entering characters
12263           - Added argument to internal Paste() method to track if it's called
12264             from programatically or via keyboard, since keyboard driven pastes
12265             need to enforce max-length
12266           - Added logic to Paste to only paste as many chars as MaxLength 
12267             allows
12268         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
12269         * TextControl.cs:
12270           - Added Length property to return number of characters in document
12271           - Added private CharCount property which only tracks actual chars
12272             in the document (no linefeeds) and fires event when CharCount
12273             changes
12274           - Added tracking of character count to all methods that alter it
12275           - Added LengthChanged event to allow applications to subscribe
12276             to any changes to the document
12277
12278 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
12279
12280         * TextBox.cs: 
12281           - Removed local password_char field (moved to TextBoxBase)
12282           - Now setting the document's password var when password is
12283             set
12284         * TextBoxBase.cs:
12285           - Added password_char field (needed here so MultiLine can
12286             access it)
12287           - Added logic to MultiLine property setter to set the document's
12288             variable when password display is allowed
12289           - Removed debug code and made some debug code conditional
12290         * TextControl.cs:
12291           - Added RecalculatePasswordLine() method to handle special password
12292             char only lines
12293           - Added PasswordChar property, also added related tracking vars
12294           - Draw() method now uses local text var for grabbing text to draw,
12295             this var is set to line.text unless we're doing password display,
12296             then it is set to the pre-generated all-password-chars line
12297           - Added calling RecalculatePasswordLine() method for password lines
12298
12299 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
12300
12301         * Hwnd.cs: 
12302           - Added Reparented property to allow tracking of Window Manager
12303             reparenting actions (which affect X/Y calculations of toplevel 
12304             windows)
12305           - Made ToString() print window handles in hex
12306         * XplatUIX11.cs:
12307           - AddConfigureNotify(): Now uses reparented state off Hwnd to
12308             determine if X/Y needs offsetting
12309           - AddConfigureNotify(): Fixed offset calculations
12310           - Now adds ReparentNotify messages into the queue
12311           - Now processes ReparentNotify messages and causes a 
12312             WM_WINDOWPOSCHANGED message to be sent upstream if a window
12313             is reparented (as most likely it's X/Y coordinates are changed
12314             due to that)
12315
12316 2005-12-14  Jackson Harper  <jackson@ximian.com>
12317
12318         * XplatUIX11.cs: Tool windows still need to respek focus.
12319
12320 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
12321
12322         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
12323           have a working release
12324
12325 2005-12-13  Jackson Harper  <jackson@ximian.com>
12326
12327         * Form.cs: Update styles after setting the border style regardless
12328         of whether or not the window is using a window manager.
12329
12330 2005-12-13  Jackson Harper  <jackson@ximian.com>
12331
12332         * Form.cs: We now hook into an internal window manager instead of just an
12333         MDI subsystem, this is so we can have properly behaving tool windows.
12334         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
12335         * InternalWindowManager.cs: New internal class that acts as a
12336         window manager for tool windows and as a base for mdi windows.
12337         * MdiWindowManager.cs: New class that acts as a window manager for
12338         mdi windows.
12339
12340 2005-12-12  Jackson Harper  <jackson@ximian.com>
12341
12342         * Control.cs: Updates so we match behavoir for for implicit
12343         controls. Fixes explosions in MDI.
12344
12345 2005-12-12  Jackson Harper  <jackson@ximian.com>
12346
12347         * Control.cs: Implement Invalidate (Region).
12348
12349 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
12350
12351         * Control.cs: 
12352           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
12353             the same events as MS does. MS fires events for each property 
12354             except, for unknown reasons, Cursor, when the control is reparented. 
12355             I can't seem to totally match add/remove since MS also fires some 
12356             VisibleChanged events, which makes no sense. Consolidated the
12357             parenting code into a separate method so it can be called from
12358             both Add and Remove. set_Parent no longer needs any special logic
12359             as it calls the parent's add method which implicitly fires
12360             all events
12361           - Removed some obsolete code and debug output
12362           - Enabled state is inherited from parents, if this is enabled
12363
12364 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
12365
12366         * Form.cs: Removed commented out code
12367
12368 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
12369
12370         * Control.cs:
12371           - Added internal version of Invoke, with additional argument 
12372             indicating if we're calling it from a Dispose() handler. That
12373             way we can avoid BeginInvoke throwing an exception if we're
12374             calling for an already destroyed window.
12375           - Added a dispose argument to BeginInvokeInternal, and made the
12376             check if a valid window handle chain exists conditional on
12377             it not being a dispose call
12378           - Removed code in DestroyHandle to destroy our children. Since we
12379             now handle the WM_DESTROY message we will catch all our children
12380             being destroyed.
12381           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
12382         * Form.cs:
12383           - Added a field to track the application context of the form.
12384           - No need to set closing variable as response to WM_CLOSE, instead
12385             we destroy the window. We also call PostQuitMessage if the form
12386             has an application context (which makes it the main app form,
12387             which, when closed terminates the app)
12388         * XplatUI.cs:
12389           - Dropped Exit() method, it's naming was confusing
12390           - Added PostQuitMessage() which causes GetMessage to return false
12391             once the message queue is empty
12392         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
12393           PostQuitMessage()
12394         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
12395           no longer a valid XplatUI method, but left it in since it's used
12396           internally. Added empty PostQuitMessage() method.
12397         * MenuAPI.cs: Replaced call to Exit() with call to
12398           PostQuitMessage, even though this is probably no longer needed.
12399         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
12400         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
12401         * Application.cs:
12402           - Replaced call to XplatUI.Exit() with PostQuitMessage()
12403           - Removed old debug code that would call XplatUI for exception
12404             display, enabled standard exception handling (Still not enabled
12405             though, until NativeWindow's ExternalExceptionHandler define
12406             is removed
12407         * NativeWindow.cs:
12408           - Added internal method to allow control to update NativeWindow
12409             after a window has been destroyed
12410           - Added handling of already destroyed windows when calling i
12411             DestroyWindow
12412           - Added removal of handle from list on ReleaseHandle
12413         * XplatUIX11.cs:
12414           - Dropped GetMessageResult var and related code
12415           - Added PostQuitState to field to track if PostQuitMessage has been
12416             called
12417           - Dropped Exit() method
12418           - Added PostQuitMessage() method
12419           - GetMessage now will return false if PostQuitState is set and no
12420             more messages are in the queue.
12421           - Expose handler will no longer generate WM_PAINT messages if we are
12422             in PostQuitState since it's very likely any windows have already
12423             been destroyed, and since Hwnd won't get updated until we have
12424             processed the DestroyNotify we'd be causing X errors.
12425         
12426 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
12427
12428         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
12429           Thanks to Mike for pointing out the err of my ways.
12430
12431 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
12432
12433         * Control.cs(PreProcessMessage): Moved menu handling back, but
12434           after all other key handling, to match MS (who handles Menu in
12435           DefWndProc)
12436         * Menu.cs (WndProc): Removed my brainfart
12437
12438 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
12439
12440         * Control.cs(PreProcessMessage): Removed special menu handling 
12441         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
12442
12443 2005-12-07  Mike Kestner  <mkestner@novell.com>
12444
12445         * Control.cs : special case SYSKEYUP so that we can adjust keynav
12446         state according in tracker.
12447         * Menu.cs : promote tracker field to base class and provide a tracker
12448         lookup capability.  Add/Remove shortcuts dynamically if the top menu
12449         has a tracker. Unparent items that are removed from the collection.
12450         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
12451         * Theme*.cs: add always_show_hotkeys field to support configurability
12452         of mnemonic display.  win32 doesn't show mnemonics until Alt is
12453         pressed.
12454
12455 2005-12-07  Jackson Harper  <jackson@ximian.com>
12456
12457         * MdiChildContext.cs: Use Control.ResetCursor.
12458         * Control.cs: ResetCursor needs to set the property so that the
12459         correct XplatUI call gets made.
12460
12461 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
12462
12463         * Control.cs: More fixes to make our key events match MS. We
12464           were not setting the modifier state on KeyData, and we were
12465           not generating any events when Alt was pressed with a key
12466           since handling of WM_SYSxxx was missing for the OnKey methods.
12467
12468 2005-12-07  Jackson Harper  <jackson@ximian.com>
12469
12470         * MdiChildContext.cs: reenable the sizing code.
12471         - When the mouse leaves a window reset its cursor.
12472
12473 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
12474
12475         * ThemeClearlooks.cs: Reflect latest Hwnd changes
12476
12477 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
12478
12479         * Hwnd.cs: Now using the theme 3d bordersize to calculate
12480           widths of Fixed3D borders
12481
12482 2005-12-07  Jackson Harper  <jackson@ximian.com>
12483
12484         * MdiClient.cs: Fix warnings. Earn Mike's love.
12485
12486 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
12487
12488         * ThemeClearlooks.cs:
12489           - Adjusted mouse over button color
12490           - Added first parts of CheckBox drawing
12491           - Added correct color for selected text background
12492           - Fixed ComboBox drawing
12493           - Added CPDrawBorder3D and CPDrawBorder
12494
12495 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
12496
12497         * XplatUIX11.cs: Added call to XBell for AudibleAlert
12498
12499 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
12500
12501         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
12502           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
12503           alert users via sound. We could add an enum arg with different
12504           types of alerts in the future
12505
12506 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
12507
12508         * Control.cs: Fix behaviour problems pointed out by Mike
12509
12510 2005-12-05  Mike Kestner  <mkestner@novell.com>
12511
12512         * StatusBarPanel.cs: add Invalidate method and hook it into all the
12513         prop setters.  Calls parent.Refresh for now, but could be maybe be
12514         optimized with an internal method on StatusBar at some point.
12515         [Fixes #76513]
12516
12517 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
12518
12519         * RichTextBox.cs: Implemented get_SelectionColor
12520
12521 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
12522
12523         * ThemeClearlooks.cs:
12524           - Removed dead code
12525           - Draw black button border only if button is Form.AcceptButton
12526           - Draw correct button color for pressed RadioButton if the mouse 
12527             has entered the button
12528           - Updated ProgressBar drawing!
12529           - Updated CPDrawSizeGrip drawing
12530           - Updated StatusBarPanel drawing
12531
12532 2005-12-05  Mike Kestner  <mkestner@novell.com>
12533
12534         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
12535         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
12536
12537 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
12538
12539         * ThemeClearlooks.cs: Initial check-in, activate with
12540           export MONO_THEME=clearlooks
12541         * ThemeEngine.cs: Added ThemeClearlooks
12542
12543 2005-12-03  Mike Kestner  <mkestner@novell.com>
12544
12545         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
12546         [Fixes #76897]
12547
12548 2005-12-02  Jackson Harper  <jackson@ximian.com>
12549
12550         * Form.cs: If the child form has no menu the default main menu is
12551         used as the active menu.
12552
12553 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
12554
12555         * ListBox.cs: Check if any items exist before trying to resolve 
12556           coordinates into items
12557
12558 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
12559
12560         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
12561           as the second color for the background hatch
12562
12563 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
12564
12565         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
12566         * RichTextBox.cs: FormatText position arguments are 1-based, now making
12567           sure that what we pass to FormatText is always 1-based. Fixes #76885
12568
12569 2005-11-29  Miguel de Icaza  <miguel@novell.com>
12570
12571         * NumericUpDown.cs (EndInit): When we are done initializing,
12572         reflect any updates on the UI.
12573
12574 2005-12-02  Jackson Harper  <jackson@ximian.com>
12575
12576         * ImplicitHScrollBar.cs:
12577         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
12578         their container controls.
12579         * TreeView.cs: Use the new implicit scrollbars.
12580
12581 2005-12-02  Jackson Harper  <jackson@ximian.com>
12582
12583         * TreeView.cs: Make top_node internal so the TreeNodeCollections
12584         can play with it.
12585         * TreeNodeCollection.cs: If we remove the topnode we need to
12586         update topnode to the next node in line.
12587         - When clearing nodes go through the same process as removing
12588         them, so they get depareneted and checked if they are top node.
12589
12590 2005-12-01  Jackson Harper  <jackson@ximian.com>
12591
12592         * TreeView.cs: When imagelists are used the image area is
12593         selectable as well as the text.
12594         - If there are no selected nodes select the first one.
12595         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
12596         so don't do it more then we need to.
12597
12598 2005-12-01  Jackson Harper  <jackson@ximian.com>
12599
12600         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
12601         that arrows can be scaled.
12602
12603 2005-12-01  Jackson Harper  <jackson@ximian.com>
12604
12605         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
12606         fail. Patch by Dieter Bremes
12607
12608 2005-11-30  Jackson Harper  <jackson@ximian.com>
12609
12610         * Form.cs: Property is 2.0 only
12611         * PrintDialog.cs: Signature fix.
12612
12613 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
12614
12615         * TextControl.cs: 
12616           - No longer artificially moves text 2 pixels down (now that we have
12617             borders this is no longer needed)
12618           - Added calcs for left, hanging and right indent
12619
12620 2005-11-23  Mike Kestner  <mkestner@novell.com>
12621
12622         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
12623
12624 2005-11-30  Jackson Harper  <jackson@ximian.com>
12625
12626         * MdiChildContext.cs: Set the cloned menus forms, as these don't
12627         get cloned as part of CloneMenu ().
12628         * Menu.cs: Make sure the parent of the items get set correctly
12629         when they are added.  And the owners are notified of the changes.
12630         * Form.cs: Create an ActiveMenu property, so that when MDI is used
12631         we can change the menu being displayed/handled by the form without
12632         changing the menu assosciated with the form.
12633         - Don't let Mdi children draw/handle menus.
12634         
12635 2005-11-30  Jackson Harper  <jackson@ximian.com>
12636
12637         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
12638         a MenuChanged event. Just to make the API a little more
12639         consistent.
12640         * MainMenu.cs:
12641         * MenuItem.cs: Use the new OnMenuChanged
12642         * MdiChildContext.cs: Handle menu merging.
12643         * Form.cs: Implement MergedMenu.
12644         
12645 2005-11-30  Jackson Harper  <jackson@ximian.com>
12646
12647         * Menu.cs: We were misusing Add. Add goes behind the specified
12648         index according to the docs, and does not replace the specified
12649         index. So I added an Insert method.
12650
12651 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
12652
12653         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
12654           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
12655           is for Jackson
12656         * RichTextBox.cs: Added calls to base for DnD events
12657
12658 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
12659
12660         * TextControl.cs:
12661           - Fixed drag-selection related crash; style fixes
12662           - Implemented undo class
12663             o Implemented method to capture document state for specified
12664               range in document tree
12665             o Implemented method to restore captured document state
12666             o Implemented cursor tracking
12667             o Implemented basic undo stack
12668           - Added undo cursor tracking to methods altering cursor location
12669           - Added undo tracking to selection deletion (still missing
12670             other text-altering hookups)
12671         * RichTextBox.cs:
12672           - Added SelectionLength property
12673           - Implemented CanPaste()
12674           - Implemented Paste()
12675           - Added missing protected methods
12676           - Fixed RTF->Document conversion; now uses font index 0 and color 
12677             index 0 as the default font for the parsed text
12678           - Fixed RTF<->Document font size translation
12679           - Fixed RTF generation, now properly handles cross-tag boundaries
12680             for single line selection
12681           - No longer always appends blank line to generated RTF
12682           - Removed TODOs
12683           - Added missing attributes
12684           - Hooked up undo-related methods
12685         * TextBoxBase.cs:
12686           - Implemented Copy()
12687           - Implemented Paste()
12688           - Implemented Cut()
12689           - Fixed caret mis-behaviour on backspace across line-boundaries
12690
12691 2005-11-29  Jackson Harper  <jackson@ximian.com>
12692
12693         * MdiClient.cs: Add a method for activating mdi children. Very
12694         basic right now. I imagine someday it might need more girth.
12695         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
12696         children windows names are added to the menu item.
12697         * ThemeWin32Classic.cs: Draw the arrow if the item is an
12698         mdilist. This happens regardless of whether or not there are any
12699         mdi windows to see in the list, and according to my tests happens
12700         before the items are even added. Also happens if there isn't even
12701         an mdi client to get windows from.
12702
12703 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
12704
12705         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
12706         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
12707
12708 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
12709
12710         * DataGridTableStyle.cs:
12711           - Create always the styles for the missing columns even if they are
12712             provided by the user (not default table style)
12713         * DataGrid.cs:
12714           - Fixes bug 76770
12715           - Fixes SetDataBinding (always re-attach source)
12716           - Fixes SetNewDataSource (only clear styles if they are not for 
12717             this source)
12718          -  Expands OnTableStylesCollectionChanged to handle style refresh 
12719             and remove properly
12720
12721 2005-11-29  Jackson Harper  <jackson@ximian.com>
12722
12723         * FileDialog.cs: Implement missing bits, remove some dead
12724         code.
12725         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
12726         creation of the panel so that the options set on the dialog are
12727         seen when the panel is created.
12728         * TreeView.cs: raise a click when items are clicked.
12729         
12730 2005-11-29  Jackson Harper  <jackson@ximian.com>
12731
12732         * MdiClient.cs: Pass some signature methods through to base.
12733
12734 2005-11-28  Jackson Harper  <jackson@ximian.com>
12735
12736         * ListView.cs: Raise the click event when items are clicked.
12737
12738 2005-11-28  Jackson Harper  <jackson@ximian.com>
12739
12740         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
12741         a nullref.
12742
12743 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
12744
12745         * ThemeNice.cs: - Removed 1 pixel bitmaps
12746           - Use SmoothingMode.AntiAlias where it makes sense
12747             (ScrollButton arrow for example)
12748           - Enhanced Button focus drawing
12749           - Fixed ComboBox drawing (no artefacts anymore, focus
12750             rectangle is back again, reduced size of ComboButton, etc.)
12751           - Fixed RadioButton focus drawing for Appearence.Button
12752           - Slight ScrollButton redesign
12753           - Some LinearGradientBrush size fixes
12754           - GroupBoxes have now rounded edges
12755           - Fixed StatusBar drawing
12756
12757 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
12758
12759         * ThemeNice.cs: - Remove dead code
12760           - use correct background colors for menus, etc.
12761           - Fake pixel drawing with 1 pixel bitmaps
12762
12763 2005-11-24  Jackson Harper  <jackson@ximian.com>
12764
12765         * MdiClient.cs: Size the scrollbars when resizing the window.
12766         - Resize the maximized windows when the client is resized
12767         * Form.cs: Make the child context available
12768         
12769 2005-11-23  Jackson Harper  <jackson@ximian.com>
12770
12771         * MdiChildContext.cs: Don't size windows if they are maximized.
12772
12773 2005-11-23  Mike Kestner  <mkestner@novell.com>
12774
12775         * ContextMenu.cs: use MenuTracker.
12776         * Control.cs: remove menu handle usage.
12777         * Form.cs: remove menu handle usage.
12778         * Hwnd.cs: remove menu handle usage.
12779         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
12780         motion and clicks to the new Tracker handlers.
12781         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
12782         and handle usage.
12783         * MenuAPI.cs: refactored to combine popup and menubar event handling.
12784         Killed the MENU and MENUITEM data types and associated collections
12785         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
12786         MenuTracker class that exposes the leftovers from the old MenuAPI
12787         static methods. Restructured Capture handling so that only one grab is
12788         done for the entire menu hierarchy instead of handing off grabs to
12789         submenus. Tracker now has an invisible control to Capture when active.
12790         * MenuItem.cs: add sizing accessors, kill Create
12791         and handle usage.
12792         * Theme.cs: remove menu handle and MENU(ITEM) usage.
12793         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
12794         MENU(ITEM). remove menu handle usage, use Menu directly.
12795         * XplatUIDriver.cs: remove menu handle usage.
12796         * XplatUIOSX.cs: remove menu handle usage.
12797         * XplatUIWin32.cs: remove menu handle usage.
12798         * XplatUIX11.cs: remove menu handle usage.
12799
12800 2005-11-22  Jackson Harper  <jackson@ximian.com>
12801
12802         * Hwnd.cs: Don't compute the menu size for
12803         DefaultClientRectangle.
12804         - Reenable menu sizes being computed for GetClienRectangle.
12805         * Form.cs: Remove comment of trechery
12806         
12807 2005-11-22  Jackson Harper  <jackson@ximian.com>
12808
12809         * Hwnd.cs: The adjustments for the menu bar are made when it is
12810         attached to the form.
12811
12812 2005-11-19  Jackson Harper  <jackson@ximian.com>
12813
12814         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
12815         (just like on windows).
12816
12817 2005-11-19  Jackson Harper  <jackson@ximian.com>
12818
12819         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
12820         use real buttons anymore because they are in non client area. The
12821         one TODO here is that I need to somehow invalidate a section of
12822         the non client area.
12823
12824 2005-11-18  Jackson Harper  <jackson@ximian.com>
12825
12826         * Control.cs: Put the enum check back in now that MDI doesnt have
12827         to use this to set border styles.
12828         * Form.cs: Only set mdi child windows borders if the handle has
12829         been created.
12830         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
12831         this directly on to the driver.
12832         - Get the move start position before adjusting for the titlebar
12833         height, this fixes the windows "skipping" when they are first
12834         moved.
12835
12836 2005-11-18  Jackson Harper  <jackson@ximian.com>
12837
12838         * XplatUIX11.cs: Just compute the mdi borders separately as they
12839         don't totally match up with normal form borders.
12840
12841 2005-11-18  Jackson Harper  <jackson@ximian.com>
12842
12843         * Control.cs: Set WS_ styles for borders, so that the driver does
12844         not have to retrieve the control instance to figure out what kind
12845         of borders it should have.
12846         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
12847         driver can know its an mdi child easily.
12848         * XplatUIX11.cs: Get the border styles and whether the window is
12849         MDI from the Styles and ExStyles params instead of having to get a
12850         control. This prevents a chicken and egg problem.       
12851
12852 2005-11-18  Jackson Harper  <jackson@ximian.com>
12853
12854         * MdiClient.cs: Fix typo so scrollbars show up correctly.
12855
12856 2005-11-18  Jackson Harper  <jackson@ximian.com>
12857
12858         * MdiClient.cs: Calculate when to add and remove scrollbars
12859         correctly.
12860         * MdiChildContext.cs: Adjust the y position to take the titlebar
12861         into account.
12862         - No height for FormBorderStyle.None
12863
12864 2005-11-18  Jackson Harper  <jackson@ximian.com>
12865
12866         * Control.cs: Allow non enum values to be used for
12867         InternalBorderStyle.  MDI does this to set a special border style.
12868         - New utility methods for converting points to/from client coords
12869         - Add the newly created control to the Controls collection before
12870         updating its style. This way UpdateStyle can walk the control
12871         heirarchy to find the control if needed.
12872         so I don't need to create a new Point object all the time.
12873         * Form.cs: Let MDI windows handle their border styles.
12874         - Set styles on MDI windows so the correct title style is derived.
12875         * MdiChildContext.cs: Move all the painting and window handling
12876         into the non client area.
12877         - Use correct sizing and put correct buttons on frames based on
12878         the FormBorderStyle.
12879         - Notify the mdi client about scrolling
12880         - Need to handle the buttons ourselves now, because they are all
12881         in non client areas and we can't add controls there.
12882         * MdiClient.cs: Halfway to scrolling, this implementation is
12883         somewhat broken though, we need to check to make sure other
12884         windows aren't causing scrolling before removing the bars. Also
12885         the bars need to be drawn on top, maybe I can switch implicit
12886         controls to be on top.
12887         * Hwnd.cs: caption_height and tool_caption_height are now
12888         properties of an hwnd, this way they can be set by the driver
12889         based on the type of window they are.  In X11 the window manager
12890         handles the decorations so caption_height is zero unless its an
12891         MDI window.
12892         - Add 3 pixel borders for MDI windows (0xFFFF).
12893         - Get rid of some code duplication, have DefaultClientRectanle
12894         just call GetClientRectangle.
12895         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
12896         Hwnd now.
12897         - Set border styles differently for mdi windows.
12898         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
12899         Hwnd now.
12900         
12901 2005-11-15  Mike Kestner  <mkestner@novell.com>
12902
12903         * Menu.cs: when adding an item to the collection, if item is already 
12904         parented, remove it from the parent.
12905
12906 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
12907
12908         * X11DesktopColors.cs: Added KDE support
12909
12910 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
12911
12912         * XplatUIWin32.cs: 
12913           - Clipboard methods now can translate Rtf format
12914           - No longer removes clipboard contents whenever a new format is added
12915             to allow placing multiple formats on the clipboard
12916         * Clipboard.cs: Clipboard now supports getting a IDataObject and
12917           will place all formats contained in it onto the clipboard. Also
12918           now cleans the clipboard before placing a new object onto it
12919         * RichTextBox.cs:
12920           - Implemented set_Rtf
12921           - Implemented set_SelectedRtf
12922           - Created InsertRTFFromStream() method to allow single code base
12923             for all properties and methods that insert RTF into document
12924           - Removed debug output
12925         * TextControl.cs:
12926           - Fixed Delete(int) to fix up line numbers
12927           - Fixed ReplaceSelection to combine start and end line
12928           - Fixed serious DeleteChars bug that would leave the document tree
12929             broken
12930           - Improved DumpTree with several logic checks to detect broken
12931             document trees
12932           - Removed debug lines
12933           - Fixed Caret.WordForward/WordBack moving code, now always also 
12934             updates caret.tag (fixes crash when word-selecting across tag
12935             boundaries via keyboard)
12936           - Added Insert() method for inserting multiline text into documents
12937           - Fixed DeleteChars() calculation errors that would cause a broken
12938             tag chain with multiple tag lines
12939           - DeleteChars() no longer crashes on multi-tag lines if not all tags
12940           - Split() no longer moves caret if split is at caret location
12941           - ReplaceSelection() now updates the cursor and re-displays it
12942           - ReplaceSelection() now uses new Insert() method to avoid code
12943             duplication
12944           - FormatText() can now handle formatting partial lines
12945         * TextBoxBase.cs:
12946           - Append now uses new TextControl.Insert() method (this avoids 
12947             duplicate code)
12948           - Implemented Ctrl-X (Cut) (
12949           - Implemented Ctrl-C (Copy)
12950           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
12951             regeneration when pasting text; roundtripping Copy&Paste within
12952             edit control still fails due to some calculation bugs in GenerateRTF)
12953           - The Delete key will now remove the current selection if it is visible
12954         * TextBox.cs: Removed debug lines
12955         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
12956           driver to be initialized and can't therefore be done via a static ctor)
12957
12958 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
12959
12960         * TextControl.cs: Added backend code for finding char arrays and strings
12961         * TextBoxBase.cs:
12962           - Added mouse wheel scroll support
12963           - Added support for VScroll and HScroll events
12964         * RichTextBox.cs:
12965           - Implemented all seven Find() variants
12966           - Implemented GetCharFromPosition()
12967           - Implemented GetCharIndexFromPosition()
12968           - Implemented GetLineFromIndex()
12969           - Implemented GetPositionFromCharIndex();
12970           - Implemented SaveFile for PlainText and UnicodeText
12971           - Fixed set_Font, now setting a new font applies that font to
12972             the whole document
12973           - Implemented generic Document to RTF converter
12974           - Implemented SaveFile for RichText format (still missing unicode
12975             conversion for non-ansi chars)
12976           - Implemented get_Rtf
12977           - Implemented get_SelectedRtf
12978
12979 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
12980
12981         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
12982           to allow any captures to be released before triggering OnClick. This
12983           way a click handler may capture the mouse without interference.
12984         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
12985           This way we send them even though X may not allow a grab (if the window
12986           isn't visible, for example)
12987
12988 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
12989
12990         * DataGridViewRowEventArgs.cs: DataGridView implementation
12991         * DataGridViewElement.cs: DataGridView implementation
12992         * DataGridViewComboBoxCell.cs: DataGridView implementation
12993         * DataGridViewDataErrorContexts.cs: DataGridView implementation
12994         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
12995         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
12996         * ImageLayout.cs: DataGridView implementation
12997         * DataGridViewComboBoxColumn.cs: DataGridView implementation
12998         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
12999         * DataGridViewSelectionMode.cs: DataGridView implementation
13000         * IDataGridViewEditingControl.cs: DataGridView implementation
13001         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
13002         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
13003         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
13004         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
13005         * DataGridViewColumnSortMode.cs: DataGridView implementation
13006         * DataGridView.cs: DataGridView implementation
13007         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
13008         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
13009         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
13010         * Padding.cs: DataGridView implementation
13011         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
13012         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
13013         * DataGridViewRowEventHandler.cs: DataGridView implementation
13014         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
13015         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
13016         * DataGridViewButtonCell.cs: DataGridView implementation
13017         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
13018         * DataGridViewEditMode.cs: DataGridView implementation
13019         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
13020         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
13021         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
13022         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
13023         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
13024         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
13025         * DataGridViewCellEventHandler.cs: DataGridView implementation
13026         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
13027         * DataGridViewCellStyleConverter.cs: DataGridView implementation
13028         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
13029         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
13030         * DataGridViewColumnEventArgs.cs: DataGridView implementation
13031         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
13032         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
13033         * QuestionEventArgs.cs: DataGridView implementation
13034         * IDataGridViewEditingCell.cs: DataGridView implementation
13035         * DataGridViewTriState.cs: DataGridView implementation
13036         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
13037         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
13038         * DataGridViewColumnCollection.cs: DataGridView implementation
13039         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
13040         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
13041         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
13042         * DataGridViewColumn.cs: DataGridView implementation
13043         * DataGridViewCellBorderStyle.cs: DataGridView implementation
13044         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
13045         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
13046         * DataGridViewRow.cs: DataGridView implementation
13047         * DataGridViewImageCellLayout.cs: DataGridView implementation
13048         * DataGridViewImageCell.cs: DataGridView implementation
13049         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
13050         * DataGridViewCheckBoxCell.cs: DataGridView implementation
13051         * DataGridViewHeaderCell.cs: DataGridView implementation
13052         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
13053         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
13054         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
13055         * DataGridViewTextBoxColumn.cs: DataGridView implementation
13056         * QuestionEventHandler.cs: DataGridView implementation
13057         * DataGridViewCellStyleScopes.cs: DataGridView implementation
13058         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
13059         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
13060         * DataGridViewCell.cs: DataGridView implementation
13061         * DataGridViewCellEventArgs.cs: DataGridView implementation
13062         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
13063         * DataGridViewCellStyle.cs: DataGridView implementation
13064         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
13065         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
13066         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
13067         * TextFormatFlags.cs: DataGridView implementation
13068         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
13069         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
13070         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
13071         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
13072         * DataGridViewButtonColumn.cs: DataGridView implementation
13073         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
13074         * HandledMouseEventArgs.cs: DataGridView implementation
13075         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
13076         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
13077         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
13078         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
13079         * DataGridViewRowCollection.cs: DataGridView implementation
13080         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
13081         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
13082         * DataGridViewHitTestType.cs: DataGridView implementation
13083         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
13084         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
13085         * DataGridViewColumnEventHandler.cs: DataGridView implementation
13086         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
13087         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
13088         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
13089         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
13090         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
13091         * DataGridViewContentAlignment.cs: DataGridView implementation
13092         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
13093         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
13094         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
13095         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
13096         * DataGridViewPaintParts.cs: DataGridView implementation
13097         * DataGridViewCellCollection.cs: DataGridView implementation
13098         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
13099         * DataGridViewImageColumn.cs: DataGridView implementation
13100         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
13101         * DataGridViewElementStates.cs: DataGridView implementation
13102         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
13103         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
13104         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
13105         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
13106         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
13107         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
13108         * DataGridViewRowHeaderCell.cs: DataGridView implementation
13109         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
13110         * DataGridViewTextBoxCell.cs: DataGridView implementation
13111         * DataGridViewBand.cs: DataGridView implementation
13112         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
13113         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
13114         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
13115         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
13116         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
13117         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
13118         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
13119         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
13120         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
13121         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
13122         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
13123
13124 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
13125
13126         * ThemeWin32Classic.cs: 
13127           - Draw the outside focus rectangle around buttons
13128           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
13129             doesn't use end caps for every dash of a line anymore. This
13130             workaround ignores the forecolor.
13131
13132 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
13133
13134         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
13135           endian safe.
13136
13137 2005-11-07  Jackson Harper  <jackson@ximian.com>
13138
13139         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
13140
13141 2005-11-07  Jackson Harper  <jackson@ximian.com>
13142
13143         * ScrollableControl.cs: Calculate the maximum and change vars
13144         (more) correctly so that scrollbars appear as a sensible size.
13145
13146 2005-11-04  Jackson Harper  <jackson@ximian.com>
13147
13148         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
13149         collection.
13150         * TreeView.cs: When the tree is sorted null out the top_node so
13151         that it is recalculated.
13152         - Use dotted lines instead of dashed lines to match MS better.
13153
13154 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
13155
13156         * ListView.cs: 
13157           - Implements key search for items. Useful when browsing files with FileDialog
13158           - When changing view mode or when clear the items reset scrollbar positions
13159
13160 2005-11-04  Jackson Harper  <jackson@ximian.com>
13161
13162         * CurrencyManager.cs: Implement the MetaDataChanged event, the
13163         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
13164         as to what the method may do as there is no real way of creating a
13165         derived CurrencyManager and calling the method. 
13166
13167 2005-11-03  Jackson Harper  <jackson@ximian.com>
13168
13169         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
13170         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
13171         method which seems to just be used internally to refresh the tabs.
13172
13173 2005-11-03  Jackson Harper  <jackson@ximian.com>
13174
13175         * TabControl.cs: Implement the remove method. Fix some broken
13176         comments.
13177
13178 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
13179
13180         * DateTimePicker.cs:
13181           - Added missing DateTimePickerAccessibleObject class
13182           - Added missing events
13183           - Added OnFontChanged method
13184         * Form.cs: Added missing attributes
13185         * TreeView.cs: Added missing attributes
13186
13187 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
13188
13189         * GridItemCollection.cs: Fix signatures
13190
13191 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
13192
13193         * XplatUI.cs: Updated build rev/date
13194         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
13195           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
13196         * Application.cs: Trigger context-specific ExitThread events
13197
13198 2005-11-03  Jackson Harper  <jackson@ximian.com>
13199
13200         * Menu.cs:
13201         * MainMenu.cs:
13202         * GridTableStylesCollection.cs:
13203         * Timer.cs:
13204         * TabPage.cs:
13205         * HelpProvider.cs:
13206         * StatusBar.cs:
13207         * MonthCalendar.cs: Signature fixes
13208
13209 2005-11-03  Jackson Harper  <jackson@ximian.com>
13210
13211         * TreeNodeCollection.cs: Remove should not be virtual.
13212         * TreeView.cs: Implement the last of the missing methods.
13213
13214 2005-11-03  Jackson Harper  <jackson@ximian.com>
13215
13216         * TreeNodeConverter.cs: Implement to get off my class-status back.
13217
13218 2005-11-03  Jackson Harper  <jackson@ximian.com>
13219
13220         * TreeView.cs: Hookup the bits for drag and drop.
13221         * TreeNode.cs: Don't cache the tree_view or index anymore, now
13222         that nodes can be moved from tree to tree easily this just causes
13223         all sorts of problems.
13224         * TreeNodeCollection: Don't need to give treenodes an index and
13225         treeview anymore when they are added, these are computed on the
13226         fly. Also make sure to remove a node before its added.
13227
13228 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
13229
13230         * TextControl.cs:
13231           - Added CaretSelection enum
13232           - Added comparison methods to Marker struct, makes selection code
13233             more readable
13234           - Added SelectionStart and SelectionEnd as 'moveable' location for
13235             the CaretDirection enum and handler
13236           - Added selection_prev variable to track optimized invalidation for
13237             word and line selection
13238           - Added SelectionVisible property (returns true if there is a valid 
13239             selection)
13240           - Switched CaretHasFocus to only display the caret if there is no
13241             visible selection
13242           - Avoiding StringBuilder.ToString to retrieve a single char, instead
13243             using the direct character index; should be much faster
13244           - Added various conditional debug statements
13245           - Fixed invalidation calculation for selection ranges
13246           - Added ExpandSelection() method to support word and line selection
13247           - Switched SetSelectionToCaret to use new Marker compare overloads
13248           - Added central IsWordSeparator() method to determine word 
13249             separators/whitespace and FindWordSeparator() to streamline common
13250             usage of IsWordSeparator()
13251         * TextBoxBase.cs:
13252           - Removed unneeded grabbed variable, it was just mirroring
13253             Control.Capture
13254           - No longer firing OnTextChanged event when Text setter is called,
13255             since the base will fire the event for us
13256           - Added handling of Ctrl-Up/Down selection
13257           - Added handling of Shift-Cursorkey selection
13258           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
13259             words
13260           - Added handling of Shift and Ctrl-Shift-Home/End selection
13261           - Removed some debug output
13262           - Added handling for single/double/tripple-click to place caret/
13263             select word/select line respectively (Fixes bug #76031)
13264           - Added support for drag expansion of word/line selection
13265         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
13266           current selection
13267
13268 2005-11-02  Jackson Harper  <jackson@ximian.com>
13269
13270         * X11Dnd.cs: If the drag is going to and from a MWF window just
13271         copy the data instead of sending it out through the X Selection
13272         mechanism.
13273
13274 2005-11-02  Jackson Harper  <jackson@ximian.com>
13275
13276         * X11Dnd.cs:
13277         * XplatUIX11.cs: When in a drag we don't want motion notify
13278         messages to get passed on to the other controls. This prevents
13279         mouse move messages from showing up in the drag source.
13280
13281 2005-11-02  Jackson Harper  <jackson@ximian.com>
13282
13283         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
13284         the correct button is release to end a drag.
13285         * XplatUIX11.cs: Make the button state internal so the drag system
13286         can access it.  Dragging needs to know about all button releases,
13287         not just left button.
13288
13289 2005-11-02  Miguel de Icaza  <miguel@novell.com>
13290
13291         * Form.cs (Icon): If the icon is null, reset the icon to the
13292         default value. 
13293
13294         * Cursor.cs: When writing the AND-mask bitmap do not include the
13295         number of colors, but hardcode those to two (black and white),
13296         fixes the loading of color cursors (Paint Dot Net).
13297
13298         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
13299         turn off autoscaling.
13300
13301         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
13302
13303 2005-11-02  Jackson Harper  <jackson@ximian.com>
13304
13305         * X11Dnd.cs: Make sure to send a status message if the pointer
13306         enters a control that can not accept a drop, otherwise the cursor
13307         isn't updated correctly. Also tried to compress the lines of code
13308         a bit.
13309
13310 2005-11-02  Jackson Harper  <jackson@ximian.com>
13311
13312         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
13313         set actions correctly.  This isn't perfect as XDND and win32 have
13314         some differences on how you allow actions. I'll clear this up by
13315         adding a path for drag from MWF to MWF windows.
13316         * XplatUIX11.cs: Hook into the dnd system.
13317
13318 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
13319
13320         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
13321         previously shown but they are no longer need it. Very obvious when 
13322         browsing files with FileDialog.
13323
13324 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
13325
13326         * Control.cs: We always need to call OnPaintBackground. We pretty much
13327           ignore AllPaintingInWmPaint and always do the painting there, whether 
13328           it's set or not, since we always ignore the WM_ERASEBKGND message 
13329           (which we don't generate on X11). This fixes #76616.
13330         * Panel.cs: Removed unneeded background painting. This happens properly
13331           in Control.cs already
13332
13333 2005-10-31  Mike Kestner  <mkestner@novell.com>
13334
13335         * Menu.cs: Add items to collection before setting their index.
13336         * MenuItem.cs : add range checking with ArgumentException like MS.
13337         [Fixes #76510]
13338
13339 2005-10-31  Jackson Harper  <jackson@ximian.com>
13340
13341         * ListBox.cs: Invalidate if the area is visible at all not just
13342         contained in the visible rect. Fixes unselection of semi visible
13343         items.
13344
13345 2005-10-31  Jackson Harper  <jackson@ximian.com>
13346
13347         * Control.cs: Consistently name the dnd methods. Make them
13348         internal so we can override them to match some MS behavoir
13349         internally.
13350         * Win32DnD.cs: Use the new consistent names.
13351
13352 2005-10-31  Jackson Harper  <jackson@ximian.com>
13353
13354         * TreeView.cs: Don't draw the selected node when we lose focus.
13355
13356 2005-10-31  Jackson Harper  <jackson@ximian.com>
13357
13358         * X11Dnd.cs: We still need to reset the state even though a full
13359         reset isn't being done, otherwise status's still get sent all over
13360         the place.
13361
13362 2005-10-31  Jackson Harper  <jackson@ximian.com>
13363
13364         * Control.cs: Make the dnd_aware flag internal so the dnd
13365         subsystem can check it. Catch exceptions thrown in dnd handlers to
13366         match MS behavoir.
13367         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
13368         * X11Dnd.cs: Handle null data in the converters. Set the XDND
13369         version when sending a XdndEnter. Use the control/hwnd dnd_aware
13370         flags to reduce the number of dnd enters/status's sent.
13371
13372 2005-10-31  Jackson Harper  <jackson@ximian.com>
13373
13374         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
13375
13376 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
13377
13378         * PictureBox.cs: Fixes 76512
13379
13380 2005-10-28  Jackson Harper  <jackson@ximian.com>
13381
13382         * X11Dnd.cs: Early implementation to support winforms being a drag
13383         source for data on X11. Also restructured the converters so they
13384         can go both ways now.
13385         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
13386         
13387 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
13388
13389         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
13390           clipboard requests
13391
13392 2005-10-27  Jackson Harper  <jackson@ximian.com>
13393
13394         * TreeNode.cs: Implement serialization so my DnD examples will work.
13395
13396 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
13397
13398         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
13399           TreeView.cs: Don't dispose objects that are not owned.
13400           
13401 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
13402
13403         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
13404           should retrieve the current cursor and report that, but XplatUI
13405           doesn't (yet) have an interface for that (and I'm not sure I even
13406           can, on X11)
13407         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
13408           until any message loop processing is done (and the WM_SETCURSOR
13409           replaces the cursor to the proper one)
13410         * XplatUIX11.cs: 
13411           - Fixed override behaviour, we can't set the cursor globally on X11, 
13412             just for our windows.
13413           - Invalidating the System.Drawing X11 display handle when we are
13414             shutting down
13415         * Control.cs: Fix to make csc happy
13416
13417 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
13418
13419         * TextBoxBase.cs: 
13420           - get_Text: Add last line (without trailing newline) to returned
13421             value (Fixes 76212)
13422           - get_TextLength: Count last line in returned length
13423           - ToString: Call Text property instead of duplicating code
13424
13425 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
13426
13427         * ImageList.cs: Dispose ImageAttributes objects.
13428
13429 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
13430
13431         * ImageList.cs: Use attribute constructors with less arguments where
13432           possible.
13433
13434 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
13435
13436         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
13437           Use typeof instead of strings when assembly is referenced. Added
13438           some more comments.
13439
13440 2005-10-21  Jackson Harper  <jackson@ximian.com>
13441
13442         * ListView.cs: Raise a double click event. Also tried to somewhat
13443         fix when the selectedindexchanged event is raised. Its still
13444         broken though.
13445
13446 2005-10-21  Jackson Harper  <jackson@ximian.com>
13447
13448         * TreeView.cs: New method to invalidate the plus minus area of a
13449         node without invalidating the whole node (maybe this can be used
13450         in some more places).
13451         * TreeNodeCollection.cs: When adding to an empty node we need to
13452         invalidate its plus minus area so the little block shows up.
13453         
13454 2005-10-21  Jackson Harper  <jackson@ximian.com>
13455
13456         * TreeView.cs: Make sure that when we invalidate a node the bounds
13457         are big enough to cover the selected box and the focus
13458         rectangle. Use a different colour for the lines connecting nodes
13459         so they show up with all themes.
13460
13461 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
13462
13463         * NativeWindow.cs: Don't call anything that could call into the driver,
13464           we might be on a different thread.
13465
13466 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
13467
13468         * Control.cs(Dispose): Since Dispose might run on a different thread,
13469           make sure that we call methods that could call into the driver via
13470           invoke, to avoid thread issues
13471
13472 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
13473
13474         * XplatUI.cs: Removed finalizer
13475         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
13476           not allowing to be called on the finalizer thread.
13477
13478 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
13479
13480         * ImageList.cs:
13481           - Reverted r51889 and r51891.
13482           - Added ImageListItem class that stores unmodified image items and image
13483             properties required to create list images until handle is created.
13484           - Added AddItem and moved image creation logic to AddItemInternal.
13485           - Added CreateHandle method that creates images based on unmodified items.
13486           - Added DestroyHandle that changes state to store unmodified items.
13487           - Add and AddStrip methods no more create handle.
13488           - ReduceColorDepth has no return value.
13489           - Dispose destroys handle.
13490           - Modified other methods to reflect the above changes.
13491           - Implemented key support.
13492           - Added profile 2.0 members and attributes.
13493           - Added private Reset and ShouldSerialize methods that provide the same
13494             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
13495             them as they are private.
13496           - Added some more comments about implementation details.
13497
13498 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
13499
13500         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
13501
13502 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
13503
13504         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
13505
13506 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
13507
13508         * DataGridDrawingLogic.cs: Fixes column hit calcultation
13509         * DataGridColumnStyle.cs: Remove debug message
13510
13511 2005-10-20  Jackson Harper  <jackson@ximian.com>
13512
13513         * TreeView.cs: We can always get input keys regardless of whether
13514         or not editing is enabled. They are used for navigation.
13515
13516 2005-10-20  Jackson Harper  <jackson@ximian.com>
13517
13518         * TreeNode.cs: Use the viewport rect for determining if a node
13519         needs to be moved for visibility. Don't use Begin/End edit. This
13520         calls a full refresh when its done.
13521         * TreeView.cs: New SetBottom works correctly.  Make the viewport
13522         rect property internal so the treenodes can see it. When clicking
13523         on a node we need to ensure that its visible because it might just
13524         be partly visible when clicked.
13525
13526 2005-10-20  Jackson Harper  <jackson@ximian.com>
13527
13528         * TreeNodeCollection.cs: Remove debug code.
13529
13530 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
13531
13532         * Datagrid.cs: Implements column sorting in Datagrid
13533         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
13534
13535 2005-10-20  Jackson Harper  <jackson@ximian.com>
13536
13537         * TreeNodeCollection.cs: Remove items properly. Update the correct
13538         area after removing them.
13539
13540 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
13541
13542         * Datagrid.cs: Should not call base.OnPaintBackground
13543
13544 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
13545
13546         * XplatUIX11.cs (GetMessage):
13547           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
13548             window instead of client window
13549           - Now properly calculates NC_xBUTTONUP message coordinates
13550           - ScreenToMenu now properly calculates it's coordinates of whole 
13551             window, since menus are in the whole window, not in the client
13552             window
13553           - Added WholeToScreen coordinate translation method
13554
13555 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
13556
13557         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
13558           want to return a message, loop back to the beginning of the function
13559           and grab the next real message to process instead.
13560
13561 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
13562
13563         * Splitter.cs: Properly set limits if no filler control is used
13564
13565 2005-10-19  Jackson Harper  <jackson@ximian.com>
13566
13567         * ColorDialog.cs: Don't show the help button if it is not enabled
13568         instead of disabling it (this is what MS does). Don't create the
13569         panel until the dialog is run, otherwise the vars (such as
13570         ShowHelp) are not set yet.
13571
13572 2005-10-19  Jackson Harper  <jackson@ximian.com>
13573
13574         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
13575         are reduced when adding nodes.
13576         * TreeNode.cs:
13577         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
13578         tree.
13579         
13580 2005-10-19  Jackson Harper  <jackson@ximian.com>
13581
13582         * FolderBrowserDialog.cs: End editing our treeview so the window
13583         actually gets refreshed.
13584
13585 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
13586
13587         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
13588           Obsoleted handling of WM_ERASEBKGND, now always draws our background
13589           inside of WM_PAINT
13590
13591 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
13592
13593         * MenuAPI.cs: Returns after Hidding window
13594         * XplatUIX11.cs: Added TODO found while debugging menu issues
13595
13596 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
13597
13598         * XplatUIX11.cs: Do not re-map the whole window when it's size
13599           becomes non-zero unless it's supposed to be actually visible
13600
13601 2005-10-18  Jackson Harper  <jackson@ximian.com>
13602
13603         * TreeView.cs: We don't need to keep a count anymore.
13604         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
13605         use the Grow method.
13606
13607 2005-10-18  Jackson Harper  <jackson@ximian.com>
13608
13609         * TreeNodeCollection.cs: Insert is not supported on arrays, so
13610         implement it manually here.
13611
13612 2005-10-18  Jackson Harper  <jackson@ximian.com>
13613
13614         * ImageList.cs: Dont kill the list when the colour depth is
13615         changed, just change the colour depth of all the images.
13616         - Same goes for setting the image size. Just resize them all
13617         instead of killing the list softly.
13618
13619 2005-10-18  Jackson Harper  <jackson@ximian.com>
13620
13621         * Control.cs: Don't invalidate empty rectangles.
13622
13623 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
13624
13625         * ListViewItem.cs:
13626           - Adds checked item to the Checked/Item lists (where empty before)
13627           - Do not add items to the Selected lists if they are already present
13628         * ListView.cs:
13629           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
13630           - When deleting items make sure that we delete them for the Selected
13631           and Checked list also.
13632
13633 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
13634
13635         * Label.cs: Dispose objects no longer used
13636         * ThemeWin32Classic.cs: Dispose objects no longer used
13637
13638 2005-10-18  Jackson Harper  <jackson@ximian.com>
13639
13640         * TabControl.cs: Don't refresh the whole control when the tabs are
13641         scrolled, we just need to refresh the tab area.
13642
13643 2005-10-17  Jackson Harper  <jackson@ximian.com>
13644
13645         * XplatUIX11.cs: Compress code a little bit. Only calculate the
13646         after handle when we need it.
13647
13648 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
13649
13650         * Control.cs: When the parent size changes, recalculate anchor 
13651           positions. Partial fix for #76462
13652
13653 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
13654
13655         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
13656           drawn. Fixes #76462
13657
13658 2005-10-17  Jackson Harper  <jackson@ximian.com>
13659
13660         * MonthCalendar.cs: Don't create the numeric up down until our
13661         handle is created. Otherwise our handle is created in the
13662         constructor and we don't know if we are a WS_CHILD or WS_POPUP
13663         yet.
13664
13665 2005-10-17  Jackson Harper  <jackson@ximian.com>
13666
13667         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
13668         correctly.
13669
13670 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13671         * TreeNode.cs : small logical fix (was using local var instead of field)
13672         
13673 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
13674
13675         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
13676
13677 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
13678
13679         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
13680
13681 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
13682
13683         * Control.cs: 
13684           - Re-implemented anchoring code. My first version was really broken.
13685             This fixes bug #76033. Unlike the previous implementation we will
13686             no longer have round errors since all numbers are calculated from
13687             scratch every time. Removed various anchor-related obsolete vars.
13688           - InitLayout no longer causes layout event firing and layout to be 
13689             performed
13690
13691 2005-10-16  Jackson Harper  <jackson@ximian.com>
13692
13693         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
13694         which was broken).
13695
13696 2005-10-16  Jackson Harper  <jackson@ximian.com>
13697
13698         * TabControl.cs: Remove debug code.
13699
13700 2005-10-16  Jackson Harper  <jackson@ximian.com>
13701
13702         * XEventQueue.cs: Increase the default queue size (very simple
13703         apps needed to grow the queue).
13704         * Hwnd.cs: No finalizer so we don't need to suppress
13705         finalization. Compute the invalid area manually so a new rectangle
13706         does not newto be created.
13707         * ScrollableControl.cs: Don't set any params (otherwise visibility
13708         isn't set correctly).
13709         * MdiChildContext.cs: New constructor takes the mdi parent so it
13710         doesn't have to be computed and avoids a crash on windows. Draw
13711         the window icon properly, and allow the text to be seen.
13712         * Form.cs: Use new MdiChildContext constructor. Make sure the
13713         child context isn't null in wndproc.
13714         * TabControl.cs: Don't set focus, this is muddling keyboard
13715         behavoir. Expand the tab rows when a window size increase will
13716         allow extra tabs to be seen. Don't allow tabs smaller than the
13717         width of a window to be scrolled out of view.
13718         * TreeNode.cs:
13719         * TreeView.cs: Use measure string to calculate a nodes width, the
13720         width is cached and only updated when the text or the font is
13721         changed. Don't check for expand/collapse clicks on the first level
13722         nodes if root lines are disabled.
13723         
13724 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
13725
13726         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
13727
13728 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
13729
13730         * DataGridBoolColumn.cs: fixes warning
13731
13732 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
13733
13734         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
13735         to match more to match more precisely the MS Net behavior
13736
13737 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
13738
13739         * Hwnd.cs: Added field to track if window is mapped
13740         * XplatUIX11.cs: 
13741           - Unmap windows if they become 0-size, re-map when 
13742             they are >0 again; fixes #76035
13743           - Re-set our error handler after initializing X11Desktop
13744             to override any error handlers Gtk or whatever was called
13745             may have set.
13746
13747 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
13748
13749         * CheckedListBox.cs: Removed unused vars
13750         * ListView.cs: Fixed signatures
13751         * RichTextBox.cs: Removed unused vars
13752         * TextBoxBase.cs: Removed unused vars
13753         * XplatUIWin32.cs: Removed unused vars
13754         * XplatUIX11.cs: Removed unused vars
13755         * XplatUI.cs: Updated version and date to latest published
13756
13757 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
13758
13759         * Cursor.cs: Added private .ctor to work around a bug in
13760           resourceset (Thanks to Geoff Norton for the help on this)
13761         * SplitterEventArgs.cs: Made fields accessible so we don't
13762           waste boatloads of objects and can reuse the same one
13763           in Splitter
13764         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
13765           any captions and borders when generating screen coordinates
13766         * Splitter.cs: Reimplemented control, now fully complete, uses
13767           rubberband drawing, supports and obeys all properties, has
13768           proper cursors
13769
13770 2005-10-13  Miguel de Icaza  <miguel@novell.com>
13771
13772         * Form.cs (Form): Setup default values for autoscale and
13773         autoscale_base_size;  Make these instance variables, not static
13774         variables. 
13775
13776         (OnLoad): on the first load, adjust the size of the form.
13777
13778 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
13779
13780         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
13781           width argument to DrawReversibleRectangle()
13782         * XplatUIWin32.cs, XplatUIX11.cs: 
13783           - Implemented width for DrawReversibleRectangle()
13784           - Added logic to DrawReversibleRectangle that recognizes a zero
13785             width or height and only draws a line in that situation
13786         
13787 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
13788
13789         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
13790         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
13791         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
13792           method (it uses our FosterParent window to get a graphics context)
13793
13794 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
13795
13796         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
13797           and SetWindowBackground methods
13798         * Control.cs:
13799           - Setting proper ControlStyles
13800           - We no longer call XplatUI.SetWindowBackground and XplatUI.
13801             EraseWindowBackground, instead we draw the window background
13802             ourselves in PaintControlBackground. This behaviour is
13803             required to match MS, where, when OnPaintBackground is not
13804             called, the background is not drawn.
13805           - Removed unneeded Refresh() in set_Text
13806         * Hwnd.cs: Dropped the ErasePending support. No longer needed
13807         * XplatUIX11.cs:
13808           - Created DeriveStyles method to translate from CreateParams to
13809             FormBorderStyle and TitleStyle, also handles BorderStyle (which
13810             matches FormBorderStyle enum values)
13811           - Consolidated SetHwndStyles and CalculateWindowRect border/title
13812             style calculations into single DeriveStyles method
13813           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
13814             from redrawing the whole window on any resize or expose.
13815           - Fixed CreateWindow usage of SetWindowValuemask. Before not
13816             all styles were applied to our whole/client window appropriately
13817           - Removed EraseWindowBackground() and SetWindowBackground() methods
13818           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
13819             no longer clear/redraw the background through X
13820           - Removed handling of erase_pending bit, we have no use for it (or
13821             so it seems)
13822         * XplatUIOSX.cs:
13823           - Removed generation and handling of WM_ERASEBKGND message
13824           - Removed EraseWindowBackground() and SetWindowBackground() methods
13825           - Removed handling of hwnd.ErasePending flag
13826         * XplatUIWin32.cs:
13827           - Removed EraseWindowBackground() and SetWindowBackground() methods
13828           - We no longer call EraseWindowBackground on PaintEventStart, we 
13829             ignore the fErase flag, erasing is handled in Control in the
13830             background handler
13831         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
13832           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
13833           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
13834           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
13835           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
13836           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
13837           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
13838
13839 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
13840
13841         * PropertyGrids.cs: Get sub properties
13842         * PropertyGridView.cs: Fix drawing code
13843
13844 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13845
13846         * ListBox.cs: Fixes 76383
13847
13848 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13849
13850         * DataGridTextBoxColumn.cs: Sets location and size before attachment
13851         * ThemeWin32Classic.cs: Fixes border drawing and calculations
13852         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
13853
13854
13855 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13856
13857         * ComboBox.cs: Fixes border drawing
13858
13859 2005-10-10  Miguel de Icaza  <miguel@novell.com>
13860
13861         * MimeIcon.cs: Ignore errors if the file can not be read.
13862
13863 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
13864
13865         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
13866          - Fixed border calculations
13867          - Fixed horizontal scrolling in single column listboxes
13868          - Fixed drawing issues
13869
13870 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
13871
13872         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
13873           FormBorderStyle enum
13874         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
13875           code to determine FormBorderStyles from CreateParams
13876         * Form.cs:
13877           - Fixed bug where we'd set the wrong window styles if we were
13878             not creating an MDI window
13879           - Added call to XplatUI.SetBorderStyle when form borders are set
13880         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
13881         * Hwnd.cs:
13882           - Removed obsolete edge style
13883           - Switched from BorderStyle to FormBorderStyle
13884         
13885 2005-10-10  Jackson Harper  <jackson@ximian.com>
13886
13887         * Form.cs: Use the property to get the window handle instead of
13888         accessing it directly. Prevents a null reference exception.
13889
13890 2005-10-10  Jackson Harper  <jackson@ximian.com>
13891
13892         * TreeView.cs: Don't adjust the rect given to DrawString now that
13893         our libgdiplus draws correctly.
13894
13895 2005-10-08  Jackson Harper  <jackson@ximian.com>
13896
13897         * TreeView.cs: Don't try to find the clicked on node if there are
13898         no nodes in the tree.
13899
13900 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13901
13902         * RichTextBox.cs:
13903
13904           restore
13905
13906 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
13907
13908         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
13909           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
13910           ErrorProvider.cs:
13911           Use ResPool for brushes and dispose System.Drawing objects that
13912           are not used anymore.
13913
13914 2005-10-07  Jackson Harper  <jackson@ximian.com>
13915
13916         * MdiChildContext.cs: Use the new borders instead of drawing them
13917         ourselves.
13918
13919 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13920
13921         * Calling UpdateBounds after changing the window's BorderStyle 
13922         since the style can change the ClientSize
13923
13924 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13925
13926         * Control.cs: Made PaintControlBackground virtual
13927         * Panel.cs: Overriding PaintControlBackground instead of using paint
13928           event; paint event method was interfering with 'real' users of the
13929           event.
13930
13931 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
13932
13933         * ThemeWin32Classic.cs: remove border drawing since it is handled
13934         by the base control class now and was causing double border drawing.
13935
13936 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13937
13938         * Panel.cs: Redraw our background on paint. Not a pretty solution,
13939           but it does seem to match MS behaviour. This fixes bug #75324
13940
13941 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13942
13943         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
13944           somewhat hackish looking
13945
13946 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13947
13948         * TextBoxBase.cs:
13949           - We now accept Enter even if AcceptEnter is false, if the containing
13950             form does not have an AcceptButton configured (fixes bug #76355)
13951           - Calculations are now fixed to no longer use Width/Height, but
13952             ClientSize.Width/Height, since we now support borders (this was
13953             a result of fixing borders and therefore bug #76166)
13954           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
13955             true (fixes bug #76354)
13956         
13957 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13958
13959         * Control.cs: 
13960           - Defaulting BorderStyle and setting it in XplatUI when our window 
13961             is created
13962           - Added enum check to InternalBorderStyle setter
13963         * XplatUIX11.cs: 
13964           - Added drawing of window borders
13965           - Now properly calculates WM decorations offset for toplevel 
13966             windows (fixes bug #74763)
13967         * XplatUIWin32.cs: 
13968           - Implemented BorderStyles for windows (we're letting win32 draw 
13969             the border for us)
13970           - Fixed the signature for SetWindowLong
13971         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
13972           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
13973           setting borders
13974         * UpDownBase.cs: Remove drawing of borders, this is handled by
13975           the driver, outside the client area
13976         * ListView.cs: Removed bogus border calculations. The control should
13977           be oblivious to borders, since those are not part of the client
13978           area. 
13979         * X11DesktopColors.cs: Commented out (currently) unneeded variables
13980         * ThemeWin32Classic.cs: Removed border calculations from ListView 
13981           drawing code
13982
13983 2005-10-06  Jackson Harper  <jackson@ximian.com>
13984
13985         * MdiChildContext.cs: Clear out the old virtual position remove
13986         all the unneeded calls to CreateGraphics.
13987
13988 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13989
13990         * TextControl.cs: Use proper color for highlighted text; fixes #76350
13991
13992 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13993
13994         * Form.cs: 
13995           - Added loading and setting of our new default icon
13996           - Only set icon if window is already created
13997
13998 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13999
14000         * Label.cs:
14001           - Do not explicitly set the foreground and background colors, to
14002             allow inheriting from parents (fixes #76302)
14003           - Use Control's InternalBorderStyle property to deal with borders
14004
14005 2005-10-06  Jackson Harper  <jackson@ximian.com>
14006
14007         * MdiChildContext.cs: Use the new xplatui function to draw a
14008         reversible rect.
14009
14010 2005-10-06  Jackson Harper  <jackson@ximian.com>
14011
14012         * Form.cs: Add the parent before creating the child context cause
14013         we need the parent when setting up the child.
14014
14015 2005-10-06  Jackson Harper  <jackson@ximian.com>
14016
14017         * FolderBrowserDialog.cs: redo the tree population code so a
14018         second thread isn't used. Should be a lot faster and more stable
14019         now.
14020
14021 2005-10-05  Jackson Harper  <jackson@ximian.com>
14022
14023         * TreeView.cs: There are no expand/collapse boxes if the node has
14024         no children.
14025
14026 2005-10-05  Jackson Harper  <jackson@ximian.com>
14027
14028         * X11DesktopColors.cs: Get menu colours for the gtk theme.
14029
14030 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
14031
14032         * FileDialog.cs: Fix InitialDirectory
14033
14034 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
14035
14036         * ComboBox.cs:
14037                 - Fixes changing between styles
14038                 - Fixes simple mode
14039                 - Fixes last item crashing when navigating with keyboard
14040
14041 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
14042
14043         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
14044
14045 2005-10-05  Jackson Harper  <jackson@ximian.com>
14046
14047         * TreeView.cs: If updating the root node do a full refresh.
14048         * TreeNode.cs: The root node should be expanded by default. Also
14049         added a utility prop to tell if we are the root node.
14050         * TreeNodeCollection.cs: Only refresh if the node we are being
14051         added to is expanded. Also added a comment on a potential
14052         optimization.
14053         
14054 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
14055
14056         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
14057           in dispose method. Fixes #76330
14058
14059 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
14060
14061         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
14062
14063                 - Implements vertical and horizontal scrolling using XplatUI
14064                 - Fixes keyboard navagation
14065                 - Fixes EnsureVisible
14066                 - Drawing fixes
14067                 - Handles and draws focus properly
14068
14069
14070 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
14071
14072         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
14073           Create handle. NET_2_0: Destroy handle when value is null.
14074
14075 2005-10-03  Jackson Harper  <jackson@ximian.com>
14076
14077         * ScrollBar.cs: My last scrollbar patch was broken. This is a
14078         revert and a new patch to prevent the thumb from refreshing so
14079         much.
14080
14081 2005-10-02  Jackson Harper  <jackson@ximian.com>
14082
14083         * ScrollBar.cs: Don't update position if it hasn't actually
14084         changed. This occurs when you hold down the increment/decrement
14085         buttons and the thumb gets to the max/min.
14086
14087 2005-10-01  Jackson Harper  <jackson@ximian.com>
14088
14089         * Form.cs:
14090         * MdiChildContext.cs:
14091         * MdiClient.cs: Implement ActiveMdiChild in Form.
14092
14093 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
14094
14095         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
14096
14097 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
14098
14099         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
14100           be found
14101
14102 2005-09-30  Jackson Harper  <jackson@ximian.com>
14103
14104         * ListBox.cs: Don't do a full refresh unless some data has
14105         actually changed.
14106
14107 2005-09-30  Jackson Harper  <jackson@ximian.com>
14108
14109         * TreeView.cs: Make sure that the checkboxes size is factored in
14110         even when not visible.
14111
14112 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
14113
14114         * FileDialog.cs: Fix Jordi's build break
14115
14116 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
14117
14118         * FileDialog.cs: 
14119                 - Use standard the Windows colours for the combobox as espected
14120                 - Dispose objects that use resouces when no longer need them
14121
14122 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
14123
14124         * X11DesktopColors.cs: Initial incomplete implementation
14125         * XplatUIX11.cs: Added call to initialize X11DesktopColors
14126
14127 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
14128
14129         * Theme.cs: 
14130           - Switched Theme color names to match the names defined in 
14131             System.Drawing.KnownColors. Life's hard enough, no need to make 
14132             it harder.
14133           - Added setters to all theme color properties so themes can set
14134             their color schemes. The setters also propagate the color changes
14135             to System.Drawing.KnownColors via reflection
14136         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
14137           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
14138           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
14139           use the new, more logical theme color names
14140         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
14141           post-NT colors
14142         * ThemeWin32Classic.cs:
14143           - Removed code to set the old classic Windows colors. Instead it
14144             now relies on the colors returned by System.Drawing.KnownColors
14145             which will be either modern static colors (Unix) or colors
14146             read from the user's configuration (Win32)
14147           - Updated to use the new, more logical theme color names
14148           - Switched DataGrid drawing code to use only Theme colors instead of
14149             a mix of System.Drawing.KnownColors and Theme colors
14150           - DrawFrameControl(): Removed code that fills the button area, the
14151             fill would overwrite any previous fill done by a control. This
14152             fixes bug #75338 
14153           - Added DrawReversibleRectangle() stub
14154         * ScrollableControl.cs: Set visible state to false when scrollbars
14155           are removed (pdn fix)
14156         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
14157           DrawReversibleRectangle() method to allow drawing primitive 
14158           'rubber bands'
14159         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
14160
14161 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14162
14163         * ImageList.cs: Add(Icon): Create handle.
14164
14165 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
14166
14167         * ListView.cs:
14168         * ThemeWin32Classic.cs:
14169                 - Fixes detail mode
14170                 - Sets clippings
14171                 - Issues with drawing
14172
14173 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14174
14175         * ImageList.cs: Moved RecreateHandle back to ImageList as event
14176           source has to be the ImageList.
14177
14178 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14179
14180         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
14181
14182 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14183
14184         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
14185
14186 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14187
14188         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
14189
14190 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
14191         * GridItem.cs: Fixed TODOs
14192         * GridItemCollection.cs: Added ICollection interface
14193
14194 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
14195
14196         * ImageList.cs: Resize icons when needed.
14197
14198 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
14199
14200         * ListViewItem.cs
14201                 - Fixes GetBounds and returns on screen rects
14202         * ListView.cs:
14203                 - Fixes vertical and horzintal scrolling of items
14204         * ThemeWin32Classic.cs:
14205                 - Fixes drawing
14206                 
14207 2005-09-29  Raja R Harinath  <harinath@gmail.com>
14208
14209         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
14210
14211 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
14212
14213         * ImageList.cs: Added comments about handle creation. Moved Handle,
14214           HandleCreated and OnRecreateHandle implementations to ImageCollection.
14215           Handle is created in Add methods.
14216
14217 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
14218          
14219         * DataGridDrawingLogic.cs: 
14220                 - Takes rows into account on Colum calculations
14221                 - Returns the column when clickig
14222         * DataGrid.cs:
14223                 - Fixes default HitTestInfo values
14224                 - Fixes HitTestInfo.ToString
14225                 - Fixes ResetBackColor          
14226         
14227 2005-09-28  Jackson Harper  <jackson@ximian.com>
14228
14229         * MdiChildContext.cs: Obey rules for fixed sized windows (no
14230         sizing or cursor changes). Also added some temp code to draw the
14231         titlebars text (Makes dev a little easier).
14232
14233 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
14234
14235         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
14236
14237 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
14238          
14239         * ListBox.cs: Fixes bug 76253
14240
14241 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
14242
14243         * ImageList.cs: Added comments about the current implementation. Added
14244           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
14245           Format32bppArgb to preserve transparency and can use Graphics.FromImage
14246           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
14247           with Bitmap.LockBits for better performance. Revised the whole file to
14248           match MS.NET behaviour and provide better performance. Non-public
14249           interface members are calling public members even when they throw
14250           NotSupportedException for better maintainability. Moved ColorDepth,
14251           ImageSize, ImageStream and TransparentColor implementations to
14252           ImageCollection for better performance as these properties are not used
14253           by ImageList.
14254         * ImageListStreamer.cs: Added a new internal constructor that takes an
14255           ImageList.ImageCollection and serializes Images based on
14256           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
14257           match ImageList property name.
14258
14259 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
14260
14261         * ListBox.cs: Fixes IndexFromPoint for last item
14262
14263 2005-09-27  Jackson Harper  <jackson@ximian.com>
14264
14265         * Form.cs: Set the position of new mdi children correctly.
14266
14267 2005-09-27  Jackson Harper  <jackson@ximian.com>
14268
14269         * MdiClient.cs: New mdi children need to be added to the back of
14270         the controls collection so the zorder is set correctly. Also add a
14271         count of all the child windows that have been created.
14272
14273 2005-09-27  Jackson Harper  <jackson@ximian.com>
14274
14275         * Form.cs (CreateParams): Setup MDI forms correctly.
14276
14277 2005-09-27  Jackson Harper  <jackson@ximian.com>
14278
14279         * MdiChildContext.cs:
14280         * MonthCalendar.cs:
14281         * UpDownBase.cs:
14282         * ListBox.cs:
14283         * ListView.cs:
14284         * TextBoxBase.cs:
14285         * TreeView.cs:
14286         * ScrollableControl.cs:
14287         * ComboBox.cs: Add implicit controls using the new implict control
14288         functionality in ControlCollection. Also try to block multiple
14289         control add in a suspend/resume layout to save some cycles.
14290         
14291 2005-09-27  Jackson Harper  <jackson@ximian.com>
14292
14293         * Control.cs: Add functionality to the controls collection to add
14294         'implicit controls' these are controls that are created by the
14295         containing control but should not be exposed to the user. Such as
14296         scrollbars in the treeview.
14297         * Form.cs: The list var of the ControlsCollection is no longer
14298         available because of the potential of implicit controls getting
14299         ignored by someone accessing the list directly.
14300
14301 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
14302
14303         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
14304           loose it's parent. (Fixed bug introduced in r49103 when we added
14305           setting the child parent to null on Remove)
14306
14307 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
14308
14309         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
14310         * Splitter.cs: Added missing attributes for BorderStyle property.
14311         * TextBoxBase.cs: Marked Calculate* methods internal.
14312         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
14313         MS.NET.
14314
14315 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
14316          
14317         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
14318
14319 2005-09-25  Jackson Harper  <jackson@ximian.com>
14320
14321         * TreeView.cs: Update the node bounds correctly regardless of
14322         whether the node is visible.
14323
14324 2005-09-25  Jackson Harper  <jackson@ximian.com>
14325
14326         * ImageList.cs: Don't dispose the image after it is added to the
14327         image list. Only reformat images that need to be resized.
14328
14329 2005-09-25  Jackson Harper  <jackson@ximian.com>
14330
14331         * ImageList.cs: Don't set the format when changing the image.
14332
14333 2005-09-25  Jackson Harper  <jackson@ximian.com>
14334
14335         * TreeView.cs: We can't just assume the node has a font. Use the
14336         treeviews font if no node font is available.
14337
14338 2005-09-25  Jackson Harper  <jackson@ximian.com>
14339
14340         * TreeView.cs: Allow the scrollbars to be reset with negative
14341         values.
14342         - Don't add scrollbars to negative sized windows.
14343
14344 2005-09-23  Jackson Harper  <jackson@ximian.com>
14345
14346         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
14347         old Mono.Posix. Also remove some stray code that shouldn't have
14348         been committed.
14349
14350 2005-09-23  Jackson Harper  <jackson@ximian.com>
14351
14352         * TreeView.cs: Attempt at proper sizing of the horizontal
14353         scrollbar. Also don't resize the scrollbars unless they are
14354         visible.
14355
14356 2005-09-23  Jackson Harper  <jackson@ximian.com>
14357
14358         * TreeView.cs: We don't need to expand the invalid area when the
14359         selection changes, as this is all drawn in the node's bounding
14360         box. The area needs to be expanded (previous typo was contracting
14361         it) when the focus rect moves.
14362
14363 2005-09-23  Jackson Harper  <jackson@ximian.com>
14364
14365         * TreeView.cs: Display the selection box under the correct
14366         circumstances. We were rendering white text with no selection box
14367         before.
14368
14369 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
14370
14371         * TextControl.cs(Split): Now updates selection start/end if it points 
14372           into a line that's being split. Fixes a FIXME and bug #75258
14373
14374 2005-09-23  Jackson Harper  <jackson@ximian.com>
14375
14376         * Binding.cs:
14377         * ListControl.cs: Don't use the path when retrieving binding
14378         managers from the binding context. My bat sense tells me that the
14379         path is only used on insertion.
14380
14381 2005-09-22  Jackson Harper  <jackson@ximian.com>
14382
14383         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
14384
14385 2005-09-22  Jackson Harper  <jackson@ximian.com>
14386
14387         * Splitter.cs: There are special cursors used for splitting.
14388         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
14389
14390 2005-09-22  Jackson Harper  <jackson@ximian.com>
14391
14392         * Splitter.cs: Change the cursor appropriately when the splitter
14393         is moused over, so the user actually knows there is a splitter
14394         there.
14395
14396 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
14397
14398        * Label.cs : Fix ToString method to give same output as MS.NET
14399
14400 2005-09-22  Jackson Harper  <jackson@ximian.com>
14401
14402         * TreeView.cs: Create the scrollbars when the handle is created
14403         and add them right away, just make them invisble. Also account for
14404         the window being shrunk vertically to the point that the vert
14405         scrollbar needs to be added.
14406         - Remove some 0.5 adjustments to get around anti aliasing issues.
14407         
14408 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
14409          
14410         * MainMenu.cs: Fixes default value
14411         * MenuItem.cs: Fixes default value
14412
14413 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
14414
14415         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
14416
14417 2005-09-21  Jackson Harper  <jackson@ximian.com>
14418
14419         * Control.cs: Don't try to set the border style on the window if
14420         it hasn't been created. When the window is created the border
14421         style will be used.
14422
14423 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
14424
14425         * Control.cs (Update): Don't call XplatUI if we don't have a
14426           window handle yet
14427
14428 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
14429
14430         * ContainerControl.cs: Instead of throwing an exception, print
14431           a one-time warning about Validate not being implemented
14432         * XplatUIWin32.cs: Removed debug output
14433
14434 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
14435
14436         * Control.cs: Only set XplatUI background if we expect the windowing
14437           system to handle the background. This stops controls that draw their
14438           own background from flickering
14439
14440         * XplatUIX11.cs: Support custom visuals and colormaps for window 
14441           creation. This allows, amongst other things, using MWF X11 windows 
14442           with OpenGL.
14443
14444 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
14445
14446         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
14447           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
14448           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
14449           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
14450           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
14451           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
14452           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
14453           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
14454           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
14455           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
14456           GridColumnStylesCollection.cs, 
14457           IDataGridColumnStyleEditingNotificationService.cs,
14458           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
14459           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
14460           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
14461           TreeNodeCollection.cs, AmbientProperties.cs, 
14462           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
14463           DataObject.cs, ErrorProvider.cs, Splitter.cs,
14464           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
14465           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
14466           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
14467           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
14468           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
14469           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
14470           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
14471           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
14472           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
14473           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
14474           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
14475           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
14476           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
14477           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
14478           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
14479           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
14480           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
14481           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
14482           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
14483           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
14484           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
14485           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
14486           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
14487           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
14488           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
14489           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
14490           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
14491           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
14492           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
14493           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
14494           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
14495           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
14496           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
14497           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
14498           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
14499
14500 2005-09-21  Jackson Harper  <jackson@ximian.com>
14501
14502         * TreeNode.cs: Call Before/After Expand not Collapse when
14503         expanding.
14504
14505 2005-09-20  Jackson Harper  <jackson@ximian.com>
14506         
14507         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
14508
14509 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
14510          
14511         * ListViewItem.cs:
14512                 - Fixes bug 76120
14513                 - Fixes proper storing of subitems
14514                 - Fixes not updated items
14515
14516 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
14517
14518         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
14519           things if our window handle isn't created yet. Also disabled 
14520           debug for TextBoxBase
14521
14522 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
14523
14524         * MenuAPI.cs: Remove filtering of events to allow menu usage
14525
14526 2005-09-20  Miguel de Icaza  <miguel@novell.com>
14527
14528         * Cursor.cs: Allow null to be passed to Cursor.Current.
14529
14530 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
14531
14532         * ThemeWin32Classic.cs:
14533           - Change some private methods/fields to protected virtual so that 
14534             they can be accessed and overriden in derived classes
14535           - First refactoring of some methods. Derived themes now don't 
14536             need to duplicate the complete code from ThemeWin32Classic
14537         * ThemeNice.cs:
14538           - Added nice StatusBar
14539           - Derive from ThemeWin32Classic and not Theme
14540           - Removed duplicate ThemeWin32Classic code
14541
14542 2005-09-20  Miguel de Icaza  <miguel@novell.com>
14543
14544         * Control.cs (ControlCollection.Add): If the value null is passed
14545         the control is ignored. 
14546
14547         Optimize this loop.
14548
14549 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
14550
14551         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
14552           PostQuitMessage state.
14553         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
14554
14555 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
14556
14557         * Application.cs: Our constructor will never get called, move 
14558           initialization to fields; fixes bug #75933
14559
14560 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
14561
14562         * FileDialog.cs :
14563                 - Allow files to be selected properly using file name
14564                 combo box.
14565                 - Add ability to change diretory (absolute / relative)
14566                 using file name combo box.
14567
14568 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
14569          
14570         * ListBox.cs: 
14571                 - Fixes Multicolumn listboxes item wrong calculations
14572                 - Allows to click when only one item is in the listbox
14573                 - Fixes crash when no items using keyboard navigation
14574
14575 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
14576
14577         * ComboBox.cs: Reverted almost everything from the latest patch which
14578           broke ComboBox
14579
14580 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
14581         
14582         * ToolTip.cs:
14583                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
14584         * ComboBox.cs:
14585                 - When DropDownStyle is Simple, it does not show scrollbar 
14586                 to the last item of the list.
14587                 - When DropDownStyle is Simple, it crashed when the list was 
14588                 scrolled down with the down cursor key.
14589                 - Fixed a bug that when DropDownStyle is DropDownList, the 
14590                 selected item was not shown.
14591                 - The position of the selected item was not preserved when 
14592                 the next dropdown happened.
14593         * ThemeWin32Classic.cs:
14594                 - Items were wrapped at the right end.
14595         * CheckedListBox.cs:
14596                 - Fixed Add method
14597         * ListBox.cs:
14598                 - Items should be fully shown.
14599                 - When resizing and vertical scrollbar disappeared, the item 
14600                 of index 0 should be on the top of the list.
14601                 - GetItemRectangle should consider the size of ver. scrollbar
14602         * StatusBar.cs:
14603                 - SizingGrip area should not be allocated when it is not 
14604                 displayed.
14605                 - Now it reflects MinWidth of the containing panel and 
14606                 fixed a crash that happens when its width becomes so small.
14607
14608 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
14609
14610         * CheckedListBox.cs: Fixes bug 76028
14611         * ListBox.cs: Fixes bug 76028
14612
14613 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
14614
14615         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
14616         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
14617
14618 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
14619
14620         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
14621
14622 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
14623
14624         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
14625
14626 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
14627
14628         * IRootGridEntry.cs: Added
14629         * PropertyGridCommands.cs: Added
14630         * PropertiesTab.cs: Added missing methods and property
14631         * PropertyGridView.cs: Made class internal
14632         * PropertyGridTextBox.cs: Made class internal
14633
14634 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14635
14636         * MimeIcon.cs: Try to check some other environment variables
14637           if "DESKTOP_SESSION" returns "default"
14638
14639 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14640
14641         * ThemeNice.cs: Corrected background colors (e.g. menus)
14642         * ColorDialog.cs: Use correct background colors for controls
14643
14644 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
14645
14646         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
14647
14648 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
14649
14650         * RichTextBox.cs: Added initial implementation
14651         * lang.cs: Removed. Was accidentally checked in long time ago
14652         * TODO: Removed. Contents were obsolete
14653
14654 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
14655                                                                                 
14656         * PropertiesTab.cs : Added
14657
14658 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
14659                                                                                 
14660         * PropertyGrid.cs : Update
14661         * PropertyGridView.cs : Update
14662         * System.Windows.Forms.resx : Added images and strings
14663
14664 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
14665
14666         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
14667  
14668 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
14669
14670         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
14671           a busy loop right after the Ungrab the X11 display is otherwise 
14672           blocked
14673
14674 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
14675
14676         * ThemeWin32Classic.cs: Optimise the use of clipping
14677
14678 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
14679
14680         * DataGrid.cs: fixes recursion bug
14681
14682 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
14683
14684         * ThemeNice.cs: 
14685           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
14686           - Cleanup
14687
14688 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
14689
14690         * ThemeNice.cs: Draw nice ProgressBars
14691
14692 2005-09-01  Miguel de Icaza  <miguel@novell.com>
14693
14694         * VScrollBar.cs: Another buglet found by Aaron's tool. 
14695
14696         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
14697         bug finder.
14698
14699 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
14700
14701         * ThemeNice.cs:
14702           - Added nicer menu drawing
14703           - Updated DrawTab
14704           - some refactoring
14705
14706 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
14707
14708         * CreateParams.cs (ToString): Made output match MS
14709         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
14710             handle is already created (to avoid forcing window creation)
14711         * XplatUIX11.cs: Set window text to caption after creating window,
14712           in case Text was set before window was created
14713         * Form.cs: Use this.Text instead of a static string as caption
14714
14715 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
14716
14717         * NotifyIcon.cs: Don't set the window to visible; this screws
14718           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
14719           OnPaint without a bitmap)
14720         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
14721           happen very often anyway; we could add the check to the WM_PAINT 
14722           event generation code
14723
14724 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
14725
14726         * NotifyIcon.cs: Fill the icon area with a background color, to 
14727           avoid 'residue' when transparent icons are drawn
14728         * XplatUIX11.cs:
14729           - Handle whole_window == client_window when destroying windows
14730           - SystrayAdd(): Set client_window to whole_window value to
14731             get mouse and other events passed to NotifyIcon
14732
14733 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
14734
14735         * Form.cs: Set proper default for Opacity property
14736         * NotifyIcon.cs:
14737           - ShowSystray(): Don't bother creating telling the OS
14738             about the systray item if no icon is provided
14739           - Now handles WM_NCPAINT message to deal with whole/client window
14740             split
14741           - Create window as visible to not get caught by Expose optimization
14742         * Hwnd.cs: Removed debug message
14743         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
14744           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
14745             PaintEventStart/End to use new client argument
14746         * TextBoxBase.cs:
14747           - Commented out debug messages
14748           - Switched PaintEventStart/End to use new client argument
14749         * XplatUI.cs: Added client window bool to PaintEventStart()/
14750           PaintEventEnd() calls, to support drawing in non-client areas
14751         * XplatUIDriver.cs: 
14752           - Added client window bool to PaintEventStart()/PaintEventEnd() 
14753             calls, to support drawing in non-client areas
14754           - Added conditional compile to allow using MWF BeginInvoke 
14755             on MS runtime
14756         * XplatUIX11.cs:
14757           - Added some conditional debug output
14758           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
14759             whole/client window split
14760           - Implemented handling of client argument to PaintEventStart()/End()
14761         * Control.cs:
14762           - Throw exception if BeginInvoke() is called and the window handle
14763             or one of the window's parent handles is not created
14764           - Added conditional compile to allow using MWF BeginInvoke on
14765             MS runtime
14766           - get_Parent(): Only sets parent if handle is created. This avoids
14767             forcing window handle creation when parent is set.
14768           - Now fires Layout and Parent changed events in proper order
14769           - Switched to use Handle instead of window.Handle for Z-Order setting,
14770             the get_Parent() patch above causes us to possibly get null for 'window'
14771           - Implemented handling of client argument to PaintEventStart()/End()
14772           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
14773             default handling)
14774           - Now sends a Refresh() to all child windows when Refresh() is called
14775
14776 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
14777
14778         * Form.cs: Added (non-functional) Opacity property
14779         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
14780
14781 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
14782         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
14783           use export MONO_THEME=nice to activate it.
14784           Currently supported controls:
14785           - Button
14786           - ComboBox
14787           - ScrollBar
14788           - TabControl (TabAlignment.Top only, other will follow)
14789         * ThemeEngine.cs: Add theme nice
14790         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
14791           if enabled
14792
14793 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
14794
14795         * Splitter.cs: Resize docked control and its neighbor.
14796
14797 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14798         -- Making Windows with Menus layout correctly --
14799         * Form.cs : The first leg of the fix
14800                 Menu setter - adjust Client Size as needed to make space for the menu
14801                 SetClientSizeCore - doesn't call base version to be able to pass the 
14802                         menu handle to XplatUI.CalculateWindowRect
14803         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
14804         * XplatUIX11.cs: The critical second leg of the fix
14805                 GetWindowPos needs to use a recalculated client_rect
14806                 so that resizing the window doesn't break layout of child controls. 
14807                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
14808                 Lots of \t\n killed
14809
14810 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
14811
14812         * Label.cs: Now properly recalculates width and height on Font and Text
14813           changes if AutoSize is set
14814
14815 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14816         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
14817
14818 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
14819
14820         * ImageList.cs: Makes ToString method compatible with MS
14821
14822 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
14823
14824         * MenuAPI.cs: fixes bug 75716
14825
14826 2005-08-11 Umadevi S <sumadevi@novell.com>
14827         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
14828
14829 2005-08-11 Umadevi S <sumadevi@novell.com>
14830         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
14831
14832 2005-08-10  Umadevi S <sumadevi@novell.com>
14833         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
14834
14835 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
14836
14837         * Menu.cs: fixes bug 75700
14838         * MenuAPI.cs: fixes navigation issues
14839
14840 2005-08-09  Umadevi S <sumadevi@novell.com>
14841         * CheckedListBox.cs - simple fix for GetItemChecked.
14842
14843 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
14844
14845         * ComboBox.cs: Serveral fixes
14846         * ListBox.cs: Serveral fixes
14847
14848 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14849
14850         * ComboBox.cs: Fixes FindString methods and GetItemHeight
14851         * ListBox.cs: Fixes FindString methods
14852
14853 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
14854
14855         * DataGrid.cs: fixes bugs exposed by new tests
14856
14857 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
14858
14859         * Mime.cs: Compile Mono assembly references only if compiling
14860           with Mono (Allows to build with VS.Net again)
14861
14862 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
14863
14864         * Control.cs (PaintControlBackground): Draw background image
14865         corrrectly.
14866         (CheckForIllegalCrossThreadCalls): Stubbed.
14867         
14868         * Form.cs (OnCreateControl): Center when should be centered.
14869         
14870         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
14871
14872 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
14873
14874         * Binding.cs: Binding to properties should be case unsensitive
14875
14876 2005-07-18 vlindos@nucleusys.com
14877
14878         * DataGrid.cs: fixes setmember order
14879
14880 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
14881
14882         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
14883         * FileDialog.cs: FileDialog is now resizable and uses the new
14884           MimeIconEngine
14885
14886 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
14887
14888         * DataGridTextBoxColumn.cs: default value
14889         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
14890         * GridTableStylesCollection.cs: fixes checking MappingName
14891         * DataGridDrawingLogic.cs: fixes drawing logic issues
14892         * DataSourceHelper.cs: rewritten to make compatible with more data sources
14893         * DataGrid.cs: fixes    
14894
14895 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
14896
14897         * MimeGenerated.cs: Use case sensitive comparer for
14898           NameValueCollections
14899
14900 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
14901
14902         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
14903         * ThemeWin32Classic.cs: bug fixes, code refactoring
14904         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
14905         * DataGrid.cs: bug fixes, code refactoring
14906         * DataGridTextBox.cs: bug fixes, code refactoring
14907         * DataGridColumnStyle.cs:  bug fixes, code refactoring
14908         * Theme.cs:  bug fixes, code refactoring
14909
14910 2005-07-01  Peter Bartok  <pbartok@novell.com> 
14911
14912         * TextControl.cs: Quick fix for the reported crash on ColorDialog
14913           and other text box usage
14914
14915 2005-07-01  Jackson Harper  <jackson@ximian.com>
14916
14917         * TabControl.cs: Make sure the bottom of the tab covers the pages
14918         border.
14919
14920 2005-06-30  Peter Bartok  <pbartok@novell.com> 
14921
14922         * Form.cs (ShowDialog): Assign owner of the dialog
14923         * TextBoxBase.cs: Always refresh caret size when deleting, caret
14924           might have been moved to a tag with different height
14925
14926 2005-06-30  Jackson Harper  <jackson@ximian.com>
14927
14928         * Form.cs: Don't create an infinite loop when setting focus
14929         * MenuItem.cs: Don't dirty the parents if we don't have any
14930
14931 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
14932
14933         * LibSupport.cs: Rename
14934
14935 2005-06-29  Peter Bartok  <pbartok@novell.com>
14936
14937         * TextBoxBase.cs: Re-align caret after deleting a character
14938         * TextControl.cs:
14939           - DeleteChars(): Ensure that tag covers the provided position
14940           - StreamLine(): Drop reference for dropped tag
14941
14942 2005-06-29  Peter Bartok  <pbartok@novell.com> 
14943
14944         * TextControl.cs: 
14945           - Selections now work properly, anchoring at the initial location
14946             and properly extending in either direction (SetSelectionToCaret(),
14947             SetSelectionStart() and SetSelectionEnd())
14948           - No longer redraws the whole control on selection change, now
14949             calculates delta between previous and new selection and only
14950             invalidates/redraws that area
14951           - Fixed FindPos() math off-by-one errors
14952           - Changed DeleteChars() to verify the provided tag covers the
14953             provided position, selections may have a tag that doesn't cover
14954             the position if the selection is at a tag border
14955           - Fixed off-by-one errors in DeleteChars()
14956           - Added missing streamlining check in DeleteChars() to remove
14957             zero-length tags
14958           - Implemented Invalidate() method, now properly calculates exposures
14959             between two given lines/positions
14960           - Implemented SetSelection()
14961           - Obsoleted and removed FixupSelection()
14962           - Improved RecalculateDocument() logic, removing code duplication
14963
14964 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14965
14966         * LibSupport.cs: changes to match different input/output arguments.
14967
14968 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14969
14970         * LibSupport.cs: added libsupport.so init routine.
14971
14972 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
14973         
14974         * ControlBindingsCollection.cs
14975                 - Throws an exception on null datasource when adding
14976                 - Checks for duplicated bindings when adding
14977
14978 2005-06-28  Jackson Harper  <jackson@ximian.com>
14979
14980         * TreeView.cs (OnKeyDown): Support left and right properly
14981         (navigates as well as expanding and collapsing.
14982         - Add support for Multiply, this expands all the selected nodes
14983         children.
14984         - Fix some tabbing.
14985
14986 2005-06-28  Jackson Harper  <jackson@ximian.com>
14987
14988         * TreeView.cs: Implement keyboard navigation, currently supports,
14989         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
14990         support for toggling checkboxes with the space bar.
14991
14992 2005-06-28  Jackson Harper  <jackson@ximian.com>
14993
14994         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
14995         tree.
14996
14997 2005-06-28  Jackson Harper  <jackson@ximian.com>
14998
14999         * TreeView.cs: Add missing event.
15000
15001 2005-06-27  Peter Bartok  <pbartok@novell.com> 
15002
15003         * TextControl.cs:
15004           - Made line ending size configurable (now allows for counting 
15005             lineendings as \n or \r\n)
15006           - Added margin to viewport to keep caret visible on right side
15007           - Fixed translation routines for line/pos to documentpos to consider
15008             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
15009           - Fixed some line-endings to be unix style
15010           - Fixed Document.FormatText to perform it's calculations 1-based
15011           - Added descriptions for a few methods that might otherwise get 
15012             used wrong
15013           - Added NOTE section with some basic conventions to remember at 
15014             the top of the file
15015           - Major fixup for RichTextBox selection drawing:
15016             * Fixed crashes when multiple tags on a single line were selected
15017             * fixed selection box drawing not overlaying text
15018             * fixed bogus offset calculation for tags not starting at index 1
15019             * Switched behaviour from using multiple Substrings of a 
15020               StringBuilder.ToString() to using multiple 
15021               StringBuilder.ToString(start, length) statements, hoping this is
15022               faster (kept original version commented out in the code, in case
15023               original version was faster)
15024         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
15025           alignment != Left
15026         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
15027           call it as well
15028
15029 2005-06-27  Jackson Harper  <jackson@ximian.com>
15030
15031         * TabControl.cs: Move to the left and right with the arrow
15032         keys. These keys don't cycle beyond first and last like
15033         tab. Refresh all the tabs when scrolling them to the left or
15034         right.
15035
15036 2005-06-27  Jackson Harper  <jackson@ximian.com>
15037
15038         * TabControl.cs:
15039           - ToString: Added method
15040           - CreateParams: Remove TODO and comment
15041           - OnKeyDown: Cycle through bounds properly.
15042           - SelectedIndex: Scroll to the right or left if we need to
15043           display the newly selected tab.
15044
15045 2005-06-23  Jackson Harper  <jackson@ximian.com>
15046
15047         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
15048         set.
15049
15050 2005-06-23  Jackson Harper  <jackson@ximian.com>
15051
15052         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
15053         CTRL-SHIFT-TAB, and HOME, END are there any others?
15054
15055 2005-06-23  Jackson Harper  <jackson@ximian.com>
15056
15057         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
15058
15059 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
15060         
15061         * DataGridTextBoxColumn.cs: fixes and enhancements
15062         * ThemeWin32Classic.cs: fixes and enhancements
15063         * DataGridBoolColumn.cs:  fixes and enhancements
15064         * DataGridDrawingLogic.cs:  fixes and enhancements
15065         * CurrencyManager.cs: fixes and enhancements
15066         * DataGrid.cs: fixes and enhancements
15067         * DataGridColumnStyle.cs:  fixes and enhancements
15068
15069 2005-06-22  Jackson Harper  <jackson@ximian.com>
15070
15071         * TabControl.cs: Add some missing methods that just call into the
15072         base. Make the TabPageCollection's IList interface behave in the
15073         same manner as the MS implementation.
15074
15075 2005-06-22  Peter Bartok  <pbartok@novell.com> 
15076
15077         * TextControl.cs: Added sanity check
15078         * TextBoxBase.cs: 
15079           - Fixed wrapping behaviour, don't set wrap on single line controls
15080             (this fixes the breakage of colordialog introduced in an earlier
15081              checkin)
15082           - Added rudimentary support for autoscrolling right-aligned controls
15083             (still needs fixing, also, center alignment scroll is missing)
15084
15085 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
15086         
15087         * ScrollBar.cs: Fixes thumbpos on Maximum values
15088
15089 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
15090         
15091         * PropertyGridView.cs: Pass context information to UITypeEditors 
15092
15093 2005-06-21  Peter Bartok  <pbartok@novell.com> 
15094
15095         * TextBoxBase.cs:
15096           - Now calling PositionCaret with absolute space coordinates
15097           - Enabled vertical scrolling
15098           - Better tracking of scrollbar changes, tied into WidthChange
15099             event
15100           - Improved cursor tracking
15101           - Removed debug output
15102         * TextControl.cs:
15103           - PositionCaret coordinates are now works in absolute space, not 
15104             the canvas
15105           - Improved tracking of document size
15106           - Added events for width and height changes
15107
15108 2005-06-21  Peter Bartok  <pbartok@novell.com>
15109
15110         * Form.cs: Set focus to active control when form is activated
15111         * TextControl.cs: 
15112           - Added word-wrap functionality to RecalculateLine() 
15113           - Added some short function descriptions for VS.Net to aid in
15114             writing dependent controls
15115           - Added Caret property, returning the current coords of the caret
15116           - Added ViewPortWidth and ViewPortHeight properties
15117           - Added Wrap property
15118           - Added CaretMoved event
15119           - Removed some old debug code
15120           - Split() can now create soft splits
15121           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
15122           - Added method to format existing text
15123           - Fixed size/alignment calculations to use viewport
15124           - RecalculateDocument now can handle changing line-numbers while
15125             calculating lines
15126
15127         * TextBox.cs:
15128           - Added some wrap logic, we don't wrap if alignment is not left
15129           - Added casts for scrollbar var, base class switched types to
15130             also support RichTextBoxA
15131           - Implemented handling of scrollbar visibility flags
15132
15133         * TextBoxBase.cs:
15134           - Switched scrollbars type to RichTextBoxScrollBars to support
15135             RichTextBox
15136           - Added tracking of canvas width/height
15137           - Switched scrollbars to be not selectable (to keep focus on text)
15138           - Added central CalculateDocument() method to handle all redraw
15139             requirements
15140           - Added ReadOnly support
15141           - Added WordWrap support
15142           - Fixed handling of Enter key (we now treat it as a DialogKey)
15143           - Fixed caret positioning when h or v scroll is not zero
15144           - Fixed placing/generation of vertical scrollbar
15145           - Added CalculateScrollBars() method to allow updating scrollbar
15146             limits and visibility
15147           - Fixed handling of horizontal scroll
15148           - Added handling of vertical scroll
15149           - Implemented auto-'jump' when caret moves to close to a left or
15150             right border and there is text to be scrolled into view (currently
15151             there's the potential for a stack overflow, until a bug in
15152             scrollbar is fixed)
15153
15154 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
15155         
15156         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
15157
15158 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
15159
15160         * Mime.cs:
15161         - added inodes.
15162         - return application/x-zerosize for files with size zero
15163           (if no extension pattern matches).
15164         - check matches collection for strings too.
15165         - return only the first mime type if the name value
15166           collection has more than one mime type.
15167
15168 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
15169         
15170         * PropertyGrid.cs: Cleaned up some TODOs
15171         * PropertyGridView.cs: Added support for UITypeEditors
15172
15173 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
15174         
15175         * DataGrid.cs: clears cached value
15176
15177 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
15178
15179         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
15180         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
15181         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
15182         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
15183         
15184 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
15185
15186         * ThemeWin32Classic.cs: fixes colour
15187
15188 2005-06-15  Peter Bartok  <pbartok@novell.com>
15189
15190         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
15191         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
15192         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
15193         * Control.cs: Added some MWFCategory and MWFDescription attributes
15194         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
15195
15196 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
15197
15198         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
15199         usage
15200
15201 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
15202
15203         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
15204         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
15205         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
15206         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
15207         * DataGrid.cs: default datagrid settings for Default Styles, fixes
15208         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
15209
15210 2005-06-13  Jackson Harper  <jackson@ximian.com>
15211
15212         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
15213         isn't printed when the user enables dropping. (X11 does accept
15214         drops).
15215         
15216 2005-06-13  Jackson Harper  <jackson@ximian.com>
15217
15218         * TreeView.cs: Remove some TODOS.
15219
15220 2005-06-13  Jackson Harper  <jackson@ximian.com>
15221
15222         * Form.cs: Hook into the mdi framework.
15223         * MdiClient.cs: Use the base control collections add method so
15224         parents get setup correctly. Set the default back colour and dock
15225         style.
15226         * MdiChildContext.cs: New class, this bad actor handles an
15227         instance of an MDI window. Right now there is only basic
15228         support. You can drag, close, and resize windows. Minimize and
15229         Maximize are partially implemented.
15230
15231 2005-06-13  Jackson Harper  <jackson@ximian.com>
15232
15233         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
15234         freaky when both vals are negative. NOTE: There are probably other
15235         places in XplatUIX11 that this needs to be done.
15236
15237 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
15238
15239         * DataGrid.cs: implement missing methods, move KeyboardNavigation
15240         * DataGridColumnStyle.cs: fixes signature
15241
15242 2005-06-12  Jackson Harper  <jackson@ximian.com>
15243
15244         * XplatUIX11.cs: Use sizing cursors similar to the ones on
15245         windows.
15246
15247 2005-06-11  Jackson Harper  <jackson@ximian.com>
15248
15249         * StatusBarPanel.cs: Signature cleanups. Implement
15250         BeginInit/EndInit.
15251
15252 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
15253
15254         * DataGridTextBoxColumn.cs: Honors aligment
15255         * GridColumnStylesCollection.cs: Contains is case unsensitive
15256         * GridTableStylesCollection.cs: several fixes
15257         * DataGridTableStyle.cs: default column creation
15258         * DataGridDrawingLogic.cs: fixes
15259         * CurrencyManager.cs: ListName property
15260         * DataGrid.cs: multiple styles support
15261         * DataGridColumnStyle.cs: fixes
15262         
15263
15264 2005-06-10  Peter Bartok  <pbartok@novell.com>
15265
15266         * Control.cs(Select): Moved SetFocus call to avoid potential
15267           loops if controls change the active control when getting focus
15268         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
15269           the up/down buttons
15270
15271 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
15272
15273         * ImageListConverter.cs: Implemented
15274
15275 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
15276
15277         * MonthCalendar.cs: Wired in NumericUpDown control for year
15278
15279 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
15280
15281         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
15282           DoubleClick events, since they are not meant to be fired.
15283
15284 2005-06-09  Peter Bartok  <pbartok@novell.com>
15285
15286         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
15287           Jonathan's standalone controls into MWF, implemented missing
15288           events, attributes and methods; added xxxAccessible classes
15289         * AccessibleObject.cs: Made fields internal so other classes
15290           can change them if needed
15291
15292 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
15293
15294         * UpDownBase.cs: Complete implementation
15295         * NumericUpDown.cs: Complete implementation
15296         * DomainUpDown.cs: Complete implementation
15297
15298 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
15299
15300         * DataGridTextBoxColumn.cs: drawing fixes
15301         * DataGridCell.cs: fixes ToString method to match MSNet
15302         * DataGridTableStyle.cs: fixes
15303         * DataGridBoolColumn.cs: fixes, drawing
15304         * DataGridDrawingLogic.cs: fixes, new methods
15305         * DataGridTextBox.cs: Keyboard and fixes
15306         * DataGrid.cs:
15307                 - Keyboard navigation
15308                 - Scrolling fixes
15309                 - Row selection (single, multiple, deletion, etc)
15310                 - Lots of fixes
15311         
15312 2005-06-07  Jackson Harper  <jackson@ximian.com>
15313
15314         * ThemeWin32Classic.cs: Clear the background area when drawing
15315         buttons.
15316
15317 2005-06-06  Peter Bartok  <pbartok@novell.com>
15318
15319         * ImageListStreamer.cs: Fixed signature for GetData
15320         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
15321         * ComboBox.cs:
15322           - Added missing ChildAccessibleObject class
15323           - Added missing OnXXXFocus overrides, switched to using those
15324             instead of the event handler
15325         * Control.cs:
15326           - Added Parent property for ControlAccessibleObject
15327           - Fixed signatures
15328           - Fixed attributes
15329           - Added ResetBindings()
15330         * ListBindingConverter.cs: Implemented some methods
15331         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
15332         * ImageList.cs: Implemented basic handle scheme, removed TODOs
15333         * ContainerControl.cs: Fixed signature, now subscribing to the
15334           ControlRemoved event instead of overriding the handler, LAMESPEC
15335         * CurrencyManager.cs: Added missing attribute
15336         * MonthCalendar.cs: Added missing properties
15337
15338 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
15339
15340         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
15341         
15342 2005-06-06  Gaurav Vaish and Ankit Jain
15343
15344         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
15345         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
15346         
15347 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
15348
15349         * Control.cs: fixes CreateParams Width / Height.
15350
15351 2005-06-05  Peter Bartok  <pbartok@novell.com>
15352
15353         * Win32DnD.cs: Removed compilation warnings
15354
15355 2005-06-05  Peter Bartok  <pbartok@novell.com>
15356
15357         * Control.cs (CreateParams): Since we don't know if one of the
15358           properties we use is overridden, lets make sure if we fail accessing
15359           we continue with a backup plan
15360
15361 2005-06-05  Peter Bartok  <pbartok@novell.com>
15362
15363         * Win32DnD.cs:
15364           - Removed debug output
15365           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
15366             struct
15367           - Plugged resource leak
15368         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
15369           MS size
15370
15371 2005-06-05  Peter Bartok  <pbartok@novell.com>
15372
15373         * XplatUIWin32.cs: Removed DnD code
15374         * Win32DnD.cs: Implemented drop source and drop target functionality
15375
15376 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15377
15378         * UpDownBase.cs: remove duplicate addition of event, enable some code
15379         that was commented out.
15380         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
15381         Validate input when a key is pressed. It works fine now for every
15382         combination of Hexadecimal. Only missing some drawing love when sharing
15383         space with other controls.
15384
15385 2005-06-04  Peter Bartok  <pbartok@novell.com>
15386
15387         * Control.cs:
15388           - We need to pass a window for DragDrop, so enable callback events
15389           - Added DnD callback events when being a DragSource
15390         * XplatUI.cs (StartDrag): Added window handle argument
15391         * XplatUIDriver.cs (StartDrag): Added window handle argument
15392         * QueryContinueDragEventArgs: Made fields internally accessible so
15393           drivers can set them
15394         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
15395           can set them
15396
15397 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
15398
15399         * DataGridTextBoxColumn.cs: column text editing
15400         * DataGridTableStyle.cs: Respect columns styles created by the user
15401         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
15402         * DataGridBoolColumn.cs: bool column editing
15403         * DataGrid.cs: fixes to scrolling, properties, etc
15404         * DataGridTextBox.cs: handle keyboard
15405         * DataGridColumnStyle.cs: fixes
15406
15407 2005-06-02  Jackson Harper  <jackson@ximian.com>
15408
15409         * ImageListStreamer.cs: Somewhat broken implementation of
15410         GetObjectData. The RLE needs some work to match MS properly.
15411
15412 2005-06-02  Jackson Harper  <jackson@ximian.com>
15413
15414         * X11Dnd.cs: Attempting to keep at least one file in MWF
15415         monostyled.
15416
15417 2005-06-02  Peter Bartok  <pbartok@novell.com>
15418
15419         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
15420           that way
15421
15422 2005-06-02  Peter Bartok  <pbartok@novell.com>
15423
15424         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
15425         * XplatUI.cs: Added DoDragDrop() method
15426         * XplatUIDriver.cs: Added DoDragDrop() method
15427
15428 2005-06-02  Jackson Harper  <jackson@ximian.com>
15429
15430         * Splitter.cs: Implement BorderStyle.
15431
15432 2005-06-02  Jackson Harper  <jackson@ximian.com>
15433
15434         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
15435         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
15436         X11 using XDND.
15437
15438 2005-06-02  Peter Bartok  <pbartok@novell.com>
15439
15440         * DataObject.cs:
15441           - Added Data setter
15442           - Fixed broken insertion code for SetData, now also
15443             overwrites any existing entry of the same format name
15444         * Hwnd.cs: Added list of pointers that automatically gets
15445           freed when the window is disposed
15446         * XplatUI.cs: Call driver initialization method when loading
15447           a driver
15448         * Control.cs:
15449           - OnDragLeave takes EventArgs, not DragEventArgs
15450           - Added setting of WS_EX_ACCEPTFILES style when dropping is
15451             supported
15452           - Forces style update when drop state changes
15453         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
15454           not perfect since we cannot (yet) call the IDataObject.GetData()
15455           method, we keep getting 0x80004005 error, dunno why)
15456
15457 2005-06-02  Peter Bartok  <pbartok@novell.com>
15458
15459         * DragEventArgs.cs: Make fields internal so we can cache the
15460           object and re-set the fields from XplatUI
15461
15462 2005-06-02  Jackson Harper  <jackson@ximian.com>
15463
15464         * Control.cs: Add some internal methods so the DnD subsystem can
15465         raise DnD events. Also call into the driver when AllowDrop is set.
15466         * XplatUI.cs:
15467         * XplatUIDriver.cs: New method for setting whether or not a window
15468         is allowed to accept drag and drop messages.
15469                 
15470 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
15471         
15472         * ScrollBar.cs: Make sure that values sent in Scroll events
15473         are always between Maximum and Minimum.
15474
15475 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
15476
15477         * Menu.cs: Call MenuChanged when menuitem visibility has been
15478         changed.
15479         * MenuItem.cs: Rebuild menu when item is (not) visible.
15480         * MainMenu.cs: MainMenu has special MenuChanged.
15481         * Theme.cs: Caption and FrameBorderSize are not fixed.
15482         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
15483         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
15484         * XplatUIX11.cs,
15485         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
15486         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
15487
15488 2005-05-30  Jackson Harper  <jackson@ximian.com>
15489
15490         * DataFormat.cs: We can't statically initialize this stuff because
15491         it calls into the xplatui and could create a loop. So we lazy init
15492         it.
15493
15494 2005-05-28  Jackson Harper  <jackson@ximian.com>
15495
15496         * Control.cs: Proper implementation of Product(Name/Version).
15497
15498 2005-05-27  Jackson Harper  <jackson@ximian.com>
15499
15500         * DataObject.cs: Dont crash if no data is found.
15501
15502 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
15503         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
15504                 as per status page, guessing it should be set to true
15505
15506 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
15507
15508         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
15509         * DataGridTableStyle.cs: set proper formatting text, def header text
15510         * ThemeWin32Classic.cs: new themable paramaters
15511         * DataGridBoolColumn.cs: paint check box, get data, fixes
15512         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
15513         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
15514         * DataGridColumnStyle.cs: fixes
15515         * Theme.cs: new themable paramaters
15516                 
15517 2005-05-26  Peter Bartok  <pbartok@novell.com>
15518
15519         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
15520
15521 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
15522         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
15523
15524 2005-05-24  Peter Bartok  <pbartok@novell.com>
15525
15526         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
15527           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
15528           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
15529           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
15530           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
15531           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
15532           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
15533           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
15534           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
15535           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
15536           missing attributes, etc
15537         * DataGridPreferredColumnWidthTypeConverter.cs: Added
15538
15539 2005-05-24  Peter Bartok  <pbartok@novell.com>
15540
15541         * Help.cs: Added, implemented trivial functions, throws up MessageBox
15542           when user tries to get help
15543         * DataObject.cs, DataFormats.cs, LinkArea.cs,
15544           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
15545           to suppress warnings
15546         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
15547           avoid unreachable code warning
15548
15549 2005-05-20  Peter Bartok  <pbartok@novell.com>
15550
15551         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
15552
15553 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
15554
15555         * DataGridTextBoxColumn.cs: Basic painting methods
15556         * DataGridTableStyle.cs: Set table style in the column
15557         * ThemeWin32Classic.cs: Use Theme for colors
15558         * DataGridDrawingLogic.cs: Implement more drawing
15559         * DataGrid.cs: drawing, theming, enhacements, fixes
15560         * DataGridColumnStyle.cs: fixes, drawing
15561         * Theme.cs: theming for Datagrid
15562
15563 2005-05-20  Peter Bartok  <pbartok@novell.com>
15564
15565         * Cursor.cs: Implemented GetObjectData() method
15566
15567 2005-05-20  Peter Bartok  <pbartok@novell.com>
15568
15569         * Cursors.cs: Added setting of cursor name
15570         * Cursor.cs:
15571           - Implemented constructors
15572           - Implemented Draw and DrawStretched
15573           - Implemented Current property
15574           - Implemented == and != operators
15575           - Implemented Dispose()
15576           - Implemented ToString
15577           - Added missing attributes
15578         * XplatUIX11.cs:
15579           - Added missing reset for OverrideCursor when DoEvents is called
15580           - Fixed creation of cursor, logic was wrong
15581         * XplatUIWin32.cs:
15582           - Added missing reset for OverrideCursor when DoEvents is called
15583           - Fixed creation of cursor, bit arrays were swapped
15584         * Clipboard.cs: Removed obsolete MonoTODO attribute
15585
15586 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
15587
15588         * ComboBox.cs: fixes OnSelectedItemChanged
15589         * ControlBindingsCollection.cs: fixes item range check
15590
15591 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
15592
15593         * UpDownBase.cs:
15594                 - Calc preferred height properly
15595                 - Implement missing properties
15596                 
15597         * NumericUpDown.cs: Implement missing events
15598
15599 2005-05-19  Jackson Harper  <jackson@ximian.com>
15600
15601         * TabControl.cs: New method that resizes the tab pages before
15602         redrawing them. This as needed as the control is double buffered
15603         and sizing will not be recalculated unless ResizeTabPages is
15604         called.
15605         * TabPage.cs: Set base.Text instead of Text in the constructor so
15606         that UpdateOwner does not get called. Use the new Redraw method of
15607         TabControl instead of Refresh so the sizing is recalculated.
15608         * ThemeWin32Classic.cs: Draw the text for button tabs.
15609
15610 2005-05-19  Jackson Harper  <jackson@ximian.com>
15611
15612         * Control.cs: Paint control background images. Fix typo where
15613         PaintControlBackground was not getting called correctly.
15614
15615 2005-05-19  Peter Bartok  <pbartok@novell.com>
15616
15617         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
15618           I can investigate, apparently I broke FileDialog
15619
15620 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
15621
15622         * AxHost.cs: Some simple properties.
15623         * Control.cs: window must be accessible after ctor.
15624         * Form.cs: Added TransparencyKey property.
15625         * TextBoxBase.cs: Implemented Clear. Text property can be null.
15626         * XplatUIWin32.cs: SetBorderStyle implemented.
15627
15628 2005-05-18  Peter Bartok  <pbartok@novell.com>
15629
15630         * DataObject.cs: Entries are not global but particular to the
15631           DataObject, now it behaves that way
15632         * XplatUIWin32.cs: Implemented Clipboard methods
15633         * Clipboard.cs: Implemented
15634         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
15635         * XplatUIOSX.cs: Updated to final clipboard prototypes
15636         * XplatUIX11.cs: Implemented Clipboard methods
15637         * XplatUIDriver.cs: Updated to final clipboard prototypes
15638         * XplatUIStructs.cs:
15639           - Added BITMAPINFOHEADER struct
15640           - Added ClipboardFormats enum
15641         * X11Structs.cs:
15642           - Added ClipboardStruct
15643           - Added Atom enum items for clipboard types
15644           - Fixed atom types for Selection event structures
15645         * DataFormats.cs:
15646           - Added internal properties and methods for drivers to enumerate
15647             all known formats
15648           - Switched initialization method to allow drivers to assign their
15649             own IDs even for the MS predefined clipboard IDs
15650         * XplatUI.cs: Updated to final clipboard interface
15651
15652 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
15653         * PropertyGridView.cs: Fixed compiler warnings.
15654
15655 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
15656         * PropertyGrid.cs: Added some event calls
15657         * PropertyGridView.cs: Change drawing code to use double buffering
15658         * PropertyGridTextBox.cs: Changed Text property name
15659         * GridItem.cs: Added Bounds property.
15660         * GridEntry.cs: Added Bounds property.
15661
15662 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
15663
15664         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
15665         since GetType() may not return the correct type if the object is
15666         a remoting proxy.
15667
15668 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
15669
15670         * TreeNodeCollection.cs: fixes get/set item ranges
15671         
15672 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
15673
15674         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
15675                 
15676 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
15677
15678         * ComboBox.cs: Fix item range comparation
15679         * ListView.cs: Fix item range comparation
15680
15681 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
15682
15683         * FontDialog.cs:
15684           - Clear example panel when OnPaint is called
15685           - Better solution for displaying the example panel text
15686           - Select default indexes in the ListBoxes
15687
15688 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
15689
15690         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
15691
15692 2005-05-11  Peter Bartok  <pbartok@novell.com>
15693
15694         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
15695         * SelectionRangeConverter.cs: Implemented
15696         * PropertyGrid.cs: Fixed attribute value
15697         * Control.cs:
15698           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
15699           - Added Sebastien Pouliot's CAS Stack Propagation fixes
15700         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
15701           that's common to all drivers. First methods to go there are
15702           Sebastien Pouliot's CAS Stack Propagation helper methods
15703         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
15704           Sebastien Pouliot for CAS Stack Propagation
15705
15706 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
15707
15708         * OSXStructs.cs:
15709           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
15710
15711 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
15712
15713         * DataGridTextBoxColumn.cs: fixed some members
15714         * GridColumnStylesCollection.cs: indexed column is case insensitive
15715         * DataGridTableStyle.cs: fixes
15716         * ThemeWin32Classic.cs: add new theme parameter
15717         * Theme.cs: add new theme parameter
15718         * DataGridDrawingLogic.cs: Datagrid's drawing logic
15719         * DataGrid.cs: fixes, new internal properties, etc.
15720         * DataGridColumnStyle.cs: allows to set grid value
15721         *
15722
15723 2005-05-10  Peter Bartok  <pbartok@novell.com>
15724
15725         * AccessibleObject.cs:
15726           - Removed MonoTODO attribute on help, method is correct
15727           - Fixed Bounds property
15728         * AxHost.cs: Moved MonoTODO
15729         * ButtonBase.cs: Now setting AccessibleObject properties
15730         * RadioButton.cs: Setting proper AccessibleObject role
15731         * CheckBox.cs: Setting proper AccessibleObject role
15732         * ControlBindingsCollection.cs: Added properties, methods and attributes
15733         * DataFormats.cs: Fixed awkward internal API, and changed to enable
15734           userdefined DataFormats.Format items as well
15735         * ListControl.cs: Removed data_member from the public eye
15736         * OpenFileDialog.cs:
15737           - Made class sealed
15738           - Added missing attributes
15739         * SaveFileDialog.cs: Added missing attributes
15740         * ImageListStreamer.cs: Fixed code that caused warnings
15741         * LinkLabel.cs: Removed unreachable code
15742         * TreeView.cs: Fixed code that caused warnings
15743         * PropertyGridView.cs: Fixed code that caused warnings
15744         * GridColumnStylesCollection.cs: Added missing attributes
15745         * GridTableStylesCollection: Added missing attribute
15746         * PropertyManager: Added .ctor
15747         * SecurityIDType: Added
15748         * DataObject.cs: Implemented class
15749         * LinkArea.cs: Added missing attribute
15750
15751 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
15752
15753         * RadioButton.cs: call base method to allow to fire OnClick event
15754         * UpDownBase.cs: OnMouseUp call base method
15755         * CheckedListBox.cs: call base method before returning
15756         * TrackBar.cs: call base method before returning
15757         
15758
15759 2005-05-10  Peter Bartok  <pbartok@novell.com>
15760
15761         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
15762           for messages
15763
15764 2005-05-10  Peter Bartok  <pbartok@novell.com>
15765
15766         * DataFormats.cs: Implemented
15767         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
15768           XplatUIX11.cs: Added Clipboard APIs
15769         * XplatUIWin32.cs: Implemented Clipboard APIs
15770         * FolderBrowserDialog.cs: Added missing event, attributes
15771
15772 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
15773
15774         * CheckBox.cs: call base method to allow to fire OnClick event
15775
15776 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
15777
15778         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
15779
15780 2005-05-06  Peter Bartok  <pbartok@novell.com>
15781
15782         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
15783         * Screen.cs: Implemented
15784         * HelpNavigator.cs: Added
15785         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
15786           property
15787         * HelpProvider.cs: Implemented all we can do until we have a CHM
15788           help library (which means that "What's This" does work now)
15789
15790 2005-05-06  Jackson Harper  <jackson@ximian.com>
15791
15792         * XplatUIX11.cs: Fix waking up the main loop.
15793                 
15794 2005-05-05  Peter Bartok  <pbartok@novell.com>
15795
15796         * XplatUI.cs: Updated revision
15797         * Form.cs: Removed enless loop
15798         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
15799         * Label.cs (OnPaint): Added call to base.OnPaint()
15800         * ToolTip.cs: Made ToolTipWindow reusable for other controls
15801         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
15802         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
15803         * AxHost.cs: Added
15804         * ButtonBase.cs: Moved base.OnPaint() call to end of method
15805         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
15806           to ToolTip.ToolTipWindow for drawing and size methods; this allows
15807           reuse of ToolTipWindow by other controls
15808         * SizeGrip.cs: Moved base.OnPaint() call to end of method
15809         * XplatUIX11.cs: Now clipping drawing area (experimental)
15810         * PictureBox.cs: Moved base.OnPaint() call to end of method
15811         * Theme.cs: Fixed ToolTip abstracts to match new format
15812         * ErrorProvider.cs: Implemented
15813
15814 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
15815
15816         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
15817         * LinkLabel.cs:
15818                 - Adds cursors
15819                 - Handles focus
15820                 - Implements LinkBehavior
15821                 - Fixes many issues
15822
15823 2005-05-03  Jackson Harper  <jackson@ximian.com>
15824
15825         * ListView.cs: Calculate the scrollbar positioning on resize and
15826         paint, so they get put in the correct place.
15827
15828 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
15829
15830         * ColorDialogs.cs: The small color panels are now handled by
15831           SmallColorControl. This fixes drawing of the focus rectangle
15832           and adds a 3D border.
15833
15834 2005-05-03  Peter Bartok  <pbartok@novell.com>
15835
15836         * Control.cs: Modified version of Jonathan Chamber's fix for
15837           double-buffering
15838
15839 2005-05-03  Jackson Harper  <jackson@ximian.com>
15840
15841         * ListView.cs: Remove redraw variable. Control now handles whether
15842         or not a redraw needs to be done, and will only raise the paint
15843         event if redrawing is needed.
15844
15845 2005-05-03  Jackson Harper  <jackson@ximian.com>
15846
15847         * Splitter.cs: No decorations for the splitter form. Cache the
15848         hatch brush.
15849
15850 2005-05-03  Jackson Harper  <jackson@ximian.com>
15851
15852         * TreeView.cs: Use dashed lines to connect nodes. Use the
15853         ControlPaint method for drawing the focus rect instead of doing
15854         that in treeview.
15855
15856 2005-05-02  Peter Bartok  <pbartok@novell.com>
15857
15858         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
15859
15860 2005-04-29  Jackson Harper  <jackson@ximian.com>
15861
15862         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
15863         entire image buffer. Just clear the clipping rectangle.
15864
15865 2005-04-29  Jackson Harper  <jackson@ximian.com>
15866
15867         * ThemeWin32Classic.cs: Don't draw list view items that are
15868         outside the clipping rectangle.
15869
15870 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
15871
15872         * ListBox.cs: added horizontal item scroll
15873
15874 2005-04-29  Jackson Harper  <jackson@ximian.com>
15875
15876         * ThemeWin32Classic.cs: Remove some old debug code that was
15877         causing flicker with the new double buffering code.
15878
15879 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
15880
15881         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
15882         behave like combobox and comboboxlist (still not sure if this is
15883         correct though).
15884
15885 2005-04-28  Jackson Harper  <jackson@ximian.com>
15886
15887         * ThemeWin32Classic.cs: Don't fill the middle of progress
15888         bars. This fills areas outside of the clip bounds that don't need
15889         to be filled.
15890
15891 2005-04-28  Jackson Harper  <jackson@ximian.com>
15892
15893         * Control.cs: Don't expose functionality to touch the image buffers.
15894         * ProgressBar.cs:
15895         * ListView.cs: We do not need to (and no longer can) manipulate
15896         the image buffers directly. All of this is handled by Control.
15897
15898 2005-04-28  Peter Bartok  <pbartok@novell.com>
15899
15900         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15901           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
15902           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
15903
15904 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15905
15906         * Combobox:
15907                 - Adjust control's height for non-simple comboboxes (bug fix)
15908                 - Remove dead code
15909         * MenuAPI.cs: remove unused var
15910         * ScrollBar.cs: remove unsed var
15911                  
15912         * ListBox.cs: unselect items when clearing
15913
15914 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
15915
15916         * ListControl.cs: honors OnPositionChanged and default Selected Item
15917         * ListBox.cs: unselect items when clearing
15918
15919 2005-04-27  Jackson Harper  <jackson@ximian.com>
15920
15921         * X11Keyboard.cs: Initialize a default keyboard and give a warning
15922         if a "correct" keyboard is not found. This will make us not crash,
15923         but might give some users bad keyboard layouts...seems to be the
15924         same thing rewind does.
15925
15926 2005-04-27  Jackson Harper  <jackson@ximian.com>
15927
15928         * BindingManagerBase.cs: Attach the current/position changed
15929         handlers to their respective events.
15930
15931 2005-04-27  Jackson Harper  <jackson@ximian.com>
15932
15933         * Control.cs: Make sure that the first WM_PAINT does a full draw,
15934         not just a blit.
15935         * ThemeWin32Classic.cs: Don't fill the background for picture
15936         boxes. This could overright user drawing.
15937         * ComboBox.cs: Just fill the clipping rect not the entire client
15938         rect when drawing the background. This prevents pieces of the
15939         image buffer from getting overwritten and is theoretically faster.
15940
15941 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
15942
15943         * ComboBox.cs: Databinding support fixes, fire missing events
15944         * ListControl.cs: implement missing methods and properties, fixes
15945         * ThemeWin32Classic.cs: Databiding support on Drawing
15946         * CheckedListBox.cs: Databinding support fixes, fire missing events
15947         * ListBox.cs: Databinding support fixes, fire missing events
15948         
15949 2005-04-25  Peter Bartok  <pbartok@novell.com>
15950
15951         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
15952
15953 2005-04-25  Jackson Harper  <jackson@ximian.com>
15954
15955         * TreeView.cs: Use the horizontal scrollbars height not width when
15956         determining how much of the client area is available.
15957
15958 2005-04-25  Jackson Harper  <jackson@ximian.com>
15959
15960         * Control.cs: Double buffering is handled differently now. As per
15961         the spec, the extra buffer is created in the WM_PAINT message and
15962         passed down to the control's drawing code.
15963         * GroupBox.cs:
15964         * Label.cs:
15965         * CheckBox.cs:
15966         * ProgressBar.cs:
15967         * RadioButton.cs:
15968         * ColorDialog.cs:
15969         * ComboBox.cs:
15970         * PropertyGridView.cs:
15971         * UpDownBase.cs:
15972         * MessageBox.cs:
15973         * MenuAPI.cs:
15974         * ListView.cs:
15975         * ButtonBase.cs:
15976         * SizeGrip.cs:
15977         * ScrollBar.cs:
15978         * ListBox.cs:
15979         * TrackBar.cs:
15980         * ToolBar.cs:
15981         * PictureBox.cs:
15982         * DateTimePicker.cs:
15983         * StatusBar.cs:
15984         * TreeView.cs: Update to new double buffering system.
15985         * MonthCalendar.cs: Uncomment block, as Capture is now
15986         working. Update to new double buffering
15987         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
15988         * PaintEventArgs.cs: New internal method allows us to set the
15989         graphics object. This is used for double buffering.
15990         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
15991         rectangle. The internal paint_area var has been removed from
15992         StatusBar. The clipping rect should be used instead.
15993         * Theme.cs: Give the PictureBox drawing method a clipping rect.
15994         * TabPage.cs: The RefreshTabs method was removed, so just call the
15995         tab controls Refresh method now.
15996         * TabControl.cs: Update to new double buffering. Make sure the
15997         handle is created before sizing the tab pages, otherwise we will
15998         get stuck in a loop.
15999
16000 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
16001
16002         * LinkLabel.cs: Fix typo, bug #74719; patch
16003           from Borja Sanchez Zamorano
16004
16005 2005-04-22  Jackson Harper  <jackson@ximian.com>
16006
16007         * TreeNode.cs: Implement Handle stuff.
16008         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
16009
16010 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
16011
16012         * DataGridTextBoxColumn.cs: call base constructors, fixes
16013         * GridColumnStylesCollection.cs: missing events, methods, and functionality
16014         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
16015         * DataGridTableStyle.cs: implements create default column styles
16016         * DataGridBoolColumn.cs: which types can handle
16017         * DataGrid.cs: missing methods, fixes, new functionality
16018         * DataGridColumnStyle.cs: fixes
16019
16020 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
16021         * FolderBrowserDialog.cs:
16022         - Use a thread to fill the TreeView
16023         - Adjusted some sizes
16024
16025 2005-04-19  Peter Bartok  <pbartok@novell.com>
16026
16027         * LinkLabel.cs: (Re-)create the pieces when setting the Text
16028           property. Fixes #74360.
16029
16030 2005-04-19  Jackson Harper  <jackson@ximian.com>
16031
16032         * XEventQueue.cs: Lock when getting the lockqueue size.
16033         * PictureBox.cs: Call base OnPaint
16034         
16035 2005-04-19  Peter Bartok  <pbartok@novell.com>
16036
16037         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
16038           messages were no longer being processed (this broke BeginInvoke)
16039
16040           
16041 2005-04-18  Jackson Harper  <jackson@ximian.com>
16042
16043         * TreeView.cs: buglet that caused node images to get drawn
16044         regardless of whether or not they were in the clipping rectangle.
16045
16046 2005-04-18  Jackson Harper  <jackson@ximian.com>
16047
16048         * CurrencyManager.cs: There are four rules for GetItemProperties:
16049         - If the type is an array use the element type of the array
16050         - If the type is a typed list, use the type
16051         - If the list contains an Item property that is not an object, use
16052         that property
16053         - use the first element of the list if there are any elements in
16054         the list.
16055         
16056 2005-04-17  Jackson Harper  <jackson@ximian.oom>
16057
16058         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
16059         click. This handles offsets for scrolling properly and reduces
16060         memory. Also fixed GetNode to not offset now that TopNode works
16061         properly.
16062         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
16063         
16064 2005-04-17  Jackson Harper  <jackson@ximian.com>
16065
16066         * CursorConverter.cs: Initial implementation.
16067
16068 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
16069
16070         * ListControl.cs: work towards complex data binding support on ListControl
16071         * CurrencyManager.cs: work towards complex data binding support on ListControl
16072         * ListBox.cs: work towards complex data binding support on ListControl
16073
16074
16075 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
16076
16077         * GridTableStylesCollection.cs: fixes name and constructor
16078         * DataGridTableStyle.cs: fixes
16079         * DataGridBoolColumn.cs: fixes names and constructors
16080         * DataGrid.cs: define methods and properties. Some init implementations
16081         * DataGridCell.cs: define methods and properties. Some init implementations
16082         * GridTablesFactory.cs: Define methods and properties
16083
16084 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
16085
16086         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
16087         graphics port changes.  We still want the coordinates in global screen
16088         coordinates.
16089
16090 2005-04-14  Jackson Harper  <jackson@ximian.com>
16091
16092         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
16093         check plus minus or checkbox clicks unless those features are enabled.
16094
16095 2005-04-14  Jackson Harper  <jackson@ximian.com>
16096
16097         * TreeView.cs: Add methods for setting the top and bottom visible
16098         nodes. TreeNode::EnsureVisible uses these methods.
16099         * TreeNode.cs: Implement EnsureVisible
16100
16101 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
16102
16103         * Form.cs: Pospone menu assignation if the window has not been created yet
16104         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
16105         size and position
16106
16107 2005-04-12  Jackson Harper  <jackson@ximian.com>
16108
16109         * TreeView.cs: Set the TopNode properly when scrolling
16110         occurs. This has the added benifit of reducing the amount of
16111         walking that needs to be done when drawing. Also removed an old
16112         misleading TODO.
16113         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
16114         
16115 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
16116
16117         * Timer.cs: fixes interval setting when the timer is already enabled
16118         
16119 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
16120
16121         * FolderBrowserDialog.cs: First approach
16122
16123 2005-04-09  Peter Bartok  <pbartok@novell.com>
16124
16125         * FolderBrowserDialog: Added
16126
16127 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
16128
16129         * LinkLabel.cs: move drawing code into the theme
16130         * ThemeWin32Classic.cs: drawing code and painting background bugfix
16131         * Theme.cs: define DrawLinkLabel method
16132
16133 2005-04-05  Jackson Harper  <jackson@ximian.com>
16134
16135         * BindingContext.cs: Use weak references so these bad actors don't
16136         stay alive longer then they need to.
16137
16138 2005-04-05  Jackson Harper  <jackson@ximian.com>
16139
16140         * ListControl.cs: Basic implementation of complex databinding.
16141         * ComboBox.cs:
16142         * ListBox.cs: Add calls to ListControl databinding methods.
16143
16144 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
16145
16146         * FileDialog.cs:
16147           - Don't change PopupButtonState to Normal when the
16148             PopupButton gets pressed several times.
16149           - Renamed ButtonPanel to PopupButtonPanel
16150
16151 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
16152
16153         * ColorDialog.cs: Use cached objects instead of creating them
16154         * LinkLabel.cs: Use cached objects instead of creating them
16155         * Splitter.cs: Use cached objects instead of creating them
16156         * FontDialog.cs: Use cached objects instead of creating them
16157         * PropertyGridView.cs: Use cached objects instead of creating them
16158         * MessageBox.cs: Use cached objects instead of creating them
16159         * FileDialog.cs: Use cached objects instead of creating them
16160         * ThemeWin32Classic.cs: Use cached objects instead of creating them
16161         * TreeView.cs: Use cached objects instead of creating them
16162         
16163 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
16164
16165         * Control.cs: use Equals to compare the font since no == op
16166         * ScrollBar.cs: use Equals to compare the font since no == op
16167
16168 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
16169
16170         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
16171
16172 2005-04-01  Jackson Harper  <jackson@ximian.com>
16173
16174         * Binding.cs: Implement IsBinding.
16175         * BindingManagerBase.cs:
16176         * PropertyManager.cs:
16177         * CurrencyManager.cs: Add IsSuspended property.
16178
16179 2005-04-01  Jackson Harper  <jackson@ximian.com>
16180
16181         * Binding.cs: Had some IsAssignableFrom calls backwards.
16182
16183 2005-04-01  Jackson Harper  <jackson@ximian.com>
16184
16185         * Binding.cs: Handle null data members when pulling data.
16186         * PropertyManager.cs: Handle the data member being a property that
16187         does not exist.
16188
16189 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
16190
16191         * DataGridTextBoxColumn.cs: fixes signature
16192         * DataGrid.cs: calls right constructor
16193
16194 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
16195
16196         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
16197         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
16198         * GridTableStylesCollection.cs: implements GridTableStylesCollection
16199         * DataGridTableStyle.cs: implements DataGridTableStyle
16200         * DataGridBoolColumn.cs: implements DataGridBoolColumn
16201         * DataGridTextBox.cs: implements DataGridTextBox
16202         * DataGridColumnStyle.cs: implements DataGridColumnStyle
16203
16204 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
16205
16206         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
16207
16208 2005-03-29  Peter Bartok  <pbartok@novell.com>
16209
16210         * Application.cs:
16211           - Properly implemented CompanyName property
16212           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
16213             returns a path that includes CompanyName, ProductName and
16214             Version (fixes bug #70330)
16215
16216 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
16217
16218         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
16219           fixes bug #72588.
16220
16221 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
16222
16223         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
16224         
16225           - Added ReadOnly CheckBox
16226           - Further refactoring: moved some code from Open-/SaveFileDialog
16227             to FileDialog
16228
16229 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
16230
16231         * OpenFileDialog.cs: Fixed CheckFileExists
16232         * FileDialog.cs:
16233           Moved FileView and DirComboBox outside FileDialog class.
16234           They can now be used outside FileDialog
16235
16236 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
16237
16238         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
16239         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
16240
16241 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
16242
16243         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
16244           - Added missing CreatePrompt property in SaveDialog
16245           - Overall SaveDialog handling should be better now
16246           - Added non standard ShowHiddenFiles property
16247           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
16248           - Added InitialDirectory and RestoreDirectory support
16249
16250 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
16251
16252         * FileDialog.cs: Made dirComboBox usable
16253
16254 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
16255
16256         * FileDialog.cs: Added Filter support (case sensitiv)
16257
16258 2005-03-24  Jackson Harper  <jackson@ximian.com>
16259
16260         * TabControl.cs: Need a couple more pixels for the lines.
16261
16262 2005-03-23  Jackson Harper  <jackson@ximian.com>
16263
16264         * TabControl.cs: Give the tab page focus when it is selected.
16265
16266 2005-03-23  Jackson Harper  <jackson@ximian.com>
16267
16268         * TabControl.cs: Account for the drawing of tabs borders when
16269         invalidating. If the slider was clicked dont do click detection on
16270         the tabs.
16271
16272 2005-03-23  Jackson Harper  <jackson@ximian.com>
16273
16274         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
16275
16276 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
16277
16278         * CategoryGridEntry.cs: Added
16279         * GridItem.cs: Added helper properties
16280         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
16281         * GridEntry.cs: Updated code for collection
16282         * PropertyGrid.cs: Cleaned up some formatting
16283         * PropertyGridView.cs: Added drop down functionality for enums.
16284         * GridItemCollection.cs: Added enumerator logic
16285         * PropertyGridEntry.cs: Added
16286
16287 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
16288
16289         * FileDialog.cs:
16290           - Removed unnecessary commented code
16291           - Fixed handling for entering the filename manually in the combobox
16292
16293 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
16294
16295         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
16296
16297 2005-03-18  Peter Bartok  <pbartok@novell.com>
16298
16299         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
16300           them being touching the border
16301
16302 2005-03-18  Peter Bartok  <pbartok@novell.com>
16303
16304         * TextControl.cs: Quick hack to center text better
16305
16306 2005-03-18  Peter Bartok  <pbartok@novell.com>
16307
16308         * ControlPaint.cs:
16309           - Don't throw NotImplemented exceptions, just print a notice once
16310             instead (requested by Miguel). This makes running existing SWF
16311             apps a bit easier
16312         * Control.cs:
16313           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
16314           - Added context menu trigger on right click
16315         * Panel.cs: Trigger invalidate on resize
16316         * StatusBar.cs:
16317           - Removed old double-buffer drawing
16318           - Added ResizeRedraw style to force proper update of statusbar
16319         * ListView.cs:
16320           - Removed debug output
16321         * ThemeWin32Classic.cs:
16322           - Fixed drawing of status bar, now draws Text property if there
16323             are no defined panels
16324
16325 2005-03-18  Jackson Harper  <jackson@ximian.com>
16326
16327         * ImageList.cs: When the image stream is set pull all the images
16328         from it.
16329         * ImageListStreamer.cs: Implement reading image list streams.
16330
16331 2005-03-18  Peter Bartok  <pbartok@novell.com>
16332
16333         * ThemeWin32Classic.cs (DrawPictureBox):
16334           - Fixed calculations for centered drawing
16335           - Fixed drawing for normal mode, not scaling the image on normal
16336
16337 2005-03-18  Peter Bartok  <pbartok@novell.com>
16338
16339         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
16340           textbox
16341         * FileDialog.cs:
16342           - Made Open/Save button the accept button for FileDialog
16343           - Tied the cancel button to the IButtonControl cancel button
16344           - Save/Open now properly builds the pathname
16345           - Now handles user-entered text
16346           - Preventing crash on right-click if no item is selected
16347           - Fixed Text property, now uses contents of textbox
16348           - Fixed SelectedText property, now just returns the text part that
16349             is selected in the text box
16350
16351 2005-03-18  Jackson Harper  <jackson@ximian.com>
16352
16353         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
16354         rect, make sure to de-adjust the interior rect after drawing the
16355         tab text.
16356
16357 2005-03-18  Peter Bartok  <pbartok@novell.com>
16358
16359         * MenuAPI.cs: Remove menu *before* executing selected action to
16360           prevent the menu from 'hanging around'
16361           
16362 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
16363
16364         * XplatUIOSX.cs: Implemented WorkingArea property
16365
16366 2005-03-17  Peter Bartok  <pbartok@novell.com>
16367
16368         * XplatUIX11.cs: Fixed menu coord calculations
16369         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
16370           for calculating offsets
16371
16372 2005-03-17  Peter Bartok  <pbartok@novell.com>
16373
16374         * Hwnd.cs: Do not consider menu presence for default client
16375           rectangle location/size
16376         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
16377           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
16378           translation functions
16379         * FileDialog.cs: Fixed (what I presume is a) typo
16380
16381 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
16382
16383         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
16384           X access (avoids X-Async errors)
16385
16386 2005-03-16  Jackson Harper  <jackson@ximian.com>
16387
16388         * TabControl.cs: Raise the SelectedIndexChanged event.
16389
16390 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
16391
16392         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
16393           - Removed vertical ToolBar and replaced it with a custom panel
16394             (desktop and home button already work)
16395           - Added Help button (some controls get resized or relocated then)
16396           - Draw correct text depending on Open or Save.
16397           - Fixed some typos...
16398
16399 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
16400
16401         * ScrollBar.cs:
16402           - Only change Maximum and Minimum when need it (bug fix)
16403
16404 2005-03-15  Peter Bartok  <pbartok@novell.com>
16405
16406         * Form.cs: Use Handle for icon, to trigger creation if
16407           the window does not yet exist
16408         * Control.cs:
16409           - CanSelect: Slight performance improvement
16410           - Focus(): Preventing possible recursion
16411           - Invalidate(): Removed ControlStyle based clear flag setting
16412           - WM_PAINT: fixed logic for calling OnPaintBackground
16413           - WM_ERASEBKGND: Fixed logic, added call to new driver method
16414             EraseWindowBackground if the control doesn't paint background
16415         * XplatUIWin32.cs:
16416           - Moved EraseWindowBackground() method to internal methods
16417           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
16418             is sent via SendMessage on BeginPaint call on Win32
16419         * XplatUIX11.cs:
16420           - Added EraseWindowBackground() method
16421           - No longer sends WM_ERASEBKGND on .Expose, but on call to
16422             PaintEventStart, which more closely matches Win32 behaviour
16423           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
16424           - Fixed SetFocus() to properly deal with client and whole windows
16425         * Hwnd.cs: Added ErasePending property
16426         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
16427         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
16428
16429 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
16430
16431         * XplatUIOSX.cs:
16432           - Fix hard loop when timers exist.
16433           - Fix bugs with middle and right click for 3 button mice.
16434
16435 2005-03-11  Peter Bartok  <pbartok@novell.com>
16436
16437         * XplatUIX11.cs:
16438           - get_WorkingArea: Need to call X directly, GetWindowPos only
16439             returns cached data now
16440           - Added sanity check to GetWindowPos hwnd usage
16441
16442 2005-03-11  Jackson Harper  <jackson@ximian.com>
16443
16444         * BindingManagerBase.cs: This method isn't used anymore as
16445         PullData now updates the data in the control.
16446
16447 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
16448
16449         * Form.cs: fixes menu drawing on X11
16450         * MenuAPI.cs:  fixes menu drawing on X11
16451
16452 2005-03-11  Peter Bartok  <pbartok@novell.com>
16453
16454         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
16455           from Jonathan Gilbert; should fix bug #73606
16456         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
16457           in Screen coordinates. Thanks, Jordi.
16458         * Form.cs: Added missing attribute
16459
16460 2005-03-11  Peter Bartok  <pbartok@novell.com>
16461
16462         * Form.cs:
16463           - Rudimentary Mdi support
16464           - Removed outdated FormParent code
16465           - Implemented lots of missing properties and methods, still missing
16466             transparency support
16467           - Added missing attributes
16468           - Implemented support for MaximumBounds
16469           - Added firing of various events
16470         * XplatUI.cs: Added SetIcon() method
16471         * XplatUIDriver.cs: Added SetIcon() abstract
16472         * XplatUIOSX.cs: Stubbed out SetIcon() method
16473         * XplatUIX11.cs:
16474           - Implemented SetIcon() support
16475           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
16476           - Switched to unix line endings
16477         * XplatUIWin32.cs:
16478           - Made POINT internal so for can access it as part of MINMAX
16479           - Implemented SetIcon() support
16480           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
16481             native Mdi support again, might have to go managed)
16482         * Control.cs: Now fires the StyleChanged event
16483         * MdiClient.cs: Added; still mostly empty
16484
16485 2005-03-10  Peter Bartok  <pbartok@novell.com>
16486
16487         * SaveFileDialog.cs: Added emtpy file
16488
16489 2005-03-08  Peter Bartok  <pbartok@novell.com>
16490
16491         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
16492           in turn triggers OnCreateContro) when creating a handle for the
16493           first time.
16494         * TextControl.cs: Fixed endless loop in certain cases when
16495           replacing the current selection
16496
16497 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
16498
16499         * ScrollBar.cs:
16500           - Honors NewValue changes in Scroll events allowing apps to change it
16501           - Adds First and Last Scroll events
16502           - Fixes Thumb events
16503
16504 2005-03-07  Peter Bartok  <pbartok@novell.com>
16505
16506         * Hwnd.cs: Added DefaultClientRectangle property
16507         * XplatUI.cs: Now using the X11 driver Where() method, which provides
16508           more detailed debug information
16509         * XplatUIX11.cs:
16510           - Fixed size-change feedback loop, where we would pull an old size
16511             off the queue and mistakenly change our window's size to an
16512             earlier value
16513           - Now compressing ConfigureNotify events, to reduce looping and
16514             redraw issues
16515         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
16516           is called
16517
16518 2005-03-07  Jackson Harper  <jackson@ximian.com>
16519
16520         * Binding.cs: Push data pushes from data -> property. Check if the
16521         property is readonly when attempting to set it.
16522
16523 2005-03-07  Jackson Harper  <jackson@ximian.com>
16524
16525         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
16526         instead of IsSubclassOf. Pulling data now sets the value on the
16527         control.
16528         * PropertyManager.cs:
16529         * CurrencyManager.cs: Just need to pull data when updating now,
16530         because PullData will set the value on the control.
16531
16532 2005-03-04  Jackson Harper  <jackson@ximian.com>
16533
16534         * Binding.cs: Implement data type parsing and converting on pulled
16535         data. TODO: Are there more ways the data can be converted?
16536
16537 2005-03-04  Jackson Harper  <jackson@ximian.com>
16538
16539         * Binding.cs: Support <Property>IsNull checks. Also bind to the
16540         controls Validating method so we can repull the data when the
16541         control loses focus.
16542
16543 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
16544
16545         * ColumnHeader.cs:
16546           - Fixes null string format
16547           
16548         * ListView.cs:
16549           - Adds enum type checks
16550           - Fixes redrawing and recalc need after changing some properties
16551           - Fixes on focus_item set after the event
16552           - Fixes adding columns after the control has been created
16553           
16554         * ThemeWin32Classic.cs:
16555           - Fixes CheckBox focus rectangle
16556           - Fixes ColumnHeader drawing
16557
16558
16559 2005-03-03  Jackson Harper  <jackson@ximian.com>
16560
16561         * Binding.cs: Bind to <Property>Changed events so we can detect
16562         when properties are changed and update the data.
16563
16564 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
16565
16566         * ImageList.cs:
16567           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
16568           - Fixes ImageList constructor with ImageList container
16569           - Fixes image scaling (wrong parameters at DrawImage)
16570
16571 2005-02-02  Jackson Harper  <jackson@ximian.com>
16572
16573         * Binding.cs: Make property searches case-insensitive. Eliminate
16574         some duplicated code.
16575
16576 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
16577
16578         * ComboBox.cs:
16579                 - Handle focus event
16580                 - Fix scrollbar events
16581                 - Discard highlighted item if remove it
16582                 - Fixes SelectedItem with strings
16583
16584 2005-03-01  Peter Bartok  <pbartok@novell.com>
16585
16586         * Control.cs:
16587           - Fixed Visible property, now follows (once again) parent chain
16588             to return false if any control in the chain is visible=false
16589           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
16590           - Fixed several places where is_visible instead of Visible was used
16591           - Implemented FIXME related to focus selection when setting focused
16592             control to be invisible
16593
16594         * XplatUIWin32.cs: Now using proper method to find out if window is
16595           visible. Thanks to Jordi for pointing it out
16596
16597 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
16598
16599         * ComboBox.cs: show/hide scrollbar instead of creating it
16600
16601 2005-02-27  Jackson Harper  <jackson@ximian.com>
16602
16603         * CurrencyManager.cs: Add PositionChanged stuff.
16604
16605 2005-02-27  Peter Bartok  <pbartok@novell.com>
16606
16607         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
16608         * XplatUIOSX.cs: Added GetMenuOrigin() stub
16609         * XplatUIWin32.cs: Implemented GetMenuOrigin()
16610         * XplatUIX11.cs:
16611           - Implemented GetMenuDC()
16612           - Implemented GetMenuOrigin()
16613           - Implemented ReleaseMenuDC()
16614           - Implemented generation of WM_NCPAINT message
16615           - Implemented generation and handling of WM_NCCALCSIZE message
16616         * Form.cs: Added debug helper message for Jordi's menu work
16617         * Hwnd.cs:
16618           - Modified ClientRect property; added setter, fixed getter to handle
16619             setting of ClientRect
16620           - Added MenuOrigin property
16621
16622 2005-02-26  Peter Bartok  <pbartok@novell.com>
16623
16624         * XplatUIX11.cs:
16625           - Destroys the caret if a window that's being destroyed contains it
16626           - Ignores expose events coming from the X11 queue for windows that
16627             already are destroyed
16628           - Now uses the proper variable for handling DestroyNotify, before we
16629             marked the wrong window as destroyed
16630           - Improved/added some debug output
16631
16632 2005-02-26  Peter Bartok  <pbartok@novell.com>
16633
16634         * X11Keyboard.cs: Fixes to work on 64bit systems
16635
16636 2005-02-26  Peter Bartok  <pbartok@novell.com>
16637
16638         * Control.cs:
16639           - Now calling OnHandleDestroyed from DestroyHandle()
16640             instead of Dispose()
16641           - Removed bogus call to controls.Remove() from DestroyHandle()
16642
16643 2005-02-26  Peter Bartok  <pbartok@novell.com>
16644
16645         * Control.cs: Properly destroy child windows when our handle is
16646           destroyed
16647
16648 2005-02-25  Peter Bartok  <pbartok@novell.com>
16649
16650         * XplatUI.cs:
16651           - Added 'DriverDebug' define to allow tracing XplatUI API calls
16652           - Alphabetized Static Methods and Subclasses
16653
16654         * XplatUIX11.cs:
16655           - Added XException class to allow custom handling of X11 exceptions
16656           - Created custom X11 error handler, tied into XException class
16657           - Added support for MONO_XEXCEPTIONS env var to allow the user
16658             to either throw an exception on X errors or continue running
16659             after displaying the error
16660           - Added handling of DestroyNotify message
16661           - Added handler for CreateNotify message (still disabled)
16662           - Improved (tried to at least) Where method to provide file and lineno
16663         * X11Structs.cs:
16664           - Added XErrorHandler delegate
16665           - Added XRequest enumeration (to suppor translation of errors)
16666
16667 2005-02-25  Jackson Harper  <jackson@ximian.com>
16668
16669         * PropertyManager.cs: Implement editing features
16670         * CurrencyManager.cs:
16671         * Binding.cs: First attempt at UpdateIsBinding
16672         * BindingManagerBase.cs: Call UpdateIsBinding before
16673         pushing/pulling data.
16674
16675 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
16676
16677         * MenuAPI.cs: Respect disabled items
16678         * ThemeWin32Classic.cs
16679                 - Caches ImageAttributes creation for DrawImageDisabled
16680                 - Fixes vertical menu line drawing
16681                 - Draws disabled arrows in disable menu items
16682
16683 2005-02-24  Peter Bartok  <pbartok@novell.com>
16684
16685         * Hwnd.cs:
16686           - Added UserData property to allow associating arbitrary objects
16687             with the handle
16688           - Fixed leak; now removing Hwnd references from static windows array
16689         * XplatUIWin32.cs:
16690           - Fixed Graphics leak in PaintEventEnd
16691           - Removed usage of HandleData, switched over to Hwnd class
16692         * HandleData.cs: Removed, obsoleted by Hwnd.cs
16693
16694 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
16695
16696         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
16697         * ScrollBar.cs: Fixes bug
16698         * TrackBar.cs: removes death code, clipping, mimize refreshes,
16699          keyboard navigation enhancements
16700
16701 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
16702
16703         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
16704         * GroupBox.cs: Add control styles
16705         * Label.cs: Add control styles
16706         * UpDownBase.cs: Add control styles
16707         * ListBox.cs: Add control styles
16708         * XplatUIWin32.cs: Fixes wrong parameter order
16709
16710
16711 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
16712
16713         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
16714
16715 2005-02-23  Jackson Harper  <jackson@ximian.com>
16716
16717         * PropertyManager.cs: Implement property binding. This doesn't
16718         seem to work yet though as (I think) there are some bugs in
16719         System.ComponentModel.PropertyDescriptor.
16720         * BindingContext.cs: Use new PropertyManager constructor.
16721
16722 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
16723
16724         * ProgressBar.cs: use clip region in ProgressBar
16725         * ThemeWin32Classic.cs: use clip region in ProgressBar
16726
16727 2004-02-22  Jackson Harper  <jackson@ximian.com>
16728
16729         * BindingsCollection.cs: Remove some debug code.
16730
16731 2005-02-22  Jackson Harper  <jackson@ximian.com>
16732
16733         * BindingContext.cs:
16734         * ControlBindingsCollection.cs:
16735         * CurrencyManager.cs:
16736         * Binding.cs:
16737         * BindingManagerBase.cs: Initial implementation
16738         * BindingsCollection.cs: Add an internal contains method that the
16739         BindingManagerBase uses to ensure bindings aren't added twice to
16740         the collection.
16741         * PropertyManager.cs: Stubbed out.
16742         * Control.cs:
16743         * ContainerControl.cs: Hook up databinding
16744         
16745 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
16746
16747         * XplatUIOSX.cs:
16748           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
16749           Fixed Invalidate/Update chain.
16750           Fixed tons of other minor bugs (this is almost a complete rewrite).
16751
16752 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
16753
16754         * ComboBox.cs: do subcontrol creation when the control is created
16755
16756 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16757
16758         * Label.cs: fixes image drawing (image and imagelist)
16759         * ThemeWin32Classic.cs: cache brushes
16760         
16761 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16762
16763         * Form.cs: Move menu drawing code to Theme class
16764         * ComboBox.cs: Move ComboBox drawing code to Theme class
16765         * MenuItem.cs: Move menu drawing code to Theme class
16766         * MenuAPI.cs: Move menu drawing code to Theme class
16767         * ThemeWin32Classic.cs: New methods
16768         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
16769         * ListBox.cs: Move Listbox drawing code to Theme class
16770         * Theme.cs: New methods
16771
16772 2005-02-20  Peter Bartok  <pbartok@novell.com>
16773
16774         * Control.cs:
16775           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
16776             only process mnemonics on those)
16777           - Fixed event sequence for key handling; first calling
16778             ProcessKeyEventArgs now
16779         * TextBoxBase.cs:
16780           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
16781             for processing non-character keys
16782           - Fixed WM_CHAR to generate proper event sequence before processing
16783         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
16784           generation
16785
16786 2005-02-19  Peter Bartok  <pbartok@novell.com>
16787
16788         * UserControl.cs: Added TextChanged event; added attributes
16789         * SizeGrip.cs: Implemented resizing and optional display of grip
16790         * Form.cs: Fixed attribute
16791         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
16792           Changed meaning of ScrollWindow bool argument; instead of the
16793           clear attribute (which will be true usually anyway), it gives the
16794           option of moving child controls as well.
16795         * XplatUIX11.cs:
16796           - Changed to match new ScrollWindow argument
16797           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
16798             now handles the implicit parent window a WM puts around us
16799         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
16800           to work)
16801         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
16802         * TreeView.cs: Adjusted to new ScrollWindow arguments
16803
16804 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
16805
16806         * Form.cs: Menu integration with non-client area
16807         * MenuItem.cs: Menu integration with non-client area
16808         * MenuAPI.cs: Menu integration with non-client area
16809
16810 2005-02-18  Peter Bartok  <pbartok@novell.com>
16811
16812         * MethodInvoker.cs: Added
16813         * MdiLayout.cs: Added
16814         * SendKeys.cs: Started implementation
16815         * ErrorIconAlignment.cs: Added
16816
16817 2005-02-18  Peter Bartok  <pbartok@novell.com>
16818
16819         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
16820         * Form.cs: Added handling for Menu-related Non-client messages
16821
16822 2005-02-17  Peter Bartok  <pbartok@novell.com>
16823
16824         * UpDownBase.cs: Fixed typo, compilation errors
16825         * DomainUpDown.cs: Fixed attribute value
16826
16827 2005-02-16  Miguel de Icaza  <miguel@novell.com>
16828
16829         * UpDownBase.cs: Attach entry events.
16830         Propagate events.
16831         Add ForeColor property, Focused, InterceptArrowKeys (interception
16832         does not work yet).
16833
16834 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
16835
16836         * Form.cs:
16837                 - Redraw non client are on Setmenu
16838                 - Calc proper menu starting point
16839
16840 2005-02-17  Peter Bartok  <pbartok@novell.com>
16841
16842         * Application.cs: Fixed message_filter check
16843
16844 2005-02-17  Peter Bartok  <pbartok@novell.com>
16845
16846         * Application.cs: Now calls registered message filters
16847         * DockStyle.cs: Fixed attribute
16848         * Form.cs: Fixed attribute
16849         * Menu.cs: Fixed attribute
16850         * ToolTip.cs: Fixed attribute
16851         * TreeNode.cs: Added missing attributes and arranged in regions
16852         * PropertyGrid.cs: Fixed signatures
16853         * TreeNodeCollection.cs: Added attributes
16854         * Splitter.cs: Added missing attributes; arranged into regions
16855         * TabPage.cs: Added missing attributes; arranged into regions
16856         * TextBoxBase.cs: Added missing attributes
16857         * TextBox.cs: Added missing attributes
16858         * ArrangeDirection.cs: Added missing attributes
16859         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
16860         * ToolBarButton.cs: Fixed attributes
16861         * AnchorStyles.cs: Fixed attribute
16862         * TrackBar.cs: Fixed attributes
16863         * TabControl.cs: Added missing attributes and arranged into regions
16864         * ToolBar.cs: Fixed attribute
16865         * StatusBar.cs: Fixed signature, organized into regions and added
16866           attributes
16867         * StatusBarPanel.cs: Fixed attributes
16868         * ContentsResizedEventArgs.cs: Implemented
16869         * ContentsResizedEventHandler.cs: Implemented
16870         * DateBoldEventArgs.cs: Implemented
16871         * DateBoldEventHandler.cs: Implemented
16872         * UpDownEventArgs.cs: Implemented
16873         * UpDownEventHandler.cs: Implemented
16874         
16875 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
16876
16877         * Form.cs: first Menu NC refactoring
16878         * MenuAPI.cs: first Menu NC refactoring
16879         
16880 2005-02-16  Peter Bartok  <pbartok@novell.com>
16881
16882         * ImeMode.cs: Added missing attributes
16883         * Menu.cs: Fixed attribute
16884         * GroupBox.cs: Fixed attribute
16885         * Label.cs: Fixed attribute
16886         * ColorDialog.cs (RunDialog): Removed TODO attribute
16887         * ComboBox.cs: Fixed attributes
16888         * ListControl.cs: Added missing attributes
16889         * PropertyGrid.cs: Fixed attributes
16890         * Control.cs: Fixed attributes
16891         * ListViewItem.cs: Added TypeConverter attribute
16892         * NotifyIcon.cs: Fixed attributes
16893         * ListView.cs: Fixed attributes
16894         * ButtonBase.cs: Fixed attribute
16895         * ImageList.cs: Added missing attributes
16896         * ContainerControl.cs: Fixed signature
16897         * CheckedListBox.cs: Fixed attribute; added missing attributes
16898         * Panel.cs: Fixed attributes
16899         * PropertyTabChangedEventArgs.cs: Added missing attribute
16900         * PropertyValueChangedEventArgs.cs: Added missing attribute
16901         * Binding.cs: Fixed attribute
16902         * ListViewItemConverter: Implemented ListViewSubItemConverter class
16903         * ListBox.cs: Fixed attribute; added missing attributes;
16904         * ScrollableControl.cs: Added missing attributes
16905         * PictureBox.cs: Added missing attributes; implemented missing property
16906         * DateTimePicker.cs: Added missing attributes
16907         * Theme.cs (ToolWindowCaptionHeight): Fixed type
16908         * MonthCalendar.cs: Fixed attributes
16909         * StatusBarPanel.cs: Added missing attributes
16910         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
16911
16912 2005-02-16  Peter Bartok  <pbartok@novell.com>
16913
16914         * TextBoxBase.cs: The previous method to enforce height yet remember
16915           the requested high was less than ideal, this is an attempt to do
16916           it better.
16917         * Control.cs: Added comment about possible problem
16918         * Copyright: Updated format
16919         * GridItemType.cs: Fixed swapped values
16920
16921 2005-02-15  Jackson Harper  <jackson@ximian.com>
16922
16923         * BaseCollection.cs: Use property so we never access an
16924         uninitialized list. Also initialize the list in the property.
16925
16926 2005-02-15  Peter Bartok  <pbartok@novell.com>
16927
16928         * GroupBox.cs (ProcessMnemonic): Implemented
16929         * Label.cs (ProcessMnemonic): Implemented
16930         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
16931           hotkeys
16932
16933 2005-02-15  Peter Bartok  <pbartok@novell.com>
16934
16935         * RadioButton.cs (ProcessMnemonic): Implemented
16936         * CheckBox.cs (ProcessMnemonic): Implemented
16937         * Control.cs:
16938           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
16939             handling
16940           - Added internal method to allow calling ProcessMnemonic from other
16941             controls
16942         * ContainerControl.cs:
16943           - Started support for handling validation chain handling
16944           - Implemented ProcessMnemonic support
16945           - Added Select() call to Active, to make sure the active control
16946             receives focus
16947         * Form.cs: Setting toplevel flag for Forms (this was lost in the
16948           FormParent rewrite)
16949         * ThemeWin32Classic.cs:
16950           - DrawCheckBox(): Fixed stringformat to show hotkeys
16951           - DrawRadioButton(): Fixed stringformat to show hotkeys
16952         * CommonDialog.cs: Removed WndProc override, not needed
16953
16954 2005-02-14  Peter Bartok  <pbartok@novell.com>
16955
16956         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
16957           missed those in the rewrite
16958
16959 2005-02-14  Miguel de Icaza  <miguel@novell.com>
16960
16961         * NumericUpDown.cs (Increment, ToString): Add.
16962         (DecimalPlaces): implement.
16963         
16964         Add attributes.
16965         
16966         * UpDownBase.cs: Add the designer attributes.
16967
16968 2005-02-13  Peter Bartok  <pbartok@novell.com>
16969
16970         * Panel.cs: Removed border_style, now in Control
16971         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
16972           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
16973
16974 2005-02-13  Peter Bartok  <pbartok@novell.com>
16975
16976         * MouseButtons.cs: Added missing attributes
16977         * XplatUIStructs.cs: Added enumeration for title styles
16978         * LeftRightAlignment.cs: Added missing attributes
16979         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
16980           it compatible with Graphics.FromHwnd()
16981         * SelectedGridItemChangedEventArgs.cs: Fixed property type
16982         * Keys.cs: Added missing attributes
16983         * SelectionRange.cs: Added missing attributes
16984         * SelectionRangeConverter.cs: Added
16985         * XplatUI.cs:
16986           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
16987             ReleaseMenuDC methods
16988           - Renamed ReleaseWindow to UngrabWindow
16989           - Added proper startup notice to allow version identification
16990         * Form.cs:
16991           - Added missing attributes
16992           - Removed FormParent concept
16993         * Label.cs: Removed border_style field, now in Control
16994         * RadioButton.cs: Now properly selects RadioButton when focus is
16995           received
16996         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
16997         * Control.cs:
16998           - Added missing attributes
16999           - Added borderstyle handling
17000           - Removed FormParent concept support
17001           - Fixed calls to XplatUI to match changed APIs
17002           - Fixed bug that would case us to use disposed Graphics objects
17003           - Removed unneeded internal methods
17004           - PerformLayout(): Fixed to handle DockStyle.Fill properly
17005           - SelectNextControl(): Fixed to properly check common parents
17006         * TextBoxBase.cs: Removed border_style field (now in Control)
17007         * MessageBox.cs:
17008           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
17009             fixed calculations for form size
17010           - Added support for localized strings and icons
17011           - Improved form size calculations, added border
17012         * ListView.cs: Removed border_style field (now in Control)
17013         * X11Structs.cs: Moved several structs from X11 driver here
17014         * X11Keyboard.cs: Changed debug message
17015         * Application.cs: Removed FormParent concept support
17016         * CommonDialog.cs:
17017           - Resetting end_modal flag
17018           - Removed FormParent concept support
17019         * NativeWindow.cs: Removed FormParent concept support
17020         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
17021           Client area and Non-Client whole window to allow support for WM_NC
17022           messages
17023         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
17024           prevent using it until it supports Hwnd as per Geoff Norton's request
17025         * ToolBar.cs: Fixed drawing, was not doing proper drawing
17026         * PictureBox.cs: Removed border_style field, now in Control
17027         * XplatUIWin32.cs: Added new driver methods
17028
17029 2005-02-12  Peter Bartok  <pbartok@novell.com>
17030
17031         * OpacityConverter.cs: Implemented
17032         * Hwnd.cs: Internal class to support drivers that need to emulate
17033           client area/non-client area window behaviour
17034
17035 2005-02-11  Peter Bartok  <pbartok@novell.com>
17036
17037         * KeysConverter.cs: Implemented
17038
17039 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
17040
17041         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
17042         * LinkLabel: Added missing attributes
17043         * MainMenu.cs: fixes ToString
17044         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
17045         * ListBox.cs: fixes event position
17046         * TrackBar.cs: adds missing attributes and events
17047         
17048 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
17049
17050         * MenuItem.cs: Use SystemInformation and bug fixes
17051         * MenuAPI.cs: Use SystemInformation and bug fixes
17052
17053 2005-02-09  Jackson Harper  <jackson@ximian.com>
17054
17055         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
17056         their keystate otherwise things like VK_MENU get stuck "on".
17057
17058 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
17059
17060         * ListBox.cs: Fixes AddRange bug
17061         
17062 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
17063
17064         * ProgressBar.cs
17065                 - Add missing attributes
17066                 - Add missing method
17067                 
17068         * CheckedListBox.cs: Added missing attributes
17069                 - Add missing attributes
17070                 - Remove extra method
17071         
17072         * ComboBox.cs: Added missing attributes
17073         * VScrollBar.cs: Added missing attributes
17074         * ScrollBar.cs:  Added missing attributes
17075         * ListBox.cs: Fixes signature, add missing consts
17076         * LinkArea.cs:   Added missing attributes
17077         
17078
17079 2005-02-08  Peter Bartok  <pbartok@novell.com>
17080
17081         * Menu.cs: Added missing attributes
17082         * MainMenu.cs: Added missing attributes
17083         * GroupBox.cs: Added missing attributes
17084         * Label.cs: Added missing attributes
17085         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
17086         * ColorDialog.cs:
17087           - Added Instance and Options properties
17088           - Added missing attributes
17089         * Cursor.cs: Made Serializable
17090         * NotifyIcon: Added missing attributes
17091         * MenuItem.cs: Added missing attributes
17092         * TextBoxBase.cs: Implemented AppendText() and Select() methods
17093         * Panel.cs: Added Missing attributes
17094         * MonthCalendar.cs: Fixed CreateParams
17095
17096 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
17097         
17098         * LinkLabel.cs:
17099                 - Fixes signature
17100                 - Fixes issues with links
17101                 - Adds the class attributes
17102
17103 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
17104         
17105         * ComboBox.cs:
17106                 - Fixes button when no items available in dropdown
17107                 - Fixes repainting problems
17108                 - Adds the class attributes
17109                 
17110 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
17111
17112         * XplatUIOSX.cs: Detect the menu bar and title bar height from
17113         the current theme.  Cache these on startup.
17114
17115 2005-02-07  Jackson Harper  <jackson@ximian.com>
17116
17117         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
17118         the scrollbar buttons when they are depressed.
17119
17120 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
17121
17122         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
17123         Get the display size from the main displayid.  We currently dont
17124         support multiple display configurations.
17125
17126 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
17127
17128         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
17129
17130 2005-02-07  Miguel de Icaza  <miguel@novell.com>
17131
17132         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
17133
17134 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
17135
17136         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
17137
17138 2005-02-04  Jackson Harper  <jackson@ximian.com>
17139
17140         * ThemeWin32Classic.cs: Respect the clipping rect when
17141         drawing. Only fill the intersection of clips and rects so there
17142         isn't a lot of large fills.
17143         * ScrollBar.cs: Pass the correct clipping rect to the theme
17144         engine. Remove some debug code.
17145
17146 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
17147         
17148         * DateTimePicker.cs:
17149                 - Fixed crash on DateTime.Parse, use Constructor instead
17150
17151 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
17152         
17153         * MenuItem.cs:
17154         * MenuAPI.cs:
17155                 - Owner draw support (MeasureItem and DrawItem)
17156
17157 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
17158         
17159         *  Menu.cs:
17160                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
17161                 - Fixes MenuItems.Add range
17162         * MenuItem.cs:
17163                 - MergeMenu and Clone and CloneMenu functions
17164
17165 2005-02-03  Jackson Harper  <jackson@ximian.com>
17166
17167         * ScrollBar.cs: Make abstract
17168         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
17169         is abstract.
17170
17171 2005-02-03  Jackson Harper  <jackson@ximian.com>
17172
17173         * ScrollBar.cs: First part of my scrollbar fixups. This removes
17174         all the unneeded refreshes and uses invalidates with properly
17175         computed rects.
17176
17177 2005-02-03  Peter Bartok  <pbartok@novell.com>
17178
17179         * ComponentModel.cs: Added
17180         * IDataGridEditingService.cs: Added
17181         * Timer.cs: Added missing attributes
17182         * ToolTip.cs: Added missing attributes
17183
17184 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
17185
17186         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
17187
17188 2005-02-03  Peter Bartok  <pbartok@novell.com>
17189
17190         * ListBox.cs: Added missing attributes
17191
17192 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
17193         
17194         * ListBox.cs:
17195                 - Fixes font height after font change
17196                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
17197                 
17198 2005-02-02  Peter Bartok  <pbartok@novell.com>
17199
17200         * HandleData.cs: Introduced static methods to allow class
17201           to be more self-contained and track it's own HandleData objects
17202         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
17203           HandleData to use new static methods
17204
17205 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
17206
17207         * Combobox.cs:
17208                 - Fixes default size and PreferredHeight
17209                 - Missing events
17210                 - ObjectCollection.Insert implementation
17211                 
17212         * ListControl.cs
17213                 - Fixes signature
17214         * ListBox.cs:
17215                 - Several fixes
17216                 - ObjectCollection.Insert implementation
17217                 - No selection after clean
17218                 - Small fixes
17219
17220 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
17221
17222         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
17223
17224 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
17225
17226         * Combobox.cs:
17227                 - Caches ItemHeight calculation for OwnerDrawVariable
17228                 - Handles dropdown properly
17229                 - Fixes several minor bugs
17230
17231 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
17232
17233         * ListBox.cs:
17234                 - Fixes 71946 and 71950
17235                 - Fixes changing Multicolumn on the fly
17236                 - Fixes keyboard navigation on Multicolumn listboxes
17237
17238 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
17239         
17240         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
17241         crash reporter log.
17242
17243 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
17244
17245         * XplatUIOSX.cs: Allow applications to actually exit.
17246
17247 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
17248
17249         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
17250         their parent at creation time rather than lazily later.  Fixes a major
17251         regression we were experiencing.
17252
17253 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
17254
17255         * ThemeWin32Classic.cs: more date time picker painting fixes
17256         * DateTimePicker.cs: more monthcalendar drop down fixes
17257         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
17258
17259 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
17260
17261         * ScrollBar.cs:
17262                 - When moving the thumb going outside the control should stop the moving
17263                 - Adds the firing of missing events
17264                 - Fixes no button show if Size is not specified
17265                 - End / Home keys for keyboard navigation
17266
17267 2005-01-30  Peter Bartok  <pbartok@novell.com>
17268
17269         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
17270           sanity check to prevent theoretical loop
17271         * XplatUIWin32.cs (SetVisible): Removed debug output
17272         * XplatUIX11.cs (SystrayChange): Added sanity check
17273         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
17274         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
17275           behaviour, valid until the X11 client window rewrite is done
17276         * TextBox.cs (ctor): Setting proper default foreground and background
17277           colors
17278
17279 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
17280
17281         * Theme: Added DrawDateTimePicker to interface
17282         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
17283         * DateTimePicker.cs: Created (still needs keys and painting code)
17284         * DateTimePickerFormat.cs: added
17285         * MonthCalendar.cs: fixed CreateParams for popup window mode
17286           
17287 2005-01-29  Peter Bartok  <pbartok@novell.com>
17288
17289         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
17290           this should also the calculations for ligher/darker
17291         * Theme.cs: Fixed defaults for ScrollBar widths/heights
17292
17293 2005-01-29  Peter Bartok  <pbartok@novell.com>
17294
17295         * ArrangeDirection.cs: Added
17296         * ArrangeStartingPositon.cs: Added
17297         * SystemInformation.cs: Implemented
17298         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
17299           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
17300           used by SystemInformation class
17301         * X11Strucs.cs: Added XSizeHints structure
17302         * MenuAPI.cs:
17303           - Fixed CreateParams to make sure the menu window is always visible
17304           - TrackPopupMenu: Added check to make sure we don't draw the
17305             menu offscreen
17306
17307 2005-01-29  Peter Bartok  <pbartok@novell.com>
17308
17309         * HandleData.cs: Added method for altering invalid area
17310         * TextBoxBase.cs: Implemented TextLength
17311
17312 2005-01-28  Peter Bartok  <pbartok@novell.com>
17313
17314         * XplatUIX11.cs: Improvement over last patch, not sending
17315           the WM_PAINT directly anymore, instead we scroll any pending
17316           exposed areas and let the system pick out the WM_PAINT later
17317
17318 2005-01-28  Peter Bartok  <pbartok@novell.com>
17319
17320         * SWF.csproj: Deleted, no longer used. Instead,
17321           Managed.Windows.Forms/SWF.csproj should be used
17322         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
17323           directly, to avoid a potential race condition with the next
17324           scroll
17325
17326 2005-01-28  Peter Bartok  <pbartok@novell.com>
17327
17328         * XplatUI.cs: Made class internal
17329
17330 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
17331
17332         * CheckedListBox.cs:
17333                 - Draw focus
17334                 - Fixed Drawing
17335                 - Missing methods and events
17336
17337 2005-01-27  Peter Bartok  <pbartok@novell.com>
17338
17339         * Application.cs (Run): Don't use form if we don't have one
17340
17341 2005-01-27  Peter Bartok  <pbartok@novell.com>
17342
17343         * TextBoxBase.cs (get_Lines): Fixed index off by one error
17344
17345 2005-01-27  Peter Bartok  <pbartok@novell.com>
17346
17347         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
17348         * GridItem.cs: Added; Patch by Jonathan S. Chambers
17349         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
17350         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
17351         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
17352         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
17353         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
17354         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
17355         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
17356         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
17357         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
17358         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
17359
17360 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
17361
17362         * Combobox.cs:
17363                 - Draw focus on Simple Combobox
17364                 - Fixes drawing issues
17365                 - fixes 71834
17366
17367 2005-01-27  Peter Bartok  <pbartok@novell.com>
17368
17369         * Form.cs:
17370           - Place window in default location, instead of hardcoded 0/0
17371           - Send initial LocationChanged event
17372         * Control.cs:
17373           - UpdateBounds after creation to find out where the WM placed us
17374           - Make sure that if the ParentForm changes location the Form
17375             is notified
17376         * XplatUIX11.cs: XGetGeometry will not return the coords relative
17377             to the root, but to whatever the WM placed around us.
17378             Translate to root coordinates before returning toplevel
17379             coordinates
17380         * XplatUIWin32.cs: Removed debug output
17381         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
17382           flag to GetWindowPos, to allow translation of coordinates on X11
17383
17384 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
17385
17386         * ListBox.cs: connect LostFocus Event
17387
17388 2005-01-27  Peter Bartok  <pbartok@novell.com>
17389
17390         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
17391           XplatUIX11.cs: Extended the Systray API
17392         * Form.cs: Removed debug output
17393         * Application.cs: Fixed focus assignment, always need to call
17394           XplatUI.Activate() since Form.Activate() has rules that may
17395           prevent activation
17396         * NotifyIcon.cs: Should be complete now
17397         * ToolTip.cs: Worked around possible timer bug
17398
17399 2005-01-27  Jackson Harper  <jackson@ximian.com>
17400
17401         * TabControl.cs:
17402         - Only invalidate the effected tabs when the
17403         selected index changes. This reduces drawing and gets rid of some
17404         flicker.
17405         - Only refresh if the tabs need to be shifted, otherwise only
17406         invalidate the slider button.
17407         - On windows the tabs are not filled to right if the slider is
17408         visible.
17409         
17410 2005-01-27  Jackson Harper  <jackson@ximian.com>
17411
17412         * TabControl.cs: Only refresh on mouseup if we are showing the
17413         slider. Also only invalidate the button whose state has changed.
17414
17415 2005-01-26  Peter Bartok  <pbartok@novell.com>
17416
17417         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
17418         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
17419           and SystrayRemove() methods
17420         * XplatUIOSX.cs: Stubbed Systray methods
17421         * XplatUIX11.cs:
17422           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
17423             methods
17424           - Fixed broken XChangeProperty calls (marshalling messed up things)
17425         * X11Structs.cs: Added enums and structs required for Size hinting
17426         * NotifyIcon.cs: Added & implemented
17427
17428 2005-01-26  Jackson Harper  <jackson@ximian.com>
17429
17430         * TabControl.cs: Space vertically layed out tabs properly.
17431
17432 2005-01-26  Peter Bartok  <pbartok@novell.com>
17433
17434         * Form.cs (CreateClientParams): Always set the location to 0,0
17435           since we're a child window.
17436
17437         * Control.cs (SetVisibleCore): Always explicitly setting the location
17438           of a toplevel window, apparently X11 doesn't like to move windows
17439           while they're not mapped.
17440
17441 2005-01-26  Jackson Harper  <jackson@ximian.com>
17442
17443         * TabControl.cs: Implement FillToRight size mode with vertically
17444         rendered tabs.
17445
17446 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
17447
17448         * ControlPaint.cs, ThemeWin32Classic.cs
17449                 - Fixes DrawFocusRectangle
17450
17451 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
17452
17453         * MenuAPI.cs:
17454                 - MenuBar tracking only starts when item is first clicked
17455                 - Fixes menu hidding for multiple subitems
17456                 - Unselect item in MenuBar when item Executed
17457                 - Fixes bug 71495
17458
17459 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
17460
17461         * ListControl.cs:
17462                 - IsInputKey for ListBox
17463         * ListBox.cs:
17464                 - Focus item
17465                 - Shift and Control item selection
17466                 - Implement SelectionMode.MultiExtended
17467                 - Fixes RightToLeft
17468         * ComboBox.cs:
17469                 - IsInputKey implemented
17470                 - Do not generate OnTextChangedEdit on internal txt changes
17471                 
17472 2005-01-23  Peter Bartok  <pbartok@novell.com>
17473
17474         * AccessibleObject.cs: Partially implemented Select()
17475         * MonthCalendar.cs: Added missing attributes and events
17476         * Form.cs: Fixed CreateParams behaviour, now controls derived from
17477           form can properly override CreateParams.
17478         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
17479           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
17480           Control performs Invalidate & Update
17481         * NativeWindow (CreateHandle): Added special handling for Form
17482           and Form.FormParent classes to allow overriding of From.CreateParams
17483         * Control.cs:
17484           - ControlNativeWindow: Renamed 'control' variable to more intuitive
17485             name 'owner'
17486           - ControlNativeWindow: Added Owner property
17487           - Removed usage of Refresh() on property changes, changed into
17488             Invalidate(), we need to wait until the queue is processed for
17489             updates, direct calls might cause problems if not all vars for
17490             Paint are initialized
17491           - Added call to UpdateStyles() when creating the window, to set any
17492             styles that CreateWindow might have ignored.
17493           - Added support for Form CreateParent overrides to UpdateStyles()
17494         * MessageBox.cs: Removed no longer needed FormParent override stuff,
17495           CreateParams are now properly overridable
17496         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
17497           CreateParams are now properly overridable
17498
17499 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
17500
17501         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
17502         OnTextBoxChanged.
17503
17504         Capture LostFocus and OnTextBoxChanged.  The later introduces a
17505         recursive invocation that I have not figured out yet.
17506
17507         Reset the timer when not using (it was accumulating).
17508
17509
17510         (OnTextBoxChanged): Set UserEdit to true here to track whether the
17511         user has made changes that require validation.
17512
17513         Reset changing to avoid loops.
17514
17515 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
17516
17517         * NumericUpDown.cs: Display value at startup.
17518
17519         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
17520         ValidateEditText.
17521
17522         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
17523         filled in.  Added some basic parsing of text.
17524
17525         Still missing the OnXXX method overrides, and figuring out the
17526         events that must be emitted.
17527
17528         * UpDownBase.cs: Handle UserEdit on the Text property.
17529         
17530 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
17531
17532         * ComboBox.cs:
17533           - Fixes IntegralHeight
17534           - ToString method
17535
17536 2005-01-21  Jackson Harper  <jackson@ximian.com>
17537
17538         * TabControl.cs: Set the SelectedIndex property when SelectedTab
17539         is set so that the page visibility is updated and the tabs are
17540         sized correctly.
17541
17542 2005-01-21  Jackson Harper  <jackson@ximian.com>
17543
17544         * TabControl.cs: Use cliping rectangle for blitting. Give the
17545         theme the clipping rect so we can do clipping while
17546         drawing. Remove some debug code.
17547
17548 2005-01-21  Jackson Harper  <jackson@ximian.com>
17549
17550         * TabPage.cs: Add a new method so tab pages can force the tab
17551         control to recalculate the tab page sizes.
17552         * TabControl.cs: UpdateOwner needs to make the tab control recalc
17553         sizes.
17554
17555 2005-01-20  Jackson Harper  <jackson@ximian.com>
17556
17557         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
17558
17559 2005-01-20  Jackson Harper  <jackson@ximian.com>
17560
17561         * TreeView.cs: Set the bounds for nodes properly. They were
17562         getting screwed up when checkboxes were not enabled, but images
17563         were.
17564
17565 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
17566
17567         * ListBox.cs:
17568                 - Owner draw support
17569                 - Fixes
17570                 
17571 2005-01-20  Jackson Harper  <jackson@ximian.com>
17572
17573         * XplatUIStructs.cs: More misc keys
17574         * X11Keyboard.cs: Ignore some control keys.
17575
17576 2005-01-20  Jackson Harper  <jackson@ximian.com>
17577
17578         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
17579         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
17580
17581 2005-01-19  Peter Bartok  <pbartok@novell.com>
17582
17583         * Control.cs: Un-selecting the control when it is loosing focus
17584
17585 2005-01-19  Jackson Harper  <jackson@ximian.com>
17586
17587         * TreeView.cs: Hook up to the text controls leave event so we can
17588         end editing when the users clicks outside the text box.
17589         
17590 2005-01-19  Jackson Harper  <jackson@ximian.com>
17591
17592         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
17593         get set in the conversion array.
17594
17595 2005-01-19  Peter Bartok  <pbartok@novell.com>
17596
17597         * Application.cs (ModalRun): Added a call to CreateControl to ensure
17598           focus is properly set
17599         * Button.cs:
17600           - Added missing attributes
17601           - removed styles, those are already set in the base class
17602         * ButtonBase.cs:
17603           - Added missing attributes
17604           - Added clip window styles
17605         * CheckBox.cs: Added missing attributes
17606         * CommonDialog.cs:
17607           - FormParentWindow.CreateParams: Added required clip styles
17608         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
17609           also filters modifier keys
17610         * MessageBox.cs:
17611           - Added assignment of Accept and Cancel button to enable Enter
17612             and Esc keys in MessageBox dialogs
17613           - FormParentWindow.CreateParams: Added required clip styles
17614         * RadioButton.cs: Added missing attributes
17615         * TextControl.cs: No longer draws selection if control does not
17616           have focus
17617         * TextBoxBase.cs:
17618           - Now draws simple rectangle around test area to make it obvious
17619             there's a control. This is a hack until we properly support borders
17620           - A few simple fixes to support selections better, now erases selected
17621             text when typing, and resets selection when using movement keys
17622
17623 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
17624
17625         * UpDownBase.cs: Added some new properties.
17626
17627         * DomainUpDown.cs: Implement a lot to get my test working.
17628
17629 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17630
17631         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
17632
17633 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17634
17635         * OSXStructs (WindowAttributes): Fixed csc complaints
17636
17637 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17638
17639         * XplayUIOSX.cs:
17640           OSXStructs.cs: Initial refactor to move enums and consts into
17641           OSXStructs and use them in the driver for greater readability.
17642
17643 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
17644
17645         * XplatUIOSX.cs: Initial support for Standard Cursors.
17646         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
17647
17648 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
17649
17650         * ComboBox.cs: ability to change style when the ctrl is already
17651         created, missing methods and events, bug fixes, signature fixes
17652
17653 2005-01-19  Peter Bartok  <pbartok@novell.com>
17654
17655         * Cursors.cs (ctor): Added ctor to fix signature
17656
17657 2005-01-18  Peter Bartok  <pbartok@novell.com>
17658
17659         * Button.cs: Implemented DoubleClick event
17660         * ButtonBase.cs:
17661           - Fixed keyboard handling to behave like MS, where the press of
17662             Spacebar is equivalent to a mousedown, and the key release is
17663             equivalent to mouseup. Now a spacebar push will give the same
17664             visual feedback like a mouse click.
17665           - Added missing attributes
17666           - Added ImeModeChanged event
17667           - Added support for generating DoubleClick event for derived classes
17668         * CheckBox.cs:
17669           - Implemented DoubleClick event
17670           - Added missing attributes
17671         * CommonDialog.cs: Added missing attribute
17672         * ContextMenu.cs: Added missing attributes
17673         * RadioButton.cs:
17674           - AutoChecked buttons do not allow to be unselected when clicked
17675             (otherwise we might end up with no selected buttons in a group)
17676           - Added missing attributes
17677           - Implemented DoubleClickEvent
17678         * ThreadExceptionDialog.cs: Enabled TextBox code
17679
17680 2005-01-18  Peter Bartok  <pbartok@novell.com>
17681
17682         * Form.cs: Removed debug output
17683         * Button.cs: Added support for DoubleClick method
17684
17685 2005-01-18  Peter Bartok  <pbartok@novell.com>
17686
17687         * Form.cs:
17688           - Added method to parent window that allows triggering size
17689             calculations when a menu is added/removed
17690           - set_Menu: Cleaned up mess from early days of Form and Control,
17691             now properly triggers a recalc when a menu is added/removed
17692           - Added case to select form itself as focused form if no child
17693             controls exist
17694           - Added PerformLayout call when showing dialog, to ensure properly
17695             placed controls
17696         * Control.cs:
17697           - Select(): Made internal so Form can access it
17698           - Focus(): Only call Xplat layer if required (avoids loop), and sets
17699             status
17700         * Application.cs (Run): Removed hack and calls PerformLayout instead
17701           to trigger calculation when Form becomes visible
17702
17703 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
17704
17705         * ComboBox.cs: fixes for ownerdraw
17706
17707 2005-01-18  Peter Bartok  <pbartok@novell.com>
17708
17709         * TextControl.cs:
17710           - Sentinel is no longer static, each Document gets it's own, this
17711             avoids locking or alternatively overwrite problems when more
17712             than one text control is used simultaneously.
17713           - Switched to use Hilight and HilightText brushes for text selection
17714
17715         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
17716
17717 2005-01-18  Peter Bartok  <pbartok@novell.com>
17718
17719         * Control.cs:
17720           - Hooked up the following events:
17721                 o ControlAdded
17722                 o ControlRemoved
17723                 o HandleDestroyed
17724                 o ImeModeChanged
17725                 o ParentChanged
17726                 o TabStopChanged
17727                 o Invalidated
17728                 o SystemColorsChanged
17729                 o ParentFontChanged
17730                 o Move
17731           - Removed debug output
17732           - Added a call to the current theme's ResetDefaults when a color change
17733             is detected
17734         * Form.cs: Now setting the proper ImeMode
17735         * Theme.cs: Defined a method to force recreation of cached resources
17736           and rereading of system defaults (ResetDefaults())
17737         * ThemeWin32Classic.cs: Added ResetDefaults() stub
17738
17739 2005-01-17  Peter Bartok  <pbartok@novell.com>
17740
17741         * Control.cs: Added missing attributes
17742
17743 2005-01-17  Jackson Harper  <jackson@ximian.com>
17744
17745         * TreeNode.cs: Implement editing. Add missing properties selected
17746         and visible.
17747         * TreeView.cs: Implement node editing. Also some fixes to use
17748         Invalidate (invalid area) instead of Refresh when selecting.
17749
17750 2005-01-17  Peter Bartok  <pbartok@novell.com>
17751
17752         * Control.cs:
17753           - Implemented InvokeGotFocus() method
17754           - Implemented InvokeLostFocus() method
17755           - Implemented InvokePaint() method
17756           - Implemented InvokePaintBackground() method
17757           - Implemented InvokeClick() method
17758           - Implemented FindForm() method
17759           - Implemented RectangleToClient() method
17760           - Implemented ClientToRectangle() method
17761           - Implemented ResetBackColor() method
17762           - Implemented ResetCursor() method
17763           - Implemented ResetFont() method
17764           - Implemented ResteForeColor() method
17765           - Implemented ResetImeMode() method
17766           - Implemented ResetLeftToRight() method
17767           - Implemented ResetText() method
17768           - Implemented Scale() methods
17769           - Implemented ScaleCore() method
17770           - Implemented Update() method
17771           - Removed unused variables
17772           - Stubbed AccessibilityNotifyClients and
17773             ControlAccessibleObject.NotifyClients() methods (dunno what to do
17774             with those yet)
17775           - Now setting proper default for RightToLeft property
17776           - Fixed bug in SetClientSizeCore that would cause windows to get
17777             really big
17778           - Now sending Click/DoubleClick events
17779           - Now selecting controls when left mouse button is clicked on
17780             selectable control
17781         * AccessibleEvents.cs: Added
17782         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
17783         * XplatUIOSX.cs: Stubbed UpdateWindow() method
17784         * XplatUIWin32.cs: Implemented UpdateWindow() method
17785         * XplatUIX11.cs: Implemented UpdateWindow() method
17786         * Form.cs: Removed stray semicolon causing CS0162 warning
17787         * ThemeWin32Classic.cs: Fixed unused variable warnings
17788         * ScrollableControl.cs: Now calls base method for ScaleCore
17789         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
17790           style to avoid interference with internal click handler (which is
17791           different than standard Control click handling)
17792         * RadioButton.cs:
17793           - Now unchecks all sibling radio buttons when control is
17794             selected (Fixes #68756)
17795           - Removed internal tabstop variable, using the one inherited from
17796             Control
17797
17798 2005-01-17  Jackson Harper  <jackson@ximian.com>
17799
17800         * NavigateEventArgs.cs: Fix base type.
17801         * LinkLabel.cs: Sig fix
17802         
17803 2005-01-17  Jackson Harper  <jackson@ximian.com>
17804
17805         * TreeView.cs: Only invalidate the effected nodes bounds when
17806         selecting nodes.
17807
17808 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17809
17810         * XplatUIWin32.cs: fixes Win32 marshaling
17811         * XplatUIX11.cs: fixes method signature
17812
17813 2005-01-17  Peter Bartok  <pbartok@novell.com>
17814
17815         * XplatUIX11.cs: Clean up resources when we no longer need them
17816
17817 2005-01-17  Peter Bartok  <pbartok@novell.com>
17818
17819         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
17820           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
17821           and DestroyCursor() methods.
17822         * Cursor.cs: Partially implemented, now supports standard cursors;
17823           still contains some debug code
17824         * Cursors.cs: Implemented class
17825         * Control.cs:
17826           - WndProc(): Added handling of WM_SETCURSOR message, setting the
17827             appropriate cursor
17828           - Implemented Cursor property
17829           - Replaced break; with return; more straightforwar and possibly
17830             faster
17831           - Now properly setting the result for WM_HELP
17832         * X11Structs.cs: Added CursorFontShape enum
17833         * XplatUIStructs.cs:
17834           - Added StdCursor enum (to support DefineStdCursor() method)
17835           - Added HitTest enum (to support sending WM_SETCURSOR message)
17836         * XplatUIX11.cs:
17837           - Now sends the WM_SETCURSOR message
17838           - Implemented new cursor methods
17839         * XplatUIOSX.cs: Stubbed new cursor methods
17840         * XplatUIWin32.cs:
17841           - Implemented new cursor methods
17842           - Added GetSystemMetrics function and associated enumeration
17843
17844 2005-01-15  Peter Bartok  <pbartok@novell.com>
17845
17846         * Control.cs:
17847           - WndProc(): Now handles EnableNotifyMessage
17848           - SelectNextControl(): Fixed bug where if no child or sibling
17849             controls exist we looped endlessly
17850
17851 2005-01-14  Jackson Harper  <jackson@ximian.com>
17852
17853         * TreeView.cs: Recalculate the tab pages when a new one is added
17854         so that the proper bounding rects are created.
17855
17856 2005-01-14  Jackson Harper  <jackson@ximian.com>
17857
17858         * TreeView.cs: Draw a gray box instead of a grip in the lower
17859         right hand corner when there are both horizontal and vertical
17860         scroll bars.
17861
17862 2005-01-14  Jackson Harper  <jackson@ximian.com>
17863
17864         * Control.cs: When erasing backgrounds use FromHwnd instead of
17865         FromHdc when there is a NULL wparam. This occurs on the X driver.
17866         * XplatUIX11.cs: Set the wparam to NULL.
17867
17868 2005-01-13  Jackson Harper  <jackson@ximian.com>
17869
17870         * PictureBox.cs: Implement missing methods (except ToString, need
17871         to test that on windows) and events. When visibility is changed we
17872         need to redraw the image because the buffers are killed. When size
17873         is changed refresh if the sizemode needs it.
17874
17875 2005-01-13  Peter Bartok  <pbartok@novell.com>
17876
17877         * Control.cs (SelectNextControl): Was using wrong method to select
17878           a control
17879
17880 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17881
17882         * ComboBox.cs: fixes dropstyle
17883
17884 2005-01-13  Peter Bartok  <pbartok@novell.com>
17885
17886         * Form.cs:
17887           - Implemented Select() override
17888           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
17889           - Now sets keyboard focus on startup
17890         * Control.cs (SelectNextControl): Now properly handles directed=true
17891         * TextBoxBase.cs:
17892           - WndProc: Now passes tab key on to base if AcceptTabChar=false
17893           - Added (really bad) focus rectangle (mostly for testing)
17894         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
17895           to enforce redraw on focus changes
17896         * ContainerControl.cs:
17897           - Fixed detection of Shift-Tab key presses
17898           - Fixed traversal with arrow keys
17899         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
17900           gonna keep this or if it's complete yet
17901         
17902 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
17903
17904         * ComboBox.cs: missing properties, fixes
17905
17906 2005-01-13  Peter Bartok  <pbartok@novell.com>
17907
17908         * Panel.cs (ctor): Setting Selectable window style to off
17909         * Splitter.cs (ctor): Setting Selectable window style to off
17910         * GroupBox.cs (ctor): Setting Selectable window style to off
17911         * Label.cs (ctor): Setting Selectable window style to off
17912
17913 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
17914
17915         * UpDownBase.cs (InitTimer): If the timer has been already
17916         created, enable it.
17917
17918         Use a TextBox instead of a Label.
17919
17920 2005-01-12  Jackson Harper  <jackson@ximian.com>
17921
17922         * TreeView.cs: Refresh the tree after sorting the nodes. Always
17923         draw the connecting node lines (when ShowLines is true).
17924         * TreeNode.cs: The nodes index can now be updated. This is used
17925         when a node collection is sorted.
17926         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
17927         insert or an existing unsorted node collection can be sorted.
17928         
17929 2005-01-12  Peter Bartok  <pbartok@novell.com>
17930
17931         * ContainerControl.cs: Implemented ProcessDialogKeys()
17932
17933 2005-01-12  Peter Bartok  <pbartok@novell.com>
17934
17935         * Control.cs:
17936           - Implemented SelectNextControl() method
17937           - Several focus related bug fixes
17938           - Fixed Docking calculations to match MS documentation and
17939             behaviour
17940
17941 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
17942
17943         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
17944         bug fixes
17945
17946 2005-01-12  Peter Bartok  <pbartok@novell.com>
17947
17948         * Control.cs:
17949           - Fixed broken Contains() method
17950           - Implemented GetNextControl() method. Finally. This is the pre-
17951             requisite for focus handling.
17952
17953 2005-01-12  Peter Bartok  <pbartok@novell.com>
17954
17955         * OSXStrucs.cs: Added
17956
17957 2005-01-12  Peter Bartok  <pbartok@novell.com>
17958
17959         * XplatUIWin32.cs:
17960           - Removed PeekMessageFlags
17961           - Implemented SetWindowStyle() method
17962         * XplatUIStructs.cs: Added PeekMessageFlags
17963         * X11Structs: Added missing border_width field to XWindowChanges struct
17964         * XplatUIX11.cs:
17965           - PeekMessage: Now throws exception if flags which are not yet
17966             supported are passed
17967           - Implemented SetWindowStyle() method
17968           - Fixed SetZOrder to handle AfterHwnd properly
17969         * XplatUI.cs: Added SetWindowStyle() method
17970         * XplatUIDriver.cs: Added SetWindowStyle() abstract
17971         * Control.cs:
17972           - Implemented UpdateStyles() method
17973           - Implemented UpdateZOrder() method
17974         * XplatUIOSX.cs: Added SetWindowStyle() stub
17975
17976 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
17977
17978         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
17979         button mouse).
17980
17981
17982 2005-01-11  Jackson Harper  <jackson@ximian.com>
17983
17984         * TreeView.cs: Still need to draw lines to siblings even if out of
17985         the current node is out of the clip.
17986
17987 2005-01-11  Jackson Harper  <jackson@ximian.com>
17988
17989         * TreeView.cs: When setting the hbar/vbar/grip position use
17990         SetBounds so that perform layout is only called once. Also suspend
17991         and resume layout so layout is only done once for all controls.
17992         - Removed some debug fluff
17993         * SizeGrip.cs: Call base implmentation in overriding methods.
17994         - When visibility is changed the drawing buffers are killed so we
17995         need to redraw.
17996
17997 2005-01-11  Jackson Harper  <jackson@ximian.com>
17998
17999         * TreeView.cs: Calculate the open node count while drawing. This
18000         saves us an entire tree traversal for every paint operation. Use
18001         a member var for the open node count so less vars are passed around.
18002
18003 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
18004
18005         * MonthCalendar.cs:
18006         - fixed selection to use mousemove, not mouse polling on timer
18007         * ThemeWin32Classic.cs
18008         - removed redundant unused variable "no_more_content"
18009         
18010 2005-01-11  Peter Bartok  <pbartok@novell.com>
18011
18012         * XplatUIX11.cs (DoEvents): Needs to return when no more events
18013           are pending, so it now calls PeekMessage instead of GetMessage;
18014           implemented a incomplete version of PeekMessage
18015         
18016 2005-01-11  Peter Bartok  <pbartok@novell.com>
18017
18018         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
18019           I18n issues
18020         * TextBoxBase.cs: Added sending of TextChanged event
18021
18022 2005-01-10  Jackson Harper  <jackson@ximian.com>
18023
18024         * TreeView.cs: Try not to draw outside the clipping rectangle on
18025         each node element.
18026
18027 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
18028
18029         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
18030
18031 2005-01-10  Jackson Harper  <jackson@ximian.com>
18032
18033         * TreeView.cs:
18034         - Implement fast scrolling. Now only the newly
18035         exposed nodes are drawn and the old image is moved using the
18036         XplatUI::ScrollWindow method.
18037         - Factor in height of nodes when calculating whether or not the
18038         node is in the clipping rect.
18039
18040 2005-01-10  Jackson Harper  <jackson@ximian.com>
18041
18042         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
18043
18044 2005-01-10  Peter Bartok  <pbartok@novell.com>
18045
18046         * Application.cs: Added temporary hack to resolve all our resize
18047           required issues on startup. This will get fixed properly at
18048           some point in the future
18049
18050 2005-01-10  Jackson Harper  <jackson@ximian.com>
18051
18052         * SizeGrip.cs: New internal class that is used as a sizing
18053         grip control...hence the name.
18054
18055 2005-01-10  Peter Bartok  <pbartok@novell.com>
18056
18057         * Control.cs: Implemented proper TabIndex handling, now assigning
18058           a tabindex when a control is added to a container
18059         * GroupBox.cs (ctor): Now sets the Container style bit, required
18060           for Control.GetNextControl()
18061
18062 2005-01-09  Jackson Harper  <jackson@ximian.com>
18063
18064         * TextBoxBase.cs: Clear window when scrolling (fixes build).
18065
18066 2005-01-09  Peter Bartok <pbartok@novell.com>
18067
18068         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18069           XplatUIX11.cs: Added ability to control ScrollWindow expose and
18070           an overload for ScrollWindow to allow only scrolling a rectangle
18071
18072 2005-01-09  Peter Bartok <pbartok@novell.com>
18073
18074         * Form.cs:
18075           - Implemented SetDesktopBounds method
18076           - Implemented SetDesktopLocation method
18077
18078 2005-01-08  Jackson Harper  <jackson@ximian.com>
18079
18080         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
18081         the node count has changed, this removes to VScroll::Refresh calls
18082         when drawing.
18083
18084 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
18085
18086         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
18087
18088 2005-01-07  Jackson Harper  <jackson@ximian.com>
18089
18090         * TreeNode.cs: Just update the single node when it is
18091         checked. Don't refresh after toggling, the Expand/Collapse already
18092         handles this.
18093         * TreeView.cs: Respect clipping a little more when drawing. Try
18094         not to redraw things that don't need to be redrawn. Just hide the
18095         scrollbars when they are no longer needed instead of removing
18096         them, so they don't have to be created again and again.
18097         
18098 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
18099
18100         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
18101         coordinates to window space to place the caret properly, FIXED.
18102         Implement GetWindowState & SetWindowState
18103
18104 2005-01-06  Peter Bartok <pbartok@novell.com>
18105
18106         * Form.cs:
18107           - Implemented ClientSize property
18108           - Implemented DesktopBounds property
18109           - Implemented DesktopLocation property
18110           - Implemented IsRestrictedWindow property
18111           - Implemented Size property
18112           - Implemented TopLevel property
18113           - Implemented FormWindowState property
18114         * Control.cs:
18115           - Implemented GetTopLevel() method
18116           - Implemented SetTopLevel() method
18117         * X11Structs.cs (Atom):
18118           - Added AnyPropertyType definition
18119           - Added MapState definiton and updated XWindowAttribute struct
18120         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
18121         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
18122         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
18123         * XplatUIWin32.cs:
18124           - Implemented GetWindowState() and SetWindowState() methods
18125           - Fixed Win32GetWindowLong return type
18126         * XplatUIX11.cs:
18127           - Introduced central function for sending NET_WM messages
18128           - Implemented GetWindowState() and SetWindowState() methods
18129         * TextBoxBase.cs (set_Lines):
18130           - Now uses Foreground color for text added via Text property (Duh!)
18131           - Added code to remember programmatically requested size (fixes
18132             behaviour when Multiline is set after Size)
18133           - Added AutoSize logic
18134
18135 2005-01-06  Jackson Harper  <jackson@ximian.com>
18136
18137         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
18138
18139 2005-01-06  Jackson Harper  <jackson@ximian.com>
18140
18141         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
18142         set to less then 0.
18143
18144 2005-01-06  Jackson Harper  <jackson@ximian.com>
18145
18146         * ScrollableControl.cs: Lazy init the scrollbars.
18147         
18148 2005-01-06  Jackson Harper  <jackson@ximian.com>
18149
18150         * Theme.cs: Speed up getting pens and solid brushes, by using
18151         their ARGB as a hash instead of tostring and not calling Contains.
18152
18153 2005-01-06  Peter Bartok <pbartok@novell.com>
18154
18155         * Form.cs:
18156           - Implemented OnActivated and OnDeactivate event trigger
18157           - Implemented Activate() method
18158           - Fixed ShowDialog() to activate the form that was active before
18159             the dialog was shown
18160         * XplatUIX11.cs:
18161           - Added global active_window var that tracks the currently active
18162             X11 window
18163           - Now always grabs Property changes from the root window to always
18164             catch changes on the active window property
18165           - Added code to PropertyNotify handler to send Active/Inactive
18166             messages when state changes. This puts X11 and Win32 en par on
18167             WM_ACTIVATE notifications (except for double notifications when
18168             the user clicks away from our modal window to another one of our
18169             windows)
18170
18171 2005-01-05  Jackson Harper  <jackson@ximian.com>
18172
18173         * ImageList.cs: Implment ctor
18174
18175 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
18176
18177         * XplatUIOSX.cs: Implement Activate/SetTopmost
18178
18179 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
18180
18181         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
18182
18183 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
18184
18185         * XplatUIOSX.cs: Implement GetActive/SetFocus.
18186
18187 2005-01-05  Peter Bartok <pbartok@novell.com>
18188
18189         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
18190           XplatUIOSX.cs: Added GetActive method to return the currently
18191           active window for the application (or null, if none is active)
18192         * Form.cs:
18193           - Implemented ActiveForm
18194           - Commented out owner assignment for modal dialogs (causes problems
18195             on Win32, since the owner will be disabled)
18196           - Reworked some Active/Focus handling (still incomplete)
18197         * CommonDialog.cs: Commented out owner assignment for modal dialogs
18198           (causes problems on Win32, since the owner will be disabled)
18199         * IWin32Window: Added ComVisible attribute
18200
18201 2005-01-05  Peter Bartok <pbartok@novell.com>
18202
18203         * ToolTip.cs (WndProc): Enable setting focus now that we have the
18204           required XplatUI functions.
18205
18206 2005-01-05  Peter Bartok <pbartok@novell.com>
18207
18208         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
18209           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
18210           to implement focus and activation handling; still incomplete and
18211           with debug output
18212
18213 2005-01-04  Peter Bartok <pbartok@novell.com>
18214
18215         * TextBoxBase.cs: Changed access level for Document property to
18216           match switch to internal for TextControl
18217
18218 2005-01-04  Peter Bartok <pbartok@novell.com>
18219
18220         * AccessibleObject: Added ComVisible attribute
18221
18222 2005-01-04  Jackson Harper  <jackson@ximian.com>
18223
18224         * X11Keyboard.cs: Remove unneeded var.
18225
18226 2005-01-04  Jackson Harper  <jackson@ximian.com>
18227
18228         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
18229         but PAINT.
18230         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
18231         ClientMessage. This makes apps exit cleanly (more often).
18232         
18233 2005-01-04  Jackson Harper  <jackson@ximian.com>
18234
18235         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
18236         handling focus, return correct colors and fonts,
18237         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
18238         handle selection, horizontal scrolling, and mouse interaction.
18239
18240 2005-01-04  Peter Bartok <pbartok@novell.com>
18241
18242         * ICommandExecutor.cs: Added
18243         * IDataGridColumnStyleEditingNotificationService.cs: Added
18244         * IFeatureSupport.cs: Added
18245         * IFileReaderService.cs: Added
18246         * IDataObject.cs: Added ComVisible attribute
18247         * AmbientProperties.cs: Added
18248         * BaseCollection.cs: Added missing attributes
18249         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
18250         * BaseCollection.cs: Added missing attributes
18251         * Binding.cs: Added TypeConverter attribute
18252         * BindingContext.cs: Added DefaultEvent attribute
18253         * BindingsCollection.cs: Added DefaultEvent attribute
18254         * Button.cs: Added DefaultValue attribute
18255         * DragEventArgs.cs: Added ComVisible attribute
18256         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
18257         * KeyEventArgs.cs: Added ComVisible attribute
18258         * KeyPressEventArgs.cs: Added ComVisible attribute
18259         * MouseEventArgs.cs: Added ComVisible attribute
18260         * NavigateEventArgs.cs: Added
18261         * NavigateEventHandler.cs: Added
18262         * FeatureSupport.cs: Added
18263         * OSFeature.cs: Added
18264         * Theme.cs: Added abstract Version property to support OSFeature
18265         * ThemeWin32Classic.cs: Added Version property to
18266           support OSFeature.Themes
18267         * ProgressBar.cs: Removed OnPaintBackground override, not required since
18268           the proper styles to avoid background drawing are set, also doesn't
18269           match MS signature
18270         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
18271         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
18272         * ScrollEventArgs.cs: Added ComVisible attribute
18273         * SplitterEventArgs.cs: Added ComVisible attribute
18274         * AccessibleSelection.cs: Added Flags attribute
18275         * Appearance.cs: Added ComVisible attribute
18276         * Border3DSide.cs: Added ComVisible attribute
18277         * Border3DStyle.cs: Added ComVisible attribute
18278         * BorderStyle.cs: Added ComVisible attribute
18279         * DragAction.cs: Added ComVisible attribute
18280         * ErrorBlinkStyle.cs: Added
18281         * ScrollEventType.cs: Added ComVisible attribute
18282         * AnchorStyles.cs: Added Editor attribute
18283         * DockStyle.cs: Added Editor attribute
18284         * HorizontalAlignment.cs: Added ComVisible attribute
18285         * HelpEventArgs.cs: Added ComVisible attribute
18286         * PaintEventArgs.cs: Added IDisposable
18287
18288 2005-01-04  Peter Bartok <pbartok@novell.com>
18289
18290         * TextControl.cs: Switched Line, LineTag and Document classes to
18291           internal
18292
18293 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
18294
18295         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
18296         Simple mode, fixes, IntegralHeight, etc.
18297
18298 2005-01-04  Peter Bartok <pbartok@novell.com>
18299
18300         * TextBoxBase.cs: Using proper font variable now
18301
18302 2005-01-04  Peter Bartok <pbartok@novell.com>
18303
18304         * Form.cs (ShowDialog): Set parent to owner, if provided
18305         * GroupBox.cs: Removed unused vars
18306         * TextControl.cs:
18307           - Added GetHashCode() for Document and LineTag classes
18308           - Removed unused variables
18309           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
18310             to allow translation between continuous char position and line/pos
18311         * CheckBox.cs: Removed vars that are provided by base class
18312         * RadioButton.cs: Removed vars that are provided by base class, added
18313           new keyword where required
18314         * LinkLabel.cs: Added new keyword where required
18315         * Control.cs (WndProc): Removed unused variable
18316         * TextBoxBase.cs:
18317           - Finished SelectionLength property
18318           - Implemented SelectionStart property
18319           - Implemented Text property
18320           - Removed unused vars
18321         * MessageBox.cs: Added new keyword where required
18322         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
18323           WndProc signature
18324         * MenuAPI.cs: Added new keyword where required
18325         * ButtonBase.cs: Removed vars that are provided by base class, added
18326           new keyword where required
18327         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
18328           argument to double, to allow compiling with csc 2.0 (Atsushi ran
18329           into this)
18330         * Application.cs (Run): Now triggers the ThreadExit event
18331         * CommonDialog.cs: Added new keyword where required; now properly sets
18332           parent (owner) for dialog
18333         * XplatUIX11.cs: Commented out unused vars
18334         * StatusBar.cs: Fixed signature for Text property
18335         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
18336
18337 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
18338
18339         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
18340         TrackBar.cs, MonthCalendar.cs: remove unused vars
18341
18342 2005-01-03  Jackson Harper  <jackson@ximian.com>
18343
18344         * ThemeWin32Classic.cs:
18345         * X11Keyboard.cs: Remove unused vars.
18346
18347 2005-01-03  Peter Bartok  <pbartok@novell.com>
18348
18349         * TextBox.cs:
18350           - set_Text: Tied into TextControl
18351           - set_TextAlignment: Tied into TextControl
18352         * TextControl.cs:
18353           - Added alignment properties and implemented alignment handling
18354             and drawing (still has a bug, not generating proper expose events)
18355           - Added new Line() constructor to allow passing the line alignment
18356           - Fixed selection setting, properly handling end<start now
18357           - Added aligment considerations to RecalculateDocument()
18358         * TextBoxBase.cs:
18359           - Now properly enforces control height for single line controls
18360           - Added support for CharacterCasing
18361           - Added IsInputKey override
18362           - Fixed Keys.Enter logic
18363           - Added SetBoundsCore override
18364           - Fixed mouse selection handling
18365
18366 2005-01-03  Jackson Harper  <jackson@ximian.com>
18367
18368         * TreeView.cs:
18369           - Collapse and uncheck all nodes when CheckBoxes is disabled.
18370           - Checkboxes are always aligned to the bottom of the node,
18371           regardless of item height.
18372           - Use the node bounds to draw the text so we can center it when
18373           the item height is greater then the font height.
18374           - Node::Bounds are only the text part of the node.
18375         * TreeNode.cs: New method to combine collapsing and unchecking all
18376           nodes recursively.
18377
18378 2005-01-02  Jackson Harper  <jackson@ximian.com>
18379
18380         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
18381         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
18382         tree when a check is changed. TODO: Only refresh the checked node.
18383
18384 2004-12-30  Jackson Harper  <jackson@ximian.com>
18385
18386         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
18387         * TreeNode.cs: When collapsing make sure to never collapse the
18388         root node.
18389
18390 2004-12-29  Jackson Harper  <jackson@ximian.com>
18391
18392         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
18393         
18394 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
18395
18396         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
18397
18398 2004-12-28  Peter Bartok  <pbartok@novell.com>
18399
18400         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
18401           not yet assigned
18402
18403 2004-12-28  Peter Bartok  <pbartok@novell.com>
18404
18405         * Control.cs (WndProc): Added WM_HELP handler, now generates
18406           HelpRequested event
18407         * Form.cs: Added HelpButton property and required support code
18408         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
18409
18410 2004-12-28  Peter Bartok  <pbartok@novell.com>
18411
18412         * CommonDialog.cs:
18413           - Made DialogForm.owner variable internal
18414           - Added check to ensure owner form is set before setting
18415             owner properties in CreateParams
18416
18417 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
18418
18419         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
18420           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
18421           GetCursorPos.  Fix major visibility issues.  Rework the windowing
18422           system to support borderless/titleless windows (implements menus).
18423           Fix GetWindowPos.  Implement initial background color support for
18424           views.
18425
18426 2004-12-28  Peter Bartok  <pbartok@novell.com>
18427
18428         * Form.cs (get_CreateParams): Make sure we have an owner before using
18429           the owner variable. Implement proper default if no owner exists
18430
18431 2004-12-28  Peter Bartok  <pbartok@novell.com>
18432
18433         * In preparation for making Managed.Windows.Forms the default build target
18434           for System.Windows.Forms, the following stubbed files were added.
18435           Dialogs are currently being implemented by contributors and are only
18436           short-term place holders.
18437         * ColorDialog.cs: Initial check-in (minmal stub)
18438         * DataGrid.cs: Initial check-in (minimal stub)
18439         * DataGridLineStyle.cs: Initial check-in (minimal stub)
18440         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
18441         * DataGridTableStyle.cs: Initial check-in (minimal stub)
18442         * FontDialog.cs: Initial check-in (minimal stub)
18443         * FileDialog.cs: Initial check-in (minimal stub)
18444         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
18445         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
18446         * OpenFileDialog: Initial check-in (minimal stub)
18447         * IComponentEditorPageSite.cs: Initial check-in
18448         * Splitter.cs: Initial check-in (for Jackson)
18449         * SplitterEventArgs.cs: Initial check-in (for Jackson)
18450         * SplitterEventHandler.cs: Initial check-in (for Jackson)
18451         * TextBox.cs: Initial check-in; still needs some wiring to
18452           TextControl backend
18453         * Form.cs: Implemented ControlBox property
18454         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
18455         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
18456         * TextControl.cs: Added selection functionality; added todo header
18457         * TextBoxBase.cs:
18458           - Implemented Lines property
18459           - Implemented TextHeight property
18460           - Implemented SelectedText property
18461           - Implemented SelectionLength property
18462           - Implemented SelectAll method
18463           - Implemented ToString method
18464           - Removed and cleaned up some debug code
18465           - Implemented (still buggy) mouse text selection
18466
18467 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
18468
18469         * ComboBox.cs: Complete DropDownList implementation, fixes.
18470
18471 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
18472
18473         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
18474         * ComboBoxStyle.cs: ComboBoxStyle enum
18475         * ComboBox.cs: Initial work on ComboBox control
18476
18477 2004-12-21  Peter Bartok  <pbartok@novell.com>
18478
18479         * Control.cs (ctor, CreateParams): Moved setting of is_visible
18480           forward so that anything that creates a window gets the default,
18481           also no longer uses Visible property in CreateParams to avoid
18482           walking up the parent chain and possibly get the wrong visible
18483           status. Fixed IsVisible to no longer walk up to the parent.
18484
18485 2004-12-21  Peter Bartok  <pbartok@novell.com>
18486
18487         * Form.cs (ShowDialog): Unset modality for the proper window
18488  
18489 2004-12-20  Peter Bartok  <pbartok@novell.com>
18490
18491         * CommonDialog.cs: Initial check-in
18492
18493 2004-12-20  Peter Bartok  <pbartok@novell.com>
18494
18495         * Control.cs (Visible): Now uses the parent window instead of the
18496           client area window for the property
18497
18498         * Form.cs
18499           - ShowDialog(): Now uses the proper window for modality
18500           - The default visibility state for the form parent is now false. This
18501             will prevent the user from seeing all the changes to the form and
18502             its controls before the application hits Application.Run()
18503           - Removed some stale commented out code
18504
18505         * NativeWindow.cs:
18506           - Added FindWindow() method to have a method to check for existence
18507             of a window handle
18508           - Added ability to override default exception handling (for example
18509             when debugging with VS.Net; to do this the ExternalExceptionHandler
18510             define must be set
18511           - Removed some useless debug output
18512
18513         * XplatUIX11.cs:
18514           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
18515             not working as expected
18516           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
18517             property to allow switching back to the modal window if focus is
18518             given to another one of our windows (Application Modal)
18519           - Now only sets override_redirect if we create a window
18520             without WS_CAPTION
18521           - Moved EventMask selection before mapping of newly created window
18522             so we can catch the map event as well
18523           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
18524           - Added various Atom related DllImports
18525           - Implemented Exit() method
18526           - .ctor() : No longer shows window if WS_VISIBLE is not defined
18527             in the CreateParams
18528
18529         * MessageBox.cs: Now properly deals with the FormParent window by
18530           providing an override the FormParent CreateParams property to
18531           set as POPUP instead of OVERLAPPED window.
18532
18533 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
18534
18535         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
18536         Minor code cleanup.
18537
18538 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
18539         
18540         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
18541
18542 2004-12-18  Peter Bartok  <pbartok@novell.com>
18543
18544         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
18545           implementing SetModal() method
18546
18547 2004-12-18  Peter Bartok  <pbartok@novell.com>
18548
18549         * X11Structs.cs (XGCValues): Fixed type of function element
18550         * XplatUI.cs: Added ScrollWindow() method
18551         * XplatUIDriver.cs: Added ScrollWindow() abstract
18552         * XplatUIWin32.cs: Implemented ScrollWindow() method
18553         * XplatUIX11.cs: Implemented ScrollWindow() method
18554         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
18555
18556 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
18557
18558         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
18559         Some more keyboard support (INCOMPLETE)
18560
18561 2004-12-17  Peter Bartok  <pbartok@novell.com>
18562
18563         * TextControl.cs:
18564         - Added color attribute to line tags.
18565         - Added color argument to all functions dealing with tags
18566         - Added color argument support to various functions
18567         - Fixed miss-calculation of baseline/shift in certain circumstances
18568
18569         * TextBoxBase.cs: Added new color option to test code
18570
18571 2004-12-17  Jackson Harper  <jackson@ximian.com>
18572
18573         * TreeNode.cs:
18574         * MonthCalendar.cs: Signature fixes
18575
18576 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
18577
18578         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
18579         keyboard event moved it.  Create a new graphics context for each paint resolves this
18580
18581 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
18582
18583         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
18584         Make caret exist and go blink blink.  Initial keyboard support.
18585         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
18586         works.
18587
18588 2004-12-17  Jackson Harper  <jackson@ximian.com>
18589
18590         * XplatUIStructs.cs: Updated set of virtual keycodes.
18591         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
18592
18593 2004-12-17  Jackson Harper  <jackson@ximian.com>
18594
18595         * XplatUIX11.cs: Prune old keyboard code.
18596
18597 2004-12-17  Jackson Harper  <jackson@ximian.com>
18598
18599         * XplatUIX11.cs: When generating mouse wparams get the modifier
18600         keys from the ModifierKeys property.
18601
18602 2004-12-17  Jackson Harper  <jackson@ximian.com>
18603
18604         * X11Keyboard.cs: Send up/down input when generating
18605         messages. Remove some unused vars.
18606
18607 2004-12-17  Jackson Harper  <jackson@ximian.com>
18608
18609         * TabControl.cs:
18610         * TreeView.cs: get rid of warnings.
18611
18612 2004-12-17  Jackson Harper  <jackson@ximian.com>
18613
18614         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
18615
18616 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
18617
18618         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
18619           CheckedListBox.cs: Implementation
18620
18621 2004-12-17  Peter Bartok  <pbartok@novell.com>
18622
18623         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
18624
18625 2004-12-16  Peter Bartok  <pbartok@novell.com>
18626
18627         * TextControl.cs:
18628           - InsertCharAtCaret(): Fixed start pos fixup
18629           - CaretLine_get: No longer derives the line from the tag, the tag
18630             could be stale if lines in the document have been added or deleted
18631           - RebalanceAfterDelete(): Fixed bug in balancing code
18632           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
18633           - Line.Streamline(): Now can also elminate leading empty tags
18634           - DumpTree(): Added a few more tests and prevented exception on
18635             uninitialized data
18636           - Added Debug section for Combining lines
18637           - Delete(): Now copies all remaining properties of a line
18638           
18639         * TextBoxBase.cs:
18640           - Left mousebutton now sets the caret (and middle button still acts
18641             as formatting tester, which must go away soon)
18642           - Added Debug section for Deleting/Combining lines
18643           - Fixed calculations for UpdateView after Combining lines
18644
18645 2004-12-16  Peter Bartok  <pbartok@novell.com>
18646
18647         * TextControl.cs: Now properly aligns text on a baseline, using the
18648           new XplatUI.GetFontMetrics() method. Simplified several calculations
18649         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
18650           defined
18651
18652 2004-12-16  Peter Bartok  <pbartok@novell.com>
18653
18654         * XplatUI.cs: Added GetFontMetrics() method
18655         * XplatUIDriver.cs: Added GetFontMetrics() abstract
18656         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
18657           into libgdiplus, our private GetFontMetrics function
18658         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
18659         * XplatUIWin32.cs: Implemented GetFontMetrics() method
18660
18661 2004-12-16  Jackson Harper  <jackson@ximain.com>
18662
18663         * XplatUIStruct.cs: Add enum for dead keys
18664         * X11Keyboard.cs: Map and unmap dead keys.
18665
18666 2004-12-16  Jackson Harper  <jackson@ximian.com>
18667
18668         * X11Keyboard.cs: Detect and use the num lock mask.
18669
18670 2004-12-16  Peter Bartok  <pbartok@novell.com>
18671
18672         * Control.cs (CreateGraphics): Added check to make sure the
18673           handle of the window exists before calling Graphics.FromHwnd()
18674
18675 2004-12-16  Peter Bartok  <pbartok@novell.com>
18676
18677         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
18678           contains a lot of code that's not supposed to be there for the
18679           real thing, but required for developing/testing the textbox
18680           backend.
18681
18682 2004-12-16  Peter Bartok  <pbartok@novell.com>
18683
18684         * TextControl.cs:
18685         - Fixed Streamline method
18686         - Added FindTag method to Line
18687         - Added DumpTree method for debugging
18688         - Added DecrementLines() method for deleting lines
18689         - Fixed UpdateView to update the cursor to end-of-line on single-line
18690           updates
18691         - Added PositionCaret() method
18692         - Fixed MoveCaret(LineDown) to move into the last line, too
18693         - Added InsertChar overload
18694         - Fixed InsertChar tag offset calculations
18695         - Added DeleteChar() method
18696         - Added Combine() method for folding lines
18697         - Fixed Delete() method, no longer allocates wasted Line object and
18698           now copies all properties when swapping nodes
18699         - Delete() method now updates document line counter
18700
18701 2004-12-15  Jackson Harper  <jackson@ximian.com>
18702
18703         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
18704         * X11Keyboard.cs: Expose the currently selected modifier keys
18705         through a property.
18706
18707 2004-12-15  Peter Bartok  <pbartok@novell.com>
18708
18709         * TextControl.cs: Initial check-in. Still incomplete
18710
18711 2004-12-15  Jackson Harper  <jackson@ximian.com>
18712
18713         * TreeNode.cs:
18714         * TreeView.cs: Fix build on csc (second time today ;-))
18715
18716 2004-12-15  Jackson Harper  <jackson@ximian.com>
18717
18718         * TreeView.cs: Store the treenodes plus/minus box bounds when it
18719         is calculated and use this for click testing.
18720         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
18721
18722 2004-12-15  Jackson Harper  <jackson@ximian.com>
18723
18724         * TreeView.cs: Pass the nodes image index to the image list when
18725         drawing that image.
18726
18727 2004-12-15  Jackson Harper  <jackson@ximian.com>
18728
18729         * X11Keyboard.cs: Set messages hwnd.
18730         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
18731         post_message calls.
18732
18733 2004-12-15  Jackson Harper  <jackson@ximian.com>
18734
18735         * X11Keyboard.cs: Fix to compile with csc.
18736         
18737 2004-12-15  Jackson Harper  <jackson@ximian.com>
18738
18739         * X11Structs.cs: Add key mask values
18740         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
18741         * X11Keyboard.cs: New file - Extrapolates and interpolates key
18742         down/up foo into WM_CHAR foo
18743         * KeyboardLayouts.cs: Common keyboard layouts
18744         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
18745         post messages into the main queue.
18746
18747 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
18748
18749         * Button.cs: implement ProcessMnemonic
18750         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
18751           brushes everytime
18752         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
18753         * ButtonBase.cs: Show HotkeyPrefix (not the &)
18754
18755 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
18756         
18757         * MonthCalendar.cs: Implemented click-hold for next/previous month
18758           and date selection
18759           
18760 2004-12-11  Peter Bartok  <pbartok@novell.com>
18761
18762         * X11Structs.cs:
18763           - Added XKeyboardState (moved from XplatUIX11.cs)
18764           - Added XCreateGC related enums and structures
18765           - Added GXFunction for XSetFunction
18766
18767         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
18768
18769         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
18770           CaretVisible() calls
18771
18772         * ToolTip.cs: Added code to prevent stealing focus from app windows
18773
18774         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
18775           DestroyCaret, SetCaretPos and CaretVisible)
18776
18777         * XplatUIX11.cs:
18778           - Added implementation for caret functions
18779           - Moved hover variables into a struct, to make it a bit easier
18780             on the eyes and to debug
18781           - Removed XKeyboardState (moved to XplatUIX11.cs)
18782           - Moved Keyboard properties into the properties region
18783
18784         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
18785           call to get a graphics context for our control
18786
18787         * XplatUIOSX.cs: Added empty overrides for the new caret functions
18788
18789         * TreeView.cs: Fixed bug. No matter what color was set it would always
18790           return SystemColors.Window
18791
18792         * XplatUIWin32.cs: Implemented caret overrides
18793
18794 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
18795
18796         * ListBox.cs: fire events, implement missing methods and properties,
18797         sorting.
18798
18799 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
18800
18801         * MonthCalendar.cs: invalidation bug fixing
18802         * ThemeWin32Classic.cs: paint fixing
18803
18804 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
18805
18806         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
18807         prepare the CGContextRef there now.
18808
18809 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
18810
18811         * MonthCalendar.cs:
18812           - optimisationL only invalidate areas that have changed
18813         * ThemeWin32Classic.cs:
18814           - only paint parts that intersect with clip_area
18815
18816 2004-12-09  Peter Bartok  <pbartok@novell.com>
18817
18818         * Application.cs: Undid changes from r37004 which cause problems
18819         on X11
18820
18821 2004-12-09  Ravindra  <rkumar@novell.com>
18822
18823         * ToolBar.cs: Added support for displaying ContextMenu
18824         attached to a button on ToolBar.
18825         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
18826         property.
18827
18828 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
18829
18830         * Label.cs: autosize works in text change and removes unnecessary
18831         invalidate
18832
18833 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
18834
18835         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
18836         remove warnings
18837
18838 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
18839
18840         * XplatUIOSX.cs: Added mouse move/click/grab support
18841         Remove some debugging WriteLines not needed anymore.
18842         Add window resizing/positioning.
18843         Fix visibility on reparenting.
18844
18845 2004-12-08  Peter Bartok  <pbartok@novell.com>
18846
18847         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
18848
18849 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
18850
18851         * XplatUIOSX.cs: Initial checkin
18852         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
18853
18854 2004-12-03  Ravindra <rkumar@novell.com>
18855
18856         * ListView.cs: Added some keybindings and fixed scrolling.
18857         ScrollBars listen to ValueChanged event instead of Scroll
18858         Event. This would let us take care of all changes being
18859         done in the scrollbars' values programmatically or manually.
18860         * ListView.cs (CanMultiselect): Added a check for shift key.
18861         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
18862         * ListViewItem.cs (Clone): Fixed. We need to make a copy
18863         of ListViewSubItemCollection as well.
18864
18865 2004-12-06  Peter Bartok <pbartok@novell.com>
18866
18867         * Control.cs (Parent): Added check and exception to prevent
18868         circular parenting
18869
18870 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
18871
18872         * ListBox.cs: implemented clipping, selection single and multiple,
18873         bug fixing
18874
18875 2004-12-03  Ravindra <rkumar@novell.com>
18876
18877         * ListView.cs (ListView_KeyDown):
18878         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
18879         when CTRL key is pressed.
18880         * ListViewItem.cs (Selected): Fixed setting the property.
18881
18882 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18883
18884         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
18885
18886         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
18887         MinimizeBox, ShowInTaskbar, TopMost properties.
18888
18889         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
18890         will be implemented).
18891
18892 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
18893
18894         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
18895
18896         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
18897         tests.
18898         
18899         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
18900         
18901         * TreeView.cs: BackColor is Colors.Window.
18902
18903 2004-12-01  Jackson Harper  <jackson@ximian.com>
18904
18905         * TreeView.cs: When resizing the tree if the user is making it
18906         smaller we don't get expose events, so we need to handle adding
18907         the horizontal scrollbar in the size changed handler as well as
18908         the expose handler.
18909
18910 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
18911
18912         * DrawItemState.cs: fixes wrong enum values
18913
18914 2004-12-01  Jackson Harper  <jackson@ximian.com>
18915
18916         * TreeView.cs: Resize the hbar as well as the vbar on resize.
18917
18918 2004-12-01  Jackson Harper  <jackson@ximian.com>
18919
18920         * NodeLabelEditEventArgs.cs:
18921         * NodeLabelEditEventHandler.cs:
18922         * OpenTreeNodeEnumerator.cs:
18923         * TreeNode.cs:
18924         * TreeNodeCollection.cs:
18925         * TreeView.cs:
18926         * TreeViewAction.cs:
18927         * TreeViewCancelEventArgs.cs:
18928         * TreeViewCancelEventHandler.cs:
18929         * TreeViewEventArgs.cs:
18930         * TreeViewEventHandler.cs: Initial implementation.
18931
18932 2004-12-01  Ravindra <rkumar@novell.com>
18933
18934         * ListView.cs (CalculateListView): Fixed scrolling related
18935         calculations. Also, removed some debug statements from other
18936         places.
18937         * ListViewItem.cs: Changed access to 'selected' instance variable
18938         from private to internal.
18939         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
18940
18941 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
18942
18943         * ThemeWin32Classic.cs: remove cache of brush and pens for
18944         specific controls and use the global system, fixes scrollbutton
18945         bugs (for small sizes, disabled, etc)
18946         
18947         * ScrollBar.cs: does not show the thumb for very small controls
18948         (as MS) and allow smaller buttons that the regular size
18949
18950 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
18951
18952         * UpDownBase.cs: Add abstract methods for the interface.
18953         Add new virtual methods (need to be hooked up to TextEntry when it
18954         exists).
18955         Add override methods for most features.
18956         Computes the size, forces the height of the text entry.
18957
18958         * NumericUpDown.cs: Put here the current testing code.
18959
18960         * Set eol-style property on all files that do not have mixed line
18961         endings, to minimize the future problems.  There are still a few
18962         files with mixed endings, and someone should choose whether they
18963         want to move it or not.
18964
18965 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
18966
18967         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
18968         System.Colors
18969         
18970 2004-11-30  Ravindra <rkumar@novell.com>
18971
18972         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
18973         drawing and replaced use of SystemColors by theme colors.
18974         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
18975         * ListView.cs (ListViewItemCollection.Add): Throw exception when
18976         same ListViewItem is being added more than once.
18977
18978 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
18979
18980         * MonthCalendar.cs:
18981           - ControlStyles love to make the control not flicker
18982           
18983 2004-11-30  Peter Bartok  <pbartok@novell.com>
18984
18985         * CharacterCasing.cs: Added
18986
18987 2004-11-29  Peter Bartok  <pbartok@novell.com>
18988
18989         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18990           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
18991           I am removing these files as they conflict with already completed
18992           work. While it is fantastic to get contributions to MWF, I
18993           respectfully ask that everyone please coordinate their contributions
18994           through mono-winforms-list or #mono-winforms at this time. We're
18995           explicitly avoiding stubbing and don't want controls that don't have
18996           their basic functionality implemented in svn. Please also see
18997           http://www.mono-project.com/contributing/winforms.html
18998
18999
19000 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
19001
19002         * Application.cs (ModalRun): Don't hang after exit.
19003
19004         * Theme.cs: New TreeViewDefaultSize property.
19005
19006         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
19007         with less hardcoded SystemColors constant.
19008         Implemented TreeViewDefaultSize.
19009
19010         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
19011         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
19012
19013
19014 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
19015
19016         * MonthCalendar.cs:
19017           - Fix NextMonthDate and PrevMonthDate click moving calendar
19018
19019 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
19020
19021         * MonthCalendar.cs:
19022           - Fix usage of ScrollChange Property when scrolling months
19023
19024 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
19025
19026         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
19027          - Fixes menu destroying
19028          - Support adding and removing items on already created menus
19029
19030 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
19031
19032         * MonthCalendar.cs:
19033           - Re-worked all bolded dates handling to match win32
19034         * ThemeWin32Classic.cs:
19035           - Fixed rendering with bolded dates
19036
19037 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
19038
19039         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
19040         - Horizontal scroolbar
19041         - Multicolumn
19042         - Fixes
19043
19044
19045 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
19046
19047         * MonthCalendar.cs:
19048           - Fix Usage of MaxSelectionCount from SelectionRange
19049           - Fixed Shift + Cursor Selection
19050           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
19051           - Fixed normal cursor selection to be compat with win32
19052           - Fixed Shift + Mouse Click selection
19053
19054 2004-11-24  Peter Bartok <pbartok@novell.com>
19055
19056         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
19057         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
19058         * XplatUIX11.cs:
19059           - CreatedKeyBoardMsg now updates keystate with Alt key
19060           - Added workaround for timer crash to CheckTimers, Jackson will
19061             develop a proper fix and check in later
19062           - Implemented DispatchMessage
19063           - Removed calling the native window proc from GetMessage (call
19064             now moved to DispatchMessage)
19065
19066         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
19067           the keydata (Fixes bug #69831)
19068
19069         * XplatUIWin32.cs:
19070           - (DispatchMessage): Switched to return IntPtr
19071           - Added DllImport for SetFocus
19072
19073 2004-11-24  Ravindra <rkumar@novell.com>
19074
19075         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
19076         background drawing.
19077         * ListViewItem.cs: Fixed various properties, calculations
19078         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
19079         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
19080         and some internal properties. Fixed MouseDown handler and Paint
19081         method.
19082
19083 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
19084
19085         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
19086
19087 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
19088
19089         * ContainerControl.cs: correct accidental check in of local changes
19090
19091 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
19092
19093         * ThemeWin32Classic.cs:
19094                 - Fixed Drawing Last month in grid (sometimes not showing)
19095         * MonthCalendar.cs:
19096                 - Fixed title width calculation bug (makeing title small)
19097
19098 2004-11-23  Peter Bartok <pbartok@novell.com>
19099
19100         * XplatUIX11.cs:
19101           - Added generation of WM_MOUSEHOVER event
19102           - Added missing assignment of async_method atom
19103           - Fixed WM_ERASEBKGND; now only redraws the exposed area
19104
19105 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
19106
19107         * ThemeWin32Classic.cs:
19108                 - Fixed Drawing of today circle when showtodaycircle not set
19109                 - fixed drawing of first and last month in the grid (gay dates)
19110         * MonthCalendar.cs:
19111                 - Fixed Drawing of today circle
19112                 - Fixed drawing of grady dates
19113                 - Fixed HitTest for today link when ShowToday set to false
19114                 - Fixed DefaultSize to obey ShowToday
19115
19116 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
19117
19118         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
19119         * System.Windows.Forms/Theme.cs
19120         * MonthCalendar.cs: added for MonthCalendar
19121         * SelectionRange.cs: added for MonthCalendar
19122         * Day.cs: added for MonthCalendar: added for MonthCalendar
19123         * DateRangeEventArgs.cs: added for MonthCalendar
19124         * DateRangeEventHandler.cs: added for MonthCalendar
19125
19126 2004-11-22  Ravindra <rkumar@novell.com>
19127
19128         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
19129         property.
19130
19131 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
19132
19133         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
19134         event handler.
19135         
19136         * NumericUpDown.cs: Added new implementation.
19137         * UpDownBase.cs: Added new implementation.
19138
19139         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
19140         implementations.
19141         
19142         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
19143         implementations.
19144
19145         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
19146         methods.
19147
19148 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
19149
19150         * Timer.cs  (Dispose): Should call the base dispose when
19151         overriding.
19152
19153 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
19154
19155         * ScrollBar.cs: updates thumb position when max, min or increment
19156         is changed
19157
19158 2004-11-21  Ravindra <rkumar@novell.com>
19159
19160         * ListView.cs: Implemented item selection, activation and
19161         column header style. Fixed properties to do a redraw, if
19162         required. Added support for MouseHover, DoubleClick, KeyDown
19163         and KeyUp event handling and some minor fixes.
19164         * ListViewItem.cs: Fixed constructor.
19165         * ThemeWin32Classic.cs: Improved drawing for ListView.
19166
19167 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
19168
19169         * ThemeWin32Classic.cs: initial listbox drawing code
19170         * DrawMode.cs: new enumerator
19171         * ListControl.cs: stubbed class
19172         * ListBox.cs: initial implementation
19173         * Theme.cs: new methods definitions
19174         * SelectionMode.cs: new enumerator
19175
19176 2004-11-17  Peter Bartok  <pbartok@novell.com>
19177
19178         * XplatUIWin32.cs: Added double-click events to the class style
19179         * Control.cs (WndProc):
19180           - Added handling of click-count to MouseDown/ MouseUp events.
19181           - Added handling of middle and right mouse buttons
19182           - Removed old debug code
19183
19184 2004-11-17  Jackson Harper  <jackson@ximian.com>
19185
19186         * XplatUIX11.cs: Use the new Mono.Unix namespace.
19187
19188 2004-11-17  Ravindra <rkumar@novell.com>
19189
19190         * ListView.cs: Added event handling for MouseMove/Up/Down.
19191         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
19192         * ThemeWin32Classic.cs: We need to clear the graphics context and
19193         draw column header in a proper state.
19194
19195
19196 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
19197
19198         *  Menu.cs: fixes signature
19199
19200 2004-11-16  Peter Bartok  <pbartok@novell.com>
19201
19202         * XplatUIX11.cs (GetMessage): Implemented generation of
19203           double click mouse messages
19204
19205 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
19206
19207         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
19208         not by menu
19209
19210 2004-11-11  Peter Bartok  <pbartok@novell.com>
19211
19212         * HandleData.cs: Added Visible property
19213         * XplatUIX11.cs (IsVisible): Now uses Visible property from
19214           HandleData
19215         * XplatUIX11.cs: Removed old debug leftovers
19216         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
19217         * Control.cs (WndProc): Removed old debug leftovers,
19218           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
19219           needed WM_SIZE handling
19220
19221 2004-11-11  Jackson Harper  <jackson@ximian.com>
19222
19223         * OwnerDrawPropertyBag.cs:
19224         * TreeViewImageIndexConverter.cs: Initial implementation
19225
19226 2004-11-10  Jackson Harper  <jackson@ximian.com>
19227
19228         * ThemeWin32Classic.cs:
19229         * TabControl.cs: instead of moving tabs by the slider pos just
19230         start drawing at the tab that is offset by the slider. This way
19231         scrolling always moves by exactly one tab.
19232
19233 2004-11-10  Jackson Harper  <jackson@ximian.com>
19234
19235         * TabControl.cs: You can only scroll left when the slider has
19236         already ben moved right.
19237         
19238 2004-11-10  Jackson Harper  <jackson@ximian.com>
19239
19240         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
19241         the clip area.
19242         
19243 2004-11-10  Jackson Harper  <jackson@ximian.com>
19244
19245         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
19246         clip area.
19247         
19248 2004-11-09  Jackson Harper  <jackson@ximian.com>
19249
19250         * TabControl.cs (CalcXPos): New helper method so we can determine
19251         the proper place to start drawing vertical tabs.
19252         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
19253         
19254 2004-11-09  Jackson Harper  <jackson@ximian.com>
19255
19256         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
19257         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
19258         and Bottom, left and right are illegal values for this and
19259         multiline is enabled when the alignment is set to left or right.
19260         (DrawTab): Each alignment block should draw the text itself now
19261         because Left requires special love. Also add rendering for Left
19262         aligned tabs.
19263         
19264 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
19265
19266         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
19267         does not destroy the windows, removes debugging messages
19268
19269 2004-11-09  jba  <jba-mono@optusnet.com.au>
19270
19271         * ThemeWin32Classic.cs
19272         (DrawButtonBase): Fix verticle text rect clipping in windows
19273         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
19274         rendering and incorrect text rect clipping
19275         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
19276         rendering and incorrect text rect clipping
19277         
19278 2004-11-08  Jackson Harper  <jackson@ximian.com>
19279
19280         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
19281         bottom when they are bottom aligned so the bottoms of the tabs get
19282         displayed.
19283         * TabControl.cs (DropRow): Move rows up instead of down when the
19284         tab control is bottom aligned.
19285
19286 2004-11-08 13:59  pbartok
19287
19288         * XplatUIX11.cs:
19289           - Added handling for various window styles
19290           - Added handling for popup windows
19291           - Added SetTopmost handling
19292
19293 2004-11-08 13:55  pbartok
19294
19295         * XplatUIWin32.cs:
19296           - Added argument to SetTopmost method
19297           - Fixed broken ClientToScreen function
19298
19299 2004-11-08 13:53  pbartok
19300
19301         * XplatUIStructs.cs:
19302           - Added missing WS_EX styles
19303
19304 2004-11-08 13:53  pbartok
19305
19306         * XplatUI.cs, XplatUIDriver.cs:
19307           - Added argument to SetTopmost
19308
19309 2004-11-08 13:52  pbartok
19310
19311         * X11Structs.cs:
19312           - Added XSetWindowAttributes structure
19313           - Improved XWindowAttributes structure
19314           - Added SetWindowValuemask enum
19315           - Added window creation arguments enum
19316           - Added gravity enum
19317           - Added Motif hints structure
19318           - Added various Motif flags and enums
19319           - Added PropertyMode enum for property functions
19320
19321 2004-11-08 13:50  pbartok
19322
19323         * Form.cs:
19324           - Fixed arguments for updated SetTopmost method
19325
19326 2004-11-08 13:49  pbartok
19327
19328         * ToolTip.cs:
19329           - Fixed arguments for updated SetTopmost function
19330           - Fixed usage of PointToClient
19331
19332 2004-11-08 13:44  pbartok
19333
19334         * MenuAPI.cs:
19335           - Added Clipping of children and siblings
19336
19337 2004-11-08 13:41  pbartok
19338
19339         * MainMenu.cs:
19340           - Removed SetMenuBarWindow call. We do this in Form.cs
19341
19342 2004-11-08 13:40  jackson
19343
19344         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
19345           scrolling jimmi in the correct location with bottom aligned tabs
19346
19347 2004-11-08 13:36  pbartok
19348
19349         * ContainerControl.cs:
19350           - Implemented BindingContext
19351           - Implemented ParentForm
19352
19353 2004-11-08 12:46  jackson
19354
19355         * TabControl.cs: Put bottom rendered tabs in the right location
19356
19357 2004-11-08 07:15  jordi
19358
19359         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
19360           removes dead code
19361
19362 2004-11-05 17:30  jackson
19363
19364         * TabControl.cs: When selected tabs are expanded make sure they
19365           don't go beyond the edges of the tab control
19366
19367 2004-11-05 14:57  jackson
19368
19369         * TabControl.cs: Reset show_slider so if the control is resized to
19370           a size where it is no longer needed it's not displayed anymore
19371
19372 2004-11-05 13:16  jackson
19373
19374         * TabControl.cs: Make tab pages non visible when added to the
19375           control
19376
19377 2004-11-05 12:42  jackson
19378
19379         * TabControl.cs: Implement SizeMode.FillToRight
19380
19381 2004-11-05 12:16  jackson
19382
19383         * Control.cs: Do not call CreateHandle if the handle is already
19384           created
19385
19386 2004-11-05 11:46  jackson
19387
19388         * TabControl.cs: Remove superflous call to CalcTabRows
19389
19390 2004-11-05 09:07  jackson
19391
19392         * XplatUIX11.cs: Update for Mono.Posix changes
19393
19394 2004-11-05 07:00  ravindra
19395
19396         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
19397           scrolling.
19398
19399 2004-11-04 22:47  jba
19400
19401         * ThemeWin32Classic.cs:
19402           - Fix Button rendering for FlatStyle = Flat or Popup
19403           - Fix RadioButton and CheckBox rendering when Appearance = Button
19404             (normal and flatstyle).
19405           - Correct outer rectangle color when drawing focus rectangle
19406           - Adjust button bounds to be 1 px smaller when focused
19407           - Make button not draw sunken 3d border when pushed (windows compat)
19408           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
19409           - Offset the text in RadioButton and Checkbox when being rendered as
19410           a button.
19411           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
19412           radiobuttons
19413           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
19414           - Fixed disabled text rendering for normally rendered radiobuttons
19415
19416 2004-11-04 10:26  jackson
19417
19418         * TabControl.cs: Recalculate tab rows when resizing
19419
19420 2004-11-04 07:47  jordi
19421
19422         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
19423           collection completion, drawing issues, missing features
19424
19425 2004-11-04 05:03  ravindra
19426
19427         * ScrollBar.cs:
19428                 - We need to recalculate the Thumb area when
19429                 LargeChange/maximum/minimum values are changed.
19430           - We set the 'pos' in UpdatePos() method to minimum, if it's less
19431                 than minimum. This is required to handle the case if large_change is
19432                 more than max, and use LargeChange property instead of large_change
19433                 variable.
19434           - We return max+1 when large_change is more than max, like MS does.
19435
19436 2004-11-04 04:29  ravindra
19437
19438         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
19439                 - Changed default value signatures (prefixed all with ListView).
19440                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
19441                 ListView.
19442           - Fixed calculations for ListViewItem and implemented Clone()
19443           method.
19444
19445 2004-11-04 04:26  ravindra
19446
19447         * Theme.cs, ThemeWin32Classic.cs:
19448                 - Changed default ListView values signatures (prefixed all with
19449                 ListView).
19450           - Fixed default size values for VScrollBar and HScrollBar.
19451                 - Fixed DrawListViewItem method.
19452
19453 2004-11-04 04:05  ravindra
19454
19455         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
19456
19457 2004-11-04 04:04  ravindra
19458
19459         * ImageList.cs: Implemented the missing overload for Draw method.
19460
19461 2004-11-03 19:29  jackson
19462
19463         * TabControl.cs: Handle dropping rows on selection properly
19464
19465 2004-11-03 11:59  jackson
19466
19467         * TabControl.cs: remove debug code
19468
19469 2004-11-03 11:52  jackson
19470
19471         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
19472           the scrolly widgerywoo
19473
19474 2004-11-02 13:52  jackson
19475
19476         * TabControl.cs: Resize the tab pages and tabs when the tab control
19477           is resized
19478
19479 2004-11-02 13:40  jackson
19480
19481         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
19482           selected tab to the bottom
19483
19484 2004-11-02 13:39  jackson
19485
19486         * TabPage.cs: Store the tab pages row
19487
19488 2004-11-02 12:33  jordi
19489
19490         * MenuItem.cs: fixes handle creation
19491
19492 2004-11-02 11:42  jackson
19493
19494         * TabControl.cs: signature fix
19495
19496 2004-11-02 08:56  jackson
19497
19498         * TabControl.cs: Calculate whether the tab is on an edge properly.
19499           Remove top secret debugging code
19500
19501 2004-11-01 19:57  jackson
19502
19503         * TabControl.cs: Add click handling, and proper sizing
19504
19505 2004-11-01 19:47  jackson
19506
19507         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
19508           tab controls
19509
19510 2004-11-01 19:39  jackson
19511
19512         * TabPage.cs: add internal property to store the bounds of a tab
19513           page
19514
19515 2004-10-30 04:23  ravindra
19516
19517         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
19518           values.
19519
19520 2004-10-30 04:21  ravindra
19521
19522         * ListView.cs, ListViewItem.cs: Added support for scrolling and
19523           fixed calculations.
19524
19525 2004-10-30 03:06  pbartok
19526
19527         * XplatUIX11.cs:
19528           - Removed extension of DllImported libs
19529
19530 2004-10-29 09:55  jordi
19531
19532         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
19533           navigation, itemcollection completion, menu fixes
19534
19535 2004-10-27 22:58  pbartok
19536
19537         * XplatUIX11.cs:
19538           - Now throws a nice error message when no X display could be opened
19539
19540 2004-10-26 13:51  jordi
19541
19542         * ListView.cs: removes warning
19543
19544 2004-10-26 03:55  ravindra
19545
19546         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
19547           ThemeWin32Classic.cs: Some formatting for my last checkins.
19548
19549 2004-10-26 03:36  ravindra
19550
19551         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
19552           control and default values.
19553
19554 2004-10-26 03:35  ravindra
19555
19556         * Theme.cs: Added some default values for ListView control.
19557
19558 2004-10-26 03:33  ravindra
19559
19560         * ToolBar.cs: ToolBar should use the user specified button size, if
19561           there is any. Added a size_specified flag for the same.
19562
19563 2004-10-26 03:33  ravindra
19564
19565         * ColumnHeader.cs: Added some internal members and calculations for
19566           ColumnHeader.
19567
19568 2004-10-26 03:32  ravindra
19569
19570         * ListViewItem.cs: Calculations for ListViewItem.
19571
19572 2004-10-26 03:31  ravindra
19573
19574         * ListView.cs: Added some internal members and calculations for
19575           ListView.
19576
19577 2004-10-22 13:31  jordi
19578
19579         * MenuAPI.cs: speedup menus drawing
19580
19581 2004-10-22 13:16  jackson
19582
19583         * XplatUIX11.cs: Make sure to update exposed regions when adding an
19584           expose event
19585
19586 2004-10-22 11:49  jackson
19587
19588         * Control.cs: oops
19589
19590 2004-10-22 11:41  jackson
19591
19592         * Control.cs: Check to see if the window should have its background
19593           repainted by X when drawing.
19594
19595 2004-10-22 11:31  jackson
19596
19597         * XplatUIX11.cs: When invalidating areas only use XClearArea if
19598           clear is true, this way we do not get flicker from X repainting the
19599           background
19600
19601 2004-10-22 11:28  jackson
19602
19603         * XEventQueue.cs: Queue properly
19604
19605 2004-10-21 09:38  jackson
19606
19607         * XEventQueue.cs: Fix access modifier
19608
19609 2004-10-21 09:36  jackson
19610
19611         * XEventQueue.cs: Don't loose messages
19612
19613 2004-10-21 09:22  jackson
19614
19615         * XEventQueue.cs: Don't loose messages
19616
19617 2004-10-20 04:15  jordi
19618
19619         * BootMode.cs: enum need it by SystemInfo
19620
19621 2004-10-19 21:58  pbartok
19622
19623         * XplatUIWin32.cs:
19624           - Small sanity check
19625
19626 2004-10-19 21:56  pbartok
19627
19628         * Form.cs:
19629           - Added private FormParentWindow class which acts as the container
19630             for our form and as the non-client area where menus are drawn
19631           - Added/Moved required tie-ins to Jordi's menus
19632           - Fixed/Implemented the FormStartPosition functionality
19633
19634 2004-10-19 21:52  pbartok
19635
19636         * Control.cs:
19637           - Removed unneeded locals
19638           - Added code to all size and location properties to understand and
19639             deal with the parent container of Form
19640
19641 2004-10-19 21:33  pbartok
19642
19643         * Application.cs:
19644           - Fixed to deal with new Form subclasses for menus
19645
19646 2004-10-19 17:48  jackson
19647
19648         * XEventQueue.cs: commit correct version of file
19649
19650 2004-10-19 16:50  jackson
19651
19652         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
19653
19654 2004-10-19 16:15  jordi
19655
19656         * MenuAPI.cs: MenuBarCalcSize returns the height
19657
19658 2004-10-19 08:31  pbartok
19659
19660         * Control.cs:
19661           - Added missing call to PreProcessMessage before calling OnXXXKey
19662           methods
19663
19664 2004-10-19 00:04  ravindra
19665
19666         * ToolTip.cs: Fixed constructor.
19667
19668 2004-10-18 09:31  jordi
19669
19670         * MenuAPI.cs: menuitems in menubars do not have shortcuts
19671
19672 2004-10-18 09:26  jordi
19673
19674         * MenuItem.cs: fixes MenuItem class signature
19675
19676 2004-10-18 08:56  jordi
19677
19678         * MenuAPI.cs: prevents windows from showing in the taskbar
19679
19680 2004-10-18 00:28  ravindra
19681
19682         * ToolTip.cs: Suppressed a warning message.
19683
19684 2004-10-18 00:27  ravindra
19685
19686         * Control.cs: Default value of visible property must be true.
19687
19688 2004-10-17 23:19  pbartok
19689
19690         * ToolTip.cs:
19691           - Complete implementation
19692
19693 2004-10-17 23:19  pbartok
19694
19695         * XplatUIX11.cs:
19696           - Added EnableWindow method
19697           - Added SetModal stub
19698           - Added generation of WM_ACTIVATE message (still needs testing)
19699           - Added SetTopMost stub
19700           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
19701
19702 2004-10-17 23:17  pbartok
19703
19704         * XplatUIWin32.cs:
19705           - Removed VirtualKeys to XplatUIStructs
19706           - Implemented SetTopMost method
19707           - Implemented EnableWindow method
19708           - Bugfix in ScreenToClient()
19709           - Bugfixes in ClientToScreen()
19710
19711 2004-10-17 22:51  pbartok
19712
19713         * XplatUIStructs.cs:
19714           - Added WS_EX styles to WindowStyles enumeration
19715
19716 2004-10-17 22:50  pbartok
19717
19718         * XplatUI.cs, XplatUIDriver.cs:
19719           - Added method for enabling/disabling windows
19720           - Added method for setting window modality
19721           - Added method for setting topmost window
19722
19723 2004-10-17 22:49  pbartok
19724
19725         * ThemeWin32Classic.cs:
19726           - Added ToolTip drawing code
19727
19728 2004-10-17 22:49  pbartok
19729
19730         * Theme.cs:
19731           - Added ToolTip abstracts
19732
19733 2004-10-17 22:47  pbartok
19734
19735         * Form.cs:
19736           - Fixed Form.ControlCollection to handle owner relations
19737           - Added Owner/OwnedForms handling
19738           - Implemented Z-Ordering for owned forms
19739           - Removed unneeded private overload of ShowDialog
19740           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
19741             so I hope)
19742           - Fixed Close(), had wrong default
19743           - Added firing of OnLoad event
19744           - Added some commented out debug code for Ownership handling
19745
19746 2004-10-17 22:16  pbartok
19747
19748         * Control.cs:
19749           - Fixed/implemented flat list of controls
19750
19751 2004-10-17 22:14  pbartok
19752
19753         * Application.cs:
19754           - Added code to simulate modal dialogs on Win32
19755
19756 2004-10-17 16:11  jordi
19757
19758         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
19759           mouse event
19760
19761 2004-10-17 13:39  jordi
19762
19763         * MenuAPI.cs: menu drawing fixes
19764
19765 2004-10-15 09:10  ravindra
19766
19767         * StructFormat.cs: General Enum.
19768
19769 2004-10-15 09:09  ravindra
19770
19771         * SizeGripStyle.cs: Enum for Form.
19772
19773 2004-10-15 09:08  ravindra
19774
19775         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
19776           in Theme for ListView.
19777
19778 2004-10-15 09:06  ravindra
19779
19780         * ColumnHeader.cs: Flushing some formatting changes.
19781
19782 2004-10-15 09:05  ravindra
19783
19784         * ListViewItem.cs: Implemented GetBounds method and fixed coding
19785           style.
19786
19787 2004-10-15 09:03  ravindra
19788
19789         * ListView.cs: Implemented Paint method and fixed coding style.
19790
19791 2004-10-15 07:34  jordi
19792
19793         * MenuAPI.cs: fix for X11
19794
19795 2004-10-15 07:32  ravindra
19796
19797         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
19798                 - Renamed Paint() method to Draw() for clarity. Also, moved
19799                 DrawImage() to OnPaint().
19800
19801 2004-10-15 07:25  ravindra
19802
19803         * CheckBox.cs, RadioButton.cs:
19804                 - Removed Redraw (), we get it from ButtonBase.
19805                 - Implemented Paint (), to do class specific painting.
19806
19807 2004-10-15 07:16  ravindra
19808
19809         * ButtonBase.cs:
19810                 - Redraw () is not virtual now.
19811                 - Added an internal virtual method Paint (), so that
19812                 derived classes can do their painting on their own.
19813                 - Modified OnPaint () to call Paint ().
19814
19815 2004-10-15 06:43  jordi
19816
19817         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
19818           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
19819
19820 2004-10-15 00:30  ravindra
19821
19822         * MessageBox.cs:
19823                 - MessageBox on windows does not have min/max buttons.
19824                 This change in CreateParams fixes this on Windows. We
19825                 still need to implement this windowstyle behavior in
19826                 our X11 driver.
19827
19828 2004-10-14 05:14  ravindra
19829
19830         * ToolBar.cs:
19831                 - Changed Redraw () to do a Refresh () always.
19832                 - Fixed the MouseMove event handling when mouse is pressed,
19833                 ie drag event handling.
19834                 - Replaced the usage of ToolBarButton.Pressed property to
19835                 ToolBarButton.pressed internal variable.
19836
19837 2004-10-14 05:10  ravindra
19838
19839         * ToolBarButton.cs:
19840                 - Added an internal member 'inside' to handle mouse move
19841                 with mouse pressed ie mouse drag event.
19842                 - Changed 'Pressed' property to return true only when
19843                 'inside' and 'pressed' are both true.
19844                 - Some coding style love.
19845
19846 2004-10-14 00:17  ravindra
19847
19848         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
19849           public method.
19850
19851 2004-10-14 00:15  ravindra
19852
19853         * ButtonBase.cs: Redraw () related improvements.
19854
19855 2004-10-14 00:14  ravindra
19856
19857         * MessageBox.cs: Moved InitFormSize () out of Paint method and
19858           removed unnecessary calls to Button.Show () method.
19859
19860 2004-10-13 17:50  pbartok
19861
19862         * XplatUIX11.cs:
19863           - Formatting fix
19864           - Removed destroying of window until we solve the problem of X
19865             destroying the window before us on shutdown
19866
19867 2004-10-13 16:32  pbartok
19868
19869         * ButtonBase.cs:
19870           - Now Redraws on MouseUp for FlatStyle Flat and Popup
19871
19872 2004-10-13 14:18  pbartok
19873
19874         * XplatUIX11.cs:
19875           - Added code to destroy the X window
19876
19877 2004-10-13 14:18  pbartok
19878
19879         * XplatUIWin32.cs:
19880           - Added code to destroy a window
19881
19882 2004-10-13 14:12  pbartok
19883
19884         * ButtonBase.cs:
19885           - Added the Redraw on Resize that got dropped in the last rev
19886
19887 2004-10-13 09:06  pbartok
19888
19889         * ThemeWin32Classic.cs:
19890           - Path from John BouAntoun:
19891             * Fix check rendering (centre correctly for normal style, offset
19892               correctly for FlatStyle).
19893             * Fix border color usage (use backcolor) for FlatStyle.Popup
19894             * Use checkbox.Capture instead of checkbox.is_pressed when
19895               rendering flatstyle states.
19896
19897 2004-10-12 21:48  pbartok
19898
19899         * ThemeWin32Classic.cs:
19900           - Removed all occurences of SystemColors and replaced them with the
19901             matching theme color
19902
19903 2004-10-12 21:41  pbartok
19904
19905         * ThemeWin32Classic.cs:
19906           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
19907             him using the function for flatstyle drawing
19908           - Changed functions to use the new version of CPDrawBorder3D
19909
19910 2004-10-12 21:15  pbartok
19911
19912         * ControlPaint.cs:
19913           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
19914             match MS documentation. They need to return defined colors if the
19915             passed color matches the configured control color. Thanks to John
19916             BouAntoun for pointing this out.
19917
19918 2004-10-12 20:57  pbartok
19919
19920         * Control.cs:
19921           - Fix from John BouAntoun: Raise ForeColorChanged event when text
19922             color is changed
19923
19924 2004-10-12 20:46  pbartok
19925
19926         * CheckBox.cs:
19927           - Fix from John BouAntoun: Now properly sets the Appearance property
19928
19929 2004-10-12 20:45  pbartok
19930
19931         * ThemeWin32Classic.cs:
19932           - Fixes from John BouAntoun: now handles forecolors and backcolors
19933             for flatstyle rendered controls much better; It also fixes normal
19934             checkbox rendering when pushed or disabled.
19935
19936 2004-10-08 02:50  jordi
19937
19938         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
19939           work
19940
19941 2004-10-07 08:56  jordi
19942
19943         * ThemeWin32Classic.cs: Removes deletion of cached brushes
19944
19945 2004-10-06 03:59  jordi
19946
19947         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
19948           XplatUIWin32.cs: removes warnings from compilation
19949
19950 2004-10-05 12:23  jackson
19951
19952         * RadioButton.cs: Fix ctor
19953
19954 2004-10-05 11:10  pbartok
19955
19956         * MessageBox.cs:
19957           - Partial implementation by Benjamin Dasnois
19958
19959 2004-10-05 10:15  jackson
19960
19961         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
19962           by John BouAntoun
19963
19964 2004-10-05 03:07  ravindra
19965
19966         * ToolBar.cs:
19967                 - Removed a private method, Draw ().
19968                 - Fixed the ButtonDropDown event handling.
19969                 - Fixed MouseMove event handling.
19970
19971 2004-10-05 03:04  ravindra
19972
19973         * ThemeWin32Classic.cs:
19974                 - Added DrawListView method and ListViewDefaultSize property.
19975                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
19976                 - Changed DOS style CRLF to Unix format (dos2unix).
19977
19978 2004-10-05 03:03  ravindra
19979
19980         * Theme.cs:
19981                 - Added DrawListView method and ListViewDefaultSize property.
19982
19983 2004-10-05 02:42  ravindra
19984
19985         * ToolBarButton.cs: Added an internal member dd_pressed to handle
19986           clicks on DropDown arrow.
19987
19988 2004-10-04 22:56  jackson
19989
19990         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
19991           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
19992           Control handle the buffers, derived classes should not have to
19993           CreateBuffers themselves.
19994
19995 2004-10-04 21:20  jackson
19996
19997         * StatusBar.cs: The control handles resizing the buffers now.
19998
19999 2004-10-04 21:18  jackson
20000
20001         * Control.cs: When resizing the buffers should be invalidated. This
20002           should be handled in Control not in derived classes.
20003
20004 2004-10-04 14:45  jackson
20005
20006         * TabPage.cs: oops
20007
20008 2004-10-04 02:14  pbartok
20009
20010         * LeftRightAlignment.cs:
20011           - Initial check-in
20012
20013 2004-10-04 01:09  jordi
20014
20015         * ThemeWin32Classic.cs: fixes right button position causing right
20016           button not showing on horizontal scrollbars
20017
20018 2004-10-02 13:12  pbartok
20019
20020         * XplatUIX11.cs:
20021           - Simplified the Invalidate method by using an X call instead of
20022             generating the expose ourselves
20023           - Added an expose when the window background is changed
20024           - Implemented ClientToScreen method
20025
20026 2004-10-02 13:08  pbartok
20027
20028         * XplatUIWin32.cs:
20029           - Added Win32EnableWindow method (test for implementing modal
20030           dialogs)
20031           - Added ClientToScreen method and imports
20032
20033 2004-10-02 13:07  pbartok
20034
20035         * XplatUI.cs, XplatUIDriver.cs:
20036           - Added ClientToScreen coordinate translation method
20037
20038 2004-10-02 13:06  pbartok
20039
20040         * KeyPressEventArgs.cs:
20041           - Fixed access level for constructor
20042
20043 2004-10-02 13:06  pbartok
20044
20045         * NativeWindow.cs:
20046           - Changed access level for the window_collection hash table
20047
20048 2004-10-02 13:05  pbartok
20049
20050         * Form.cs:
20051           - Added KeyPreview property
20052           - Added Menu property (still incomplete, pending Jordi's menu work)
20053           - Implemented ProcessCmdKey
20054           - Implemented ProcessDialogKey
20055           - Implemented ProcessKeyPreview
20056
20057 2004-10-02 13:02  pbartok
20058
20059         * Control.cs:
20060           - Added private method to get the Control object from the window
20061           handle
20062           - Implemented ContextMenu property
20063           - Implemented PointToScreen
20064           - Implemented PreProcessMessage
20065           - Implemented IsInputChar
20066           - Implemented IsInputKey
20067           - Implemented ProcessCmdKey
20068           - Completed ProcessKeyEventArgs
20069           - Fixed message loop to call the proper chain of functions on key
20070           events
20071           - Implemented ProcessDialogChar
20072           - Implemented ProcessDialogKey
20073           - Implemented ProcessKeyMessage
20074           - Implemented ProcessKeyPreview
20075           - Added RaiseDragEvent stub (MS internal method)
20076           - Added RaiseKeyEvent stub (MS internal method)
20077           - Added RaiseMouseEvent stub (MS Internal method)
20078           - Added RaisePaintEvent stub (MS Internal method)
20079           - Added ResetMouseEventArgs stub (MS Internal method)
20080           - Implemented RtlTranslateAlignment
20081           - Implemented RtlTranslateContent
20082           - Implemented RtlTranslateHorizontal
20083           - Implemented RtlTranslateLeftRight
20084           - Added generation of KeyPress event
20085
20086 2004-10-02 05:57  ravindra
20087
20088         * ListViewItem.cs: Added attributes.
20089
20090 2004-10-02 05:32  ravindra
20091
20092         * ListView.cs: Added attributes.
20093
20094 2004-10-01 11:53  jackson
20095
20096         * Form.cs: Implement the Close method so work on MessageBox can
20097           continue.
20098
20099 2004-09-30 14:06  pbartok
20100
20101         * XplatUIX11.cs:
20102           - Bug fixes
20103
20104 2004-09-30 11:34  jackson
20105
20106         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
20107
20108 2004-09-30 07:26  ravindra
20109
20110         * ListViewItemConverter.cs: Converter for ListViewItem.
20111
20112 2004-09-30 07:26  ravindra
20113
20114         * SortOrder.cs: Enum for ListView control.
20115
20116 2004-09-30 07:25  ravindra
20117
20118         * ColumnHeader.cs: Supporting class for ListView control.
20119
20120 2004-09-30 07:24  ravindra
20121
20122         * ListView.cs, ListViewItem.cs: Initial implementation.
20123
20124 2004-09-30 07:20  ravindra
20125
20126         * ItemActivation.cs: Enum for ListView Control.
20127
20128 2004-09-29 20:29  pbartok
20129
20130         * XplatUIX11.cs:
20131           - Added lookup of pixel value for background color; tries to get a
20132             color 'close' to the requested color, it avoids having to create a
20133             colormap.  Depending on the display this could mean the used color
20134             is slightly off the desired color. Might have to change it to a more
20135             resource intensive colormap approach, but it will work as a
20136           workaround to avoid red screens.
20137
20138 2004-09-29 14:27  jackson
20139
20140         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
20141
20142 2004-09-28 12:44  pbartok
20143
20144         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
20145           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
20146           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
20147           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
20148           TrackBar.cs, VScrollBar.cs:
20149           - Streamlined Theme interfaces:
20150             * Each DrawXXX method for a control now is passed the object for
20151               the control to be drawn in order to allow accessing any state the
20152               theme might require
20153
20154             * ControlPaint methods for the theme now have a CP prefix to avoid
20155               name clashes with the Draw methods for controls
20156
20157             * Every control now retrieves it's DefaultSize from the current
20158             theme
20159
20160 2004-09-28 12:17  jackson
20161
20162         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
20163           drawing
20164
20165 2004-09-24 14:57  jackson
20166
20167         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
20168           Gives us a nice little performance boost.
20169
20170 2004-09-24 12:02  jackson
20171
20172         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
20173           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
20174           Control and supporting classes. Initial checkin
20175
20176 2004-09-23 13:08  jackson
20177
20178         * Form.cs: Temp build fixage
20179
20180 2004-09-23 01:39  ravindra
20181
20182         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
20183           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
20184           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
20185           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
20186           EventHandlers needed by ListView Control.
20187
20188 2004-09-22 14:12  pbartok
20189
20190         * ScrollableControl.cs:
20191           - Implemented DockPadding property
20192           - Implemented AutoScroll property
20193           - Implemented AutoScrollMargin property
20194           - Implemented AutoScrollMinSize property
20195           - Implemented AutoScrollPosition property
20196           - Implemented DisplayRectangle property (still incomplete)
20197           - Implemented CreateParams property
20198           - Implemented HScroll property
20199           - Implemented VScroll property
20200           - Implemented OnVisibleChanged property
20201
20202 2004-09-22 14:09  pbartok
20203
20204         * Form.cs:
20205           - Added Form.ControllCollection class
20206           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
20207             RemoveOwnedForm (still incomplete, missing on-top and common
20208             minimize/maximize behaviour)
20209           - Added StartPosition property (still incomplete, does not use when
20210             creating the form)
20211           - Added ShowDialog() methods (still incomplete, missing forcing the
20212             dialog modal)
20213
20214 2004-09-22 14:05  pbartok
20215
20216         * Application.cs:
20217           - Added message loop for modal dialogs
20218
20219 2004-09-22 14:02  pbartok
20220
20221         * GroupBox.cs:
20222           - Fixed wrong types for events
20223
20224 2004-09-22 14:00  pbartok
20225
20226         * Shortcut.cs, FormWindowState.cs:
20227           - Fixed wrong values
20228
20229 2004-09-22 12:01  jackson
20230
20231         * Control.cs: Text is never null
20232
20233 2004-09-20 22:14  pbartok
20234
20235         * XplatUIWin32.cs:
20236           - Fixed accessibility level for Idle handler
20237
20238 2004-09-20 18:54  jackson
20239
20240         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20241           XplatUIX11.cs: New message loop that uses poll so we don't get a
20242           busy loop
20243
20244 2004-09-17 10:43  pbartok
20245
20246         * ScrollBar.cs:
20247           - Fixed behaviour of arrow buttons. Now properly behaves like
20248             Buttons (and like Microsoft's scrollbar arrow buttons)
20249
20250 2004-09-17 10:14  pbartok
20251
20252         * ScrollBar.cs:
20253           - Added missing release of keyboard/mouse capture
20254
20255 2004-09-17 06:18  jordi
20256
20257         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
20258           Theme.cs: Very early menu support
20259
20260 2004-09-16 17:45  pbartok
20261
20262         * XplatUIWin32.cs:
20263           - Fixed sending a window to the front
20264           - Added overload for SetWindowPos to avoid casting
20265
20266 2004-09-16 17:44  pbartok
20267
20268         * Control.cs:
20269           - Added SendToBack and BringToFront methods
20270
20271 2004-09-16 07:00  ravindra
20272
20273         * Copyright: Added Novell URL.
20274
20275 2004-09-16 07:00  ravindra
20276
20277         * ToolBar.cs: Invalidate should be done before redrawing.
20278
20279 2004-09-15 21:19  ravindra
20280
20281         * ColumnHeaderStyle.cs: Enum for ListView Control.
20282
20283 2004-09-15 21:18  ravindra
20284
20285         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
20286           ListView Control.
20287
20288 2004-09-13 18:26  jackson
20289
20290         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
20291           properly
20292
20293 2004-09-13 18:13  jackson
20294
20295         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
20296           a second thread and post messages into the main threads message
20297           queue. This makes timing much more consistent. Both win2K and XP
20298           have a minimum timer value of 15 milliseconds, so we now do this
20299           too.
20300
20301 2004-09-13 15:18  pbartok
20302
20303         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20304           XplatUIX11.cs:
20305           - Added Z-Ordering methods
20306
20307 2004-09-13 10:56  pbartok
20308
20309         * Form.cs:
20310           - Fixed #region names
20311           - Moved properties and methods into their proper #regions
20312
20313 2004-09-13 10:51  pbartok
20314
20315         * Form.cs:
20316           - Added Accept and CancelButton properties
20317           - Added ProcessDialogKey() method
20318
20319 2004-09-13 08:18  pbartok
20320
20321         * IWindowTarget.cs:
20322           - Initial check-in
20323
20324 2004-09-10 21:50  pbartok
20325
20326         * Control.cs:
20327           - Added DoDragDrop() [incomplete]
20328           - Properly implemented 'Visible' handling
20329           - Added SetVisibleCore()
20330           - Implemented FindChildAtPoint()
20331           - Implemented GetContainerControl()
20332           - Implemented Hide()
20333
20334 2004-09-10 19:28  pbartok
20335
20336         * Control.cs:
20337           - Moved methods into their appropriate #regions
20338           - Reordered methods within regions alphabetically
20339
20340 2004-09-10 18:57  pbartok
20341
20342         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20343           - Added method to retrieve text from window
20344
20345 2004-09-10 18:56  pbartok
20346
20347         * Control.cs:
20348           - Moved some internal functions into the internal region
20349           - Implemented FontHeight
20350           - Implemented RenderRightToLeft
20351           - Implemented ResizeRedraw
20352           - Implemented ShowFocusCues
20353           - Implemented ShowKeyboardCues
20354           - Implemented FromChildHandle
20355           - Implemented FromHandle
20356           - Implemented IsMnemonic
20357           - Implemented ReflectMessage
20358           - All public and protected Static Methods are now complete
20359
20360 2004-09-10 16:54  pbartok
20361
20362         * Control.cs:
20363           - Implemented remaining missing public instance properties
20364           - Alphabetized some out of order properties
20365
20366 2004-09-10 05:51  ravindra
20367
20368         * PictureBox.cs: Added a check for null image.
20369
20370 2004-09-10 00:59  jordi
20371
20372         * GroupBox.cs: remove cvs tag
20373
20374 2004-09-09 05:25  ravindra
20375
20376         * ToolBar.cs: Make redraw accessible from ToolBarButton.
20377
20378 2004-09-09 05:23  ravindra
20379
20380         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
20381           parent redraw.
20382
20383 2004-09-09 02:28  pbartok
20384
20385         * ThemeWin32Classic.cs:
20386           - Improve disabled string look
20387
20388 2004-09-09 01:15  jordi
20389
20390         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
20391           args and handler
20392
20393 2004-09-08 23:56  ravindra
20394
20395         * ItemBoundsPortion.cs: It's enum, not a class!
20396
20397 2004-09-08 23:47  ravindra
20398
20399         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
20400           Enums for Form.
20401
20402 2004-09-08 21:13  ravindra
20403
20404         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
20405           ListView control.
20406
20407 2004-09-08 21:03  ravindra
20408
20409         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
20410           avoid crash.
20411
20412 2004-09-08 21:01  ravindra
20413
20414         * ScrollableControl.cs: Removed unreachable code.
20415
20416 2004-09-08 06:45  jordi
20417
20418         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
20419
20420 2004-09-08 01:00  jackson
20421
20422         * XplatUIX11.cs: Only run the timers when updating the message
20423           queue. This effectively gives X messages a higher priority then
20424           timer messages. Timers still need love though
20425
20426 2004-09-07 14:01  jackson
20427
20428         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
20429           this for us and the handle is no longer valid.
20430
20431 2004-09-07 13:59  jackson
20432
20433         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
20434           loop that manages to not crash. TODO: Add poll and cleanup timers
20435
20436 2004-09-07 11:12  jordi
20437
20438         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
20439
20440 2004-09-07 03:40  jordi
20441
20442         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
20443           fixes, methods, multiple links
20444
20445 2004-09-06 06:55  jordi
20446
20447         * Control.cs: Caches ClientRectangle rectangle value
20448
20449 2004-09-05 02:03  jordi
20450
20451         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
20452           certain situations
20453
20454 2004-09-04 11:10  jordi
20455
20456         * Label.cs: Refresh when font changed
20457
20458 2004-09-02 16:24  pbartok
20459
20460         * Control.cs:
20461           - Added sanity check to creation of double buffer bitmap
20462
20463 2004-09-02 16:24  pbartok
20464
20465         * ButtonBase.cs:
20466           - Fixed selection of text color
20467           - Fixed handling of resize event; now properly recreates double
20468             buffering bitmap
20469           - Added missing assignment of TextAlignment
20470           - Added proper default for TextAlignment
20471
20472 2004-09-02 14:26  pbartok
20473
20474         * RadioButton.cs:
20475           - Added missing RadioButton.RadioButtonAccessibleObject class
20476
20477 2004-09-02 14:26  pbartok
20478
20479         * Control.cs:
20480           - Added missing Control.ControlAccessibleObject class
20481           - Started to implement Select()ion mechanisms, still very incomplete
20482
20483 2004-09-02 14:25  pbartok
20484
20485         * AccessibleObject.cs:
20486           - Added missing methods
20487
20488 2004-09-02 14:23  pbartok
20489
20490         * AccessibleNavigation.cs, AccessibleSelection.cs:
20491           - Initial check-in
20492
20493 2004-09-02 10:32  jordi
20494
20495         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
20496           pool for pens, brushes, and hatchbruses
20497
20498 2004-09-01 15:30  jackson
20499
20500         * StatusBar.cs: Fix typo
20501
20502 2004-09-01 14:44  pbartok
20503
20504         * RadioButton.cs:
20505           - Fixed state
20506
20507 2004-09-01 14:39  pbartok
20508
20509         * Button.cs, RadioButton.cs:
20510           - Functional initial check-in
20511
20512 2004-09-01 14:01  pbartok
20513
20514         * CheckBox.cs:
20515           - Added missing default
20516           - Added missing region mark
20517
20518 2004-09-01 09:10  jordi
20519
20520         * Label.cs: fixes method signatures, new methods, events, fixes
20521           autosize
20522
20523 2004-09-01 07:19  jordi
20524
20525         * Control.cs: Init string variables with an empty object
20526
20527 2004-09-01 04:20  jordi
20528
20529         * Control.cs: fires OnFontChanged event
20530
20531 2004-08-31 20:07  pbartok
20532
20533         * ButtonBase.cs:
20534           - Enabled display of strings
20535
20536 2004-08-31 20:05  pbartok
20537
20538         * Form.cs:
20539           - Added (partial) implementation of DialogResult; rest needs to be
20540             implemented when the modal loop code is done
20541
20542 2004-08-31 19:55  pbartok
20543
20544         * CheckBox.cs:
20545           - Fixed to match the removal of the needs_redraw concept
20546
20547 2004-08-31 19:55  pbartok
20548
20549         * ButtonBase.cs:
20550           - Removed the rather odd split between 'needs redraw' and redrawing
20551           - Now handles the events that require regeneration (ambient
20552             properties and size)
20553
20554 2004-08-31 19:41  pbartok
20555
20556         * Control.cs:
20557           - Added firing of BackColorChanged event
20558           - Added TopLevelControl property
20559           - Fixed handling of WM_ERASEBKGRND message
20560
20561 2004-08-31 12:49  pbartok
20562
20563         * ButtonBase.cs:
20564           - Removed debug
20565           - Minor fixes
20566
20567 2004-08-31 12:48  pbartok
20568
20569         * CheckBox.cs:
20570           - Finished (famous last words)
20571
20572 2004-08-31 04:35  jordi
20573
20574         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
20575           scrolling bugs, adds new methods
20576
20577 2004-08-30 14:42  pbartok
20578
20579         * CheckBox.cs:
20580           - Implemented CheckBox drawing code
20581
20582 2004-08-30 14:42  pbartok
20583
20584         * ButtonBase.cs:
20585           - Made Redraw() and CheckRedraw() virtual
20586           - Improved mouse up/down/move logic to properly track buttons
20587
20588 2004-08-30 09:44  pbartok
20589
20590         * CheckBox.cs:
20591           - Updated to fix broken build. Not complete yet.
20592
20593 2004-08-30 09:28  pbartok
20594
20595         * CheckState.cs:
20596           - Initial checkin
20597
20598 2004-08-30 09:17  pbartok
20599
20600         * Appearance.cs:
20601           - Initial check-in
20602
20603 2004-08-27 16:12  ravindra
20604
20605         * ToolBarButton.cs: Added TypeConverter attribute.
20606
20607 2004-08-27 16:07  ravindra
20608
20609         * ImageIndexConverter.cs: Implemented.
20610
20611 2004-08-27 14:17  pbartok
20612
20613         * Control.cs:
20614           - Removed unneeded stack vars
20615           - First attempt to fix sizing issues when layout is suspended
20616
20617 2004-08-25 15:35  jordi
20618
20619         * ScrollBar.cs: more fixes to scrollbar
20620
20621 2004-08-25 14:04  ravindra
20622
20623         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
20624           Added the missing divider code and grip for ToolBar Control.
20625
20626 2004-08-25 13:20  pbartok
20627
20628         * Control.cs:
20629           - Control now properly passes the ambient background color to child
20630             controls
20631
20632 2004-08-25 13:20  jordi
20633
20634         * ScrollBar.cs: small bug fix regarding bar position
20635
20636 2004-08-25 12:33  pbartok
20637
20638         * Timer.cs:
20639           - Now only calls SetTimer or KillTimer if the enabled state has
20640           changed
20641
20642 2004-08-25 12:33  pbartok
20643
20644         * XplatUIWin32.cs:
20645           - Fixed timer handling, now seems to work
20646           - Improved error message for window creation
20647
20648 2004-08-25 12:32  pbartok
20649
20650         * Control.cs:
20651           - Fixed generation of MouseUp message
20652
20653 2004-08-25 12:29  jordi
20654
20655         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
20656           and fixes for progressbar
20657
20658 2004-08-24 18:43  ravindra
20659
20660         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
20661           in ToolBar control.
20662
20663 2004-08-24 17:15  pbartok
20664
20665         * Panel.cs:
20666           - Added #region
20667           - Added missing events
20668           - Alphabetized
20669
20670 2004-08-24 17:14  pbartok
20671
20672         * StatusBar.cs, PictureBox.cs:
20673           - Now uses Control's CreateParams
20674
20675 2004-08-24 16:36  pbartok
20676
20677         * XplatUIX11.cs:
20678           - Fixed background color handling
20679           - Fixed sending of enter/leave events on a grab
20680
20681 2004-08-24 16:35  pbartok
20682
20683         * X11Structs.cs:
20684           - Refined definitions for CrossingEvent
20685
20686 2004-08-24 12:37  jordi
20687
20688         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
20689           formmating, methods signature, and adds missing events
20690
20691 2004-08-24 12:24  jordi
20692
20693         * Control.cs: fire OnEnabledChanged event
20694
20695 2004-08-24 11:17  pbartok
20696
20697         * XplatUIWin32.cs:
20698           - Implemented SetTimer() and KillTimer()
20699
20700 2004-08-24 11:16  pbartok
20701
20702         * XplatUIX11.cs:
20703           - Now uses Remove instead of Add to kill the timer
20704
20705 2004-08-24 10:16  jackson
20706
20707         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
20708           picture boxes in the theme now. Draw picture box borders and obey
20709           sizing modes
20710
20711 2004-08-24 05:49  jackson
20712
20713         * Timer.cs: Remove top secret debugging code
20714
20715 2004-08-24 05:34  jackson
20716
20717         * PictureBox.cs: Temp hack to make picture boxes draw their full
20718           image
20719
20720 2004-08-24 05:29  jackson
20721
20722         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20723           XplatUIX11.cs: Move timers to the driver level. On X they are
20724           queued by the driver and checked on idle.
20725
20726 2004-08-24 01:07  jackson
20727
20728         * XplatUIX11.cs: Use a queue for async messages instead of passing
20729           them as ClientMessages since that was totally broken. Also simply
20730           check for events and return an idle message if none are found. This
20731           gives us an idle handler, and prevents deadlocking when no messages
20732           are in the queue.
20733
20734 2004-08-23 18:19  ravindra
20735
20736         * XplatUIWin32.cs: Removed the unwanted destructor.
20737
20738 2004-08-23 17:27  pbartok
20739
20740         * ButtonBase.cs:
20741           - Finishing touches. Works now, just needs some optimizations.
20742
20743 2004-08-23 16:53  jordi
20744
20745         * ScrollBar.cs: small fix
20746
20747 2004-08-23 16:45  pbartok
20748
20749         * Application.cs:
20750           - Removed debug output
20751           - Simplifications
20752
20753 2004-08-23 16:43  jordi
20754
20755         * ScrollBar.cs: [no log message]
20756
20757 2004-08-23 16:10  pbartok
20758
20759         * Form.cs:
20760           - Fixed handling of WM_CLOSE message
20761           - Removed debug output
20762
20763 2004-08-23 16:09  pbartok
20764
20765         * Application.cs:
20766           - Added handling of Idle event
20767           - Added handling of form closing
20768           - Fixed reporting of MessageLoop property
20769           - Removed some unneeded code, should provide a bit of a speedup
20770
20771 2004-08-23 15:22  pbartok
20772
20773         * Control.cs:
20774           - Added InitLayout() method
20775           - Added code to properly perform layout when Anchor or Dock property
20776             is changed
20777           - Changed 'interpretation' of ResumeLayout. MS seems to have a
20778             LAMESPEC, tried to do it in a way that makes sense
20779
20780 2004-08-23 14:10  jordi
20781
20782         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
20783           properties and methods
20784
20785 2004-08-23 13:55  pbartok
20786
20787         * Control.cs:
20788           - Properly fixed Jordi's last fix
20789           - Now uses Cursor's Position property instead of calling XplatUI
20790           directly
20791
20792 2004-08-23 13:44  jordi
20793
20794         * PaintEventHandler.cs: Adding missing attribute
20795
20796 2004-08-23 13:39  pbartok
20797
20798         * Cursor.cs:
20799           - Implemented Position property
20800
20801 2004-08-23 13:39  pbartok
20802
20803         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20804           - Added method to move mouse cursor
20805
20806 2004-08-23 13:39  pbartok
20807
20808         * XplatUIX11.cs:
20809           - Fixed setting of background color
20810           - Added method to move mouse cursor
20811
20812 2004-08-23 13:16  jordi
20813
20814         * Control.cs: avoids null exception
20815
20816 2004-08-22 17:46  jackson
20817
20818         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
20819           PictureBox
20820
20821 2004-08-22 17:40  jackson
20822
20823         * XplatUIX11.cs: Add some missing locks
20824
20825 2004-08-22 15:10  pbartok
20826
20827         * Control.cs, Form.cs:
20828           - Removed OverlappedWindow style from Control, instead it's default
20829             now is child
20830           - Made form windows OverlappedWindow by default
20831
20832 2004-08-22 13:34  jackson
20833
20834         * ScrollBar.cs: Update the position through the Value property so
20835           the OnValueChanged event is raised.
20836
20837 2004-08-22 12:04  pbartok
20838
20839         * SWF.csproj:
20840           - Added Cursor.cs and UserControl.cs
20841
20842 2004-08-22 12:03  pbartok
20843
20844         * Cursor.cs:
20845           - Started implementation, not usable yet
20846
20847 2004-08-22 12:00  pbartok
20848
20849         * UserControl.cs:
20850           - Implemented UserControl (complete)
20851
20852 2004-08-21 19:20  ravindra
20853
20854         * ToolBar.cs: Correcting the formatting mess of VS.NET.
20855
20856 2004-08-21 18:49  ravindra
20857
20858         * ToolBar.cs: Probably this completes the missing attributes in
20859           toolbar control.
20860
20861 2004-08-21 18:03  ravindra
20862
20863         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
20864           Fixed toolbar control signatures.
20865
20866 2004-08-21 16:32  pbartok
20867
20868         * LinkLabel.cs:
20869           - Signature Fixes
20870
20871 2004-08-21 16:30  pbartok
20872
20873         * Label.cs:
20874           - Signature fixes
20875
20876 2004-08-21 16:19  pbartok
20877
20878         * Control.cs, Label.cs:
20879           - Signature fixes
20880
20881 2004-08-21 15:57  pbartok
20882
20883         * ButtonBase.cs:
20884           - Added loads of debug output for development
20885           - Fixed typo in method name
20886
20887 2004-08-21 15:52  pbartok
20888
20889         * ToolBarButtonClickEventArgs.cs:
20890           - Added missing base class
20891
20892 2004-08-21 14:53  pbartok
20893
20894         * Control.cs:
20895           - Updated to match new GrabWindow signature
20896
20897 2004-08-21 14:51  pbartok
20898
20899         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20900           - Added method to get default display size
20901
20902 2004-08-21 14:23  pbartok
20903
20904         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20905           - Added method to query current grab state
20906           - Added argument to allow confining a grab to a window
20907
20908 2004-08-21 14:22  pbartok
20909
20910         * Keys.cs:
20911           - Added [Flags] attribute so that modifiers can be used in bitwise
20912           ops
20913
20914 2004-08-21 14:21  pbartok
20915
20916         * TrackBar.cs, ScrollBar.cs:
20917           - Replaced direct XplatUI calls with their Control counterpart
20918
20919 2004-08-21 13:32  pbartok
20920
20921         * Control.cs:
20922           - Implemented Created property
20923
20924 2004-08-21 13:28  pbartok
20925
20926         * Control.cs:
20927           - Implemented ContainsFocus
20928
20929 2004-08-21 13:26  pbartok
20930
20931         * Control.cs:
20932           - Implemented CausesValidation
20933
20934 2004-08-21 13:21  pbartok
20935
20936         * Control.cs:
20937           - Implemented CanFocus
20938           - Implemented CanSelect
20939           - Implemented Capture
20940
20941 2004-08-21 12:35  pbartok
20942
20943         * XplatUIWin32.cs:
20944           - Fixed bug with Async message handling
20945           - Implemented getting the ModifierKeys
20946
20947 2004-08-21 12:32  jackson
20948
20949         * AsyncMethodResult.cs: Make sure we have the mutex before we
20950           release it. Fixes BeginInvoke on windows
20951
20952 2004-08-21 11:31  pbartok
20953
20954         * XplatUIWin32.cs, XplatUIX11.cs:
20955           - Drivers now return proper mouse state
20956
20957 2004-08-21 10:54  jackson
20958
20959         * Control.cs: Implement EndInvoke
20960
20961 2004-08-21 10:48  jackson
20962
20963         * Timer.cs: Remove unneeded finalizer
20964
20965 2004-08-20 19:52  ravindra
20966
20967         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
20968           in mouse event handling in the ToolBar control.
20969
20970 2004-08-20 19:50  ravindra
20971
20972         * ImageList.cs: Changed draw method to use the arguments passed in
20973           to draw the image.
20974
20975 2004-08-20 18:58  pbartok
20976
20977         * XplatUIStructs.cs:
20978           - Added private message for async communication
20979
20980 2004-08-20 17:38  ravindra
20981
20982         * Control.cs: Made RightToLeft property virtual and removed a
20983           Console.WriteLine.
20984
20985 2004-08-20 14:39  jordi
20986
20987         * ThemeGtk.cs: use style_attach
20988
20989 2004-08-20 14:39  pbartok
20990
20991         * XplatUIWin32.cs:
20992           - Added jackson's Async code from X11 to Win32
20993
20994 2004-08-20 14:09  pbartok
20995
20996         * SWF.csproj:
20997           - Added all new files
20998
20999 2004-08-20 14:09  pbartok
21000
21001         * Control.cs:
21002           - Added call to set window background color
21003
21004 2004-08-20 14:03  pbartok
21005
21006         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
21007           - Added method for setting the window background
21008
21009 2004-08-20 14:02  pbartok
21010
21011         * XplatUIWin32.cs:
21012           - Added method for setting the background color
21013           - Added handling for erasing the window background
21014
21015 2004-08-20 13:45  jordi
21016
21017         * TrackBar.cs: fixes timer, new properties and methods
21018
21019 2004-08-20 13:34  jackson
21020
21021         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
21022           correct thread
21023
21024 2004-08-20 13:22  jackson
21025
21026         * Timer.cs: Timer Tick events are now handed through Controls Async
21027           mechanism so the callbacks are executed in the same thread as X
21028
21029 2004-08-20 13:19  jackson
21030
21031         * XplatUIDriver.cs: Expose functionality to send async messages
21032           through the driver
21033
21034 2004-08-20 13:18  jackson
21035
21036         * Control.cs: Implement Begininvoke
21037
21038 2004-08-20 13:14  jackson
21039
21040         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
21041           messages through the driver
21042
21043 2004-08-20 13:12  jackson
21044
21045         * XplatUIX11.cs: Lock before all X operations. Also added Async
21046           method functionality through XSendEvent
21047
21048 2004-08-20 13:11  jackson
21049
21050         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
21051           This will screw up on 64 bit systems)
21052
21053 2004-08-20 13:10  jackson
21054
21055         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
21056           Async messages through X/Win32
21057
21058 2004-08-19 19:39  pbartok
21059
21060         * XplatUIX11.cs:
21061           - Updated code to match new HandleData.DeviceContext type
21062
21063 2004-08-19 19:38  pbartok
21064
21065         * HandleData.cs:
21066           - Made DeviceContext a generic object to allow usage from various
21067           drivers
21068           - Added support for queueing Windows messages
21069
21070 2004-08-19 19:37  pbartok
21071
21072         * XplatUIWin32.cs:
21073           - Added generation of MouseEnter, MouseLeave and MouseHover events
21074           - Added cleanup on EndPaint
21075
21076 2004-08-19 19:17  pbartok
21077
21078         * Control.cs:
21079           - Added handling of WM_MOUSEHOVER
21080           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
21081           code
21082
21083 2004-08-19 18:55  jordi
21084
21085         * ThemeGtk.cs: fixes button order
21086
21087 2004-08-19 18:12  jordi
21088
21089         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
21090
21091 2004-08-19 17:09  pbartok
21092
21093         * Control.cs:
21094           - Added Right property
21095           - Added RightToLeft property
21096
21097 2004-08-19 16:27  jordi
21098
21099         * ThemeGtk.cs: experimental GTK theme support
21100
21101 2004-08-19 16:26  jordi
21102
21103         * ITheme.cs, Theme.cs: move themes from an interface to a class
21104
21105 2004-08-19 16:25  jordi
21106
21107         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
21108           theme enhancaments
21109
21110 2004-08-19 16:04  pbartok
21111
21112         * XplatUIX11.cs:
21113           - Added colormap basics
21114           - Added a way to re-initialize with a different display handle
21115           - Fixed setting of the window background color
21116           - Added various X11 imports related to colors and colormaps
21117
21118 2004-08-19 15:51  pbartok
21119
21120         * X11Structs.cs:
21121           - Removed packing hints (Paolo suggested this a while back)
21122           - fixed colormap type
21123           - Added default Atom types
21124           - Added Screen and color structs and enums
21125
21126 2004-08-19 15:39  pbartok
21127
21128         * ImageList.cs:
21129           - Added missing Draw() method
21130           - Added missing RecreateHandle event
21131
21132 2004-08-19 15:30  pbartok
21133
21134         * Form.cs:
21135           - Added handling of WM_CLOSE
21136
21137 2004-08-18 13:16  jordi
21138
21139         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
21140           a table
21141
21142 2004-08-18 09:56  jordi
21143
21144         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
21145
21146 2004-08-17 15:31  ravindra
21147
21148         * SWF.csproj: Updated project.
21149
21150 2004-08-17 15:25  pbartok
21151
21152         * Control.cs:
21153           - Drawing improvement; don't call UpdateBounds if we are not visible
21154             (or have been minimized)
21155
21156 2004-08-17 15:24  pbartok
21157
21158         * XplatUIWin32.cs:
21159           - Finished IsVisible
21160           - Added Win32GetWindowPlacement
21161
21162 2004-08-17 15:08  jackson
21163
21164         * Panel.cs: Initial checkin of the Panel
21165
21166 2004-08-17 14:25  pbartok
21167
21168         * Control.cs:
21169           - Fixed broken handling of default window sizes
21170
21171 2004-08-17 13:29  jackson
21172
21173         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
21174           has a large startup time.
21175
21176 2004-08-17 10:25  jackson
21177
21178         * HandleData.cs: union areas properly
21179
21180 2004-08-17 10:12  jackson
21181
21182         * HandleData.cs: union areas properly
21183
21184 2004-08-16 20:00  ravindra
21185
21186         * ToolBar.cs, ToolBarButton.cs: Added attributes.
21187
21188 2004-08-16 18:48  ravindra
21189
21190         * ToolBar.cs: Added attributes.
21191
21192 2004-08-16 17:17  ravindra
21193
21194         * SWF.csproj: Updated project.
21195
21196 2004-08-16 17:16  jackson
21197
21198         * XplatUIX11.cs: Check for more expose events before sending a
21199           WM_PAINT so they can all be grouped together. This makes dragging a
21200           window across another window redraw in a sane way.
21201
21202 2004-08-16 15:47  pbartok
21203
21204         * Control.cs:
21205           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
21206             support OnMouseEnter/Leave()
21207           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
21208             exposure handling
21209
21210 2004-08-16 15:46  pbartok
21211
21212         * XplatUIStructs.cs, XplatUIX11.cs:
21213           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
21214           OnMouseEnter/Leave()
21215
21216 2004-08-16 15:34  jackson
21217
21218         * XplatUIX11.cs: Group multiple expose events in HandleData, make
21219           sure messages get the message field set to WM_NULL if they are not
21220           handled.
21221
21222 2004-08-16 15:24  jackson
21223
21224         * HandleData.cs: HandleData is used for storing message information
21225           for window handles
21226
21227 2004-08-15 17:23  ravindra
21228
21229         * ColorDepth.cs: Added attribute.
21230
21231 2004-08-15 17:23  ravindra
21232
21233         * SWF.csproj: Updated project for ToolBar Control.
21234
21235 2004-08-15 17:20  ravindra
21236
21237         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
21238           control and also dos2unix format.
21239
21240 2004-08-15 17:13  ravindra
21241
21242         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
21243           ToolBarButtonClickEventArgs.cs,
21244           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
21245           ToolBarTextAlign.cs: First Implementation of ToolBar control.
21246
21247 2004-08-15 15:31  pbartok
21248
21249         * ButtonBase.cs:
21250           - First (mostly) working version
21251
21252 2004-08-13 16:15  pbartok
21253
21254         * Control.cs:
21255           - Fixed Anchor default
21256
21257 2004-08-13 15:43  pbartok
21258
21259         * Control.cs:
21260           - Changed GetCursorPos signature
21261
21262 2004-08-13 15:42  pbartok
21263
21264         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21265           - Changed signature for GetCursorPos
21266
21267 2004-08-13 15:25  pbartok
21268
21269         * XplatUIX11.cs:
21270           - Cleanup
21271           - Fixed resizing/exposure handling
21272
21273 2004-08-13 15:22  jordi
21274
21275         * ThemeWin32Classic.cs: removes redundant code and fixes issues
21276           with tickposition
21277
21278 2004-08-13 14:55  jordi
21279
21280         * TrackBar.cs: change from wndproc to events
21281
21282 2004-08-13 13:00  jordi
21283
21284         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21285           XplatUIX11.cs: implements PointToClient (ScreenToClient)
21286
21287 2004-08-13 12:53  pbartok
21288
21289         * XplatUIWin32.cs:
21290           - Changed GetWindowPos to also provide client area size
21291           - Fixed broken prototypes for several win32 functions
21292
21293 2004-08-13 12:53  pbartok
21294
21295         * XplatUI.cs, XplatUIDriver.cs:
21296           - Changed GetWindowPos to also provide client area size
21297
21298 2004-08-13 12:52  pbartok
21299
21300         * XplatUIX11.cs:
21301           - Added generation of WM_POSCHANGED
21302           - Changed GetWindowPos to also provide client area size
21303
21304 2004-08-13 12:52  pbartok
21305
21306         * Control.cs:
21307           - Added Dispose() and destructor
21308           - Fixed resizing and bounds calculation
21309           - Fixed Layout
21310           - Added memory savings for invisible windows
21311
21312 2004-08-13 12:46  jordi
21313
21314         * TrackBar.cs: adds timer and grap window
21315
21316 2004-08-13 10:25  jackson
21317
21318         * Timer.cs: SWF Timer
21319
21320 2004-08-12 16:59  pbartok
21321
21322         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21323           - Implemented method to get current mouse position
21324
21325 2004-08-12 14:29  jordi
21326
21327         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
21328           enhancement, fix mouse problems, highli thumb, etc
21329
21330 2004-08-12 13:31  pbartok
21331
21332         * Control.cs:
21333           - Fixed Anchoring bugs
21334
21335 2004-08-12 13:01  jackson
21336
21337         * StatusBar.cs: Don't forget things
21338
21339 2004-08-12 12:54  jackson
21340
21341         * ThemeWin32Classic.cs: Handle owner draw status bars
21342
21343 2004-08-12 12:54  jackson
21344
21345         * StatusBar.cs: Implement missing properties, events, and methods.
21346           Handle mouse clicking
21347
21348 2004-08-12 10:19  jackson
21349
21350         * StatusBarPanelClickEventArgs.cs,
21351           StatusBarPanelClickEventHandler.cs: Classes for handling status
21352           bar panel click events
21353
21354 2004-08-12 10:10  jackson
21355
21356         * Control.cs: Add missing properties
21357
21358 2004-08-12 09:46  pbartok
21359
21360         * BindingsManagerBase.cs:
21361           - Name changed to BindingManagerBase.cs
21362
21363 2004-08-12 09:25  jordi
21364
21365         * ScrollableControl.cs: calls ctrlbase instead of exeception
21366
21367 2004-08-11 16:28  pbartok
21368
21369         * InputLanguageChangingEventArgs.cs:
21370           - Never check in before compiling. Fixes the last check-in
21371
21372 2004-08-11 16:26  pbartok
21373
21374         * InputLanguageChangingEventArgs.cs:
21375           - More signature fixes
21376
21377 2004-08-11 16:20  pbartok
21378
21379         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
21380           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
21381           ImageListStreamer.cs, InputLanguage.cs,
21382           InputLanguageChangedEventArgs.cs,
21383           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
21384           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
21385           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
21386           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21387           - Signature fixes
21388
21389 2004-08-11 16:16  pbartok
21390
21391         * Application.cs:
21392           - Fixed Signature
21393           - Added .Net 1.1 method
21394
21395 2004-08-11 15:25  pbartok
21396
21397         * SWF.csproj:
21398           - Fixed BindingManagerBase.cs filename
21399
21400 2004-08-11 15:22  pbartok
21401
21402         * BindingManagerBase.cs:
21403           - Was checked in with wrong filename
21404
21405 2004-08-11 14:50  pbartok
21406
21407         * SWF.csproj:
21408           - Updated
21409
21410 2004-08-11 13:41  jordi
21411
21412         * XplatUIWin32.cs: Fixes ClientRect
21413
21414 2004-08-11 13:19  pbartok
21415
21416         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21417           XplatUIX11.cs:
21418           - We had SetWindowPos and MoveWindow to set window positions and
21419             size, removed MoveWindow. We have GetWindowPos, so it made sense to
21420             keep SetWindowPos as matching counterpart
21421           - Added some X11 sanity checking
21422
21423 2004-08-11 12:59  pbartok
21424
21425         * Control.cs:
21426           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
21427             (It seems that SetBounds is just a front for SetBoundsCore and
21428              SetBoundsCore updates the underlying window system and
21429              UpdateBounds is responsible for updating the variables associated
21430              with the Control and sending the events)
21431           - Major cleanup of Size handling; we now have two sizes, client_size
21432             and bounds. Bounds defines the window with decorations, client_size
21433             without them.
21434
21435 2004-08-11 12:55  pbartok
21436
21437         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21438           - Added method to calculate difference between decorated window and
21439             raw client area
21440
21441 2004-08-11 12:54  pbartok
21442
21443         * Label.cs:
21444           - Forcing redraw on resize
21445
21446 2004-08-11 11:43  pbartok
21447
21448         * ImageList.cs:
21449           - Removed disposing of the actual images when the list is disposed
21450
21451 2004-08-11 09:13  pbartok
21452
21453         * Control.cs:
21454           - Now properly reparents windows
21455
21456 2004-08-11 08:37  pbartok
21457
21458         * Control.cs:
21459           - Duh!
21460
21461 2004-08-11 07:47  pbartok
21462
21463         * Control.cs:
21464           - Rewrote the collection stuff. Might not be as fast now, not
21465             keeping the number of children around and accessible directly, but
21466             it's more straightforward
21467
21468 2004-08-11 07:44  pbartok
21469
21470         * AccessibleObject.cs:
21471           - Fixed to match ControlCollection rewrite
21472
21473 2004-08-11 07:43  pbartok
21474
21475         * ImageList.cs:
21476           - Added missing creation of the collection list
21477
21478 2004-08-10 20:08  jackson
21479
21480         * StatusBar.cs: Get the paint message from WndProc
21481
21482 2004-08-10 19:31  jackson
21483
21484         * ThemeWin32Classic.cs: Create Brushes as little as possible
21485
21486 2004-08-10 19:20  jackson
21487
21488         * UICues.cs: Add Flags attribute
21489
21490 2004-08-10 19:19  jackson
21491
21492         * StatusBarPanel.cs: Signature cleanup
21493
21494 2004-08-10 19:10  jackson
21495
21496         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
21497           Initial implementation of status bar item drawing
21498
21499 2004-08-10 17:27  jordi
21500
21501         * TrackBar.cs: add missing methods, properties, and restructure to
21502           hide extra ones
21503
21504 2004-08-10 16:24  jackson
21505
21506         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
21507           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
21508           attribute
21509
21510 2004-08-10 13:21  jordi
21511
21512         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
21513           enhancements and standarize on win colors defaults
21514
21515 2004-08-10 12:52  jackson
21516
21517         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
21518           ThemeWin32Classic.cs: Implement DrawItem functionality
21519
21520 2004-08-10 12:47  jordi
21521
21522         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
21523
21524 2004-08-10 12:32  jordi
21525
21526         * Control.cs: throw ontextchange event
21527
21528 2004-08-10 11:43  pbartok
21529
21530         * Control.cs:
21531           - Added more to the still unfinished Dock/Anchor layout code
21532
21533 2004-08-10 11:39  pbartok
21534
21535         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
21536           - Added GetWindowPos method
21537
21538 2004-08-10 11:36  pbartok
21539
21540         * XplatUIWin32.cs:
21541           - Implemented several methods
21542
21543 2004-08-10 09:47  jackson
21544
21545         * TrackBar.cs: Allow control to handle buffering
21546
21547 2004-08-10 09:41  jackson
21548
21549         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
21550
21551 2004-08-10 09:24  jackson
21552
21553         * Label.cs, LinkLabel.cs: Let Control handle buffering.
21554
21555 2004-08-10 09:09  jackson
21556
21557         * StatusBar.cs: Let Control handle all the buffering.
21558
21559 2004-08-10 09:08  jackson
21560
21561         * Control.cs: Control will now handle the buffering code, so each
21562           control does not have to implement this.
21563
21564 2004-08-10 08:34  jackson
21565
21566         * XplatUIDriver.cs: Use default colors from the theme
21567
21568 2004-08-09 17:12  pbartok
21569
21570         * ImageList.cs:
21571           - Fixed several bugs Ravindra pointed out
21572
21573 2004-08-09 16:11  pbartok
21574
21575         * Control.cs:
21576           - Added incomplete dock layout code
21577           - Added support for mouse wheel
21578
21579 2004-08-09 16:09  pbartok
21580
21581         * XplatUIX11.cs:
21582           - Added handling for middle and right mousebutton
21583           - Added handling for mouse wheel
21584           - Added handling for key state and mouse state and position
21585           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
21586           messages
21587
21588 2004-08-09 15:40  jackson
21589
21590         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
21591           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
21592           checkin
21593
21594 2004-08-09 15:37  jackson
21595
21596         * StatusBar.cs: Initial implementation of StatusBar
21597
21598 2004-08-09 15:36  jackson
21599
21600         * ITheme.cs: Add support for drawing status bar and getting status
21601           bar item sizes
21602
21603 2004-08-09 15:35  pbartok
21604
21605         * MouseButtons.cs:
21606           - Fixed values
21607
21608 2004-08-09 15:34  jackson
21609
21610         * ThemeWin32Classic.cs: Add support for drawing status bar and get
21611           status bar item sizes
21612
21613 2004-08-09 15:21  jackson
21614
21615         * ThemeWin32Classic.cs: Use known colors for default control
21616           colours
21617
21618 2004-08-09 15:12  jackson
21619
21620         * ThemeWin32Classic.cs: Make the default font static, it is static
21621           in control so this doesn't change functionality and creating fonts
21622           is sloooooow.
21623
21624 2004-08-09 14:56  pbartok
21625
21626         * X11Structs.cs:
21627           - Added GrabMode enum
21628
21629 2004-08-09 14:55  pbartok
21630
21631         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21632           - Removed Run method, was only required for initial development
21633
21634 2004-08-09 14:51  pbartok
21635
21636         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21637           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
21638           capture
21639
21640 2004-08-09 13:48  pbartok
21641
21642         * XplatUIX11.cs:
21643           - Fixed default sizing for child windows
21644
21645 2004-08-09 12:56  pbartok
21646
21647         * XplatUIX11.cs:
21648           - Added generation of WM_DESTROY message
21649           - Added handling of window manager induced shutdown
21650
21651 2004-08-09 11:31  jackson
21652
21653         * ThemeWin32Classic.cs: New names for control properties
21654
21655 2004-08-09 11:25  jackson
21656
21657         * Control.cs: Use new color names
21658
21659 2004-08-09 11:02  jackson
21660
21661         * XplatUI.cs: Get default window properties from the theme
21662
21663 2004-08-09 11:01  jackson
21664
21665         * ITheme.cs: The theme engine now controls default window
21666           properties
21667
21668 2004-08-09 11:00  jackson
21669
21670         * ThemeWin32Classic.cs: Add default window color properties
21671
21672 2004-08-09 10:17  jackson
21673
21674         * ThemeWin32Classic.cs: Use correct default back color
21675
21676 2004-08-09 10:05  jackson
21677
21678         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
21679           the theme now.
21680
21681 2004-08-09 09:56  jackson
21682
21683         * XplatUI.cs: Remove defaults, these are handled by the theme now.
21684
21685 2004-08-09 09:54  jackson
21686
21687         * Control.cs: Get default properties from the theme.
21688
21689 2004-08-09 09:53  jackson
21690
21691         * ITheme.cs: Themes now handle default control properties
21692
21693 2004-08-09 09:53  jackson
21694
21695         * ThemeWin32Classic.cs: Themes now handle default control
21696           properties so coloring will be consistent
21697
21698 2004-08-08 16:54  jordi
21699
21700         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
21701
21702 2004-08-08 15:08  jordi
21703
21704         * XplatUIX11.cs: fixes keyboard crash
21705
21706 2004-08-08 13:47  jordi
21707
21708         * Label.cs: add cvs header info
21709
21710 2004-08-08 12:09  jackson
21711
21712         * ThemeWin32Classic.cs: Add pen_buttonface
21713
21714 2004-08-08 11:52  jordi
21715
21716         * Label.cs, LinkLabel.cs: [no log message]
21717
21718 2004-08-08 11:34  jordi
21719
21720         * ThemeWin32Classic.cs: Use Windows Standard Colours
21721
21722 2004-08-07 17:32  jordi
21723
21724         * TrackBar.cs: throw exceptions of invalid enums values
21725
21726 2004-08-07 17:31  jordi
21727
21728         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
21729           draw method name
21730
21731 2004-08-07 16:56  jackson
21732
21733         * HorizontalAlignment.cs: Initial checkin
21734
21735 2004-08-07 13:16  jordi
21736
21737         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
21738           methods
21739
21740 2004-08-07 13:05  jordi
21741
21742         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
21743           GetSysColor defines
21744
21745 2004-08-06 18:01  pbartok
21746
21747         * ThemeWin32Classic.cs:
21748           - Fixed some rounding issues with float/int
21749
21750 2004-08-06 18:00  jackson
21751
21752         * DockStyle.cs, AnchorStyles.cs:
21753
21754                   Add flags and serializable attributes.
21755
21756 2004-08-06 17:46  pbartok
21757
21758         * XplatUIX11.cs:
21759           - Implemented GetParent
21760
21761 2004-08-06 17:18  pbartok
21762
21763         * TrackBar.cs:
21764           - Fixed some rounding issues with float/int
21765
21766 2004-08-06 17:17  pbartok
21767
21768         * X11Structs.cs, XplatUIX11.cs:
21769           - Fixed Refresh and Invalidate
21770
21771 2004-08-06 15:30  pbartok
21772
21773         * Control.cs, X11Structs.cs, XplatUIX11.cs:
21774           - Fixed recursive loop when resizing
21775           - Improved/fixed redrawing on expose messages
21776
21777 2004-08-06 09:53  jordi
21778
21779         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
21780           keyboard navigation
21781
21782 2004-08-06 08:02  pbartok
21783
21784         * X11Structs.cs, XplatUIX11.cs:
21785           - Fixed reparenting
21786           - Fixed window border creation
21787
21788 2004-08-05 15:38  pbartok
21789
21790         * XplatUIX11.cs:
21791           - Attempted fix for reparenting problems
21792
21793 2004-08-04 15:14  pbartok
21794
21795         * Control.cs:
21796           - Fixed Invalidation bug (calculated wrong client area)
21797           - Added ClientSize setter
21798
21799 2004-08-04 15:13  pbartok
21800
21801         * Form.cs:
21802           - Added AutoScale properties
21803
21804 2004-08-04 15:13  pbartok
21805
21806         * SWF.csproj:
21807           - Added latest files
21808
21809 2004-08-04 14:11  pbartok
21810
21811         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21812           XplatUIX11.cs:
21813           - Added Invalidate handling
21814
21815 2004-08-03 17:09  jordi
21816
21817         * XplatUIDriver.cs: fixes spelling mistake
21818
21819 2004-07-27 09:53  jordi
21820
21821         * TrackBar.cs: fixes trackbar events, def classname, methods
21822           signature
21823
21824 2004-07-27 09:29  jordi
21825
21826         * ScrollBar.cs: fixes scrollbar events
21827
21828 2004-07-27 04:38  jordi
21829
21830         * Control.cs: changes to be able to run winforms samples
21831
21832 2004-07-26 11:42  jordi
21833
21834         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
21835           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
21836
21837 2004-07-26 05:41  jordi
21838
21839         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
21840           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
21841           implementation
21842
21843 2004-07-22 09:22  jordi
21844
21845         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
21846           check link overlapping, implement events, and fixes
21847
21848 2004-07-21 10:28  jordi
21849
21850         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
21851
21852 2004-07-21 10:19  jordi
21853
21854         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
21855           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
21856           LinkLabelLinkClickedEventArgs.cs,
21857           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
21858           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
21859           implementation
21860
21861 2004-07-19 13:09  jordi
21862
21863         * Control.cs, Label.cs: label control re-written: added missing
21864           functionlity, events, and properties
21865
21866 2004-07-19 10:49  jordi
21867
21868         * Control.cs: fixes SetBounds logic
21869
21870 2004-07-19 01:29  jordi
21871
21872         * Control.cs: Call RefreshWindow only if the window has created
21873
21874 2004-07-15 14:05  pbartok
21875
21876         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
21877           - Implemented ImageList and ImageList.ImageCollection classes
21878           - Added ColorDepth enumeration
21879           - Updated SWF VS.Net project
21880
21881 2004-07-15 11:06  jordi
21882
21883         * XplatUIStructs.cs: added MsgButons enum
21884
21885 2004-07-15 11:03  jordi
21886
21887         * Control.cs: added basic mouse handeling events
21888
21889 2004-07-15 03:38  jordi
21890
21891         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
21892           Vertical TrackBar control implementation
21893
21894 2004-07-13 09:33  jordi
21895
21896         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
21897
21898 2004-07-13 09:31  jordi
21899
21900         * Control.cs, Form.cs: commit: new properties and fixes form size
21901           problems
21902
21903 2004-07-09 14:13  miguel
21904
21905         * ProgressBar.cs: Spelling
21906
21907 2004-07-09 11:25  pbartok
21908
21909         * ProgressBar.cs:
21910           - Removed usage of Rectangle for drawing. Miguel pointed out it's
21911           faster
21912
21913 2004-07-09 11:17  miguel
21914
21915         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
21916
21917                 * ProgressBar.cs: Fixed spelling for `block'
21918
21919                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
21920                 style guidelines.
21921
21922                 Avoid using the += on rect.X, that exposed a bug in the compiler.
21923
21924 2004-07-08 23:21  pbartok
21925
21926         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
21927           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
21928           BaseCollection.cs, Binding.cs, BindingContext.cs,
21929           BindingMemberInfo.cs, BindingsCollection.cs,
21930           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
21931           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
21932           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
21933           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
21934           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
21935           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
21936           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
21937           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
21938           FrameStyle.cs, GiveFeedbackEventArgs.cs,
21939           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
21940           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
21941           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
21942           InputLanguageChangedEventArgs.cs,
21943           InputLanguageChangedEventHandler.cs,
21944           InputLanguageChangingEventArgs.cs,
21945           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
21946           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
21947           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
21948           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
21949           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
21950           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
21951           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
21952           QueryAccessibilityHelpEventArgs.cs,
21953           QueryAccessibilityHelpEventHandler.cs,
21954           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
21955           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
21956           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
21957           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
21958           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
21959           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
21960           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
21961           XplatUIX11.cs, lang.cs:
21962           - Initial check-in
21963