* MenuAPI.cs: Dont trigger select event when closes top menu
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2
3         * MenuAPI.cs: Dont trigger select event when closes top menu
4         item. Fixes #80270.
5
6 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
7
8         * MenuAPI.cs: When you click on menuitem only trigger onselect
9         event for top menu itens. Fixes #80271.
10         
11 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
12
13         * MdiWindowManager.cs: Make IconicBounds depend on
14         the bottom of MdiClient, not the top (fixes #80267)
15         
16 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17
18         * MdiClient.cs: Added missing 2.0 attribute
19
20 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21
22         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
23         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
24
25 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
26
27         * MenuAPI.cs: Fix click when menuitem is not popup,
28         this regression was caused by last commit (#80272).
29
30 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
31
32         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
33         fire click event or close menu. Fixes #80272.
34
35 2006-12-17  Daniel Nauck  <dna@mono-project.de>
36
37         * ListViewHitTestInfo.cs: add
38
39 2006-12-17  Daniel Nauck  <dna@mono-project.de>
40
41         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
42         * FlatButtonAppearance.cs: add
43         * DockingAttribute.cs: add
44
45 2006-12-17  Chris Toshok  <toshok@ximian.com>
46
47         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
48         and rebind our columns when it does - this way, if you make
49         changes to the DataTable (or set the Table attribute on a DataView
50         after setting it as the DataGrid's DataSource, the changes are
51         made visible.)  Fixes bug #80107.
52
53 2006-12-17  Daniel Nauck  <dna@mono-project.de>
54
55         * ListViewGroup.cs: add internal Location property for layouting.
56         * Theme.cs: add abstract ListViewGroupHeight function.
57         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
58
59 2006-12-16  Andreia Gaita  <avidigal@novell.com>
60
61         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
62         Added reset of selected index to 0 when adding first tab page.
63         Fixes #80264
64         
65         * NumericUpDown.cs: Fix NET_2_0 check
66
67 2006-12-16  Daniel Nauck  <dna@mono-project.de>
68
69         * ListViewGroup.cs: fixed DefaultValueAttribute value
70
71 2006-12-16  Daniel Nauck  <dna@mono-project.de>
72
73         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
74
75 2006-12-15  Miguel de Icaza  <miguel@novell.com>
76
77         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
78         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
79         ScrollableControl.cs: Add a handful of methods that are
80         overwritten in 2.0 
81
82 2006-12-15  Chris Toshok  <toshok@ximian.com>
83
84         * XplatUIWin32.cs: initial implementation of the Reversible
85         drawing functions.  there are some problems.  DrawReversibleFrame
86         doesn't seem to work at all for Dashed FrameStyle, and in the
87         Thick case there are drawing errors at the corners (we probably
88         need to bind Rectangle instead of doing moveto/lineto's.)
89
90 2006-12-16  Andreia Gaita  <avidigal@novell.com>
91         
92         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
93         to send blocks of key messages. Send accumulates keys to send with Flush, 
94         while SendWait sends all keys immediately.
95                 
96         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
97         XplatUIX11.cs,  XplatUIX11-new.cs:
98         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
99         to Win32 SendInput.
100         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
101         
102         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
103         testing for ms.net on this class is very tricky, as the tests run too fast 
104         to allow the hook to release, essentially freezing the keyboard and the 
105         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
106         category :p
107
108 2006-12-16  Daniel Nauck  <dna@mono-project.de>
109
110         * Padding.cs: fixed serialization compability to MS ("_var" field names),
111                         added missing attributes.
112  
113 2006-12-15  Daniel Nauck  <dna@mono-project.de>
114
115         * ListViewGroup.cs: Added missing attributes.
116         * ListViewGroupCollection.cs: Added missing attributes.
117
118 2006-12-15  Daniel Nauck  <dna@mono-project.de>
119
120         * ListViewItem.cs: fixed ListViewSubItem text property.
121
122 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
123         
124         * Control.cs: Added missing 2.0 attributes
125         
126 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
127         
128         * MdiClient.cs: Added missing 2.0 attribute.
129         * MonthCalendar.cs: Added some missing 2.0 attributes 
130         and properties.
131         
132 2006-12-15  Daniel Nauck  <dna@mono-project.de>
133
134         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
135
136 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
137
138         * MainMenu.cs: Add the new 2.0 constructor to help out people
139         using the MainMenu in VS2005.
140
141 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
142         
143         * MdiChildContext.cs: Removed it, no longer used.
144         * MdiClient.cs: Added missing 2.0 attributes.
145         
146 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
147         
148         * InternalWindowManager.cs: Fix a NullRef with previous 
149         changes for toolwindows.
150         
151 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
152
153         * Control.cs: 
154         - Added AfterTopMostControl to allow for certain controls 
155         to always stay on top when normal controls are brought to 
156         front.
157         
158         * XplatUIWin32.cs: 
159         - (DrawInversibleRectangle): Get window rectangle from Win32 
160         in stead of from control, since Win32 doesn't calculate
161         screen coords correctly from control's Location if it 
162         have docked siblings.
163         
164         * MdiWindowManager.cs:
165         - Correct the control menu popup location when clicked on
166         the maximized form icon. (fixes #80223.1)
167         - Don't show moving rectangle if mouse hasn't moved from
168         the original clicked point.
169         - Removed FormGotFocus handler (not used).
170         - Calculate the control buttons location from the main
171         window's size and not client size (fixes #79770).
172         - Form is now closed when the form icon is double-clicked
173         (fixes #79775). 
174         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
175         
176         * InternalWindowManager.cs:
177         - Moved some MDI-only methods to MdiWindowManager.
178         - Removed unused properties and methods.
179         - Unified method naming for methods handling wm messages.
180         - Moved all message handling to seperate methods for
181         each message.
182         
183         * ThemeWin32Classic.cs:
184         - DrawManagedWindowDecorations now draws the title bar 
185         with a gradient brush.
186         - Add a CPDrawButtonInternal that allows us to specify
187         light, normal and dark colors for the buttons (control 
188         buttons for MDI children were drawn with the same light
189         color as the background, therefore loosing the 3D effect).
190         
191         * SizeGrip.cs:
192         - Add a CapturedControl property that is used to 
193         determine the control to resize (defaults to parent). 
194         Needed for MdiClient, since its SizeGrip's parent is
195         MdiClient, but the control to resize is the main form.
196         
197         * MdiClient.cs:
198         - Set SizeGrip's CapturedControl to the main form in order
199         to resize the main form and not the MdiClient.
200         - Override AfterTopMostControl to leave the scrollbars 
201         always on top.
202
203 2006-12-15  Daniel Nauck  <dna@mono-project.de>
204
205         * ListView.cs: fixed ListViewItemCollection AddRange and
206                         implemented ListViewItemCollection AddRange 2.0 support.
207
208 2006-12-15  Daniel Nauck  <dna@mono-project.de>
209
210         * ListViewGroup.cs: Add.
211         * ListViewGroupCollection.cs: Add
212         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
213         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
214                                 stub for ImageKey 2.0 support.
215
216 2006-12-14  Mike Kestner  <mkestner@novell.com>
217
218         * ListView.cs: add text padding to the autocalculation for columns
219         of width -2.  Fixes #80207.
220  
221 2006-12-14  Mike Kestner  <mkestner@novell.com>
222
223         * ListView.cs: add some index guarding for partial row navigation 
224         logic.  Fixes #80250.
225
226 2006-12-14  Mike Kestner  <mkestner@novell.com>
227
228         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
229         are added or inserted to the collection.  Fixes #81099.
230
231 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
232
233         * MenuAPI.cs: Closes menu when right click out side of popup
234         it fix problem in ContextMenu and MainMenu. Fixes #80252.
235
236 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
237
238         * ListViewItem.cs: Fix dumb error.
239
240         * ListView.cs: Add Find and ContainsKey methods in 
241         ListViewItemCollection, and also return true for IsReadOnly
242         and IsFixedSize (changes for 2.0). 
243
244 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
245
246         * Control.cs: Allow Region to be set to null.
247
248 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
249
250         * MdiWindowManager.cs: Remove unused (commented out) code.
251         * Form.cs: When the MdiChild is maximized, the form needs 
252         WM_NCMOUSELEAVE, so request it.
253         * InternalWindowManager.cs: 
254         - Added tooltips to control buttons.
255         - Removed duplicated control button handling code.
256         - Removed unused (commented out) code.
257         
258 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
259
260         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
261         was used because we must set cursor without trigger ChangeCursor event
262         and without change Cursor control property. Fixes #79963.
263
264 2006-12-12  Andreia Gaita  <avidigal@novell.com>
265         
266         * Control.cs: Check if Region setter value is null, and ignore
267
268 2006-12-12  Jackson Harper  <jackson@ximian.com>
269
270         * TextControl.cs: We were almost always drawing one more line then
271         needed, since the GetLineByPixel will return the last line found
272         at that pixel. In most cases though, we were invalidating up to
273         the junction between two lines.
274         - Improve debug code.
275
276 2006-12-12  Chris Toshok  <toshok@ximian.com>
277
278         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
279         and FillReversibleRectangle.
280
281         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
282         and FillReversibleRectangle.
283
284         * XplatUIWin32.cs: add stubs which do nothing for
285         DrawReversibleFrame, DrawReversibleLine, and
286         FillReversibleRectangle.
287
288         * XplatUIOSX.cs: add stubs which raise NIE for
289         DrawReversibleFrame, DrawReversibleLine, and
290         FillReversibleRectangle.
291
292         * XplatUIX11.cs: add working implementation for
293         DrawReversibleFrame, DrawReversibleLine, and
294         FillReversibleRectangle.
295         
296         * ControlPaint.cs: implement DrawReversibleFrame,
297         DrawReversibleLine, and FillReversibleRectangle, by calling into
298         the appropriate XplatUI method.
299
300 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
301
302         * Form.cs: Make MdiClient have the focus even if it's
303         not selectable, since it should receive WM_KEY* and WM_MOUSE 
304         messages. Fixes #79907.
305         
306 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
307
308         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
309         queried after the window is created.
310         
311         * XplatUIX11.cs: Added SendParentNotify to implement 
312         WM_PARENTNOTIFY logic. Fixes #79965.
313         
314         * Control.cs: Added MakeParam.
315         
316 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
317
318         * MdiClient.cs: Resume Layout before setting window
319         states (fixes #80201).
320
321 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
322
323         * MenuAPI.cs: Deselect a menu item after performing
324         the click (fixes #80197).
325
326 2006-12-11  Jackson Harper  <jackson@ximian.com>
327
328         * TextBoxBase.cs: We need to cap this value, since Maximum -
329         ViewPortHeight can be less than zero.
330         - Only do selection with the left mouse button.
331         * TextBox.cs: Don't tell the world that we have a context menu.
332         * Control.cs: New method so that we can control whether or not the
333         context menu is visible outside MWF.
334
335 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
336
337         * ToolBarButton.cs: Fix text positon. 
338
339 2006-12-11  Miguel de Icaza  <miguel@novell.com>
340
341         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
342
343         * Control.cs (DoubleBuffered): Add implementation.
344
345         * Application.cs (OpenForms): Add.
346
347 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
348
349         * Form.cs: Use opacity instead of Opactiy to determine if we need
350         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
351
352 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
353
354         * Control.cs: Fix NRE if Control.Site was set to null.
355
356 2006-12-11  Chris Toshok  <toshok@ximian.com>
357
358         * Control.cs: ControlCollection.Remove should return if the arg is
359         null, and ControlCollection.SetChildIndex should raise a ANE.
360
361 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
362
363         * Control.cs: Verify value set for Dock property. Code formatting
364         updates.
365
366 2006-12-11  Jackson Harper  <jackson@ximian.com>
367
368         * TextControl.cs: Draw the caret and the selection when a flag is
369         set on the owner.
370         * TextBoxBase.cs: We want to draw the caret and the selection for
371         TextBox but not for TextBoxBase.
372         - If the window is resized and scrolling is no longer needed (the
373         whole doc is visible) set the scroll position to zero.
374         - The default SelectWord (the one TextBox uses) should move the
375         caret to the end of the word.
376         - SelectAll moves the caret to the end of the selection.
377         * TextBox.cs: We don't selectall on focus, we just do it when the
378         control is created.
379         
380 2006-12-11  Mike Kestner  <mkestner@novell.com>
381
382         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
383
384 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
385
386         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
387         2.0 support.
388         * ListViewItem.cs: Add Name 2.0 property.
389
390 2006-12-11  Andreia Gaita  <avidigal@novell.com>
391
392         * TabControl.cs: Set visibility on selected or default tab 
393         when tabcontrol handle is created, so that it's contents
394         actually show up (duh). Fixes #80193
395         Don't redraw the control if there is no handle created, as
396         the selected index might be completely invalid. Added some tests
397         to check for this.
398
399 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
400
401         * ToolBar.cs: Uses maximun width and height of all buttons as 
402         button rectangle when ButtonSize specified, it looks strange but
403         is what happens in Win32. Fixes #80189.
404
405 2006-12-11  Jackson Harper  <jackson@ximian.com>
406
407         * TextControl.cs: Need to track undo levels ourself, since
408         compound actions will mess them up.
409
410 2006-12-10  Andreia Gaita  <avidigal@novell.com>
411
412         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
413         SelectedIndex value is changed (even if it's not valid).
414         Reset SelectedIndex to 0 when the handle is created and if
415         the current index is invalid.
416         Fixes SelectdeIndex unit tests and #80128
417
418 2006-12-08  Chris Toshok  <toshok@ximian.com>
419
420         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
421         calls EndEdit, it needs to be called before we set current_cell to
422         its new value.  Otherwise, we end up committing the value in the
423         textbox to the new cell as well.  Fixes bug #80160.
424
425 2006-12-08  Chris Toshok  <toshok@ximian.com>
426
427         * Form.cs (set_CancelButton): if the button's DialogResult is
428         None, set it to Cancel.  Fixes bug 80180.
429
430 2006-12-08  Jackson Harper  <jackson@ximian.com>
431
432         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
433         to watch ourselves when setting the canvas size and setting the
434         scrollbar values.
435
436 2006-12-08  Chris Toshok  <toshok@ximian.com>
437
438         * DataGrid.cs: comment out the two MakeTransparent calls for the
439         time being so people using trunk (and not 1.2.2) on windows can
440         actually use the datagrid.  This deals with bug #80151.
441
442 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
443
444         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
445         Graphics.DrawImage (image, int, int, int, int) overload instead
446         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
447         the dpi difference and was blurring images it drew.
448         [Fixes bug #79960]
449
450 2006-12-08  Chris Toshok  <toshok@ximian.com>
451
452         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
453         rowcnt is 0 (such as with an empty datasource), and make sure we
454         initialize not_usedarea.Y to cells.Y, so we don't draw over the
455         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
456
457 2006-12-08  Chris Toshok  <toshok@ximian.com>
458
459         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
460         grid.
461
462 2006-12-08  Chris Toshok  <toshok@ximian.com>
463
464         [ Fixes bug #80167 ]
465         
466         * ThemeWin32Classic.cs: don't draw the image if the button's flat
467         style is FlatStyle.System.
468
469         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
470         ButtonBase.flat_style private, and switch uses of it to the public
471         property.
472         
473 2006-12-08  Chris Toshok  <toshok@ximian.com>
474
475         [ Fixes bug #80121 ]
476         
477         * ThemeWin32Classic.cs: center the caption text in the datagrid
478         when we draw it.
479
480         * DataGrid.cs: lessen the amount we add to the caption height from
481         6 to 2.  6 was making it huge.
482
483 2006-12-08  Andreia Gaita  <avidigal@novell.com>
484
485         * UpDownBase: Handle MouseWheel call directly instead of capturing
486         the inner textbox's OnMouseWheel. Fixes #80166
487
488 2006-12-08  Jackson Harper  <jackson@ximian.com>
489
490         * TextControl.cs: We need to invalidate the textbox when we empty
491         it (how had this not been discovered before?)
492
493 2006-12-08  Jackson Harper  <jackson@ximian.com>
494
495         * TextBoxBase.cs: Reworked the mouse down code so I could get it
496         to behave like MS, we now ignore the eventargs.Click and just
497         track state ourself, which we were already doing anyways.
498         - Constrain the double click handler to the double click size.
499         
500 2006-12-08  Chris Toshok  <toshok@ximian.com>
501
502         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
503         direction if that scrollbar isn't shown.  fixes bug #80158.
504
505 2006-12-08  Andreia Gaita  <avidigal@novell.com>
506
507         * NumericUpDown.cs: Update value on getter. Fixes #79950
508
509 2006-12-08  Chris Toshok  <toshok@ximian.com>
510
511         * MenuItem.cs: add back in the event cloning code.  I didn't know
512         how to do it in the face of the EventHandlerList work i'd done
513         last week.  Fixes bug #80183.
514
515 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
516
517         * Control.cs: Add an invalidate to the BackgroundImage setter.
518         [Fixes 80184]
519
520 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
521
522         * ToolStrip*: Add some small properties reported by MoMA, fix event
523         firing and default properties based off of unit tests, and add some
524         attributes based off of the class status page.
525
526 2006-12-07  Jackson Harper  <jackson@ximian.com>
527
528         * TextBoxBase.cs: Take HideSelection into account when determining
529         whether or not to show the selection.
530         * RichTextBox.cs: After inserting the RTF into the document move
531         the cursor to the beginning of the document.
532
533 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
534
535         * Control.cs: Remove static ArrayList "controls" which maintained
536         a reference to every control created.
537         * Application.cs: Create a static FormCollection to maintain a reference
538         to every form created.  Use it in places that formerly enumerated through
539         the controls one looking for forms.
540         * Form.cs: Add and remove self from above FormCollection.
541
542 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
543
544         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
545           not libgdk (though it makes me wonder why I didn't have any
546           problems)
547
548 2006-12-07  Chris Toshok  <toshok@ximian.com>
549
550         [ you had to know this was coming after that last commit...]
551         
552         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
553         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
554         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
555         XCopyArea).
556
557 2006-12-07  Chris Toshok  <toshok@ximian.com>
558
559         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
560         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
561         all the behavior we need for double buffering.
562
563         * XplatUIDriver.cs: implement the 3 double buffer methods using a
564         client side Bitmap, just like the old Control-based double buffer
565         code did.  The methods are virtual, so each XplatUI driver
566         subclass can replace the implementation to use a faster, platform
567         specific approach.
568
569         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
570         double buffer code, and clean things up a bit in the process.
571
572 2006-12-06  Chris Toshok  <toshok@ximian.com>
573
574         * Control.cs: reindent WndProc.
575
576 2006-12-06  Chris Toshok  <toshok@ximian.com>
577
578         [ I wanna be like BenM when I grow up ]
579         
580         * Hwnd.cs: create a single static Graphics object on the static
581         Bitmap we create.  use this for our text measurements.
582
583         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
584         This was causing us to allocate a backbuffer for every control,
585         even when it wasn't flagged as double buffered.  Instead use the
586         single graphics instance.  This might have implications for
587         multithreaded applications.  If we run into problems we can switch
588         to creating 1 Graphics per control, on the static Hwnd bitmap.
589
590         this change nets us a 7M savings in private dirty mappings when
591         running FormsTest.exe.
592
593 2006-12-06  Chris Toshok  <toshok@ximian.com>
594
595         * ListView.cs: the BackgroundImage override is just to set
596         attributes.  chain up to base.BackgroundImage.
597
598         * RichTextBox.cs: same.
599
600         * ToolBar.cs: same, but we need to also redraw the toolbar when it
601         changes, so instead a handler for BackgroundImageChanged.
602         
603         * Control.cs: make background_image private.
604
605 2006-12-06  Chris Toshok  <toshok@ximian.com>
606
607         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
608         sure we even need this assignment, but roll with it for now.
609
610         * Control.cs: make the cursor field private.
611
612 2006-12-06  Chris Toshok  <toshok@ximian.com>
613
614         * Form.cs: we don't need to explicitly set ImeMode to
615         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
616         behavior in the face of ImeMode.Inherit.
617
618         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
619         change the ctor's assignment to use ImeMode instead of ime_mode.
620
621         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
622         ImeModeInherit.  Only check for the parent's imemode (and return
623         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
624         This fixes the button unit test, which sets both ImeMode and
625         DefaultImeMode to ImeMode.Disable.
626
627         also make the ime_mode field private.
628
629 2006-12-06  Chris Toshok  <toshok@ximian.com>
630
631         * Control.cs: make control_style private.
632
633         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
634         setting the styles to true, then setting them to false instead of
635         reverting to their previous values.
636
637         also, call SetStyle on the scrollbars instead of using
638         control_style directly.
639
640 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
641
642         * FormCollection.cs: Implement. [2.0]
643
644 2006-12-06  Chris Toshok  <toshok@ximian.com>
645
646         * Control.cs: make tab_stop private.
647
648         * Label.cs: set TabStop, not tab_stop.  reformat some event
649         add/remove methods to make them more compact.
650
651 2006-12-06  Chris Toshok  <toshok@ximian.com>
652
653         * RadioButton.cs: fix TabStop handling.
654
655 2006-12-06  Chris Toshok  <toshok@ximian.com>
656
657         * TextBox.cs: remove the explicit assignments to has_focus.
658         Control does that.
659
660         * ButtonBase.cs: remove the assignment to has_focus.  Control will
661         manage that.
662         
663 2006-12-06  Chris Toshok  <toshok@ximian.com>
664
665         * ButtonBase.cs: remove all uses of is_enabled from this code.
666         it's always true when any of the code containing the checks is
667         executed.
668
669 2006-12-06  Chris Toshok  <toshok@ximian.com>
670
671         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
672         with different semantics (some are present in both 1.1 and 2.0
673         profiles) so that we match MS's behavior in our unit tests.
674
675 2006-12-06  Jackson Harper  <jackson@ximian.com>
676
677         * TextControl.cs: Make this operation undoable.
678         * TextBoxBase.cs: Factor the border width into the preferred
679         height.
680         - implement Modified as per the spec.
681
682 2006-12-06  Chris Toshok  <toshok@ximian.com>
683
684         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
685
686 2006-12-06  Chris Toshok  <toshok@ximian.com>
687
688         * Control.cs: make right_to_left and context_menu fields private.
689
690 2006-12-06  Chris Toshok  <toshok@ximian.com>
691
692         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
693         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
694         Control.child_controls private.  switch all uses over to
695         Control.Controls.
696
697 2006-12-06  Chris Toshok  <toshok@ximian.com>
698
699         * System.Windows.Forms/GroupBox.cs,
700         System.Windows.Forms/AccessibleObject.cs,
701         System.Windows.Forms/ErrorProvider.cs,
702         System.Windows.Forms/Control.cs,
703         System.Windows.Forms/UpDownBase.cs,
704         System.Windows.Forms/ScrollBar.cs,
705         System.Windows.Forms/DateTimePicker.cs,
706         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
707         System.Windows.Forms/ToolTip.cs,
708         System.Windows.Forms/RadioButton.cs,
709         System.Windows.Forms/LinkLabel.cs,
710         System.Windows.Forms/Splitter.cs,
711         System.Windows.Forms/TextBoxBase.cs,
712         System.Windows.Forms/ToolStripTextBox.cs,
713         System.Windows.Forms/ContainerControl.cs,
714         System.Windows.Forms/ThemeWin32Classic.cs,
715         System.Windows.Forms/SizeGrip.cs,
716         System.Windows.Forms/ToolStripDropDown.cs,
717         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
718         private.  switch all uses over to Control.Parent.
719
720 2006-12-06  Chris Toshok  <toshok@ximian.com>
721
722         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
723         Control does this before calling emitting these events.
724
725         * TabControl.cs: same.
726
727         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
728         Control.client_rect.
729
730         * ButtonBase.cs: use the ClientSize property instead of the
731         client_size field.
732
733         * ScrollableControl.cs: same.
734
735         * Control.cs: another pass at making properties private.  also,
736         move the initialization of tab_stop to the ctor.
737
738 2006-12-05  Andreia Gaita <avidigal@novell.com>
739
740         * TabControl.cs: Let the selected index be set freely if the 
741         control handle is not yet created.
742
743 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
744
745         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
746         internal until I can rewrite DefaultLayout.
747         * ToolStrip.cs: Fix build error and some general cleaning.
748         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
749         Fix build errors caused by making some of Control's fields private.
750
751 2006-12-05  Jackson Harper  <jackson@ximian.com>
752
753         * TextControl.cs: Redo Insert a little so that it use IndexOf
754         instead of Split, this prevents it from messing up on things like
755         \n\n\n. Also more effecient since the split array doesn't need to
756         be created.
757         * TextBoxBase.cs: AppendText doesnt handle multiline and non
758         multiline text differently, this is the first of many fixes that
759         will make multiline/non-multiline the same thing as far as the
760         TextBoxBase is concerned.
761         - Don't split the text and insert lines, this can lose some line
762         endings (like is the last line a soft or hard break). Instead use
763         the new Insert.
764         - Fix an off by one when combining all the lines in the Text
765         getter.
766         - Remove separate multiline handling from the Text getter/setter.
767
768 2006-12-05  Chris Toshok  <toshok@ximian.com>
769
770         * ButtonBase.cs: a few changes:
771
772         - don't reinitialize internal Control fields in the ctor when they
773         have the same values as Control sets them.
774
775         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
776         this before calling those methods.
777
778         - we don't need to call Refresh for anything.  use Invalidate
779         instead.
780
781         - OnEnabledChanged doesn't need to redraw at all - Control.cs
782         calls Refresh in its OnEnabledChanged.
783         
784         - several of the events we were registered for in the ctor to
785         redraw ourselves already include calls to Invalidate in the
786         property setters that raise the events.  remove the extra
787         invalidation.
788
789         - reformat a switch statement that was 83274658 columns wide.
790         
791 2006-12-05  Mike Kestner  <mkestner@novell.com>
792
793         * ComboBox.cs: fix a unit test regression from a TextBox
794         SelectionLength return of -1 when there's no selection.  
795
796 2006-12-05  Chris Toshok  <toshok@ximian.com>
797
798         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
799         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
800         cleaning up some of the internal Control fields being used by
801         subclasses.
802
803 2006-12-05  Mike Kestner  <mkestner@novell.com>
804
805         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
806         listbox after AddImplicit calls since it defaults to hidden. Add a 
807         hack to preserve requested heights across DropDownStyle changes.
808
809 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
810
811         * PropertyGrid.cs: Hide FindFirstItem method from public API.
812
813 2006-12-05  Chris Toshok  <toshok@ximian.com>
814
815         * DataGridView.cs: fix compiler warnings.
816
817         * PrintControllerWithStatusDialog.cs: same.
818
819         * ToolBar.cs: same.
820
821         * FolderBrowserDialog.cs: same.
822
823         * Splitter.cs: same.
824
825         * DataGridViewComboBoxCell.cs: same.
826
827         * XplatUIWin32.cs: same.
828
829         * PictureBox.cs: same.
830
831         * Win32DnD.cs: same.
832
833         * PageSetupDialog.cs: same.
834
835         * FileDialog.cs: same.
836
837         * PrintDialog.cs: same.
838
839         * DataGridTextBoxColumn.cs: same.
840
841         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
842
843 2006-12-05  Chris Toshok  <toshok@ximian.com>
844
845         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
846         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
847         System.ComponentModel.EventHandlerList work.
848
849 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
850
851         * DrawTreeNodeEventArgs.cs: Added.
852
853 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
854         
855         * InternalWindowManager.cs: Remove an unused field.
856         
857 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
858
859         * InternalWindowManager.cs:
860         - Save the point where the title bar is clicked.
861         
862         * MdiWindowManager.cs:
863         - Only allow moving of the window as long as the 
864         clicked point on the title bar does not get out of
865         MdiClient's rectangle. Fixes #79982.
866         
867         * MdiClient.cs:
868         - Added Horizontal/VerticalScrollbarVisible.
869         - Simplified the scrollbar sizing algorithm.
870         - Cache the difference in scrolled value in
871         H/VBarValueChanged and move the calculation out
872         of the for loop.
873
874 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
875
876         * Control.cs: Make the Console.WriteLine in WndProc 
877         write more info.
878
879 2006-12-05  Chris Toshok  <toshok@ximian.com>
880
881         * ToolStripManager.cs, ToolStripButton.cs,
882         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
883         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
884         ToolStripSplitButton.cs, ToolStripSeparator.cs,
885         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
886         ToolStripProgressBar.cs, ToolStripContainer.cs,
887         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
888         to using System.ComponentModel.EventHandlerList.
889
890 2006-12-04  Chris Toshok  <toshok@ximian.com>
891
892         * LinkLabel.cs: fix up compiler warnings.
893
894         * TableLayoutSettings.cs: same.
895
896         * TreeView.cs: same.
897
898         * ToolBar.cs: same.
899
900         * TabControl.cs: same.
901
902         * RichTextBox.cs: same.
903
904         * ListViewItem.cs: same.
905
906         * PropertyGrid.cs: same.
907
908         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
909
910         * ToolTip.cs same.
911
912         * TextRenderer.cs: fix up compiler warnings.
913
914         * Label.cs: same.
915
916         * Form.cs: corcompare fixes.
917
918         * PictureBox.cs: fix up compiler warnings.
919
920         * ImageListStreamer.cs: same.
921
922         * TrackBar.cs: corcompare fix.
923
924         * Control.cs: fix up compiler warnings.
925
926         * SplitterPanel.cs: same.
927
928         * NumericTextBox.cs: same.
929
930         * ImageList.cs: same.
931
932         * StatusStrip.cs: same.
933
934         * ProgressBar.cs: corcompare fix.
935
936         * ToolStripButton.cs: fix up compiler warnings.
937
938         * ToolStripStatusLabel.cs: same.
939
940         * ToolStripSplitButton.cs: same.
941
942         * ToolStripSeparator.cs: same.
943
944         * ToolStripProgressBar.cs: same.
945
946         * ToolStripDropDownMenu.cs: same
947
948         * ToolStripDropDown.cs: same.
949
950         * ToolStripDropDownButton.cs: same.
951
952         * ToolStrip.cs: same.
953
954         * ToolStripControlHost.cs: same.
955
956         * ToolStripContentPanel.cs: same.
957
958         * ToolStripDropDown.cs: same.
959
960         * ToolStripContainer.cs: same.
961
962         * ToolStripPanel.cs: same, and add "new" where we need it to work
963         with the new ArrangedElementCollection.
964
965         * ToolStripItemCollection.cs: add "new" where we need it to work
966         with the new ArrangedElementCollection.
967
968 2006-12-04  Andreia Gaita <avidigal@novell.com>
969
970         * TabControl.cs: Fix default tab selection to after TabControl
971         gets focus and not before. Fixes #80128
972
973 2006-12-04  Chris Toshok  <toshok@ximian.com>
974
975         * DataGridTableStyle.cs: remove the gross calling of
976         datagrid.Refresh from here.  It's a broken idea and it doesn't
977         work anyway.
978
979         * DataGrid.cs: instead, just register/unregister from the
980         DataGridTableStyle events in CurrentTableStyle.  we play it
981         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
982         even though some would most likely not require it.  Fixes bug
983         #80115 (and one portion of #80117 as a side effect).
984
985 2006-12-04  Chris Toshok  <toshok@ximian.com>
986
987         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
988         so the textbox (if any) goes away.  Fixes bug #80117.
989
990 2006-12-04  Chris Toshok  <toshok@ximian.com>
991
992         * DataGridColumnStyle.cs: set the column's readonly property
993         initially based on the property descriptor's IsReadOnly.  Fixes
994         bug #80044.
995
996 2006-12-04  Chris Toshok  <toshok@ximian.com>
997
998         * ComboBox.cs: wrap the dropdown style changing work in
999         SuspendLayout/ResumeLayout.  Fixes bug #79968.
1000
1001 2006-12-04  Jackson Harper  <jackson@ximian.com>
1002
1003         * TextBoxBase.cs: Fix off by one, since these are one-based.
1004         * TextBox.cs: Select all the text when we get focus.  The TextBox
1005         does this but the RTB does not.
1006
1007 2006-12-04  Chris Toshok  <toshok@ximian.com>
1008
1009         * DataGridTextBoxColumn.cs: remove some spew.
1010
1011         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
1012         but some part of me is saying "it shouldn't be here.."  At any
1013         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
1014         setting the value.
1015
1016 2006-12-04  Chris Toshok  <toshok@ximian.com>
1017
1018         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
1019         to reassign the propertydescriptor.
1020
1021 2006-12-04  Jackson Harper  <jackson@ximian.com>
1022
1023         * TextBoxBase.cs:
1024         * TextControl.cs: Remove some unused variables.  Maybe this will
1025         patch things up between mike and I.
1026         - don't split lines less then one char wide, if the viewport is
1027         that small text won't be visible anyways.
1028         
1029 2006-12-04  Jackson Harper  <jackson@ximian.com>
1030
1031         * TextBoxBase.cs: Default selection length is -1, need to do some
1032         more testing on windows to see when this is used for the property.
1033         - Redid the Lines [] property to that we properly remove soft line
1034         breaks
1035         - added support for preserving carriage returns
1036         -  CanUndo is not a variable like 'is undo enabled' it just returns
1037         true if there is undo operations available.
1038         - AppendText doesn't need to grab the last tag itself anymore,
1039         this happens automatically when we move the cursor.
1040         * TextControl.cs: Add CompoundActions to the undo class. This
1041         allows combining the other operations into one big option.  ie a
1042         paste will combine { delete old, insert new, move cursor }
1043         - Add InsertString undo operation
1044         - New method for deleting multiline text
1045         - Add carriage returns to lines. So we can preserve carriage
1046         returns when text is 'roundtripped'
1047
1048 2006-12-04  Chris Toshok  <toshok@ximian.com>
1049
1050         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
1051         minimum 0.  Fixes the scrollbar exception in bug #80136.
1052
1053 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1054
1055         * MdiClient.cs: 
1056         * MdiWindowManager: Removed unused fields and methods.
1057         
1058 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1059         
1060         * StatusBar.cs: Update all panels when a AutoSize=Contents
1061         panel needs updating.
1062         
1063         * StatusBarPanel.cs: Remove twidth and only use initialize.
1064         Fixes #80031.
1065                 
1066 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1067
1068         * Form.cs: When a form's MdiParent is set add it directly
1069         on top of the z-order in stead of relying on MdiClient's
1070         ActivateChild to do it. Fixes #80135.
1071         
1072         * MdiClient.cs: 
1073         - Remove original_order, mdi_child_list is already doing
1074         the same thing.
1075         - Create mdi_child_list on construction in
1076         stead of first use (avoids a few null checks).
1077
1078         * MenuItem.cs: Use an already existing list of mdi children
1079         to get the correct order of children and remove the other
1080         redundant list.
1081
1082 2006-12-04  Chris Toshok  <toshok@ximian.com>
1083
1084         * PropertyGridView.cs: cached_splitter_location is only used in
1085         !DOUBLEBUFFER code.
1086
1087         * PropertyGrid.cs: implement the ComComponentNameChanged event
1088         using Events, hoping that would fix the warning.  Looks like a
1089         compiler bug instead (#80144).
1090
1091         * PropertyManager.cs: remove unused method.
1092
1093 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
1094
1095         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
1096         include parentesis to fix expression evaluation. Fixes #79634.
1097
1098 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
1099         
1100         * MenuAPI.cs:
1101         - Changes to fix behavior in Menu control, some reported in #80097
1102         and other detected during behavior refactory like a select event
1103         problems.
1104         - Remove unneded "if's" conditions.
1105         - Created an internal to flag when popup is active in control, we need 
1106         it because in .NET you can have menu active but without popup active
1107         when you active menu using popup without visible items.
1108         - Mimic win32 behavior for Select and Popup events.  
1109         - Dont open popup menu when you dont have visible subitems.
1110         - Do nothing when click on disabled menu item.
1111         - Some small changes to follow the coding style guidelines.
1112         - Unselect menu only when another control gives focus. Fixes #80097.
1113         - Remove unused code.
1114         
1115         * MenuItem.cs: internal VisibleItems method to check if menu
1116         theres visible subitems, it will be usefull to fix some 
1117         behavior in Menu control.
1118         
1119 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1120         
1121         * Timer.cs: Tag property for 2.0 profile.
1122         
1123 2006-12-01  Chris Toshok  <toshok@ximian.com>
1124
1125         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
1126         
1127         * Win32DnD.cs: comment out some unused fields.
1128
1129         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
1130         some unused properties/methods.
1131
1132         * XplatUIX11.cs: fix MousePosition so we override the base class's
1133         property instead of conflicting with it.
1134
1135         * PictureBox.cs: comment out some unused fields
1136
1137         * OSXStructs.cs: make some struct fields public.
1138
1139         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
1140         MousePosition so we override the base class's property instead of
1141         conflicting with it.
1142
1143         * X11Dnd.cs: comment out some unused fields
1144
1145         * X11DesktopColors.cs: fix some struct field visibility to quiet
1146         the compiler.
1147
1148         * X11Dnd.cs: remove some debug code.
1149
1150         * ThemeClearlooks.cs: comment out unused field.
1151
1152         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
1153
1154         * ThemeGtk.cs: comment out some unused pinvokes.
1155
1156         * Timer.cs: remove some unused fields.
1157
1158         * ThemeClearlooks.cs: comment out unused field.
1159
1160         * UpDownBase.cs: comment out unused field.
1161
1162         * DataObject.cs: comment out unused field.
1163
1164         * DataGridBoolColumn.cs: reomve unused field.
1165
1166         * DataGrid.cs: remove unused field.
1167
1168         * Cursor.cs: remove old ToBitmap code.
1169
1170         * ControlPaint.cs: remove unused method.
1171
1172         * ScrollBar.cs: remove unused fields.
1173
1174         * ComboBox.cs: remove unused field, and chain up to
1175         AccessibleObject ctor.
1176
1177         * ListBox.cs: remove unused field.
1178
1179         * ButtonBase.cs: wrap a couple fields in NET_2_0.
1180
1181         * GridEntry.cs: remove unused fields.
1182
1183         * Binding.cs: remove unused fields.
1184
1185         * AxHost.cs: remove unused method.
1186
1187         * ContainerControl.cs: remove unused field.
1188
1189         * ScrollableControl.cs: remove unused fields.
1190
1191 2006-12-01  Chris Toshok  <toshok@ximian.com>
1192
1193         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
1194         the Where/WhereString stuff.  it's easy enough to CWL
1195         Environment.StackTrace.
1196
1197         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
1198         unused private fields.
1199
1200 2006-12-01  Jackson Harper  <jackson@ximian.com>
1201
1202         * TextControl.cs: Do not update the view while inserting multiline
1203         text. If we update the view we might wrap lines, before entering
1204         the new lines, which causes the new line insertion calculations to
1205         be totally fubared.
1206         - Remove an old TODO
1207         - Make debug output a little nicer
1208         
1209 2006-12-01  Chris Toshok  <toshok@ximian.com>
1210
1211         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
1212
1213 2006-12-01  Chris Toshok  <toshok@ximian.com>
1214
1215         [ fix the majority of the CS0108 warnings we've been suppressing ]
1216         
1217         * TreeView.cs: mark BackgroundImageChanged as 'new'.
1218
1219         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
1220         to "LayoutToolBar" to quiet mcs.
1221         
1222         * TabControl.cs: mark our ControlCollection class as 'new'.
1223
1224         * TextBoxBase.cs: mark some events as 'new'.
1225
1226         * Splitter.cs: TabStop is 'new'.
1227
1228         * ControlBindingsCollection.cs: mark a few methods as new since
1229         they change the visibility from protected to public.
1230
1231         * RadioButton.cs: DoubleClick -> base class, and remove unused
1232         HaveDoubleClick.
1233
1234         * MonthCalendar.cs: ImeMode property -> base class, and mark many
1235         events as new.
1236
1237         * NumericUpDown.cs: TextChanged -> base class.
1238
1239         * CheckedListBox.cs: mark our ObjectCollection class as new to
1240         quiet mcs.
1241
1242         * FolderBrowserDialog.cs: make HelpRequest event new and have it
1243         muck with the base class.
1244
1245         * StatusBar.cs: fix some mcs warnings about Update being the same
1246         name as a base class method.
1247
1248         * RichTextBox.cs: mark some events as new, and make them do things
1249         to the base class impl.
1250
1251         * UserControl.cs: mark TextChanged as new, and have it manipulate
1252         base.TextChanged.
1253
1254         * UpDownBase.cs: mark some things new.
1255
1256         * CheckBox.cs: mark DoubleClick "new", and add some text about
1257         what we need to look at.
1258
1259         * Panel.cs: make the events "new", and manipulate the base
1260         version.  these are just here for attributes.
1261
1262         * AccessibleObject.cs: make owner private.
1263
1264         * Control.cs: deal with AccessibleObject.owner being private.
1265         cache our own copy if we need it.
1266
1267         * Button.cs: add "new" to the DoubleClickEvent.
1268
1269         * ListBox.cs: no need to track our own has_focus here.  let
1270         Control.has_focus do it for us.  Also some other work to clear up
1271         warnings about not overriding base class methods of the same name.
1272         
1273         * ComboBox.cs: clear up some warnings about not override base
1274         class methods of the same name.
1275
1276 2006-12-01  Chris Toshok  <toshok@ximian.com>
1277
1278         * Form.cs: flag a few things as "new" to quiet some of the mcs
1279         warnings.
1280
1281         * AxHost.cs: same.
1282
1283         * PrintPreviewDialog.cs: same.
1284
1285         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
1286         now DGV isn't so horrible on the class status page.  also, move
1287         all events to using System.ComponentModel.EventHandlerList.  my
1288         wrists hurt.
1289
1290 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1291
1292         * MdiWindowManager.cs:
1293         - Set form to active mdi child if shown,
1294         and update the active mdi child to the next 
1295         remaining child in the z-order if the form is hidden.
1296
1297         * Form.cs: 
1298         - Track if the form has been visible and if its 
1299         visibility is beeing changed, so that the MdiClient
1300         can properly decide the ActiveMdiChild. The MdiClient 
1301         cannot track this since the form can change visibility 
1302         before MdiClient is created.
1303
1304         * MdiClient.cs:
1305         - Don't activate anything of the parent form is changing
1306         its visibility.
1307         - Rework ActiveMdiChild to only return visible mdi 
1308         children and take into account several other corner 
1309         cases.
1310
1311 2006-12-01  Chris Toshok  <toshok@ximian.com>
1312
1313         * IBindableComponent.cs: new 2.0 interface.
1314
1315 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
1316
1317         * DataGrid.cs: Font for caption area is bold by default.
1318
1319 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
1320
1321         * Menu.cs: Tag property for 2.0.
1322         
1323 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1324
1325         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
1326         
1327 2006-12-01  Chris Toshok  <toshok@ximian.com>
1328
1329         * TreeView.cs: doh, the Begin* events should be
1330         TreeViewCancelEventHandler.
1331
1332 2006-12-01  Chris Toshok  <toshok@ximian.com>
1333
1334         * Form.cs: Form.ControlCollection already stores off the
1335         form_owner field.  don't access the base class's internal "owner"
1336         field.
1337
1338         * Control.cs: make all the fields in Control.ControlCollection
1339         private.  there's no need for any internal fields here.
1340
1341 2006-12-01  Chris Toshok  <toshok@ximian.com>
1342
1343         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
1344         OnHandleCreated.  Fixes bug #80109.
1345
1346 2006-12-01  Chris Toshok  <toshok@ximian.com>
1347
1348         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
1349         SplitContainer.cs, Control.cs, StatusStrip.cs,
1350         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
1351         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
1352         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
1353         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
1354         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
1355         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
1356         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
1357         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
1358         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
1359         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
1360
1361         do most of the work to convert our code over to use
1362         System.ComponentModel.Component.Events for
1363         adding/removing/dispatching events.
1364
1365
1366 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1367
1368         * DataGridView.cs: Fix an ArgumentNullException reported 
1369         twice today in IRC.
1370
1371 2006-11-30  Mike Kestner  <mkestner@novell.com>
1372
1373         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
1374         grabbed listbox.  Fixes #80036 and #80101.
1375
1376 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1377
1378         * Message.cs: Changed ToString() to match MS.
1379         
1380 2006-11-30  Jackson Harper  <jackson@ximian.com>
1381
1382         * TextBoxBase.cs: You can still change the selected text on a read
1383         only textbox.
1384         * TextControl.cs: Lower magic number for wrap calculations. This
1385         lets text get closer to the right (far) edge.
1386
1387 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1388
1389         * Control.cs: Tweak 2.0 layout properties.
1390         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
1391         * TextRenderer.cs: Add a new overload.
1392         * ToolStrip*: Huge amount of changes and new features.
1393
1394 2006-11-30  Mike Kestner  <mkestner@novell.com>
1395
1396         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
1397         scroll range correct.  Fixes #79994.
1398
1399 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1400
1401         * MdiWindowManager.cs: Update main form's text when
1402         a form is closed. (fixes #80038)
1403         
1404 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
1405
1406         * ToolBar.cs:
1407         - Fix an regression in ButtonSize.
1408         - Get ImeMode default value change to "Disable".
1409         - Get ShowTooltips default value change to true, default value is 
1410         "false" but after make a test in .NET we get "true" result as default.
1411         
1412 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
1413
1414         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
1415
1416 2006-11-29  Chris Toshok  <toshok@ximian.com>
1417
1418         * XplatUIWin32.cs (GetWindowTransparency): check return value of
1419         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
1420         SetWindowTransparency hasn't been called.
1421
1422 2006-11-29  Chris Toshok  <toshok@ximian.com>
1423
1424         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
1425         if it's supported.
1426         (set_AllowTransparency): reorder things a little so that the
1427         WS_EX_LAYERED style is removed properly.
1428
1429 2006-11-29  Chris Toshok  <toshok@ximian.com>
1430
1431         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
1432         
1433         * Form.cs: only call the XplatUI transparency method (get/set) if
1434         SupportsTransparency says it's supported. Otherwise fallback to
1435         doing nothing (in the set case) or returning the instance field we
1436         cache (in the get case).
1437
1438         * XplatUIStructs.cs: add TransparencySupport flag enum.
1439         
1440         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
1441         change to SupportsTransparency.
1442
1443         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
1444         TransparencySupport.None from SupportsTransparency.
1445
1446         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
1447         TransparencySupport.Set from SupportsTransparency.
1448
1449         * XplatUIWin32.cs: implement GetWindowTransparency calling
1450         GetLayeredWindowAttributes, and implement SupportsTransparency by
1451         checking whether or not both
1452         GetWindowTransparency/SetWindowTransparency are available
1453         entrypoints.  We need to do this since SetWindowTransparency is
1454         available as of win2k, but GetWindowTransparency requires winxp.
1455         yay win32 api.
1456
1457         * XplatUI.cs: Add GetWindowTransparency, and change
1458         SupportsTransparency to allow for either/both Get/Set.
1459
1460 2006-11-29  Chris Toshok  <toshok@ximian.com>
1461
1462         * DataGrid.cs: keep from going into an infinite loop redrawing a
1463         datagrid that has no datasource.  Fixes bug #80033.
1464
1465 2006-11-29  Chris Toshok  <toshok@ximian.com>
1466
1467         * MenuItem.cs: fix the NRE when we assign text (and therefore call
1468         Invalidate) before the mainmenu has been assigned to a control.
1469
1470 2006-11-29  Chris Toshok  <toshok@ximian.com>
1471
1472         * DataGrid.cs: detect when we should be double the double click
1473         row/column autosize stuff, although that codepath has yet to be
1474         written.  part of the work for bug #79891.
1475
1476 2006-11-29  Chris Toshok  <toshok@ximian.com>
1477
1478         * Binding.cs (SetControl): fix unit test.
1479
1480 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1481
1482         * PageSetupDialog.cs: Validate the margins and set them in
1483         PageSettings. 
1484         * NumericTextBox.cs: New class to mimic the behavior of the
1485         textboxes used in the printing dialogs.
1486
1487 2006-11-29  Andreia Gaita  <avidigal@novell.com>
1488         
1489         * Form.cs: Revert previous change (remove call UpdateBounds
1490         from form constructor), because it messes with the handle creation
1491         order, and that one needs lots and lots of love.
1492         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
1493         for valid printer and throw InvalidPrinterException if document
1494         is set but printer not valid), adding a MonoTODO. Once 
1495         handle creation is done properly, we can put this back in.
1496
1497 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1498
1499         * MenuItem.cs: Create a invalidate method for menu item, to be
1500         calling from set text, it make text changes to imadiate update
1501         on screen. Fixes #80013. 
1502         
1503 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1504
1505         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
1506         fixes bug #80070 and some other problem on toolbar buttons
1507         layout.
1508
1509 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1510
1511         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
1512         with dotted brush.      Fixes #79564
1513         
1514 2006-11-28  Andreia Gaita  <avidigal@novell.com>
1515
1516         * Form.cs: Removed call to UpdateBounds on Form
1517         constructor, it was causing a call to CreateHandle
1518         before it was supposed to.
1519         * PrintControllerWithStatusDialog: Applied patch
1520         by Chris Toshok to hide controller when there are
1521         no printers available.
1522         PrintDialog.cs: initialize printer settings to 
1523         null - correct DefaultValues test #5
1524         * PrintPreviewControl.cs: Move PrintController
1525         initialization to GeneratePreview
1526         * PrintPreviewDialog.cs: 
1527         - Remove Preview generation     from Document_set(). It is 
1528         called on OnPaint
1529         - Throw InvalidPrinterException on CreateHandle if
1530         a Document is set but there are no printers or 
1531         printer is not valid.
1532         * ThemeWin32Classic: don't paint PrintPreviewControl
1533         if there is nothing to paint    
1534
1535 2006-11-28  Miguel de Icaza  <miguel@novell.com>
1536
1537         * Form.cs: Add another popular method.
1538
1539         * TabPage.cs: ditto.
1540
1541 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1542
1543         * MenuItem.cs: Fixed a warning.
1544         * InternalWindowManager: Fixed a warning.
1545
1546 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1547
1548         * MenuItem.cs:
1549         - When cloning a menu also clone MdiList and clone the 
1550           window menu items properly (as the forms and menuitems
1551           are kept in an internal hashtable, these need updating 
1552           as well)
1553         - Rewrote the window menu code, menu items are added in the
1554           order the forms were added to their parent, and they are
1555           updated every time the window menu is shown (before the
1556           list was only generated once, in the current order of the
1557           forms, and would never be updated). A checkmark is shown
1558           next to the item corresponding to the active mdi child.
1559
1560 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1561
1562         * XplatUIStructs.cs: 
1563         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
1564         
1565         * XplatUIWin32.cs: 
1566         - Added TME_NONCLIENT to TMEFlags.
1567         - Handles WM_NCMOUSEMOVE in GetMessage to 
1568           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
1569
1570         * MdiWindowManager:
1571         - Now merges mdi child menu to parent menu when maximized.
1572         - Recalculate NC areas of both mdi child and mdi parent. 
1573           Fixes #79757 (4).
1574           on window state and size changes.Fixes #79844 (3).
1575         - Handle WM_NCCALCSIZE to properly calculate borders.
1576
1577         * Form.cs:
1578         - Add/remove to the mdi containers list of mdi children 
1579           in the order they are added.
1580         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
1581           to the maximized mdi child.
1582         
1583         * InternalWindowManager.cs:
1584         - Only execute a click on the control buttons on the mouse up,
1585           not on the mouse down. Show the state of the button 
1586           (was only showing Normal state, never Pressed state). The
1587           pressed button now follows the mouse (if you click the Close 
1588           button and move the mouse over the Maximize button, the 
1589           Maximize button will be shown as pressed). Since Win32 does
1590           not generate WM_NCLBUTTONUP if you release the button outside
1591           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
1592           it as a mouse up.
1593         
1594         * ThemeWin32Classic.cs:
1595         - Draw a missing border around mdi child forms. Fixes #79844 (2).
1596
1597         * MdiClient.cs:
1598         - Added a list of forms which contains the order the forms are
1599           added to the mdi parent.
1600         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
1601         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
1602         - If the active form changes set the scrollbars to the top
1603           of the Z order, otherwise the form could hide them.
1604         - Scrollbars are now sized according to ClientSize, not 
1605           to Size, and they take into account the other scrollbar
1606           to determine maximum.
1607         
1608 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
1609         
1610         * XplatUI.cs:
1611         * XplatUIDriver.cs:
1612         * XplatUIX11.cs:
1613         * XplatUIWin32.cs:
1614         * XplatUIOSX.cs:
1615         - Added RequestAdditionalWM_NCMessages for windows to 
1616           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
1617           Currently only implemented in XplatUIWin32.
1618
1619 2006-11-27  Chris Toshok  <toshok@ximian.com>
1620
1621         * Hwnd.cs: only add the hwnd to the windows hash in
1622         set_WholeWindow and set_ClientWindow if whole_window/client_window
1623         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
1624
1625 2006-11-27  Mike Kestner  <mkestner@novell.com>
1626
1627         * ComboBox.cs: remove redundant OnDropDown call.  It is called
1628         from the ComboListBox.ShowWindow code. Fixes #79969.
1629
1630 2006-11-27  Chris Toshok  <toshok@ximian.com>
1631
1632         * Hwnd.cs: remove the setters for ExposePending and
1633         NCExposePending - noone uses them.
1634
1635 2006-11-27  Jackson Harper  <jackson@ximian.com>
1636
1637         * TextControl.cs: new param for ReplaceSelection which determines
1638         whether we select the new selection, or set the cursor to the end
1639         of the new selection.
1640         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
1641         pasting, select the new text.
1642         * RichTextBox.cs: Use new param for ReplaceSelection.
1643
1644 2006-11-27  Jackson Harper  <jackson@ximian.com>
1645
1646         * TextBoxBase.cs: Set the selection to the caret after the caret
1647         is moved, otherwise they get out of sync.
1648
1649 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1650
1651         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
1652         it fixes #80015
1653
1654 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1655
1656         * ThemeWin32Classic.cs: 
1657         - Fix toolbar drop down arrow position.
1658         - Fix drop down appearance when ToolBar.Appearance is normal,
1659         it fixes #80018.
1660         
1661 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
1662
1663         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
1664         * Control.cs: Same.
1665         * UpDownBase.cs: Same.
1666         * ButtonBase.cs: Same.
1667         * ScrollBar.cs: Same.
1668         * TrackBar.cs: Same.
1669         * PictureBox.cs: Same.
1670         * UserControl.cs: Same.
1671         * Label.cs: Same.
1672         * ListControl.cs: Same.
1673         * TextBoxBase.cs: Same.
1674         * ListView.cs: Same.
1675         * RichTextBox.cs: Same.
1676         * TreeView.cs: Same.
1677
1678 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
1679
1680         * PrintDialog.cs:
1681         - Text label for where 
1682         - Text label comment was not shown
1683
1684 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
1685
1686         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
1687
1688 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1689
1690         * InternalWindowManager.cs: 
1691         - Handle WM_PARENTNOTIFY to activate the form
1692         if any child control is clicked.
1693         - The form is only sizable if not minimized.
1694
1695         * MdiWindowManager.cs:
1696         - Save the IconicBounds if the form is moved.
1697         - Rework SetWindowState, now the window bounds 
1698         are stored only if the old window state is Normal.
1699         
1700         * MdiClient.cs:
1701         - In SetWindowStates store the old window state if 
1702         the window is maximized and restore window state if
1703         the window looses focus.
1704         - Don't handle any scrollbar value changes if 
1705         initializing the scroll bars. Fixes #79771.
1706         - Reworked ArrangeIconicWindows. Current algorithm
1707         tests bounds agains all other minimized windows, if
1708         any intersections create new bounds (going left to 
1709         right, bottom to top) and then test again. When 
1710         successful the bounds are saved and never computed
1711         again. Fixes #79774.
1712
1713 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1714
1715         * InternalWindowManager.cs: Added HandleTitleBarUp.
1716
1717 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1718
1719         * NumericUpDown.cs: In .NET 1.1, user entered text is still
1720         hexadecimal in ParseUserEdit.
1721
1722         
1723 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1724
1725         * MdiWindowManager.cs: 
1726         - Handle a click on the form's icon to show the 
1727         system menu (when maximized). Fixes #79775.
1728         - Change the existing click handler for the form's
1729         icon when not maximized to show on MouseUp.
1730         Fixes #79776.
1731
1732         * Form.cs: In OnResize only layout the mdi child's
1733         parent if it actually has a parent. Might not if
1734         the window is closing.
1735
1736
1737 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1738
1739         * MdiClient.cs: Ignore active MDI client for text of parent, if
1740         child has no text set.
1741
1742 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1743
1744         * ToolBar.cs: Fixed ToString to match MS.
1745
1746 2006-11-22  Andreia Gaita  <avidigal@novell.com>
1747
1748         * NumericUpDown: 
1749         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
1750         update inner values on set. Fixes #79966.
1751         - Override OnLostFocus to update value on NET 2. Fixes #79950.
1752         - Fix hexadecimal parsing.
1753         
1754         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
1755         parent. Fixes #79957
1756
1757 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1758
1759         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
1760         the actual size has to be queried, since if height /
1761         width is negative Win32 changes it to 0. 
1762         Fixes #79999 on Windows.
1763         
1764         * XplatUIX11.cs: Set height / width to 0 if negative
1765         in SetWindowPos. Fixes #79999 on Linux.
1766         
1767 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1768
1769         * ThemeWin32Classic.cs: Fix text redenring when button is
1770         pressed.
1771
1772 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1773
1774         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
1775         and later navigate by mouse. Fixes #79528.
1776
1777 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1778
1779         * ToolBar.cs: Set default value for TabStop to false in
1780         constructor, it fixes remaining behavior of bug #79863.
1781
1782 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1783
1784         * MdiWindowManager.cs:
1785         * InternalWindowManager.cs:
1786         - Moved a few methods specific to Mdi from 
1787         InternalWindowManager to MdiWindowManager.
1788         Fixes #79996.
1789         
1790 2006-11-21  Chris Toshok  <toshok@ximian.com>
1791
1792         * XplatUIOSX.cs: stub out InvalidateNC.
1793
1794         * XplatUIWin32.cs: implement InvalidateNC using the call I found
1795         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
1796
1797         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
1798
1799         * XplatUIDriver.cs: add InvalidateNC abstract method.
1800
1801         * XplatUI.cs: add InvalidateNC.
1802
1803 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1804
1805         * ToolBar.cs: Invalidate complete button area when pressed status 
1806         was changed.
1807         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
1808         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
1809         by 1 when button is pressed.
1810
1811 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1812
1813         * ToolButton.cs: Invalidate middle of DropDown button when
1814         ToolBar theres DropDownArrows.
1815         * ThemeWin32Classic.cs: Change position of DropDown arrow and
1816         fix DropDown drawing operations.
1817
1818 2006-11-20  Chris Toshok  <toshok@ximian.com>
1819
1820         * NativeWindow.cs: fix the formatting of functions ('{' on the
1821         following line), and enable the thread exception dialog.
1822
1823         * Application.cs: remove the duplicate exception catching from
1824         here.
1825
1826 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1827
1828         * Toolbar.cs: Triggers button click event when click on icon
1829         of dropdown ToolBarButton. Fixes #79912.
1830         
1831 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1832
1833         * Theme.cs:
1834         * ThemeWin32Classic.cs:
1835         - Added a property WindowBorderFont to enable themeing
1836           of mdi child windows' Text.
1837           
1838 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1839
1840         * InternalWindowManager.cs:
1841         * Form.cs:
1842         * MdiClient.cs:
1843         * MdiWindowManager.cs: 
1844         - If mdi child is maximized, set mdi parent's
1845           text to "Parent - [Child]". Fixes #79770.
1846         - If there is any maximized mdi child windows, only the active 
1847           window (and any new windows) is maximized, the rest are normal.
1848         - On a WindowState change only save mdi child's window bounds 
1849           if the old window state was normal. Fixes #79774.
1850         - The scroll bars are now calculated on hopefully all
1851           necessary events. Fixed #79771 / #79844->6 / #79906.
1852         - MdiClient.SizeScrollBars() now takes into account docked 
1853           controls in the parent when calculating available space.
1854         - InternalWindowManager now always repaints the entire title
1855           area. Fixes #79844->1/4/5.
1856         - Added RequestNCRecalc on mdi child windowstate changes.
1857           Fixes #79772.
1858
1859 2006-11-20  Mike Kestner  <mkestner@novell.com>
1860
1861         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
1862         in the MouseUp handler of the listbox and move the return handling
1863         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
1864
1865 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1866
1867         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
1868
1869 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1870
1871         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
1872           working in 1.2.x anymore. So, updated.
1873
1874 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
1875
1876         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
1877         NumberGroupSeparator of current culture instead of assuming en-US.
1878         Fixed bug #79967.
1879
1880 2006-11-17  Mike Kestner  <mkestner@novell.com>
1881
1882         * Control.cs: Add the concept of implicit bounds setting so that
1883         dock/undock round trips preserve explicitly set size/locations.
1884         Fixes #79313.
1885
1886 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1887
1888         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
1889           can't handle those filters. (Fixes bug #79961)
1890
1891 2006-11-17  Chris Toshok  <toshok@ximian.com>
1892
1893         [ fixes the exit/crashes associated with #79835.  it's clearly
1894         suboptimal though, we need to figure out a better way to solve
1895         this. ]
1896         
1897         * PrintPreviewControl.cs: deal with the new invalid printer
1898         exceptions.
1899
1900         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
1901         and return false (so CommonDialog.ShowDialog doesn't actually show
1902         the form.)
1903
1904         * PrintDialog.cs: enable/disable the Ok button depending on
1905         whether or not the printer is valid.
1906
1907         * CommonDialog.cs (ShowDialog): only actually show the form if
1908         RunDialog returns true.
1909
1910 2006-11-17  Jackson Harper  <jackson@ximian.com>
1911
1912         * TextControl.cs: When soft splitting a line, mark it as a soft
1913         split line. Also carry over the current line break to the next
1914         line.
1915
1916 2006-11-17  Chris Toshok  <toshok@ximian.com>
1917
1918         * XplatUIX11.cs: when scrolling a window with an invalid area, we
1919         only want to shift the part of the invalid area that overlaps the
1920         area we're scrolling.  we also don't want to clear the invalid
1921         area unless the invalid area was entirely contained within the
1922         scrolling area.
1923
1924 2006-11-16  Chris Toshok  <toshok@ximian.com>
1925
1926         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
1927         also make sure to free the memory returned by XGetWindowProperty
1928         in GetText().
1929
1930         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
1931
1932 2006-11-16  Chris Toshok  <toshok@ximian.com>
1933
1934         * XplatUI.cs: add a new super secret way to get at the totally
1935         unsupported X11 backend.
1936
1937 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
1938
1939         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
1940
1941 2006-11-16  Jackson Harper  <jackson@ximian.com>
1942
1943         * TreeView.cs: Allow more explicit setting of top node position
1944         for scrollbars. Slower algo, but more accurate.
1945         - CollapseAll should maintain the current top node.
1946         * TextBoxBase.cs: When positioning the caret, use the line, pos
1947         method, since the x, y method does not grab the correct tag, and
1948         the caret height never gets set correctly. (Maybe I should just do
1949         away with the caret having its own height, and always use the
1950         carets current tag for height).
1951
1952 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
1953
1954         [Fixes 79778, 79923]
1955
1956         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
1957         Parent to the FosterParent instead.
1958
1959 2006-11-16  Jackson Harper  <jackson@ximian.com>
1960
1961         * TreeView.cs: Need to recalc the topnode when we expand or
1962         collapse. The scrolling methods can't handle this on their own,
1963         since they use differences between the last scroll position, and
1964         those difference get completely messed up since we are expanding
1965         nodes.  This problem should probably be fixed in the scrolling
1966         methods, so they can figure out exactly where they are, but this
1967         will slow things down a little.
1968         * ThemeWin32Classic.cs: Special case for groupboxes with empty
1969         strings, makes nunit-gui look a lot nicer.
1970
1971 2006-11-16  Chris Toshok  <toshok@ximian.com>
1972
1973         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
1974         the broken multithreaded event handling we have in here.  File
1975         this entry under "Why we should move to the new X11 backend".
1976
1977         Any thread can make it into UpdateMessageQueue, which gets events
1978         from the X socket - some of which could belong to hwnds being
1979         managed by a different thread.  We can also have multiple threads
1980         in UpdateMessageQueue at the same time, with each one reading from
1981         the X socket.  This leads to many problems, with the following
1982         solutions:
1983
1984         We can't use hwnd.Queue.Enqueue anywhere in here and must use
1985         EnqueueLocked.
1986
1987         The MotionNotify compression we do can't work across threads
1988         (without locking the entire queue, perhaps) since we call
1989         hwnd.Queue.Peek, so we just punt and don't compress motion events
1990         unless the owning thread is the one which got the X event.
1991
1992         ConfigureNotify is another fun one, since it modifies the hwnd's
1993         bounds and then enqueues the event.  We add a lock to Hwnd which
1994         is held when setting configure_pending to true (and enqueuing the
1995         event).
1996
1997         There is a race wrt the wake socket.  we need to make sure that
1998         only 1 thread is waiting on that socket, or else a thread could
1999         sleep waiting for data that never comes.  It's difficult (but not
2000         impossible) to make happen, because it seems to require something
2001         like the following:
2002
2003             1. Thread 1 polls on wake_receive
2004         
2005             2. poll returns saying there's data to be read on
2006                wake_receive.
2007         
2008             3. Thread 2 polls on wake_receive and immediately returns
2009                saying there's data to be read.
2010
2011             4. Thread 2 reads the wakeup byte from wake_receive
2012
2013             5. Thread 1 attempts to read the wakeup byte from
2014                wake_receive.
2015
2016             6. Thread 2 exits (due to a form closing, perhaps).
2017
2018             7. Thread 1 blocks forever.
2019         
2020         Fun, eh?
2021
2022         Fixing the Expose handling isn't done yet, and the races inherent
2023         in that piece of code are responsible for the drawing mistakes you
2024         see when generating expose events in a MT app (like NPlot).  This
2025         one is the likely to be the hardest to bandaid, and it doesn't
2026         appear to cause anything but drawing problems.  The other issues
2027         caused apps to exit or hang.
2028
2029         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
2030         called from a different thread than the one that should be calling
2031         these functions.
2032
2033         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
2034
2035 2006-11-15  Chris Toshok  <toshok@ximian.com>
2036
2037         * Application.cs: null out the context's MainForm when we exit
2038         RunLoop.  Fixes a newly checked in unit test as well as the last
2039         ODE from bug #79933.
2040
2041 2006-11-15  Chris Toshok  <toshok@ximian.com>
2042
2043         * Form.cs (set_Owner): allow a null value so we can clear the
2044         form's owner.
2045         (Dispose): set all our owned_form's Owner properties to null, and
2046         clear the owned_forms collection.
2047         (WM_CLOSE): clean up this a little bit.. still not right though.
2048
2049         * ApplicationContext.cs: OnMainFormClosed should only call
2050         ExitThreadCore if the main form isn't recreating.  Fixes unit
2051         test.
2052
2053 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2054
2055         [Fixes 78346]
2056
2057         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
2058
2059 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2060
2061         [Fixes 79433]
2062
2063         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
2064         keep popup window types from stealing focus from the main form
2065         on Windows.
2066
2067         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
2068
2069         * MenuAPI.cs: Set above flag to true.
2070
2071 2006-11-15  Chris Toshok  <toshok@ximian.com>
2072
2073         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
2074         the button being released is not in wParam.
2075
2076 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
2077
2078         * Form.cs: Add the released button to MouseEventArgs.Button
2079         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
2080         on Win32.
2081
2082 2006-11-15  Chris Toshok  <toshok@ximian.com>
2083
2084         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
2085         GetText().  untested because it's unused in our implementation.
2086         Control.Text always caches the text, even if
2087         ControlStyles.CacheText is not set.
2088
2089         fixes bug #79939.
2090
2091 2006-11-15  Chris Toshok  <toshok@ximian.com>
2092
2093         [ fixes #79933 ]
2094         
2095         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
2096         message.  no hiding, no disposing.
2097
2098         in the WM_CLOSE handler, hide the form if it's modal.
2099
2100 2006-11-15  Chris Toshok  <toshok@ximian.com>
2101
2102         * XplatUIX11.cs: use AddExpose instead of sending a message.
2103         fixes textbox border drawing.
2104
2105 2006-11-15  Chris Toshok  <toshok@ximian.com>
2106
2107         * PropertyGridView.cs: keep from crashing on mouse move/down when
2108         the property grid is empty.
2109
2110 2006-11-14  Jackson Harper  <jackson@ximian.com>
2111
2112         * TextControl.cs: Make PageUp and PageDown more like the MS
2113         versions.
2114         * TextBoxBase.cs: When we set the text property position the
2115         cursor at the beginning of the document.
2116
2117 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2118
2119         * Form.cs: if a mdi child's WindowState has changed
2120         before it's creation, it would display wrong control
2121         buttons.
2122         
2123 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
2124
2125         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
2126           (Fixes bug #79927)
2127
2128 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2129
2130         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
2131         the window gets to paint its borders even if the window is
2132         getting smaller.
2133         
2134         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
2135         otherwise the old control buttons would still be painted 
2136         if the window gets bigger.
2137         
2138         * PaintEventArgs.cs: add an internal method so that the clip 
2139         rectangle can be changed.
2140         
2141 2006-11-13  Chris Toshok  <toshok@ximian.com>
2142
2143         [ fixes bug #79745 ]
2144         
2145         * NotifyIcon.cs: lots of cleanup.
2146
2147         * X11Structs.cs: add an enum for XEMBED messages.
2148
2149         * XplatUIX11.cs: reindent one of the giant switch statements, it
2150         was taking up an additional tab stop, and this file is already way
2151         too wide for my laptop's screen.
2152
2153         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
2154         we get it, resize the hwnd to the WMNormalHints max_width/height.
2155
2156 2006-11-13  Jackson Harper  <jackson@ximian.com>
2157
2158         * TextBoxBase.cs: Compute the value changes for the mouse wheel
2159         teh simple way.
2160
2161 2006-11-13  Chris Toshok  <toshok@ximian.com>
2162
2163         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
2164         #79898.  force a reference to the Region to stick around so the
2165         unmanaged object isn't collected (rendering our handle in the MSG
2166         stale).
2167
2168 2006-11-13  Chris Toshok  <toshok@ximian.com>
2169
2170         * XplatUIX11.cs: fix #79917 for window managers which support
2171
2172         using XStoreName on the raw utf8, and we need to convert to
2173         COMPOUND_TEXT if it's non-latin1.
2174
2175 2006-11-13  Chris Toshok  <toshok@ximian.com>
2176
2177         * Form.cs (set_DialogResult): we need to set closing to false if
2178         we're setting our result to None.  fixes bug #79908.
2179
2180 2006-11-13  Jackson Harper  <jackson@ximian.com>
2181
2182         * TextControl.cs: When formatting text, compute the adjusted tag
2183         lengths correctly, using FindTag for the end tag instead of trying
2184         to figure it out outselves.
2185         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
2186         the item, ItemHeight doesn't work, because trees with large
2187         imagelists use those for their height
2188         * TreeView.cs: ActualItemHeight factors in the image height
2189         - compute left edge of checkboxes correctly
2190         - when expanding/collapsing move the bottom down one pixel, so we
2191         aren't moving part of the node
2192
2193 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2194
2195         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
2196         stack in PaintEventStart so that it won't get disposed by the gc
2197         before reaching PaintEventEnd.
2198
2199 2006-11-13  Jackson Harper  <jackson@ximian.com>
2200
2201         * TextBoxBase.cs: Don't select the word if we are on a line with
2202         no text.
2203         - We don't need to position the caret on mouse up, since the mouse
2204         move handler should be doing this
2205         - When double clicking a blank line, the caret is advanced to the
2206         next line.
2207
2208 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
2209
2210         * TreeNodeCollection.cs: Avoid duplicating indexer code.
2211
2212 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
2213
2214         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
2215         Fixes part of bug #79910.
2216
2217 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
2218
2219         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
2220           (bug #79903). Some minor string updates to match ms.
2221
2222 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2223
2224         * FileDialog.cs: Don't add an extension if the filename
2225           already ends with that extension.
2226
2227 2006-11-10  Jackson Harper  <jackson@ximian.com>
2228
2229         * TreeView.cs: Use the currently highlighted node for the
2230         BeforeSelect event.
2231         * TextBoxBase.cs: There is no need to expand selection on
2232         MouseMove.
2233         - CanUndo means 'is there any undo operations', not 'is undo
2234         allowed on this textcontrol. Fixed ClearUndo unit test.
2235
2236 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
2237
2238         * Button.cs: only perform click when button is Selectable (so as 
2239         not to activate default buttons when they're disabled)
2240         
2241         * Control.cs: Rewrite of the SelectNextControl and related 
2242         methods. HandleClick now selects next control if the current one
2243         is being disabled.
2244         
2245         * Form.cs: OnActivated selects next active control only if Load 
2246         has already occurred. If Load hasn't run, there's no point in 
2247         selecting here, Load might change the state of controls.
2248         
2249         * FocusTest.cs: Tests marked as working again for these fixes
2250
2251 2006-11-10  Chris Toshok  <toshok@ximian.com>
2252
2253         * XplatUIX11.cs: a couple of fixes.
2254
2255         - use XInternAtoms with almost all the atoms we need to register,
2256         instead of many, many calls to XInternAtom.  should help a bit on
2257         startup time, at the expense of making the code look a little
2258         worse.
2259
2260         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
2261         isn't reparented (which seems to be a clue that we're running fon
2262         compiz) and they have an Owner form.  This fixes the tool windows
2263         in paint.net when running under compiz.
2264
2265         - when setting the opacity of a window, support both the case
2266         where the window has been reparented and also when it hasn't been.
2267         Since compiz/beryl doesn't seem to reparent windows, and these are
2268         the only window managers which support translucency, I'm not sure
2269         why we need the hwnd.reparented case at all.. but leave it in.
2270         now we get translucent windows in paint.net under compiz/beryl.
2271
2272 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2273
2274         * FileDialog.cs: Always return the value for FilterIndex that
2275           was set. Internally convert it to values that make sense.
2276
2277 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2278         
2279         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
2280
2281 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2282
2283         * Toolbar.cs: Change default value of DropDownArrows to true, the 
2284         signature still using false to make it compatible with MS but the 
2285         initial value is true. Fixes #79855.
2286
2287 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2288
2289         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
2290           only available on Linux.
2291
2292 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
2293
2294         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
2295         reduce number of calls to redraw method during toolbar creation.
2296
2297 2006-11-09  Mike Kestner  <mkestner@novell.com>
2298
2299         * ListView.cs : raise SelectedIndexChanged when an item is selected
2300         programmatically via the Item.Selected property.  Gert's nice 
2301         ListViewSelectedIndexChanged test fixture now runs clean.
2302
2303 2006-11-09  Mike Kestner  <mkestner@novell.com>
2304
2305         * ListView.cs : raise SelectedIndexChanged when a selected item is
2306         removed from the item collection using Remove or RemoveAt.
2307
2308 2006-11-09  Mike Kestner  <mkestner@novell.com>
2309
2310         * ListView.cs : raise SelectedIndexChanged once per selected item
2311         for compat with MS.  Fixes #79849+.
2312
2313 2006-11-09  Chris Toshok  <toshok@ximian.com>
2314
2315         * TabControl.cs: initialize row_count to 0, and set it to 1 when
2316         we need to (if we have any tab pages).  Fixes unit test.
2317
2318 2006-11-09  Chris Toshok  <toshok@ximian.com>
2319
2320         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
2321         width is 0, not 3.  Fixes a unit test.
2322
2323 2006-11-09  Mike Kestner  <mkestner@novell.com>
2324
2325         * ListView.cs : use Implicit scrollbars so that focus isn't 
2326         stolen from the listview when they are clicked. Fixes #79850.
2327
2328 2006-11-09  Chris Toshok  <toshok@ximian.com>
2329
2330         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
2331         have a root item.  Fixes #79879.
2332
2333 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
2334
2335         * FileDialog.cs:
2336           - Fix ToString ()
2337           - An ArgumentException is now thrown if a wrong filter
2338             is applied (matches ms). The previous filter doesn't change
2339             anymore if an exception is thrown.
2340           - Changing the FileName property also affects FileNames
2341         * ColorDialog.cs: The length of the CustomColors array is always
2342           16. It doesn't matter if we use a smaller array or null to update
2343           or change the custom colors property.
2344         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
2345           for RootFolder if we get a undefined value.
2346
2347 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2348
2349         * StatusBarPanel.cs: 
2350         - Width is set to MinWidth if Width is smaller than
2351         MinWidth. Fixes #79842.
2352         - MinWidth now always overrides Width (MSDN says MinWidth
2353         is set to Width when AutoSize = None, but they do not 
2354         behave like that).
2355         - Style has now the the correct default value.
2356         
2357 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2358  
2359         * TrackBar.cs: 
2360         - The control is completely invalidated on 
2361         Got/LostFocus to draw the focus rectangle correctly.
2362         - When AutoSize then height is always 45 (width for 
2363         vertical controls).
2364         
2365         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
2366         on the mouse when moved and it doesn't move when grabbed
2367         until the mouse moves as well. Also fixed some wrong 
2368         calculations when clicking on the thumb (control thought
2369         click was outside of thumb and didn't grab it).
2370         Fixes some of the issues in #79718.
2371
2372 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
2373
2374         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
2375
2376 2006-11-08  Chris Toshok  <toshok@ximian.com>
2377
2378         * PropertyGridView.cs: only call ToggleValue if the item is not
2379         readonly.
2380
2381 2006-11-08  Jackson Harper  <jackson@ximian.com>
2382
2383         * TextBoxBase.cs: The RichTextBox and textbox have very different
2384         word selection methods.  Implement the textbox's simple word
2385         selection here, and let the RichTextBox override and provide it's
2386         own.
2387         - Don't do extra selection on mouseup
2388         * RichTextBox.cs: Use the documents word selection algorithm, I
2389         think ideally, this function will be pulled into the
2390         RichTextBox.cs code someday.
2391
2392 2006-11-08  Chris Toshok  <toshok@ximian.com>
2393
2394         * RootGridEntry.cs: new class to represent GridItemType.Root.
2395
2396         * CategoryGridEntry.cs: reformat, and add boilerplate.
2397         
2398         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
2399         returns the UI parent anyway, and we need special handling to
2400         implement the GetTarget method in the face of it.  Also, implement
2401         Select().
2402
2403         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
2404         a root grid item, and use that instead of PropertyGrid.grid_items.
2405         Also, make use of TypeConverters (and add limitted support for
2406         ICustomTypeDescriptors) when initially populating the grid.
2407         Arrays now show up more or less properly.
2408
2409 2006-11-08  Chris Toshok  <toshok@ximian.com>
2410
2411         * Application.cs: set the modal dialog to non modal after we close
2412         it.  Fixes bug #79866.
2413
2414 2006-11-08  Jackson Harper  <jackson@ximian.com>
2415
2416         * TextControl.cs: When combining lines carry over the line end
2417         style from the end line.
2418         - Invalidate the selected area when setting it, if it is visible.
2419         * TextBoxBase.cs: Only rich text box can do full line selects.
2420         - Make sure to set the cursor position when there is a click,
2421         otherwise two clicks in separate areas could cause a large chunk
2422         to be selected.
2423
2424 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2425
2426         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
2427         Fixes #79863.
2428
2429 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2430
2431         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
2432         time. Remove tooltips when ToolButton click events.  Fixes #79856.
2433
2434 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2435
2436         * MenuAPI.cs: Ignore right click for menu actions and fixes
2437         menu border when clicked.  Fixes #79846.
2438
2439 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2440
2441         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
2442         MouseState after create wParam for message, this fixes mouse button 
2443         equal none in mouse up events.
2444         
2445 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
2446
2447         * Control.cs : Focus() now calls Select to set the Container's
2448         Active Control and to give it focus. To avoid infinite recursion
2449         (because ActiveControl also calls Focus at one point), a check 
2450         is made in Focus with the help of a new internal variable
2451         is_focusing.
2452
2453 2006-11-07  Mike Kestner  <mkestner@novell.com>
2454
2455         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
2456         if there's a selection.  Fixes #79849.
2457
2458 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
2459
2460         * PropertyGrid.cs: Avoid fixed height of help description label.
2461         Fixes part of bug #79829.
2462
2463 2006-11-07  Chris Toshok  <toshok@ximian.com>
2464
2465         * XplatUIX11.cs: fix #79790 again, by using the
2466         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
2467
2468 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2469
2470         * ToolBar.cs: Fix left click checking.
2471
2472 2006-11-07  Chris Toshok  <toshok@ximian.com>
2473
2474         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
2475
2476 2006-11-07  Chris Toshok  <toshok@ximian.com>
2477
2478         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
2479         PropertyManager unit tests.
2480
2481         * PropertyManager.cs: make property_name internal.
2482
2483 2006-11-07  Chris Toshok  <toshok@ximian.com>
2484
2485         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
2486         pass a unit test.  Also, don't set image_index to anything in
2487         response to setting the ImageList property.
2488
2489 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2490
2491         * ToolBar.cs: Ignore click events when mouse button is not a
2492         left button, only accepts other button for dropdown menus.  
2493         Fixes #79854.
2494
2495 2006-11-07  Chris Toshok  <toshok@ximian.com>
2496
2497         * DataGrid.cs: make the back and parent row buttons a little less
2498         ugly.
2499
2500 2006-11-07  Jackson Harper  <jackson@ximian.com>
2501
2502         * TextBoxBase.cs: When converting to Text don't put line breaks in
2503         for soft line breaks.
2504         * TextControl.cs: There is an initial "fake" line in the document,
2505         this is now a soft break line, so that an extra line feed doesn't
2506         get added to the end of documents.
2507
2508 2006-11-07  Chris Toshok  <toshok@ximian.com>
2509
2510         [ fix bug #79778 ]
2511         
2512         * CurrencyManager.cs: if the list is readonly, don't bother
2513         checking if IBindingList.AllowNew is true.
2514
2515         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
2516         for non-DataRowView datasources..  or rather, make it not crash.
2517         (DataGridPaintRelationRow): make sure we limit the row painting to
2518         the area not covered by the row header, and make our cell width at
2519         least large enough to cover the relation area.  This allows grids
2520         that have relations but no rows to render correctly.
2521         (DataGridPaintRowContents): same type of changes here.
2522         (SetDataSource): move back to always calling
2523         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
2524         navigating back through relations.
2525         (HitTest): handle the case where we have no cells but have
2526         relations.  Right now we generate a hit in cell 0 of whatever the
2527         row is, not sure if this is strictly correct, but it works for our
2528         purposes.
2529         
2530         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
2531         bother doing anything.
2532
2533 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
2534
2535         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
2536         early version of StatusStrip.  Not responsible for eaten
2537         application or firstborn children.
2538
2539 2006-11-06  Chris Toshok  <toshok@ximian.com>
2540
2541         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
2542         call GetTabRect with a -1 index.  Fixes #79847.
2543
2544 2006-11-06  Jackson Harper  <jackson@ximian.com>
2545
2546         * TreeNodeCollection.cs: Update scrollbars after clearing.
2547
2548 2006-11-06  Chris Toshok  <toshok@ximian.com>
2549
2550         * NumericUpDown.cs: fix the ToString method for some unit test
2551         love.
2552
2553 2006-11-06  Chris Toshok  <toshok@ximian.com>
2554
2555         * PropertyGrid.cs:
2556         - set the initial SelectedGridItem if we can.
2557
2558         - Exclude non-mergable properties only if we're merging > 1
2559         object.  Merging 1 object isn't really merging, obviously.
2560
2561         - Handle PropertySort.NoSort just like Alphabetical, which is
2562         wrong of course, but at least gets things on the screen.
2563         
2564         * PropertyGridView.cs:
2565         - Add method "FindFirstItem" which finds the first property grid
2566         item, so we can select it by default.
2567
2568         - make use of GridEntry.CanResetValue.
2569
2570         - Don't call RedrawBelowItemOnExpansion here anymore, the
2571         individual GridEntry's will do that.
2572
2573         - Remove the ITypeDescriptorContextImpl internal class.
2574         
2575         * GridEntry.cs:
2576         - this class needs to implement ITypeDescriptorContext, as it's
2577         what MS's PropertyDescriptorGridEntry does, which means we can
2578         remove the ITypeDescriptorContextImpl internal class from
2579         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
2580
2581         - keep a reference to our PropertyGridView, and move the call to
2582         RedrawBelowItemOnExpansion here from PGV.  This means
2583         programmaticly setting Expanded actually does something visible.
2584
2585         - add a CanResetValue() function which takes into account our
2586         possibly multiple "selected_objects" in the merged case.  Shifting
2587         PropertyGridView to use this method fixes another unreported
2588         crasher found running the test for #79829.
2589
2590         - when Top or Bounds is updated, make sure the PropertyGridTextBox
2591         is updated to reflect this.
2592
2593         * CategoryGridEntry.cs: the ctor takes the PGV now.
2594         
2595 2006-11-06  Jackson Harper  <jackson@ximian.com>
2596
2597         * TextControl.cs: These are 1 based.
2598         * TextBoxBase.cs: When setting the selected text, don't change the
2599         selected text tags, this is done by ReplaceText, just position the
2600         cursor at the end of the new text.
2601
2602 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2603
2604         * ListView.cs: Allow label edit only when, when LabelEdit is
2605           set to true.
2606
2607 2006-11-06  Jackson Harper  <jackson@ximian.com>
2608
2609         * TextControl.cs: If a suitable wrapping position isn't found,
2610         just wrap right in the middle of a word.
2611
2612 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2613
2614         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
2615           bug #79820.
2616
2617 2006-11-06  Jackson Harper  <jackson@ximian.com>
2618
2619         * TreeView.cs: Can't use the VisibleCount property when setting
2620         scrollbar heights, because this doesn't take into account whether
2621         or not the horz scrollbar just came visible.
2622
2623 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
2624
2625         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
2626         activated.  Fixes #79369, #79832.
2627
2628 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
2629
2630         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
2631           had to remove support for links that point to a directory. FileInfo
2632           returns no usefull information (means, the directory they point to)
2633           for such links. Replaced some empty string ("") with String.Empty.
2634
2635 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2636
2637         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
2638         NullReferenceException when attempting to remove node that is not in
2639         collection. Throw NullReferenceException when null is passed to 
2640         Remove. Allow first element of the collection to be removed. Fixes
2641         bug #79831.  In GetEnumerator ().Current return null if positioned 
2642         before the first element of the collection. In GetEnumerator ().Reset,
2643         position before first element of the collection.
2644
2645 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2646
2647         * PropertyGrid.cs: To match MS, remove default title and description
2648         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
2649         buttons.
2650
2651 2006-11-04  Chris Toshok  <toshok@ximian.com>
2652
2653         * Theme.cs: add a Clamp method, just for kicks.
2654
2655         * ThemeWin32Classic.cs: clamp all color components to [0..255].
2656
2657 2006-11-04  Chris Toshok  <toshok@ximian.com>
2658
2659         * Form.cs: if the form isn't visible, Close() does nothing.
2660
2661 2006-11-03  Chris Toshok  <toshok@ximian.com>
2662
2663         * Form.cs (Close): if the form is modal, don't Dispose of it, only
2664         Hide it.
2665         (WndProc): don't Dispose after handling the WM_CLOSE message.
2666
2667         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
2668         them as such, instead of using casts from Control to Form.  Also,
2669         don't Dispose of the modal dialog when we fall out of the loop -
2670         Close() it instead.
2671
2672         fixes bug #79813.
2673
2674 2006-11-03  Chris Toshok  <toshok@ximian.com>
2675
2676         * Control.cs (Dispose): only go through the dispose thing if we're
2677         @disposing, and we haven't already been disposed.  Fixes bug
2678         #79814.
2679
2680         * Form.cs: no reason to call "base.Dispose()" here instead of
2681         "Dispose()".
2682
2683 2006-11-03  Mike Kestner  <mkestner@novell.com>
2684
2685         * ComboBox.cs : use ToString instead of casts in AddItem for
2686         sorting functionality.  Fixes #79812.
2687
2688 2006-11-03  Chris Toshok  <toshok@ximian.com>
2689
2690         * Application.cs: pave the way for actually using the thread
2691         exception dialog.  it's ifdefed out at the moment.
2692
2693 2006-11-03  Chris Toshok  <toshok@ximian.com>
2694
2695         * ThreadExceptionDialog.cs: until we get a better layout, actually
2696         hide the details textbox and label when we shouldn't see them.
2697
2698 2006-11-03  Jackson Harper  <jackson@ximian.com>
2699
2700         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
2701         multiline textboxes anymore.  This method also determines the
2702         width/height of a textboxes canvas area.
2703         - Sorta a revert of the last patch.  For multiline just position
2704         the controls, then bail.  This way the scrollbar width won't be
2705         altered.
2706
2707 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
2708
2709         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
2710         it dont need.  Fixes #79537.
2711
2712 2006-11-02  Jackson Harper  <jackson@ximian.com>
2713
2714         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
2715         send the status after firing the DndOver event.
2716
2717 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2718
2719         * TrackBar.cs: Now orientation only switches height / width if
2720         the control's handle is created (Win32 does it like this). Also 
2721         fixed a typo in ToString() for a test to pass, changed the 
2722         exception thrown in set_LargeChange and set_SmallChange to 
2723         match Win32 behaviour, and added TrackBar tests to the unit 
2724         tests.
2725
2726 2006-11-02  Chris Toshok  <toshok@ximian.com>
2727
2728         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
2729         not _NET_WM_STATE_NO_TASKBAR.
2730
2731 2006-11-02  Jackson Harper  <jackson@ximian.com>
2732
2733         * TextControl.cs: Increment count by one, since in the update view
2734         count - 1 is used.
2735
2736 2006-11-02  Jackson Harper  <jackson@ximian.com>
2737
2738         * TextBoxBase.cs: Use client rectangle not bounds for checking if
2739         the mouse is in the client rectangle (duh).
2740
2741 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2742         
2743         * TrackBar.cs: Fixed trackbar jumping around when clicking
2744         on it - the trackbar was not detecting correctly at which
2745         side of the thumb the click was done. (fixes #79718)
2746
2747 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
2748
2749         * ListBox.cs: scroll visible area when change SelectedIndex to
2750         a non visible area.  Fixes #79481.
2751
2752 2006-11-01  Jackson Harper  <jackson@ximian.com>
2753
2754         * TextControl.cs: When replacing the selection move the selection
2755         start/end/anchor to the end of the new text.
2756
2757 2006-11-01  Jackson Harper  <jackson@ximian.com>
2758
2759         * XplatUIWin32.cs: When setting the parent change the controls
2760         visibility to it's visibility flag, not to it's old parents
2761         visibility (.Visible walks the parent chain).
2762
2763 2006-11-01  Chris Toshok  <toshok@ximian.com>
2764
2765         * XplatUIX11.cs: revert the #79790 fix, as the simple.
2766         XSetTransientForHint fix breaks paint .net's tool windows.  more
2767         work needed for that one.
2768
2769 2006-11-01  Chris Toshok  <toshok@ximian.com>
2770
2771         * ScrollBar.cs: throw ArgumentException instead of Exception in
2772         LargeChange/SmallChange setters.  fixes unit tests.
2773
2774 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2775
2776         * ContainerControl.cs: reverted rev.67183 (which was itself
2777         a reversion of rev.66853... eh).
2778         
2779         * Control.cs: Fixes Reflector hang by changing Focus() call
2780         to what it was before rev.66643 (calling Select() here sets 
2781         ActiveControl, which in some situations calls back Focus and 
2782         eventually does a stack overflow). Temp fix.    
2783         Changes to GetNextControl() to not look for children to select when
2784         parent cannot be selectable (so it looks for siblings instead)  
2785         
2786 2006-10-31  Mike Kestner  <mkestner@novell.com>
2787
2788         * CheckedListBox.cs : off by one error in returned index from
2789         ObjectCollection.Add.  Fixes #79758.
2790
2791 2006-10-31  Chris Toshok  <toshok@ximian.com>
2792
2793         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
2794         calls for the textbox/spinner, to keep from recursing to the point
2795         where we crash.  Fixes #79760.
2796
2797 2006-10-31  Chris Toshok  <toshok@ximian.com>
2798
2799         * ListControl.cs (set_SelectedValue): don't throw exceptions on
2800         null/"" value, just return.  matches ms's behavior and fixes some
2801         failing tests.
2802
2803 2006-10-31  Chris Toshok  <toshok@ximian.com>
2804
2805         * Control.cs (set_Capture): make a logic a little easier to
2806         follow.
2807
2808         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
2809         if it's being destroyed.  A necessary fix surely, but a bandaid
2810         also, to fix the stuck capture problem in bug #78413.
2811
2812 2006-10-31  Chris Toshok  <toshok@ximian.com>
2813
2814         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
2815         convention of clearing hwnd.ClientRect when we set the
2816         width/height (so it'll be recalculated by Hwnd).
2817
2818 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2819
2820         * ContainerControl.cs: reversed Contains check from
2821         ActiveControl due to hanging problems. This fix
2822         partly regresses #79667 (button does not have
2823         initial focus), so this might be a symptom for 
2824         a larger parenting problem (set_ActiveControl
2825         is being called but the child control does
2826         not have the parent set yet?)   
2827         
2828 2006-10-31  Mike Kestner  <mkestner@novell.com>
2829
2830         * MenuAPI.cs : fix keynav when menu is click activated.
2831
2832 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
2833
2834         * ToolStrip*: Version 0.2.
2835
2836         * MenuStrip.cs: Version 0.1.
2837
2838         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
2839
2840 2006-10-30  Chris Toshok  <toshok@ximian.com>
2841
2842         [ fixes the oversized notify icon issue in bug #79745 ]
2843         
2844         * NotifyIcon.cs: scale the icon down to the size we're given by
2845         the XplatUI layer (this would be faster if we did it once instead
2846         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
2847         since it's never invoked.
2848
2849         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
2850         pixels high by default, so let's hardcode our systray icon to that
2851         size.  The SYSTEM_TRAY protocol should really have a way for
2852         client apps to query for the correct icon size.. but oh well.  A
2853         couple of patches to deal with the screwy client_window ==
2854         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
2855         instance, and also make sure we don't XSelectInput twice).
2856
2857 2006-10-30  Chris Toshok  <toshok@ximian.com>
2858
2859         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
2860         recreating forms.  Control recreation is the bane of my existence.
2861         Fix it in a way that keeps everyone happy.
2862
2863 2006-10-30  Chris Toshok  <toshok@ximian.com>
2864
2865         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
2866         just non-CHILD ones.  otherwise sometimes scrollbars end up with
2867         client_windows not being resized to the proper size (ReportBuilder
2868         shows this extremely well).
2869
2870 2006-10-30  Chris Toshok  <toshok@ximian.com>
2871
2872         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
2873         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
2874         showing up in the gnome taskbar.  Fixes bug #79790.
2875
2876 2006-10-30  Chris Toshok  <toshok@ximian.com>
2877
2878         * ApplicationContext.cs: guard against a NRE.
2879
2880         * Application.cs: null out the old MainForm for the context, so we
2881         don't try to use it again once it's disposed.  Fixes bug #79783.
2882
2883 2006-10-30  Chris Toshok  <toshok@ximian.com>
2884
2885         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
2886         BindingContext, set the data source directly, otherwise do the
2887         lazy approach - the actual ListManager will be created when we get
2888         a BindingContext. Fixes bug #79700.
2889
2890 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2891
2892         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
2893           XplatUIX11.cs: Remove old 2 parameter SetVisible.
2894
2895         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
2896
2897 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2898
2899         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
2900         of SetVisible that allows a window to be shown, but not activated.
2901         This is needed on Windows for MenuStrip, and can probably be used
2902         with MainMenu and ComboBox to fix the focus stealing issues on
2903         Windows.
2904
2905         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
2906
2907 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
2908
2909         * PictureBox.cs: Fix the output of the ToString method.
2910
2911 2006-10-29  Chris Toshok  <toshok@ximian.com>
2912
2913         * Control.cs (get_TopLevelControl): fix bug #79781.
2914
2915 2006-10-29  Chris Toshok  <toshok@ximian.com>
2916
2917         * ListControl.cs (set_DataSource): throw Exception here, not
2918         ArgumentException, to match MS behavior.
2919
2920 2006-10-29  Chris Toshok  <toshok@ximian.com>
2921
2922         * Form.cs: remove the try-catch's around calls to GetWindowState.
2923         We can just check the return value.
2924
2925         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
2926         Instead return -1.
2927
2928         * XplatUI.cs: Add note about additional return value for
2929         GetWindowState.
2930
2931 2006-10-29  Chris Toshok  <toshok@ximian.com>
2932
2933         * Control.cs (CreateHandle): when we create our handle, we also
2934         create the handles of our child controls.  Fixes one of the
2935         Control unit tests (CH11).
2936
2937 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2938
2939         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
2940
2941 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2942
2943         * ThemeClearlooks.cs: A little speedup.
2944
2945 2006-10-27  Chris Toshok  <toshok@ximian.com>
2946
2947         * Control.cs: implement Control.FromChildHandle in a way that
2948         matches the docs (and fixes the failed test.)
2949
2950 2006-10-27  Chris Toshok  <toshok@ximian.com>
2951
2952         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
2953         comments).
2954
2955         * DataGrid.cs: implement ResetForeColor such that the tests
2956         succeed.
2957         
2958 2006-10-27  Chris Toshok  <toshok@ximian.com>
2959
2960         * ToolBarButton.cs: setting text/tooltiptext to null results in it
2961         being set to "".  Fixes bug #79759.
2962
2963 2006-10-27  Jackson Harper  <jackson@ximian.com>
2964
2965         * TextControl.cs: We need to clear the entire selection area when
2966         setting the start, otherwise multiline selections are still
2967         visible.
2968
2969 2006-10-26  Chris Toshok  <toshok@ximian.com>
2970
2971         * PropertyGridView.cs: 
2972
2973         - ifdef all the code specific to the double
2974         buffer case, and provide some alternatives in the non-doublebuffer
2975         code, which makes heavy use of XplatUI.ScrollWindow to move things
2976         around without having to invalidate (and cause flicker).  There
2977         are still some drawing problems in the non-doublebuffered case, so
2978         DOUBLEBUFFER is defined by default.
2979
2980         - Fix the way dropdowns are handled.  now we explicitly watch for
2981         the events which might cause the dropdown to close, and break out
2982         of the nested event loop there.  This gets rid of all Capture
2983         code, at the expense of the Msg special casing.  Seems to work,
2984         though, and fixes bug #79743.
2985
2986 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
2987         * Control.cs: SetIsRecreating now recreates implicitly added
2988         child controls as well. Finally fixes #79629. The flag passed to 
2989         SetIsRecreating has also been removed since it wasn't used.
2990         
2991 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2992
2993         * PageSetupDialog.cs: Clean some code, fix some bits, 
2994         add some checks, and add a printer sub-dialog.
2995
2996 2006-10-26  Chris Toshok  <toshok@ximian.com>
2997
2998         * PropertyGrid.cs: make set_SelectedObject call
2999         set_SelectedObjects, and move the duplicate logic to the
3000         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
3001
3002         * PropertyGridView.cs: hide the textbox when we get a
3003         SelectedObjectsChanged event.
3004
3005         Fixes bug #79748.
3006
3007 2006-10-26  Chris Toshok  <toshok@ximian.com>
3008
3009         * PropertyGridView.cs: deal with the type converter not supporting
3010         GetStandardValues() or GetStandardValues() returning null, which
3011         is does in the default case.  Fixes #79742.
3012
3013 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3014
3015         * CheckedListBox.cs: nunit no longer crashes when selecting 
3016         Project/Edit menu option
3017         
3018 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
3019
3020         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
3021         is no menu selected. fixes #79739
3022
3023 2006-10-25  Chris Toshok  <toshok@ximian.com>
3024
3025         * PropertyGridView.cs: factor out the splitter invalidation code
3026         into the SplitterPercent setter, and for kicks implement the
3027         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
3028         amount in either direction.
3029
3030 2006-10-25  Chris Toshok  <toshok@ximian.com>
3031
3032         * PropertyGridView.cs: do some cleanup of the brush used to draw
3033         text - read only fields should be grayed out.  not sure how to do
3034         this with the textbox, though.  but the textbox's should also be
3035         readonly now at least.  Also, hide/show the textbox when resizing
3036         the control.
3037         
3038         * CursorConverter.cs: use System.Reflection when getting the
3039         properties of Cursors, as TypeDescriptor.GetProperties isn't
3040         returning static properties.
3041
3042 2006-10-25  Chris Toshok  <toshok@ximian.com>
3043
3044         * PropertyGridView.cs: factor out the up/down handling, and reuse
3045         it for page up/down.  also add End/Home support.
3046
3047 2006-10-25  Chris Toshok  <toshok@ximian.com>
3048
3049         * PropertyGridView.cs:
3050
3051         - ensure the selected grid item is visible in the scrolled area,
3052         fixes bug #79572.
3053
3054         - fix Keys.Down handling when you're on the last item in the
3055         propertygrid.
3056
3057 2006-10-25  Mike Kestner  <mkestner@novell.com>
3058
3059         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
3060         clicks too.  Fixes #79725.
3061
3062 2006-10-24  Chris Toshok  <toshok@ximian.com>
3063
3064         * PropertyGrid.cs: use property.Converter instead of
3065         TypeDescriptor.GetConverter(property.PropertyType), so we catch
3066         TypeConverters declared on the property as well as on the
3067         PropertyType.  Fixes bug #79678.
3068
3069 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
3070
3071         * MimeIcon.cs, Mime.cs:
3072           Fallback to the default platform handler if no shared mime info
3073           stuff exists (fixes #79693).
3074
3075 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3076         * ContainerControl.cs: Incorrect contains check in ActiveControl 
3077         from previous fix (duh).
3078
3079 2006-10-20  Chris Toshok  <toshok@ximian.com>
3080
3081         * PropertyGridView.cs: the dropdown should be MIN(number of items
3082         in list, 15).  Fixes #79551.
3083
3084 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
3085         Fixes #79384, #79394, #79652, #79667
3086         * Application.cs: 
3087         
3088         - Modal windows are now destroyed in the proper order for windows
3089         
3090         * ContainerControl.cs:
3091         
3092         - ActiveControl setter has more conditions on when to return:
3093                 - if we're reselecting the active control, but it actually
3094                 didn't have focus (window hidden or some such), it runs
3095                 - if the active control being selected doesn't actually 
3096                 exist in the container, it returns
3097         
3098         * Form.cs
3099         
3100         - The ShowDialog now gets the current form as the owner when
3101         invoking without parameters, and correctly activates the owner 
3102         when returning
3103         
3104         * MessageBox.cs
3105         
3106         - MessageBox now catches the Escape key to exit
3107
3108 2006-10-20  Chris Toshok  <toshok@ximian.com>
3109
3110         * PropertyGridView.cs: fix a number of issues (bug #78565, and
3111         most of bug #79676):
3112
3113         - you can navigate around the property grid with the arrow keys.
3114
3115         - the dropdown is sized properly when the pg has a vertical
3116         scrollbar.
3117
3118         - fix the indentation for subentries, and properly select the
3119         entire label rect.
3120
3121         - fix the gray bar's drawing (only draw it to the last element,
3122         not for the height of the control.  Also make sure we draw that
3123         last horizontal grid line.
3124
3125         - use the same mechanism the datagrid uses wrt the editing textbox
3126         when scrolling/resizing/etc.  Namely, we hide it first, do the
3127         operation, then show it again (if it's still visible).
3128         
3129         - aggressively remove a lot of unnecessary refreshes (and also
3130         calls to Invalidate(). call more limited variants, and only redraw
3131         what we need.)
3132         
3133         * PropertyGrid.cs:
3134
3135         - when we're populating the merged collection, fill in the UI
3136         parent with either the passed in item, or the category item we
3137         create.
3138
3139         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
3140
3141         * GridItem.cs: drop some fully qualified names.
3142         
3143         * GridEntry.cs: add a "UIParent", which is basically the parent
3144         treenode.
3145
3146         * GridItemCollection.cs: add an IndexOf method.
3147
3148 2006-10-20  Mike Kestner  <mkestner@novell.com>
3149
3150         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
3151         a working win32 NC invalidation mechanism, we can't invalidate
3152         menus.  [Fixes #79705]
3153
3154 2006-10-20  Mike Kestner  <mkestner@novell.com>
3155
3156         * ListBox.cs : don't update the VScrollbar if the list is empty,
3157         just hide it.  [Fixes #79692]
3158
3159 2006-10-20  Jackson Harper  <jackson@ximian.com>
3160
3161         * RichTextBox.cs: Handle some special chars better, and don't skip
3162         the entire group when we encounter a special char that we don't
3163         handle correctly.
3164
3165 2006-10-18  Chris Toshok  <toshok@ximian.com>
3166
3167         * PropertyGridView.cs: address a number of issues from bug #79676,
3168         mostly of the cosmetic variety.
3169
3170         - The highlight rectangle for indented items not extends all the
3171         way to the left.
3172
3173         - Indented items aren't indented so much.
3174
3175         - the dropdown is properly sized width-wise if the pg has a
3176         vertical scrollbar.
3177
3178 2006-10-18  Chris Toshok  <toshok@ximian.com>
3179
3180         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
3181         systray stuff is rather convoluted to begin with.
3182
3183         systray icons are a single window for some reason (that I haven't
3184         figured out yet), and for them, client_window == whole_window.
3185         Given the way the tests are structured elsewhere to determine
3186         which paints are pending (client vs. nc), that situation will
3187         always yield PAINT, not NCPAINT.  So, if we have a pending
3188         nc_expose and no pending expose, remove the hwnd from the paint
3189         queue, and also set nc_expose_pending to false, to keep us from
3190         blocking further expose's adding the hwnd to the paint queue.
3191
3192         phew.  like i said, a rather convoluted change.  Fixes the
3193         notifyicon repaint issues in bug #79645.
3194
3195 2006-10-18  Chris Toshok  <toshok@ximian.com>
3196
3197         * Form.cs: when getting the backcolor of the form, don't get
3198         base.BackColor, as this allows parents to influence the background
3199         color.  This breaks mdi forms.  Instead, if the background_color
3200         is empty, return the default.
3201
3202 2006-10-18  Chris Toshok  <toshok@ximian.com>
3203
3204         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
3205         to being private instead of internal static.
3206
3207         * Control.cs: remove all the stupid ParentWaitingOnRecreation
3208         crap, it wasn't working for more deeply nested controls anyway,
3209         and we already have the is_recreating flag - use that instead.
3210         Before calling DestroyHandle in RecreateHandle, recurse through
3211         the control tree setting it to true.  this returns the recreate
3212         code to much of its original simplicity, while now guaranteeing we
3213         actually recreate everything we're supposed to.  This change gets
3214         fyireporting actually showing mdi children.
3215
3216 2006-10-17  Chris Toshok  <toshok@ximian.com>
3217
3218         * Form.cs: remove some debug spew, and collapse some duplicate
3219         code at the end of SetClientSizeCore.
3220
3221         * XplatUIX11.cs: 
3222         - add some more debug spew here too wrt Destroy handling.
3223         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
3224         in Control's handling of WM_DESTROY.
3225         - Remove the handling of zombie window DestroyNotifies from the
3226         event loop - we don't need it.  Now the only DestroyNotifies we
3227         actually handle are ones generated by X.
3228         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
3229         match gtk's (functioning) handling of this. This keep metacity
3230         from leaving droppings in the form of wm borders with no window
3231         contents all over the place.
3232
3233         * Control.cs:
3234         - add a bunch of debug spew wrt control recreation.
3235         - fix a bug where we weren't tracking Visible properly on
3236         recreated hwnds.
3237         - fixed the WM_PAINT double buffer handling to support re-entrant
3238         calls (yes, i know it's gross, but it's happening to us).
3239
3240 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3241         * ThemeWin32Classic.cs: changed drawing of selected days
3242         to make them look better.
3243
3244 2006-10-16  Chris Toshok  <toshok@ximian.com>
3245
3246         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
3247         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
3248
3249         * XplatUIX11.cs: move away from using hwnd.client_dc and
3250         hwnd.non_client_dc and on to a stack of dc's (and in window's
3251         case, PAINTSTRUCT's), so we can deal with nested Paint calls
3252         without puking or not disposing of Graphics objects.
3253
3254         * XplatUIOSX.cs: same.
3255
3256         * XplatUIWin32.cs: same.
3257
3258 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3259
3260         * FileDialog.cs: Don't call on_directory_changed inside
3261           OnSelectedIndexChanged (it changes the SelectedIndex too).
3262           Instead move it to OnSelectionChangeCommitted.
3263
3264 2006-10-13  Chris Toshok  <toshok@ximian.com>
3265
3266         * XplatUIX11.cs: more Destroy work.  the current code does the
3267         following things, in order:
3268
3269         1. Enumerates all handles of all controls at or below the one
3270         being destroyed, in pre-order.  As it is doing this, it marks the
3271         handles as zombie and clears all references to them.
3272         
3273         2. calls XDestroyWindow on the window passed in.
3274
3275         3. SendMessage's WM_DESTROY to all he handles in the accumulated
3276         list.
3277
3278 2006-10-13  Chris Toshok  <toshok@ximian.com>
3279
3280         * XplatUIX11.cs: set hwnd.zombie to true before calling
3281         SendMessage (WM_DESTROY).  this keeps us from marking the new
3282         window a zombie, and also keeps us from calling sendmessage at
3283         all.
3284
3285 2006-10-13  Jackson Harper  <jackson@ximian.com>
3286
3287         * TextControl.cs: Do not show the caret and selection at the same
3288         time.  Reduces ugliness by 35%.
3289
3290 2006-10-13  Chris Toshok  <toshok@ximian.com>
3291
3292         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
3293         zombie after we do the recursive call, so we actually do call
3294         SendMessage on the children controls.
3295         (GetMessage): if we find a pending paint event for a zombie hwnd,
3296         remove the hwnd from the paint queue, or else it will always be
3297         there (and we'll effectively loop infinitely)
3298
3299 2006-10-13  Mike Kestner  <mkestner@novell.com>
3300
3301         * MenuItem.cs : add Selected format under keynav too.
3302         Fixes #79528.
3303
3304 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
3305
3306         * PropertyGrid.cs: Fixed some NRE's and small difference between our
3307         implementation and that of MS.
3308
3309 2006-10-13  Chris Toshok  <toshok@ximian.com>
3310
3311         * Control.cs (OnInvalidated) only futz with the invalid_region if
3312         the control is double buffered.  this fixes the apparent hang in
3313         the ListView unit tests.  Someone needs to make the
3314         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
3315
3316 2006-10-13  Chris Toshok  <toshok@ximian.com>
3317
3318         * PropertyGridView.cs:
3319
3320         - do a little refactoring so that only one place calls
3321         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
3322         else call that.  Also make it Refresh, since there are redraw bugs
3323         otherwise (we should take a look at that...)
3324
3325         - do a little more refactoring work to share the body of code
3326         involved with the drop down.  it was duplicated in the code
3327         dealing with the listbox handling and in the code dealing with the
3328         UITypeEditors.
3329
3330         - add a Capture to the dropdown form's control once it's
3331         displayed, and add a MouseDown handler that checks to make sure
3332         the position is inside the control.  If it's not, close the
3333         dropdown.  This fixes #78190.
3334
3335         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
3336         if the value is different than the initial value.
3337         
3338 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
3339
3340         * Control.cs: see #78650
3341         - Fixed GetNextControl for several cases:
3342                 - Changed FindFlatForward to return 
3343                 correct sibling control when more than one
3344                 control has same TabIndex as the currently 
3345                 focused one.
3346                 - Changed FindFlatBackward to loop children
3347                 from last to first and apply same logic as in
3348                 FindFlatForward
3349                 - Changed FindControlForward to search for
3350                 children when control is not a container
3351                 but has children, or search for siblings if
3352                 control is a container...
3353                 - Changed FindControlBackward   to continue
3354                 searching for child controls when hitting 
3355                 Panel-like parents
3356                 
3357         - Fixed Focus method to update ActiveControl
3358         (FocusTest.FocusSetsActive failure)
3359         
3360         * TabControl.cs:
3361         - Focus rectangle now refreshes when gaining
3362         or losing focus
3363         - Removed grab for Tab key on IsInputKey that 
3364         was keeping tab navigation from working (#78650)
3365
3366 2006-10-13  Chris Toshok  <toshok@ximian.com>
3367
3368         * PropertyGridView.cs:
3369         - Rewrite SetPropertyValue to loop over SelectedGridItem's
3370         SelectedObjects.
3371
3372         - Deal with GridItem.Value == null a few places.
3373
3374         * PropertyGrid.cs: 
3375         - replace the PopulateGridItemCollection with a pair of methods
3376         which compute the intersection of all the properties in the
3377         SelectedObjects array.  Fixes #79615.
3378
3379         - Throw ArgumentException from set_SelectedObjects if there's a
3380         null in the array.
3381
3382         - Add GetTarget method which can be used to traverse up the
3383         GridItem.Parent chain.  It depends on the assumption that
3384         selected_objects for different GridEntries are always in the same
3385         order (a safe assumption).  Use this method and loop over all the
3386         selected objects in the entry when calling RemoveValueChanged and
3387         AddValueChanged.
3388         
3389         * GridEntry.cs: Make this handle multiple selected objects.
3390         .Value returns null if not all the selected objects share the same
3391         value.
3392
3393 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
3394         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
3395           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
3396           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
3397           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
3398           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
3399         add additional functionality.
3400
3401 2006-10-12  Mike Kestner  <mkestner@novell.com>
3402
3403         * ErrorProvider.cs : new ToolTipWindow ctor sig.
3404         * HelpProvider.cs : new ToolTipWindow ctor sig.
3405         * ToolTip.cs : remove ToolTip param from Window sig since it is
3406         not used.
3407         * ToolBar.cs : add tooltip support.  Fixes #79565.
3408
3409 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3410
3411         * ComboBox.cs: move the events in set_SelectedIndex to 
3412         after the call to HighlightIndex in order to avoid 
3413         possible recursion and subsequent problems with the call
3414         to HighlightIndex and include a range check in 
3415         set_HighlightIndex. Fixes #79588
3416         
3417 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3418
3419         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
3420         to ui thread's settings instead of sunday. 
3421         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
3422
3423 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3424
3425         * DateTimePicker.cs
3426         * MonthCalendar.cs
3427         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
3428         and implement missing functionality (selecting different parts 
3429         of the date and edit them individually with the keyboard).
3430         
3431 2006-10-11  Chris Toshok  <toshok@ximian.com>
3432
3433         * Control.cs (OnInvalidated): fix NRE relating to last change.
3434
3435 2006-10-11  Chris Toshok  <toshok@ximian.com>
3436
3437         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
3438         atoms in _NET_WM_STATE here if the window is maximized.  We need
3439         to do this because we're *replacing* the existing _NET_WM_STATE
3440         property, so those atoms will be lost otherwise, and any further
3441         call to GetWindowState will return Normal for a window which is
3442         actually maximized.  Fixes #79338.
3443
3444 2006-10-11  Jackson Harper  <jackson@ximian.com>
3445
3446         * TextControl.cs: Special case for setting selection end to
3447         selection start, we basically kill the anchor.
3448         - some todo comments.
3449
3450 2006-10-11  Chris Toshok  <toshok@ximian.com>
3451
3452         * Control.cs: switch to using an "invalid_region" to track which
3453         parts of the image buffer need updating.  This is more code than
3454         the simple fix from r66532.  That version just attempted to always
3455         fill the entire buffer on redraw, which turns out to be
3456         inefficient when invalidating small rectangles.  This version
3457         simply adds the invalid rectangle to the invalid region.  When we
3458         get any WM_PAINT message we see if it can be filled using the
3459         image buffer, and if it can't (if the paint event's clip rectangle
3460         is visible in the invalid region) we first fill the image buffer.
3461         So, the image buffer is still a cache, we just fill it lazily.
3462
3463         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
3464         need it any longer.
3465
3466 2006-10-11  Chris Toshok  <toshok@ximian.com>
3467
3468         * XplatUIX11.cs (SetWindowPos): we need to update both position as
3469         well as size after calling XMoveResizeWindow.  This keeps us from
3470         ignoring future SetWindowPos calls.  Fixes the disappearing
3471         DateTimePicker in the ToolBarDockExample from bug #72499.
3472
3473 2006-10-11  Chris Toshok  <toshok@ximian.com>
3474
3475         * TextBoxBase.cs: reorder things a bit when it comes to
3476         resizing-causing-recalculation.  we were recalculating the
3477         document when our position was changed, which shouldn't happen.
3478         We only care about size changes.  Clear up some more redundant
3479         recalculation calls while I'm at it.  This makes the toolbar dock
3480         example snappy when you're just dragging toolbars around (since it
3481         causes a relayout whenever you move one.)
3482
3483 2006-10-11  Chris Toshok  <toshok@ximian.com>
3484
3485         * ToolBarButton.cs (get_Rectangle): this only returns
3486         Rectangle.Empty if Visible == false, or Parent == null.
3487         Parent.Visible doesn't matter.
3488
3489 2006-10-10  Chris Toshok  <toshok@ximian.com>
3490
3491         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
3492         by .net 1.1, so switch to an internal method instead.
3493
3494 2006-10-10  Chris Toshok  <toshok@ximian.com>
3495
3496         * Control.cs (WM_PAINT): when a control is double buffered we draw
3497         initially to the ImageBuffer and then copy from there.  But when a
3498         parent control which has child controls is double buffered, the
3499         initial drawing doesn't encompass the entire ClientRectangle of
3500         the parent control, so we end up with uninitialized bits (this is
3501         easily seen by dragging the top toolbar in
3502         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
3503         manually set the ClipRectangle of the paint_event (only the one we
3504         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
3505         of the nastiness in bug #72499.
3506
3507         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
3508         which we use in Control.cs's WM_PAINT handling.
3509
3510 2006-10-10  Jackson Harper  <jackson@ximian.com>
3511
3512         * TextBoxBase.cs: Finish off the autoscrolling stuff.
3513
3514 2006-10-10  Chris Toshok  <toshok@ximian.com>
3515
3516         * Cursor.cs: Apply a slightly different patch to the one suggested
3517         in #79609.
3518
3519 2006-10-10  Jackson Harper  <jackson@ximian.com>
3520
3521         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
3522         not the parent form.
3523         * TextControl.cs: use difference in old line count vs new count to
3524         calculate how many lines were added, this takes into account soft
3525         line breaks properly.
3526
3527 2006-10-10  Chris Toshok  <toshok@ximian.com>
3528
3529         * LinkLabel.cs: don't call MeasureCharacterRanges against a
3530         rectangle located at 0,0 and the size of the text.  Use
3531         ClientRectangle instead.  This fixes rendering of non-left aligned
3532         link labels.
3533
3534 2006-10-10  Jackson Harper  <jackson@ximian.com>
3535
3536         * TextBoxBase.cs: When we set the selection start position the
3537         caret.
3538         * TextControl.cs: Need to update the caret when we decrement it to
3539         zero.
3540         - Make sure that the selection_visible flag gets reset to false if
3541         the selection isn't visible.  Before this you could get it set to
3542         visible by changing the selection start, then changing the end to
3543         equal the start.
3544
3545 2006-10-09  Jackson Harper  <jackson@ximian.com>
3546
3547         * TreeView.cs: Don't update scrollbars when we aren't visible.
3548         * TreeNodeCollection.cs: Only need to update scrollbars if being
3549         added to an expanded visible node or the root node.
3550
3551 2006-10-09  Chris Toshok  <toshok@ximian.com>
3552
3553         * XplatUIX11.cs (SendMessage): fix NRE.
3554
3555 2006-10-09  Jackson Harper  <jackson@ximian.com>
3556
3557         * TextBoxBase.cs: Implement horizontal autoscrolling.
3558         * TextControl.cs: Add a movement types that allows moving forward
3559         and backwards without wrapping.
3560
3561 2006-10-09  Mike Kestner  <mkestner@novell.com>
3562
3563         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
3564         with focus "expansion" of labels.  Fixes #79532 and then some.
3565         * ThemeWin32Classic.cs : add LineLimit to ListView label format
3566         when wrapping.
3567
3568 2006-10-09  Jackson Harper  <jackson@ximian.com>
3569
3570         * TextBoxBase.cs: Set the default max values to MaxValue since
3571         we use the scrollbar for autoscrolling and the default value is
3572         100.  If we don't do this the caret won't keep up with typing
3573         after about 18 characters.
3574         * TextControl.cs: Make sure the selection is offset by the
3575         viewport x.  This fixes selection when using auto scrolling.
3576
3577 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
3578         
3579         * Form.cs: The active control should be selected after the 
3580         OnLoad so that any child control initialization that affects
3581         the selection is done. Fixes #79406
3582
3583 2006-10-06  Chris Toshok  <toshok@ximian.com>
3584
3585         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
3586         to have no evil effects.
3587
3588         - Stop selecting StructureNotifyMask on non-toplevel windows.
3589
3590           The only way children should be resized is by using the SWF api,
3591           and we already send WM_WINDOWPOSCHANGED messages in those cases.
3592           Toplevel windows can be interacted with via the window manager,
3593           and so we keep the input mask there.
3594
3595           The other event StructureNotifyMask gives us (that we care
3596           about) is DestroyNotify.  The code is already structured such
3597           that it assumes we won't be getting a DestroyNotify event for
3598           the window we pass to XDestroyWindow (which is what
3599           StructureNotifyMask is supposed to guarantee.)  So, that code
3600           shouldn't be affected by this either.
3601
3602         - Stop selecting VisibilityChangeMask altogether.
3603
3604           We weren't doing anything with the resulting events anyway.
3605         
3606         This vastly reduces the number of X requests and events we see
3607         when resizing/laying out a large ui.
3608
3609 2006-10-06  Chris Toshok  <toshok@ximian.com>
3610
3611         * ScrollableControl.cs (DisplayRectangle): we need to take into
3612         account the DockPadding regardless of whether or not auto_scroll
3613         == true.  rework this slightly to this effect, and fix bug #79606,
3614         and part of #72499 (you can now see the drag handles and drag
3615         toolbars around).
3616
3617 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
3618
3619         * ListViewItem.cs: Collections of selected and checked items are now
3620         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
3621         we mark the collection "dirty".
3622         * ListView.cs: Marked collections readonly. Modified UpdateSelection
3623         to only clear SelectedItems when a new item is selected and MultiSelect
3624         is enabled. CheckedItems and SelectedItems now subscribe to Changed
3625         event of ListViewItemCollection, and mark its list dirty whenever
3626         that event is fire. This allows us to return selected/checked items 
3627         in the same order as they are in the Items collection. This matches
3628         the MS behavior.
3629
3630 2006-10-06  Chris Toshok  <toshok@ximian.com>
3631
3632         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
3633         right mouse clicks.  Fixes bug #79593.
3634
3635 2006-10-06  Chris Toshok  <toshok@ximian.com>
3636
3637         * Splitter.cs: doh, fix splitters that don't want to cancel the
3638         movement when you drag them.  Also, impose the limits on the
3639         values we send to the SplitterMovingEvent.  Fixes #79598.
3640
3641 2006-10-06  Jackson Harper  <jackson@ximian.com>
3642
3643         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
3644         since we use this for auto scrolling also.
3645
3646 2006-10-05  Chris Toshok  <toshok@ximian.com>
3647
3648         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
3649         beginning to think that most datagrid column types don't need this
3650         method.  Fixes bug #79392.
3651
3652 2006-10-05  Chris Toshok  <toshok@ximian.com>
3653
3654         * DataGrid.cs: move back to a more lazy scheme for creating the
3655         CurrencyManager, so we aren't updating it every time you set
3656         either DataSource or DataMember.  Also, don't call
3657         RecreateDataGridRows if the currency manager hasn't changed.
3658
3659 2006-10-05  Chris Toshok  <toshok@ximian.com>
3660
3661         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
3662         emitted, SelectedIndex should already be updated.  Fixes bug
3663         #78929.
3664
3665 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
3666
3667         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
3668           ToolStripTextBox.cs: Initial commit.
3669         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
3670
3671 2006-10-05  Jackson Harper  <jackson@ximian.com>
3672
3673         * TabControl.cs: We need to invalidate the tab control area when
3674         new ones are added (duh).
3675
3676 2006-10-03  Chris Toshok  <toshok@ximian.com>
3677
3678         * Form.cs (ProcessDialogKey): if the focused control is in this
3679         form and is a button, call its PerformClick method here.  Fixes
3680         #79534.
3681
3682 2006-10-04  Jackson Harper  <jackson@ximian.com>
3683
3684         * TabPage.cs: Ignore setting of Visible, and add an internal
3685         method for setting the controls visibility.  TabPage's Visible
3686         property is a little strange on MS, this seems to make us
3687         compatible, and fixes cases where people set all the tab pages to
3688         visible.
3689         * TabControl.cs: Use the new internal setting on tab pages
3690         visibility.
3691
3692 2006-10-03  Mike Kestner  <mkestner@novell.com>
3693
3694         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
3695
3696 2006-10-03  Mike Kestner  <mkestner@novell.com>
3697
3698         * ListView.cs : use is_visible instead of Visible to check if 
3699         scrollbars should be placed/sized.  Also some max_wrap_width
3700         love for LargeIcon view.  [Fixes #79533]
3701
3702 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
3703
3704         * TextControl.cs :
3705           Make set_TextAlign() do actually update the align. Fixed #78403.
3706
3707 2006-10-03  Chris Toshok  <toshok@ximian.com>
3708
3709         * DataGrid.cs: fix a crash when switching datasources if the
3710         vertical scrollbar is at someplace other than Value = 0.  Also,
3711         reduce the number of recalculation passes we do in SetDataSource
3712         from 2 to 1.
3713
3714 2006-10-03  Jackson Harper  <jackson@ximian.com>
3715
3716         * TextBoxBase.cs: Move the if value the same bail check up, we
3717         don't want to empty the document if it is already empty, this
3718         seems to severly mess up the caret.  TODO: I should probably fix
3719         the empty statement to update teh caret somehow.
3720
3721 2006-10-03  Chris Toshok  <toshok@ximian.com>
3722
3723         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
3724         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
3725         reflection, an internal row type, properties on said type, etc.)
3726         will work with our datagrid.  Fixes #79531.
3727
3728 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3729
3730         * FileDialog.cs: Don't crash if a path is not accessible
3731           (System.UnauthorizedAccessException). Fixes #79569.
3732         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
3733           a ':' too. Return unknown icon for those paths/files.
3734
3735 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
3736
3737         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
3738         GetContainerControl returns null.
3739
3740 2006-10-02  Chris Toshok  <toshok@ximian.com>
3741
3742         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
3743         call to XGetWindowAttributes instead of "handle".  fixes an X
3744         error using notifyicon after the NotifyIconWindow to Form base
3745         class switch.
3746
3747 2006-10-02  Chris Toshok  <toshok@ximian.com>
3748
3749         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
3750         server grab and looping we need to do to get down to the most
3751         deeply nested child window.
3752         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
3753         QueryPointer again after the WarpPointer so we can generate a
3754         proper (fake) MotionNotify event to be enqueued in the destination
3755         window's queue.
3756         (GetCursorPos): call QueryPointer.
3757
3758         Fixes #79556.
3759
3760 2006-10-02  Jackson Harper  <jackson@ximian.com>
3761
3762         * NotifyIcon.cs: Derive the notify icon from a form, so things
3763         like FindForm work on it.
3764         - Swallow the WM_CONTEXTMENU message, since that is generated on
3765         mouse down, and context menu is a mouse up kinda guy.  I believe
3766         the correct fix here is probably to make the notify icon entirely
3767         NC area, but this seems to work fine for anyone not manipulating
3768         WndProc.
3769
3770 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
3771
3772         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
3773           ToolStripItemCollection.cs, ToolStripLabel.cs,
3774           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
3775           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
3776           Initial implementation.
3777         * TextRenderer.cs: Provide padding to MeasureText.
3778
3779 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
3780
3781         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
3782         of ButtonBaseAccessibleObject. Fix bug #79552.
3783
3784 2006-10-02  Jackson Harper  <jackson@ximian.com>
3785
3786         * MdiWindowManager.cs: When maximizing use the containers client
3787         rect, not it's bounds, so nc area is accounted correctly.
3788         - Use the parent form's size for the menu position, since the
3789         client isn't always the full form size.
3790
3791 2006-10-01  Chris Toshok  <toshok@ximian.com>
3792
3793         * ScrollableControl.cs: make sure neither right_edge or
3794         bottom_edge are < 0, since they're used as LargeChange for the
3795         horiz/vert scrollbars respectively.  Fixes #79539.
3796
3797 2006-10-01  Chris Toshok  <toshok@ximian.com>
3798
3799         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
3800         the xplatuix11 code can cause us to destroy/recreate our handle.
3801
3802         * XplatUIX11.cs
3803         (SystrayAdd):
3804         - this code can be invoked many times for the same Hwnd.  Make
3805           sure we only destroy the client window once (the first time this
3806           method is called).  This fixes bug #79544.
3807         - Remove the call to the improperly bound XSync.  why we had two
3808           bindings to this, I will never know, but this call resulted in
3809           events being discarded from the queue(!).
3810         - correct a misunderstanding of _XEMBED_INFO - the second atom is
3811           not our current state but the state we wish to be in.  So, 0 if
3812           we don't want to be mapped.  Change it to 1.
3813         (SystrayRemove): The XEMBED spec makes mention of the fact that
3814         gtk doesn't support the reparent of client windows away from the
3815         embedder.  Looking at gtksocket-x11.c seems to agree with this.
3816         The only avenue we have for removing systray icons is to destroy
3817         them.  We don't want the handle to go away for good, though, so
3818         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
3819         #79545.
3820         
3821 2006-10-01  Chris Toshok  <toshok@ximian.com>
3822
3823         * Form.cs (WndProc): inline the native_enabled variable usage into
3824         the cases in which it's used.  Fixes #79536.
3825
3826 2006-09-29  Mike Kestner  <mkestner@novell.com>
3827
3828         * ListView.cs : toggle the selection state for ctrl clicks in 
3829         multiselect mode. [Fixes #79417]
3830
3831 2006-09-29  Mike Kestner  <mkestner@novell.com>
3832
3833         * ListView.cs : kill CanMultiSelect and refactor the selection
3834         code to support multiselection in the absence of mod keys. Steal
3835         arrow/home/end keys by overriding InternalPreProcessMessage to
3836         restore regressed keynav behavior.
3837         [Fixes #79416]
3838
3839 2006-09-29  Jackson Harper  <jackson@ximian.com>
3840
3841         * MdiClient.cs: Repaint the titlebars when the active window is
3842         changed.
3843
3844 2006-09-29  Chris Toshok  <toshok@ximian.com>
3845
3846         * Application.cs: when entering a runloop with a modal, make sure
3847         the hwnd is enabled.  Fixes #79480.
3848
3849 2006-09-29  Chris Toshok  <toshok@ximian.com>
3850
3851         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
3852         when ListManager.CanAddRows == false, bump us back one.
3853
3854         * DataGridColumnStyle.cs (ParentReadOnly): remove the
3855         listmanager.CanAddRows check.  This makes ArrayLists uneditable
3856         using a datagrid, which is not right.
3857         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
3858         is an IEditable, but call property_descriptor.SetValue regardless.
3859         fixes #79435.
3860
3861 2006-09-29  Chris Toshok  <toshok@ximian.com>
3862
3863         * DataGridBoolColumn.cs: we need to test equality in the face of
3864         possible null values (as is the case with the default NullValue).
3865         This patch keeps us from crashing in that case.
3866
3867 2006-09-29  Jackson Harper  <jackson@ximian.com>
3868
3869         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
3870         here, since it will get called for every node collection in the
3871         tree. This is now done in the treeview once the sorting is
3872         finished.
3873         * TreeView.cs: Recalculate the visible order, and update the
3874         scrollbars after sorting, set the top nope to the root so that the
3875         recalc actually works.
3876
3877 2006-09-29  Chris Toshok  <toshok@ximian.com>
3878
3879         * LinkLabel.cs: more handling of the default link collection in
3880         the face of LinkArea manipulation.  The default link collection
3881         contains 1 element (start=0,length=-1).  If the user sets LinkArea
3882         to anything and the links collection is the default, clear it.
3883         Then only add the link if its nonempty.  Fixes #79518.
3884
3885 2006-09-29  Chris Toshok  <toshok@ximian.com>
3886
3887         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
3888         piece correctly when we hit a '\n'.  Fixes #79517.
3889
3890 2006-09-29  Chris Toshok  <toshok@ximian.com>
3891
3892         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
3893         change the binding of gdk_init_check to take two IntPtr's, and
3894         pass IntPtr.Zero for both of them.  Fixes #79520.
3895
3896 2006-09-29  Mike Kestner  <mkestner@novell.com>
3897
3898         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
3899         [Fixes #78779]
3900
3901 2006-09-28  Jackson Harper  <jackson@ximian.com>
3902
3903         * XplatUIX11.cs: When translating NC messages make sure we go from
3904         whole window to screen, not client window to screen.
3905         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
3906         method doesn't exist
3907         - Skip over controls that aren't forms when arranging.
3908
3909 2006-09-28  Jackson Harper  <jackson@ximian.com>
3910
3911         * XplatUIWin32.cs: Clip the rect to the parent window.
3912         * XplatUIStructs.cs: Add clipping modes struct.
3913         * InternalWindowManager.cs: New private method that factors title
3914         bar heights in when calculating the pos of an NC mouse message.
3915         - Use SendMessage to force a paint when the form's size is changed
3916         instead of painting the decorations immediately.
3917         - Don't let the NC button click messages get to DefWndProc,
3918         because they will attempt to handle windowing themself, and this
3919         messes up z-order (it will put them in front of the scrollbars).
3920         * XplatUIX11.cs: Make sure that we don't reset window managers if
3921         we already have one (ie the window is an MDI window).
3922
3923 2006-09-28  Chris Toshok  <toshok@ximian.com>
3924
3925         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
3926         menu code really needs going over.
3927
3928 2006-09-27  Chris Toshok  <toshok@ximian.com>
3929
3930         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
3931         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
3932         window is maximizable.  So, we need to make sure that even if we
3933         clear the border/wm frame of those functions, they're still
3934         available (basically, we remove the decoration without removing
3935         the function).  Half the fix for #79338.
3936
3937 2006-09-27  Chris Toshok  <toshok@ximian.com>
3938
3939         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
3940         Fixes bug #79515.
3941
3942 2006-09-27  Chris Toshok  <toshok@ximian.com>
3943
3944         * Splitter.cs: reorder things a bit so that we don't actually
3945         draw/move the splitter until after calling OnSplitterMoving.  This
3946         lets users cancel/disallow the movement by explicitly setting
3947         event.SplitX/SplitY.  Fixes #79372.
3948
3949 2006-09-27  Jackson Harper  <jackson@ximian.com>
3950
3951         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
3952         because it is most likely on a window being destroyed, and that
3953         will give us an X11 error.
3954
3955 2006-09-27  Chris Toshok  <toshok@ximian.com>
3956
3957         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
3958         the dropdown button now toggles between showing and hiding the
3959         dropdown.  Also, get rid of dropdown_form_showing and just use
3960         dropdown_form.Visible.  We still don't do a grab, but I'll leave
3961         that part to someone who has handled Capture-fu before.
3962
3963 2006-09-27  Chris Toshok  <toshok@ximian.com>
3964
3965         * DataGrid.cs: return false if alt isn't pressed when '0' is
3966         pressed.  this keeps the '0' key from being swallowed, and fixes
3967         bug #79350.
3968
3969 2006-09-27  Chris Toshok  <toshok@ximian.com>
3970
3971         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
3972         Calling Refresh (in response to a scrollbar event) screws up the
3973         scrollbar painting.  Fixes bug #78923.
3974
3975 2006-09-27  Chris Toshok  <toshok@ximian.com>
3976
3977         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
3978         then insert into hashtable" blocks threadsafe.
3979
3980 2006-09-27  Chris Toshok  <toshok@ximian.com>
3981
3982         * MessageBox.cs (CreateParams): the styles should be |'ed with our
3983         baseclass's, since otherwise the
3984         ControlBox/MinimizeBox/MaximizeBox assignments above have no
3985         effect.  This gets the close button back in messageboxes.
3986
3987 2006-09-27  Chris Toshok  <toshok@ximian.com>
3988
3989         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
3990         flag, not just != 0.  this makes flags that are actually multiple
3991         bits (like WS_CAPTION) work.  fixes bug #79508.
3992
3993 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
3994
3995         * PageSetupDialog.cs: add support for getting and settings the 
3996         paper size, source and orientation.
3997
3998 2006-09-26  Chris Toshok  <toshok@ximian.com>
3999
4000         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
4001         and caption == "", we need to remove the resize handles as well as
4002         the title bar.
4003
4004         * Control.cs (set_Text): turns out that setting Text on a form
4005         should change the WM styles on the window, since if ControlBox ==
4006         false, the only way to get a window border is to have a non-""
4007         Text property.  check winforms/forms/text.cs for an example.  so,
4008         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
4009         update both window styles and title.  This fixes a lot of dialogs
4010         (including the preferences dialog in MonoCalendar.)
4011
4012 2006-09-26  Chris Toshok  <toshok@ximian.com>
4013
4014         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
4015         control isn't a Form), call Win32ShowWindow to hide the window,
4016         but don't update the control Visible property.  When we reparent
4017         back to a parent control, call SetVisible in order for the
4018         window's visibility to be reinstated.
4019
4020         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
4021         the FosterParent.
4022
4023         * Control.cs (ControlCollection.Remove): remove that value.Hide()
4024         call for good, since it breaks MonoCalendar (and other things I'm
4025         sure.) Also, set all_controls to null *after* the owner calls,
4026         which end up regenerating it.
4027         (ChangeParent): allow new_parent to be == null, passing
4028         IntPtr.Zero down to XplatUI.
4029
4030         this fixes #79294 the right way.
4031
4032 2006-09-26  Mike Kestner  <mkestner@novell.com>
4033
4034         * GridEntry.cs : internal SetParent method.
4035         * PropertyGrid.cs : attach to property changed on the proper
4036         target if we have a hierarchical grid with subobjects. Setup
4037         GridItem.Parent for hierarchical items.
4038         * PropertyGridView.cs : Set value on the correct target for
4039         hierarchical grids. [Fixes #78903]
4040
4041 2006-09-26  Chris Toshok  <toshok@ximian.com>
4042
4043         * Control.cs (ChildNeedsRecreating): this should return true if
4044         either we're being recreated and the child is in our list, or our
4045         parent is waiting for our recreation.
4046
4047 2006-09-26  Chris Toshok  <toshok@ximian.com>
4048
4049         * Control.cs (ControlCollection.Remove): reinstate the
4050         value.Hide() call as suggested in bug #79294.
4051
4052 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
4053
4054         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
4055         coordinates (versus a relative move).
4056
4057 2006-09-26  Chris Toshok  <toshok@ximian.com>
4058
4059         * Control.cs: rework child recreation a little bit.  It turns out
4060         that we race between the DestroyNotify the WM_DESTROY message.  If
4061         the parent gets its DestroyNotify before the child gets the
4062         WM_DESTROY message, the child ends up not recreating (since the
4063         parent finishes its recreation on DestroyNotify, and the child
4064         checks ParentIsRecreating.)
4065
4066         So, instead we store off a list of all the child controls which
4067         need to be recreated when the parent control starts to recreate
4068         itself.  Then, when child controls get their WM_DESTROY message we
4069         check to see if they're in the parent's pending recreation list,
4070         and if so, we recreate.  This removes all dependency on ordering
4071         from the code and fixes the initial MonoCalendar upgrade dialog.
4072         
4073 2006-09-26  Jackson Harper  <jackson@ximian.com>
4074
4075         * TextControl.cs: Use the Line to get the length of the line,
4076         since soft line breaks can change the end line.
4077
4078 2006-09-26  Chris Toshok  <toshok@ximian.com>
4079
4080         * Control.cs (ControlCollection.AddImplicit): don't add the
4081         control again if it's already in one of our lists.  This keeps us
4082         from adding controls over and over again for comboboxes when their
4083         handle gets recreated (as the combobox adds implicit controls in
4084         OnHandleCreated).  Fixes the X11 errors in bug #79480.
4085
4086 2006-09-26  Jackson Harper  <jackson@ximian.com>
4087
4088         * TextControl.cs: When deleting characters make sure that any
4089         orphaned zero lengthed tags get deleted.
4090         - Fix ToString for zero lengthed tags.
4091
4092 2006-09-25  Jackson Harper  <jackson@ximian.com>
4093
4094         * TextControl.cs: When getting a tag at the location there can be
4095         multiple tags at the same spot, these are 0-lengthed tags that
4096         appear when extra formatting has been stuck in a location.  We
4097         need to pull out the last of these 0 lengthed tags.
4098
4099 2006-09-25  Jackson Harper  <jackson@ximian.com>
4100
4101         * TextControl.cs: Fix print out in debug method.
4102         * TextBoxBase.cs: When text is set bail if we are setting to the
4103         previous value.
4104         
4105 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
4106
4107         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
4108           It is now possible to change the selected index in a FontXXXListBox
4109           with the up and down arrow keys from the FontXXXTextBoxes.
4110           Also, send the FontXXXTextBox mouse wheel event to the corresponding
4111           FontXXXListBoxes to match ms.
4112
4113 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
4114
4115         * SystemInformation.cs: Return a clone of the theme's MenuFont because
4116         anyone can dispose it, anytime. All other properties returns enums, 
4117         structs or basic types so they don't need such tricks.
4118
4119 2006-09-22  Jackson Harper  <jackson@ximian.com>
4120
4121         * XplatUI.cs:
4122         * XplatUIWin32.cs:
4123         * Clipboard.cs:
4124         * DataFormats.cs:
4125         * XplatUIOSX.cs:
4126         * XplatUIDriver.cs: Update interface to add a primary selection
4127         flag, so the driver can use the primary selection buffer if
4128         needed.
4129         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
4130
4131         * RichTextBox.cs: We need to supply the data object to paste now
4132         (so we can choose to supply CLIPBOARD or PRIMARY).
4133         * TextBoxBase.cs: Supply data object to paste (see above).
4134         - Middle click uses the primary selection data object.
4135         
4136 2006-09-21  Chris Toshok  <toshok@ximian.com>
4137
4138         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
4139         of SetWMStyles.  It's still a rat's nest and is largely
4140         order-dependent which I dislike immensely.  This also fixes the X
4141         button disappearing from toplevel forms.
4142
4143 2006-09-21  Mike Kestner <mkestner@novell.com>
4144
4145         * ListBox.cs: move Jordi's click/dblclick raising code to the
4146         mouse up handler.
4147
4148 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4149
4150         * ListBox.cs: Fixes 79450
4151
4152 2006-09-21  Mike Kestner <mkestner@novell.com>
4153
4154         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
4155         to deal with people updating the TreeNodeCollection after the tree
4156         is disposed.  "Fixes" 79330.
4157
4158 2006-09-20  Jackson Harper <jackson@ximian.com>
4159
4160         * TextControl.cs: Push the cursor record onto the undo stack
4161         before the delete action. This fixes 78651.
4162
4163 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
4164
4165         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
4166         CreateParams. Fixes 79329.
4167
4168 2006-09-19  Chris Toshok  <toshok@ximian.com>
4169
4170         * XplatUIX11.cs: a couple of blanket code massage passes to clean
4171         things up a bit.  First, get rid of the NetAtoms array (and the NA
4172         enum), and just embed the atoms as static fields.  Also, add a
4173         couple of functions (StyleSet and ExStyleSet) to clean up all the
4174         bitmask testing of styles.
4175
4176         * X11Structs.cs: remove the NA enum, not needed anymore.
4177         
4178 2006-09-19  Chris Toshok  <toshok@ximian.com>
4179
4180         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
4181         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
4182         added cleanup to get MessageBox titles appearing again, which were
4183         broken by my earlier fix for caption-less/ControlBox-less windows.
4184
4185 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
4186
4187         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
4188           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
4189           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
4190           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
4191           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
4192           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
4193           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
4194           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
4195           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
4196           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
4197           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
4198             Inital import.
4199         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
4200           ToolStripButton.cs: Stubs needed for above.
4201         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
4202
4203 2006-09-15  Chris Toshok  <toshok@ximian.com>
4204
4205         * XplatUIX11.cs:
4206         - make the MessageQueues hashtable Synchronized.
4207         
4208         - SendMessage: if the Hwnd is owned by a different thread, use the
4209         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
4210         thread.  Fixes bug #79201.
4211
4212 2006-09-15  Chris Toshok  <toshok@ximian.com>
4213
4214         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
4215         ControlBox == false, we disallow maximize/minimize/close.  If the
4216         form Caption is "" we also disallow move (and get rid of the Title
4217         decoration).  Unfortunately, regardless of how things are set,
4218         we're stuck with the Title and WM menu.
4219
4220 2006-09-15  Chris Toshok  <toshok@ximian.com>
4221
4222         * Application.cs: add locking around the static message_filters
4223         ArrayList, part of #79196.
4224
4225 2006-09-15  Chris Toshok  <toshok@ximian.com>
4226
4227         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
4228         Form.ControlBox == false, the window has no titlebar nor resize
4229         handles.  fixes bug #79368.
4230
4231 2006-09-15  Chris Toshok  <toshok@ximian.com>
4232
4233         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
4234         >= 0.  Fixes bug #79370.
4235
4236 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
4237         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
4238         * Control.cs:
4239             Add properties: LayoutEngine, Margin, DefaultMargin.
4240             Add method: GetPreferredSize.
4241             Move layout logic from PerformLayout to layout engines. 
4242
4243 2006-09-13  Chris Toshok  <toshok@ximian.com>
4244
4245         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
4246         fix for #79326 broke #78718, so this change addresses that.
4247
4248         - in SendWMDestroyMessages remove the call to
4249         CleanupCachedWindows, since we might be recreating the control and
4250         need to maintain the references to right Hwnd handles.  Also, set
4251         the zombie flag to true for each of the children in the hierarchy
4252         instead of calling hwnd.Dispose.  This will cause GetMessage to
4253         ignore all events for the window except for DestroyNotify.
4254
4255         - In GetMessage, ignore messages except for DestroyNotify for
4256         zombie hwnds.
4257         
4258         * Control.cs: revert the is_recreating fix from the last
4259         ChangeLog.  It's definitely "right", but it breaks switching from
4260         an MDI form to a non-MDI form.  Will need to revisit that.
4261
4262         * Hwnd.cs: add a zombie flag, which means "the
4263         client_window/whole_window handles are invalid, but we're waiting
4264         for the DestroyNotify event to come in for them".  Set the flag to
4265         false explicitly if setting WholeWindow/ClientWindow, and also
4266         when Disposing.
4267         
4268 2006-09-13  Chris Toshok  <toshok@ximian.com>
4269
4270         * XplatUIX11.cs: rework window destruction slightly.
4271
4272         - when destroying the windows associated with a control, we don't
4273         need 2 separate XDestroyWindow calls.  Just the one for the
4274         whole_window (or for client_window if whole_window is somehow
4275         IntPtr.Zero -- can this happen?) is enough.
4276
4277         - reworked SendWMDestroyMessages slightly, so we always dispose
4278         the child control hwnd's after sending the messages.
4279         
4280         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
4281         the two places it was used (one was even using hwnd.Handle and the
4282         other hwnd.client_window.  ugh), adding another call in
4283         SendWMDestroyMessages.  We need this new call because now the
4284         DestroyNotify events in the queue will be ignored for the child
4285         controls (as their hwnd's were disposed, and the window id's
4286         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
4287
4288         - this fixes bug #79326.
4289
4290 2006-09-13  Chris Toshok  <toshok@ximian.com>
4291
4292         * Control.cs: don't always set is_recreating to false at the end
4293         of RecreateHandle, since sometimes we're not done (and won't be
4294         until WndProc handles the WM_DESTROY message).  Also, set
4295         is_recreating to false in the WM_DESTROY handling code.  Part of
4296         the fix for bug #79326.
4297
4298 2006-09-13  Miguel de Icaza  <miguel@novell.com>
4299
4300         * X11DesktopColors.cs: Start the droppage of debugging messages.
4301
4302         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
4303
4304 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
4305
4306         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
4307
4308 2006-09-12  Chris Toshok  <toshok@ximian.com>
4309
4310         * DataGrid.cs (get_ListManager): if the list_manager is null, try
4311         to create it using SetDataSource.  Fixes bug #79151.
4312
4313 2006-09-11  Chris Toshok  <toshok@ximian.com>
4314
4315         * XEventQueue.cs: add a DispatchIdle property.
4316
4317         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
4318         either the queue is null, or the queue has DispatchIdle set to
4319         true.
4320         (DoEvents): set queue.DispatchIdle to false around the
4321         peek/translate/dispatch message loop in this method.  This keeps
4322         Application.Doevents from emitting idle events.  Part of the fix
4323         for #78823.
4324
4325 2006-09-11  Chris Toshok  <toshok@ximian.com>
4326
4327         * DataGrid.cs (set_DataSource): make this work for both the
4328         winforms/datagrid test and ReportBuilder.  It seems as though when
4329         we've created a ListManager (or maybe it's if we have a
4330         BindingContext?), when we set the DataSource it clears the
4331         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
4332         #79333.
4333
4334 2006-09-11  Chris Toshok  <toshok@ximian.com>
4335
4336         * XplatUIX11.cs: deal with queue being null, which happens in all
4337         the Clipboard functions.  Fixes one of the two problems mentioned
4338         in #78612.
4339
4340 2006-09-11  Chris Toshok  <toshok@ximian.com>
4341
4342         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
4343         button on various spots (including outside the menu) works closer
4344         to MS, and doesn't crash.  Fixes #79343.
4345
4346 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
4347
4348         * ListView.cs: Do not initialize item_sorter in init. To match MS,
4349         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
4350         and the internal comparer is set. When a new ListViewItemSorter is set,
4351         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
4352         was specified. No further processing is necessary if SortOrder is set
4353         to it's current value. If Sorting is modified to None, and View is
4354         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
4355         (either custom or our internal ItemComparer) to null, on 1.0 profile
4356         only set item_sorter to null if its our internal IComparer. If Sorting
4357         is modified to Ascending or Descending, then use our internal IComparer
4358         if none is set, and if the current IComparer is our internal one then:
4359         on 2.0 profile always replace it with one for new Sorting, and on 1.0
4360         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
4361         Enum.IsDefined to verify whether a valid View value is specified in
4362         its setter. Automatically sort listview items when listview is
4363         created. In Sort, do nothing if ListView is not yet created, or if
4364         no item_sorter is set (no Sorting was set, Sorting was explicitly set
4365         to None or ListViewItemSorter was set to null). Added Sort overload
4366         taking a bool to indicate whether the ListView should be redrawn when
4367         items are sorted (we use this in ListViewItemCollection to avoid double
4368         redraws). Modified our internal IComparer to take the sort order into
4369         account. In Add and AddRange methods of ListViewItemCollection, also
4370         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
4371         view), but use overload with noredraw option to avoid double redraw.
4372         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
4373         true when View is Tile, and do the same when attempting to set View to
4374         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
4375         for selected/checked indices, as it involves overhead when sorting is
4376         done while these collections are not used all that often. Instead
4377         we'll build the indices on demand. Modified IList implementation of
4378         CheckedIndexCollection to use public methods if object is int.
4379         Modified CheckedListViewItemCollection to hide checked items if
4380         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
4381         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
4382         IList implementation in SelectedIndexCollection to use public methods
4383         if object is int. Modified SelectedListViewItemCollection to hide
4384         selected items if listview is not yet created.
4385         * ListViewItem.cs: CheckedIndices list no longer needs to be
4386         maintained separately (see ListView changes). Also clone font, fixes
4387         test failure.
4388
4389 2006-09-11  Mike Kestner  <mkestner@novell.com>
4390
4391         * ComboBox.cs: if we are updating the contents of the currently
4392         selected index, refresh the control or the textbox selection.
4393         [Fixes #79066]
4394
4395 2006-09-11  Mike Kestner  <mkestner@novell.com>
4396
4397         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
4398         the 'specified' logic has been moved there.  This seems like a bug 
4399         in Control.cs, since our current SetBoundsCore completely ignores 
4400         the specified parameter.  Peter's commit seems to indicate that is 
4401         the way the MS control implementation works.  [Fixes #79325]
4402
4403 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
4404
4405         * XplatUI.cs: Set default_class_name to be composed
4406         of current domain id. This allows MWF to be loaded in multiple
4407         domains on Win32.
4408
4409 2006-09-09  Miguel de Icaza  <miguel@novell.com>
4410
4411         * X11Keyboard.cs: If we are unable to obtain the input method, do
4412         not call CreateXic to create the input context.   Should fix
4413         #78944/79276.
4414
4415 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
4416
4417         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
4418           Simplified gnome support by adding more pinvokes to get the
4419           icon for a file or mime type.
4420
4421 2006-09-08  Jackson Harper  <jackson@ximian.com>
4422
4423         * MenuAPI.cs: Deslect popup context menu items before closing the
4424         window, so that you don't see the previously selected item
4425         selected when you reopen the menu.
4426         * TextControl.cs: Update the cursor position even if we don't have
4427         focus.  This fixes typing in things like the ComboBox.  I'm not
4428         totally sure we should always set the visibility if we don't have
4429         focus, but couldn't find any corner cases where the cursor showed
4430         up when it shouldn't.
4431
4432 2006-09-08  Chris Toshok  <toshok@ximian.com>
4433
4434         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
4435         our arrays are length 256.  & 0xff before indexing.  Fixes the
4436         crash in bug #78077.
4437         
4438 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4439
4440         * ThemeWin32Classic.cs: 
4441         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
4442         is true. Handle that check box too.
4443
4444 2006-09-07  Chris Toshok  <toshok@ximian.com>
4445
4446         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
4447         79244.
4448
4449 2006-09-07  Chris Toshok  <toshok@ximian.com>
4450
4451         * Control.cs: in set_BackColor only do the work if
4452         background_color != value.
4453
4454         * XplatUIX11.cs: move the clearing of invalid areas (both client
4455         and nc) to the same block of code where we set (nc_)expose_pending
4456         to false.  That is, move it from PaintEventEnd to PaintEventStart,
4457         so things that cause invalidates from within OnPaint will trigger
4458         another call to OnPaint.  Fixes bug #79262.
4459
4460 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
4461
4462         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
4463         * FileDialog.cs: Fix typo
4464
4465 2006-09-07  Jackson Harper  <jackson@ximian.com>
4466
4467         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
4468         for tab pages if they have any.
4469
4470 2006-09-06  Mike Kestner  <mkestner@novell.com>
4471
4472         * Splitter.cs: use the "current" rect when finishing drag handle
4473         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
4474
4475 2006-09-06  Mike Kestner  <mkestner@novell.com>
4476
4477         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
4478         support offset splitters. [Fixes #79298]
4479
4480 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
4481
4482         * Mime.cs: Fixed a bug that could override the global mime type
4483           result.
4484
4485 2006-09-05  Jackson Harper  <jackson@ximian.com>
4486
4487         * TabControl.cs: Better calculation method for setting the slider
4488         pos. Prevents crashes on really wide tabs.
4489         - Draw Image on tab pages if an image list is used.
4490
4491 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4492
4493         * MonthCalendar.cs: When Font changes, the Size should be
4494         updated to fit the new font's space requirements.
4495
4496 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
4497
4498         * ListBox.cs: If the items are cleared with Items.Clear set
4499           top_index to 0.
4500
4501 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4502
4503         * MonthCalendar.cs: Handle arrow keys as input keys. Also
4504         fire DateChanged event instead of DateSelected event when
4505         the date was changed by keyboard interaction.
4506
4507 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4508
4509         * DateTimePicker.cs: Handle DateChanged for the associated
4510         month_calendar control, and set month_calendar.Font from 
4511         OnFontChanged method, as well as resize the height of the
4512         control when needed. Make PreferredHeight proportional.
4513
4514 2006-09-01  Chris Toshok  <toshok@ximian.com>
4515
4516         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
4517         properties.
4518
4519         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
4520
4521 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
4522
4523         * FileDialog.cs: Set ClientSize instead of window size, to allow space
4524           for decorations (Fixes #79219)
4525
4526 2006-09-01  Mike Kestner  <mkestner@novell.com>
4527
4528         * ComboBox.cs: first stab at sorting plus some selection handling
4529         fixes to bring us more in line with MS behavior.  Also switches back
4530         to index based selection.  Alternative patches for index-based 
4531         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
4532         and latency@gmx.de on bug 78848.  I assume they were similar to this
4533         code I've had simmering in my tree forever.
4534         [Fixes #78848]
4535
4536 2006-09-01  Chris Toshok  <toshok@ximian.com>
4537
4538         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
4539         when setting list position guard against ending up with a -1 index
4540         (the other part of the fix for #78812).  Should probably make sure
4541         we don't need the analogous fix in the ItemDeleted case.
4542
4543         * DataGrid.cs:
4544         - in SetDataSource, work around the fact that the way
4545         OnBindingContextChanged is invoked will cause us to re-enter this
4546         method.  I'll remove the hack once I investigate
4547         OnBindingContextChanged.
4548
4549         - fix the logic in set_DataSource and set_DataMember (basically
4550         what to do if the other of the two is null.)
4551         
4552         - in OnListManagerItemChanged, we need to take into account the
4553         edit row when deciding whether or not to call RecreateDataGridRows
4554         (part of the fix for #78812).
4555
4556 2006-09-01  Jackson Harper  <jackson@ximian.com>
4557
4558         * Splitter.cs: Don't do anything if there is no control to affect
4559         (prevents us from crashing in weird tet cases).
4560         * TreeView.cs: Bounding box for the mouse movement reverting
4561         focus/selection back to previously selected node.  This matches
4562         MS, and makes the tree a lot more useable.
4563         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
4564         use clipping so they are not drawn.  This fixes when the control
4565         is set to have a transparent background, or if it was over an
4566         image.
4567
4568 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
4569
4570         * MimeIcon.cs: Improved handling for reading default icons when
4571           using gnome (2.16 made it necessary). Check and read svg icons
4572           first, then 48x48 and then 32x32 icons.
4573
4574 2006-08-31  Chris Toshok  <toshok@ximian.com>
4575
4576         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
4577         visible.
4578
4579         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
4580         ProcessKeyPreview.  Fixes part of #77806.
4581
4582         * DataGrid.cs: big patch.
4583
4584         - revert the queueing up of DataSource/DataMember if inside
4585         BeginInit/EndInit calls.  That's not the way the datagrid achieves
4586         its delayed databinding.  Instead, call SetDataSource in
4587         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
4588         #78811.
4589
4590         - Also, it wasn't mentioned in #78811, but the test case exhibits
4591         behavior that was lacking in our datagrid implementation - Columns
4592         that have mapping names that don't exist in the datasource's
4593         properties aren't shown.  Yuck.  To fix this I added the bound
4594         field to the column style, and basically any calculation to figure
4595         out anything about columns uses a loop to find the bound columns.
4596         still need to investigate if I can cache an array of the bound
4597         columns or if the indices must be the same.
4598
4599         - When setting CurrentCell, we no longer abort if the cell being
4600         edited was in the add row.  This fixes the other part of #77806.
4601
4602         - The new code also fixes #78807.
4603         
4604         * ThemeWin32Classic.cs: perpetrate the same disgusting
4605         column.bound field hack, and only render bound fields.
4606
4607 2006-08-31  Chris Toshok  <toshok@ximian.com>
4608
4609         * DataGridColumnStyle.cs: add bound field.  this field is true if
4610         the datasource has a property corresponding to the mapping name.
4611
4612         * DataGridTableStyle.cs: set the bound field on the column styles
4613         depending on whether or not we have a column for that property.
4614
4615 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
4616
4617         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
4618           splitter control (fixes #79228)
4619
4620 2006-08-31  Chris Toshok  <toshok@ximian.com>
4621
4622         * DataGridColumnStyle.cs: we need to delay the assignment of
4623         property descriptor until the last possible moment due to the lazy
4624         databinding stuff in the datagrid.  Also, fix the exceptions
4625         thrown by CheckValidDataSource to match MS.
4626
4627 2006-08-31  Jackson Harper  <jackson@ximian.com>
4628
4629         * Form.cs: When activated select the active control, if there is
4630         no active control, we select the first control.
4631         * XplatUIX11.cs: If there is no focus control when we get a
4632         FocusIn event, find the toplevel form and activate it.  This
4633         occurs when you popup a window, it becomes the focus window, then
4634         you close that window, giving focus back to the main window.
4635
4636 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4637
4638         * MonthCalendar.cs: 
4639         * ThemeWin32Classic.cs: Cache Font in bold style, as well
4640         as StringFormat with Center alignments in MonthCalendar,
4641         instead of creating new ones when drawing the control. 
4642         Also, draw the month name in bold style.
4643
4644 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4645
4646         * Control.cs:
4647           - PerformLayout(): It would seem MS performs the fill even if the 
4648             control is not visible (part of #79218 fix)
4649           - ResetBackColor(): Use the setter to reset the color, to allow
4650             overriders to catch the change.
4651         * Form.cs:
4652           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
4653           - CreateHandle(): dito (part of $79218 fix)
4654           - Don't set an icon if we have a dialog
4655         * ScrollableControl.cs:
4656           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
4657           - ScrollIntoView(): No need to scroll if control is already visible
4658             (resolves fixme and fixes #79218)
4659
4660 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4661
4662         * MonthCalendar.cs: Change proportions in SingleMonthSize
4663         to match the aspect of the original control.
4664
4665 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
4666
4667         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
4668           get updated when they get maximized.
4669
4670 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
4671
4672         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
4673
4674 2006-08-29  Chris Toshok  <toshok@ximian.com>
4675
4676         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
4677
4678 2006-08-29  Jackson Harper  <jackson@ximian.com>
4679
4680         * TreeView.cs: Need to track selected node and highlighted node,
4681         they aren't always the same thing, when the mouse is down on a
4682         node it is hilighted, but not selected yet.
4683         - Do the HideSelection stuff right
4684         - Need to focus on rbutton mouse down. And redraw selection when
4685         right click is mouse upped.
4686
4687 2006-08-29  Mike Kestner  <mkestner@novell.com>
4688
4689         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
4690         when SubItems.Count < Columns.Count.  [Fixes #79167]
4691
4692 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
4693
4694         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
4695
4696 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
4697
4698         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
4699           from X. Only send based on ConfigureNotify if we don't have the
4700           correct location in hwnd (if the window manager moved us)
4701
4702 2006-08-28  Mike Kestner  <mkestner@novell.com>
4703
4704         * ListView.cs: remove a TODO. 
4705         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
4706         [Fixes ListView part of #79166]
4707
4708 2006-08-28  Mike Kestner  <mkestner@novell.com>
4709
4710         * ListView.cs: move wheel handler to parent since it is focused
4711         instead of the item_control now.  [Fixes #79177]
4712
4713 2006-08-28  Mike Kestner  <mkestner@novell.com>
4714
4715         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
4716         when the control is focused. [Fixes #79171]
4717
4718 2006-08-28  Mike Kestner  <mkestner@novell.com>
4719
4720         * ListView.cs: size the item and header controls for empty and
4721         unscrollable views.
4722         * ThemeWin32Classic.cs: draw disabled backgrounds.
4723         [Fixes #79187]
4724
4725 2006-08-28  Chris Toshok  <toshok@ximian.com>
4726
4727         * Form.cs: remove unused "active_form" static field.
4728
4729         * Hwnd.cs: lock around accesses to static windows collection.
4730
4731         * Application.cs: lock threads in Exit ().
4732
4733 2006-08-28  Chris Toshok  <toshok@ximian.com>
4734
4735         * NativeWindow.cs: lock around accesses to window_collection.
4736         
4737 2006-08-28  Chris Toshok  <toshok@ximian.com>
4738
4739         * Control.cs: err, fix this the right way, by locking on controls
4740         when using it.  not by making it synchronized.
4741
4742 2006-08-28  Chris Toshok  <toshok@ximian.com>
4743
4744         * Control.cs: make the static "controls" field synchronized, as it
4745         gets updated from multiple threads.
4746
4747 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4748
4749         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
4750           Prevent other threads from exiting when calling thread sets quit state.
4751         * XEventQueue.cs: Added PostQuitState property
4752
4753 2006-08-27  Chris Toshok  <toshok@ximian.com>
4754
4755         * AsyncMethodData.cs: add a slot for the window handle.
4756
4757         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
4758         window (the destination control's window, not the foster window).
4759
4760         * Control.cs (BeginInvokeInternal): store the window's handle in
4761         the AsyncMethodData.
4762         
4763
4764 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4765
4766         * XplatUIX11.cs:
4767           - PostQuitMessage: Removed resetting S.D display handle, we might have
4768             another loop started after calling PostQuitMessage (Fixes #79119)
4769           - Created destructor to reset S.D handle
4770
4771 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
4772
4773         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
4774
4775 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4776
4777         * TextControl.cs (Insert): Update the caret position even if we don't
4778           have a handle yet, just don't call the driver in that case.
4779         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
4780           to the end of the new selection text (Fixes #79184)
4781
4782 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4783
4784         * Form.cs (Activate): Only activate if the handle is created)
4785         * Control.c:
4786           - Mark window as invisible when it's disposed
4787           - Check if window handle is created when setting window visible, 
4788             instead of relying just on the is_created variable
4789           - Check if object is disposed when creating the control (Fixes #79155)
4790
4791 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4792
4793         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
4794           when allowing layout again. Otherwise we re-generate the anchoring 
4795           distance to the border again and actually alter what the user wanted
4796           This is ugly, it'd be better if we used DisplayRectangle instead of
4797           ClientRectangle for Control.UpdateDistances, but that causes us to
4798           have other problems (initial anchoring positons would be wrong)
4799           (Fixes #78835)
4800
4801 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4802
4803         * Control.cs:
4804           - The size and location setters shouldn't go directly to 
4805             SetBoundsCore, but to SetBounds, which triggers layout on the
4806             parent, then calls SetBoundsCore. (Related to fix for #78835)
4807           - SetBounds: Moved actual location update code into this function
4808             from SetBoundsCore, to match MS. Added call to PerformLayout if
4809             we have a parent (to trigger resizing of anchored parents if the 
4810             child size has changed (see testcase for #78835) 
4811         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
4812           new control code
4813         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
4814
4815 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4816
4817         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
4818           System.Drawing when a toplevel window gets closed; there might
4819           be other toplevel windows belonging to the same app (Fixes #78052)
4820
4821 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
4822
4823         * FileDialog.cs: After reading FileDialog settings from mwf_config
4824           use Desktop prefix only if a real folder doesn't exist anymore.
4825         * FontDialog.cs: Added char sets.
4826           It is now possible to select the font, size or style with the
4827           textboxes.
4828
4829 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
4830
4831         * PrintPreviewDialog.cs: Use assembly name constants.
4832
4833 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4834
4835         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
4836           scrollbar from whacking it's buttons)
4837
4838 2006-08-24  Chris Toshok  <toshok@ximian.com>
4839
4840         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
4841         in this patch (aggregating setting Left/Top/Width/Height to
4842         setting Bounds on the scrollbars), but the crux of the fix is in
4843         Recalculate, where we scroll by the remaining scroll_position if
4844         we're hiding a scrollbar.  The 2*$5 reward in the comment is
4845         serious.
4846
4847 2006-08-24  Jackson Harper  <jackson@ximian.com>
4848
4849         * MdiClient.cs:
4850         * MdiWindowManager.cs: If the form is made a non-mdi window we
4851         need to remove the form closed event so that closing forms works
4852         correctly.
4853
4854 2006-08-24  Jackson Harper  <jackson@ximian.com>
4855
4856         * Control.cs: Make IsRecreating internal so that the driver can
4857         check it
4858         - Temporarily remove the Hide when controls are removed, its
4859         making a whole bunch of things not work because visibility isn't
4860         getting reset elsewhere correctly
4861         * Form.cs: Need to do a full handle recreation when the mdi parent
4862         is set.
4863         * XplatUIX11.cs: If we are recreating handles don't dispose the
4864         HWNDs.  What was happening is the handles were being recreated in
4865         SendWMDestroyMessages, but then flow continued on in that method
4866         and destroyed the new handles.
4867
4868 2006-08-23  Jackson Harper  <jackson@ximian.com>
4869
4870         * Form.cs: MdiClient is always at the back of the bus
4871         * Control.cs: When the order of items in the collection is changed
4872         we need to reset the all_controls array
4873         - do the same sorta setup thats done when adding a control when a
4874         control is set on the collection.
4875
4876 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4877
4878         * TextBoxBase.cs (get_Text): Return an empty array if our document
4879           is empty (fixes #79052)
4880
4881 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4882
4883         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
4884           on WM_SYSCHAR messages (fixes #79053)
4885
4886 2006-08-23  Chris Toshok  <toshok@ximian.com>
4887
4888         * DataGrid.cs: fix flickering when scrolling vertically.
4889
4890 2006-08-23  Chris Toshok  <toshok@ximian.com>
4891
4892         * DataGrid.cs (EndEdit): only invalidate the row header when we
4893         need to.
4894
4895 2006-08-23  Chris Toshok  <toshok@ximian.com>
4896
4897         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
4898         methods.  fixes the flicker when scrolling around.
4899
4900 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4901
4902         * FileDialog.cs: Making sure the control is created before we get a 
4903           chance to use it with BeginInvoke (Fixes #79096)
4904
4905 2006-08-23  Chris Toshok  <toshok@ximian.com>
4906
4907         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
4908         width to use when painting the rows.
4909
4910 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4911
4912         * TextBoxBase.cs:
4913           - Throw ArgumentException if a negative value is passed to SelectionLength
4914           - Update the selection end if start is moved. end needs to be always
4915             after start. (Fixes #79095)
4916           - Track selection length; MS keeps the selection length even if start
4917             is changed; reset on all other operations affection selection
4918
4919 2006-08-22  Jackson Harper  <jackson@ximian.com>
4920
4921         * TreeView.cs: Make sure both scrollbars get displayed and sized
4922         correctly when the other bar is visible.
4923         - Use the original clip rectangle for checking if the area between
4924         the two scrollbars is visible, not the viewport adjusted clipping
4925         rectangle.
4926
4927 2006-08-22  Jackson Harper  <jackson@ximian.com>
4928
4929         * Binding.cs: We don't use IsBinding because it requires the
4930         control to be created, which really shouldn't be necessary just to
4931         set a property on the control.
4932
4933 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4934
4935         * ComboBox.cs: Some CB.ObjectCollection methods must throw
4936         ArgumentNullReferenceException when the argument is null.
4937
4938 2006-08-21  Jackson Harper  <jackson@ximian.com>
4939
4940         * Timer.cs: Track the thread that the timer is started in (NOT
4941         CREATED), this way messages for it will only be triggered on its
4942         queue.
4943         * XEventQueue.cs: Track the timers here, this makes timers per
4944         thread, like MS.
4945         * XplatUIX11.cs: The timers are moved to the XEventQueue.
4946
4947 2006-08-19  Chris Toshok  <toshok@ximian.com>
4948
4949         * XplatUIX11.cs: after further communication with pdb, we get the
4950         best of both worlds.  SetZOrder working for un-Mapped windows, and
4951         no X errors for un-mapped windows.
4952
4953 2006-08-19  Chris Toshok  <toshok@ximian.com>
4954
4955         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
4956         as it was causing pdn toolbars to not have the correct stacking.
4957
4958 2006-08-18  Mike Kestner  <mkestner@novell.com> 
4959
4960         * ListView.cs : guard against negative ClientArea.Width in scrollbar
4961         calculation.  Not sure why control should ever be setting a negative
4962         width though.  Fixes #78931.
4963
4964 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4965
4966         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
4967         null items in ObjectCollection class.
4968         * ListBox.cs.: Likewise.
4969
4970 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
4971
4972         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
4973           as the base method in ThemeWin32Classic should work fine.
4974           Fixed bug #78607.
4975
4976 2006-08-18  Jackson Harper  <jackson@ximian.com>
4977
4978         * Binding.cs: When validating if the value entered doesn't convert
4979         properly reset to the old value.
4980         * RadioButton.cs: Don't fire click when we get focus.
4981
4982 2006-08-18  Jackson Harper  <jackson@ximian.com>
4983
4984         * FileDialog.cs: Paint the selection on the directory combobox the
4985         same way as on MS. 
4986
4987 2006-08-17  Jackson Harper  <jackson@ximian.com>
4988
4989         * ErrorProvider.cs: Don't allow the error control to be selected.
4990         * Control.cs: Don't send the SetFocus messages, the control
4991         activation will do this, and if we do it blindly here validation
4992         does not work.
4993
4994 2006-08-17  Jackson Harper  <jackson@ximian.com>
4995
4996         * Control.cs:
4997         * ContainerControl.cs: Make validation events fire in the correct
4998         order.  TODO: For some reason the first validation event is not
4999         getting fired.
5000
5001 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5002
5003         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
5004
5005 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5006
5007         * ComboBox.cs : implement scroll wheel support for popped-down
5008         state. Fixes #78945. 
5009
5010 2006-08-17  Jackson Harper  <jackson@ximian.com>
5011
5012         * TreeView.cs: Specify treeview actions (old patch that didn't get
5013         committed for some reason).
5014         - Don't let the mouse wheel scroll us too far.  Just want to make
5015         the bottom node visible, not scroll it all the ways to the top.
5016
5017 2006-08-17  Jackson Harper  <jackson@ximian.com>
5018
5019         * XplatUIX11.cs: Mouse wheel events go to the focused window.
5020
5021 2006-08-17  Mike Kestner  <mkestner@novell.com> 
5022
5023         * ComboBox.cs : don't do mouseover selection in simple mode.
5024
5025 2006-08-16  Jackson Harper  <jackson@ximian.com>
5026
5027         * Form.cs: Fire the closing events for all the mdi child windows
5028         when a window is closed.  If the cancel args are set to true, the
5029         main window still gets the event fired, but it doesn't not close.
5030         * MdiWindowManager.cs: Do this closing cleanup in a Closed
5031         handler, instead of when the button is clicked, so cancelling the
5032         close works correctly.
5033         * ComboBox.cs: Send the mouse down to the scrollbar.
5034
5035 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5036
5037         * ListBox.cs: When passing 'null' to SelectedItem,
5038         set SelectedIndex to -1, to unselect items. This is the
5039         observed behaviour in .Net.
5040
5041 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
5042
5043         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
5044           MS flags saying there won't be any. (fixes #78800)
5045         * Control.cs (HandleClick): Made virtual
5046
5047 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5048
5049         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
5050           cultures. Fixed bug #78399.
5051
5052 2006-08-16  Jackson Harper  <jackson@ximian.com>
5053
5054         * Form.cs: Use the MdiClients MdiChildren property to access
5055         MdiChildren instead of creating the array from the child controls.
5056         * MdiClient.cs: Maintain a separate array of the mdi children, so
5057         that insertion order is maintained when the Z-order is changed.
5058
5059 2006-08-16  Mike Kestner  <mkestner@novell.com> 
5060
5061         * ListView.cs : add an ItemComparer and default to it for sorting.
5062         Fixes #79076, but sorting needs a complete overhaul to be compat with
5063         MS.
5064
5065 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5066
5067         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
5068
5069 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5070
5071         * Hwnd.cs (Mapped): Properly traverse the tree
5072
5073 2006-08-15  Chris Toshok  <toshok@ximian.com>
5074
5075         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
5076         pass manager.Current.GetType() to ParseData.  It has to be the
5077         property type.  So, hold off doing the ParseData until we're in
5078         SetPropertyValue where we know the type.  This fixes the crash in
5079         #78821 but the textbox is still empty.
5080
5081 2006-08-15  Chris Toshok  <toshok@ximian.com>
5082
5083         * DataGrid.cs:
5084         - when we're scrolling, only call Edit() again if the
5085         current cell is still unobscured. Fixes bug #78927.
5086         - when handling mousedown on a cell, ensure the cell is visible
5087         before calling Edit.
5088         - remove the properties from DataGridRow, and remove the
5089         DataGridParentRow class altogether.
5090         
5091
5092 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5093
5094         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
5095           fire OnTextChanged by ourselves. There's no point calling base,
5096           we don't set the base value anywhere else. Fixes #78773.
5097
5098 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5099
5100         * ListBox.cs: Call CollectionChanged when modifying
5101         an item from Items indexer, to update the actual items
5102         in the list box.
5103
5104 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5105
5106         * PrintDialog.cs: Small fixes for focus and a pair of checks,
5107         to match .Net behaviour.
5108
5109 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5110
5111         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
5112
5113 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
5114
5115         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
5116
5117 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5118
5119         * MessageBox.cs: Prevent potential NRE exception.
5120         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
5121
5122 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5123
5124         * MessageBox.cs: Calculate the owner of a messagebox, also make
5125           it topmost. Fixes #78753
5126
5127 2006-08-14  Chris Toshok  <toshok@ximian.com>
5128
5129         * XplatUIX11.cs: A couple of fixes so that metacity will let us
5130         programmatically move windows.  first, set the PPosition hint as
5131         well as the USPosition hint.  Second include some code from pdb
5132         that sets the window type to NORMAL when we set the transient for
5133         hint.  This is because, in the absence of a window type, metacity
5134         thinks any window with TransientFor set is a dialog, and refuses
5135         to let us move it programmatically.  fascists.
5136
5137 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5138
5139         * XplatUIX11.cs: When setting normal hints, take into consideration
5140           an different hints previously set so we don't delete them (fixes #78866)
5141
5142 2006-08-12  Chris Toshok  <toshok@ximian.com>
5143
5144         * ToolBarButton.cs: make Layout return a boolean, if something to
5145         do with the button's layout changed.
5146
5147         * ToolBar.cs:
5148         - add another parameter to Redraw, @force, which all existing
5149           calls set to true.
5150         - make the Layout function return a boolean which is true if the
5151           layout has actually changed.  Redraw now uses this (and @force)
5152           to determine when to invalidate.  At present the only place
5153           where @force can be false is the call from OnResize, when
5154           background_image == null.  So, resizing a toolbar when the
5155           layout doesn't change results in no drawing.
5156
5157 2006-08-12  Chris Toshok  <toshok@ximian.com>
5158
5159         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
5160         the VScrollBar and HScrollbar reversed.  oops.
5161
5162         * DataGrid.cs: fix the logic that assigns sizes to the implicit
5163         scrollbars.  we were assigning them twice (once in
5164         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
5165         therefore causing two scrollbar resizes (and redraws?) to happen
5166         per grid resize.
5167
5168 2006-08-12  Chris Toshok  <toshok@ximian.com>
5169
5170         * ToolBarButton.cs: redraw the entire button if the theme tells us
5171         to.
5172
5173         * Theme.cs: add ToolBarInvalidateEntireButton.
5174
5175         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
5176         buttons, just the border.
5177
5178         * ThemeNice.cs: redraw the entire toolbar button since we need to
5179         draw the highlight image.
5180
5181         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
5182         we need to redraw the entire button (not just the border).
5183
5184 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5185
5186         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
5187           for vertical bars. Fixes the mismatches shown by #78513
5188
5189 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
5190
5191         * FileDialog.cs: If a saved/remembered path doesn't exist
5192           anymore, fall back to "Desktop".
5193
5194 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5195
5196         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
5197           parent. It's apparently legal to not have one
5198         * XplatUIX11.cs:
5199           - SetZOrder: Don't try to set Z-Order on an unmapped window
5200           - CreateWindow: 0,0 are legal coordinates for a window. don't move
5201             it unless the coordinates are negative
5202
5203 2006-08-10  Mike Kestner  <mkestner@novell.com>
5204
5205         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
5206         when setting to null per msdn docs.  Fixes #78854.
5207
5208 2006-08-10  Chris Toshok  <toshok@ximian.com>
5209
5210         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
5211         flickering by setting a clip rectangle on the Graphics when we
5212         need to redraw just a particular menuitem.  Also, rename "OnClick"
5213         to "OnMouseDown" to reflect what it actually is.
5214         
5215         * Form.cs: track the OnMouseDown change.
5216
5217 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
5218
5219         * CommonDialog.cs: Properly inherit the CreateParams from the form
5220           and only change what we need. Fixes #78865
5221
5222 2006-08-10  Chris Toshok  <toshok@ximian.com>
5223
5224         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
5225         flickering in flat mode (and most of the flickering in general) by
5226         only invalidating the button border (and not the entire rectangle)
5227         when the state changes.  A couple of cases still flicker:
5228         ToggleButtons, and the dropdown arrow case when the user mouse
5229         ups.
5230
5231 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
5232
5233         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
5234           for german keyboards. Numlock state shouldn't affect the behaviour
5235           of the Del key. Fixes bug #78291.
5236
5237 2006-08-10  Chris Toshok  <toshok@ximian.com>
5238
5239         * ListControl.cs: remove the items.Clear line from BindDataItems,
5240         as this is the first thing done by both subclasses in their
5241         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
5242         passed -1, refresh the list.  This gets databinding working when
5243         the datasource is set on the list before the datasource is
5244         populated (as in wf-apps/ReportBuilder.)
5245
5246         * ComboBox.cs: remove the argument to BindDataItems.  This call
5247         should really go away, and be initiated by the ListControl code.
5248
5249         * ListBox.cs: same.
5250
5251 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5252
5253         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
5254           if no data is in the document when the control is displayed
5255
5256 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
5257
5258         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
5259           yes (fixes #78806)
5260         * TextControl.cs: 
5261           - PositionCaret: Allow positioning of caret but don't call methods 
5262             requiring a handle if the window isn't created yet
5263           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
5264           - owner_HandleCreated: Don't position the caret, just update it's 
5265             location. User might have already set a different position
5266
5267 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5268
5269         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
5270           windows. Screws up the returned coordinates for child windows. 
5271           Fixes #78825. I'm hoping this doesn't break something, since the
5272           code was explicitly put in 8 months ago, but no bug was attached.
5273           Menus still seem to work properly.
5274
5275 2006-08-08  Chris Toshok  <toshok@ximian.com>
5276
5277         * DataGrid.cs: make BeginInit/EndInit actually do what they're
5278         supposed to do - delay data binding until the EndInit call.  Also,
5279         make the table style collection's CollectionChangeAction.Refresh
5280         work properly.
5281
5282         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
5283         (with action = Refresh) when a consituent table's MappingName is
5284         changed.
5285
5286 2006-08-08  Chris Toshok  <toshok@ximian.com>
5287
5288         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
5289         Invalidate, since changing the text can change the size of the all
5290         toolbar buttons.
5291
5292 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5293
5294         * Form.cs (AddOwnedForm): Still need to add the form to our listif
5295           we don't have it yet
5296
5297 2006-08-08  Chris Toshok  <toshok@ximian.com>
5298
5299         * PrintControllerWithStatusDialog.cs: don't .Close() the status
5300         dialog, as this causes X errors later on, since we actually
5301         destroy the window.  Instead, .Hide() it.
5302
5303 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5304
5305         * ComboBox.cs: Added focus reflection for popup window
5306         * XplatUIX11.cs: 
5307           - Removed transient setting for non-app windows for now, not sure it
5308             was needed
5309           - Fixed logic checking if we have captions when deciding 
5310             override_redirect, WS_CAPTION is two bits and a 0 check was not
5311             sufficient
5312           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
5313             complicated
5314         * Form.cs: 
5315           - AddOwnedForm: Don't just add the form to the list, call the property
5316             to ensure the driver is informed about the ownership as well
5317           - CreateHandle: Set the TopMost status in the driver if we have an owner
5318         * XplatUI.cs: Fixed debug statement
5319
5320 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
5321         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5322           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
5323           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
5324           TrackBarRenderer.cs: Make constructor private.
5325         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
5326         * ProfessionalColorTable.cs: Make properties virtual.
5327
5328 2006-08-06  Duncan Mak  <duncan@novell.com>
5329
5330         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
5331         is not changing.
5332
5333 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5334         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5335           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
5336           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
5337           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
5338           Initial import of new 2.0 classes.
5339
5340 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5341         * Application.cs: Add 2.0 VisualStyles properties.
5342
5343 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5344         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
5345           XplatUIX11.cs: Create property to allow access to existing private
5346           variable "themes_enabled"
5347
5348 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5349
5350         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
5351         file size, as otherwise our class libraries fail using windows. Fixes
5352         bug #78759.
5353
5354 2006-08-04  Jackson Harper  <jackson@ximian.com>
5355
5356         * Form.cs:
5357         * XplatUIX11.cs: Move the toolwindow window manager creation into
5358         the X11 driver, this way on win32 we can let windows create/handle
5359         the toolwindows.
5360
5361 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5362
5363         * PrintDialog.cs: Remove some redundant checks, add some others,
5364         clean some code, and move the focus to the text boxes when the
5365         values are incorrect.
5366
5367 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
5368
5369         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
5370
5371 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5372
5373         * NumericUpDown.cs: Setting the Minimum and Maximum is now
5374           handled correctly. Fixes bug #79001.
5375
5376 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5377
5378         * PrintDialog.cs: The "Copies" numeric up down must have
5379         set the Minimum property to 1; only if the value is bigger
5380         than 1, activate "Collate" check box. This is the behaviour of .Net.
5381         Also modify the Document elements only if it is not null.
5382
5383 2006-08-03  Jackson Harper  <jackson@ximian.com>
5384
5385         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
5386         length. (We have a larger array then actual node count).
5387                 
5388 2006-08-03  Jackson Harper  <jackson@ximian.com>
5389
5390         * ComboBox.cs: Don't show selection by default.
5391         - The SelectAll isn't needed here, since the focus code should do
5392         that
5393         - DDL style lists to manual selection drawing, so when they
5394         get/lose focus they have to invalidate.
5395
5396 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
5397
5398         * TextBoxBase.cs: Don't always show all selections by default.
5399
5400 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
5401         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
5402           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
5403           Fixed various typos.
5404
5405 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5406
5407         * Control.cs: Removing the controls in a ControlCollection with
5408           Clear now hides the controls as expected. Fixes bug #78804. 
5409
5410 2006-08-03  Jackson Harper  <jackson@ximian.com>
5411
5412         * Control.cs: Revert previous focus patch, it breaks reflector.
5413
5414 2006-08-03  Jackson Harper  <jackson@ximian.com>
5415
5416         * ComboBox.cs: Cleanup selection and focus with the combobox.
5417         This also eliminates some duplicated keyboard code, since now
5418         everything is handled by the main class.
5419         - Make list selection work on mouse up instead of down, to match
5420         MS.
5421
5422 2006-08-02  Jackson Harper  <jackson@ximian.com>
5423
5424         * Control.cs: Setting focus needs to go through the whole
5425         selection mechanism.
5426
5427 2006-08-02  Chris Toshok  <toshok@ximian.com>
5428
5429         * PrintPreviewDialog.cs: change MinimumSize to use
5430         base.MinimumSize so it works.
5431
5432 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
5433
5434         * TextControl.cs:
5435           - UpdateCaret: Added sanity check in case caret isn't defined yet
5436           - Line.Delete: Now updating selection and caret markers if we're
5437             transfering a node (Properly fixes #78323)
5438           - SetSelectionEnd: Added sanity check
5439         * TextBoxBase.cs: Removed broken attempt to fix #78323
5440
5441 2006-08-01  Chris Toshok  <toshok@ximian.com>
5442
5443         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
5444         Close() call is handled in Form, not here.
5445
5446 2006-08-01  Chris Toshok  <toshok@ximian.com>
5447
5448         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
5449         layout/rendering.
5450
5451         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
5452         for sizes < 100% zoom.  The code now aggressively attempts to keep
5453         from calling document.Print (), and tries not to use the scaling
5454         g.DrawImage whenever possible (it still does if you scale to >
5455         100%, since usually that involves huge images).
5456
5457         * PrintPreviewControl.cs: hook up the close button.
5458
5459 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
5460         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
5461           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
5462           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
5463           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
5464           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
5465           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
5466           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
5467           Removed [Serializable] for 2.0 Event Handlers.
5468
5469 2006-07-31  Jackson Harper  <jackson@ximian.com>
5470
5471         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
5472         * TextControl.cs: Uncomment out the body of this method.
5473
5474 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
5475
5476         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
5477           standard cursors.
5478
5479 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5480
5481         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
5482           that embed TextBox and need selections visible even if textbox is not
5483           focused to enforce that behaviour.
5484         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
5485           selection drawing
5486
5487 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5488
5489         * TextControl.cs:
5490           - Added new SetSelectionStart/SetSelectionEnd overloads
5491           - Fixed viewport width assignment to be accurate
5492           - Adjusted alignment line shift calculations to allow cursor on right
5493             aligned lines to be always visible at the right border (like MS)
5494         * TextBoxBase.cs:
5495           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
5496           - TextBoxBase_SizeChanged: recalculating canvas on size changes
5497           - CalculateScrollBars: Use ViewPort size instead of window size, to
5498             properly consider space occupied by the border and scrollbars 
5499             (Fixes #78661)
5500           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
5501             calculations; no longer leaves artifacts
5502           - CaretMoved: Adjusted window scrolling to match MS and fixed several
5503             calculation bugs (Still missing right/center align calculations)
5504
5505 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
5506
5507         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
5508           use of both scroll rect and clip rect, as they do the same.
5509
5510 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5511
5512         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
5513           in the event handler (fixes #78912)
5514
5515 2006-07-31  Chris Toshok  <toshok@ximian.com>
5516
5517         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
5518         grid.ListManager.Count, since grid.ListManager might be null.
5519         This of course begs the question "why are we drawing rows for a
5520         grid with no list manager (and therefor no rows)?"  Fixes the
5521         crash in bug #78929.
5522
5523 2006-07-31  Chris Toshok  <toshok@ximian.com>
5524
5525         * RelatedPropertyManager.cs: Don't always chain up to the parent
5526         ctor.  instead, call SetDataSource if the parent's position is !=
5527         -1.  Fixes the crash in #78822.
5528
5529 2006-07-31  Chris Toshok  <toshok@ximian.com>
5530
5531         * DataGrid.cs (get_ListManager): use field instead of property
5532         accessors for datasource and datamember.
5533         (RowsCount): make internal again.
5534         (OnMouseDown): end edits before resizing columns/rows.
5535         (OnMouseUp): restart edits after resizing columns/rows.
5536
5537 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
5538
5539         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
5540           This fixes the situation where the last set cursor is displayed
5541           whenever the mouse is over scrollbars.
5542
5543 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5544
5545         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
5546         Document properties, as well as initial values.
5547
5548 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
5549
5550         * XplatUIWin32.cs (SetBorderStyle): Setting both border
5551           and ClientEdge results in a 3-pixel border, which is
5552           wrong.
5553
5554 2006-07-28  Jackson Harper  <jackson@ximian.com>
5555
5556         * TreeNodeCollection.cs: Fix the clear method.
5557         - Fix the Shrink also
5558
5559 2006-07-27  Jackson Harper  <jackson@ximian.com>
5560
5561         * TreeView.cs: Make sure the visible order is computed when we
5562         attempt to size the scrollbars (for trees that mess with the
5563         scrolling when they shouldn't.
5564         - Make sure to give the scrollbars valid values.
5565
5566 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5567
5568         * XplatUIX11.cs: Move motion compression code to where it
5569           has less performance impact
5570
5571 2006-07-26  Jackson Harper  <jackson@ximian.com>
5572
5573         * UpDownBase.cs: When the control is selected make the child
5574         controls non selectable, so that a click on them won't do a
5575         focus/unfocus cycle.
5576         - Don't give focus to the text box when the spinner is selected.
5577         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
5578
5579 2006-07-26  Chris Toshok  <toshok@ximian.com>
5580
5581         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
5582         satisfied with this solution.  If the bitmaps are small, we should
5583         just cache them in the PrintPreviewDialog and draw them here.
5584         Also, the layout is broken for the 2-up and 3-up cases.
5585
5586         * Theme.cs: add PrintPReviewControlPaint.
5587
5588         * PrintPreviewDialog.cs: first pass implementation.
5589
5590         * PrintPreviewControl.cs: first pass implementation.  No
5591         scrollbars yet.
5592
5593         * PrintDialog.cs: only validate fields if that particular portion
5594         of the UI is enabled.  Also, set the document's controller to a
5595         PrintControllerWithStatusDialog wrapping the document's print
5596         controller.
5597
5598         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
5599         bring up a SaveFileDialog (i hope we don't want to match the
5600         behavior of the crappy windows file entry) and set the
5601         PrinterSettings.PrintFileName accordingly.
5602
5603 2006-07-26  Jackson Harper  <jackson@ximian.com>
5604
5605         * ContainerControl.cs: Add a field that disables auto selecting
5606         the next control in a container when the container is activated.
5607         * UpDownBase.cs: Don't select the text box when the up down is
5608         selected.
5609
5610 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5611
5612         * XEventQueue.cs: Added methods for peeking (used for compression
5613           of successive events)
5614         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
5615           mouse move events (fixes #78732)
5616
5617 2006-07-25  Jackson Harper  <jackson@ximian.com>
5618
5619         * UpDownBase.cs: Use an internal class for the textbox so that we
5620         can control focus.  the updown control should always have focus,
5621         if either the text area or the buttons are clicked.
5622         - Send the key messages to the textbox, since it never actually
5623         has focus
5624         - Activate and decativate the textbox caret.
5625
5626 2006-07-24  Jackson Harper  <jackson@ximian.com>
5627
5628         * Control.cs: Use the directed select when selecting a control,
5629         this way the container controls override will get called and the
5630         whole ActiveControl chain will get triggered.  TODO: probably need
5631         to make sure this gets done everywhere instead of the old
5632         Select(Control).
5633         * ContainerControl.cs: Implement the directed Select method to
5634         find and activate the correct child control.    
5635         
5636 2006-07-22  Mike Kestner  <mkestner@novell.com>
5637
5638         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
5639         menu handling code so that clicks without a grab work too.
5640         [Fixes #78914]
5641
5642 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
5643
5644         * FileDialog.cs: Enable the BackButton when dirstack has one element.
5645           Added some small optimizations.
5646
5647 2006-07-21  Matt Hargett  <matt@use.net>
5648
5649         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
5650
5651 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
5652
5653         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
5654           tests pass and match MS in some strange border cases.
5655
5656 2006-07-21  Chris Toshok  <toshok@ximian.com>
5657
5658         * ThemeWin32Classic.cs: handle drawing of the relation links and
5659         parent row buttons.
5660
5661         * Theme.cs: change args to DataGridPaintParentRow.
5662
5663         * DataGrid.cs: Don't use controls for the relation links and
5664         parent buttons, so we have to handle all their interactions in
5665         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
5666         when we're navigating through child tables, so we can reinstate
5667         selection, expanded state, current cell, etc.
5668
5669 2006-07-20  Chris Toshok  <toshok@ximian.com>
5670
5671         * ToolBar.cs: When we redraw a button, for whatever reason,
5672         there's no reason to redraw the entire toolbar.  Also, don't call
5673         Control.Refresh from within Redraw, as it's much heavier than
5674         Invalidate (which is really what we want).
5675
5676 2006-07-20  Chris Toshok  <toshok@ximian.com>
5677
5678         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
5679         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
5680         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
5681         traces from within a debug IBindingList datasource
5682         (in mono/winforms/datagrid) for *days*, I've finally gotten things
5683         to work in a similar fashion.
5684
5685 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5686
5687         * ListBox.cs: Don't call Sort () when setting 
5688         the Sorted property to false (avoid an unnecessary sort).
5689
5690 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5691
5692         * ListControl.cs: DataSource should throw an ArgumentException
5693         instead of a normal exception when the argument is not of the 
5694         correct type.
5695
5696 2006-07-20  Mike Kestner  <mkestner@novell.com>
5697
5698         * Control.cs: add InternalPreProcessMessage to allow us to steal
5699         key events before MWF gets its paws on them.  Adapted from a
5700         suggestion by eno.
5701         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
5702         up/down/left/right navigation. Override the new internal control
5703         method to steal the events since they never make it to WndProc.
5704         * ToolBarButton.cs: don't worry about pushed when setting hilight
5705         since the drawing code prefers pushed to hilight. Invalidate on 
5706         Hilight changes. Fixes #78547 and #78525.
5707
5708 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5709
5710         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
5711           the canvas size. Fixes #78868
5712
5713 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
5714
5715         * Splitter.cs: Track requested split position until first layout
5716           is performed. Fixes #78871
5717
5718 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5719
5720         * Application.cs: Removed code that forces 1.x for the version
5721           number if the version started with 0. Not sure why that code was
5722           there and I couldn't find any bugs that indicated we needed it.
5723           Fixes #78869
5724
5725 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
5726
5727         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
5728           ResetDefaults(), just write some output to the console until it's
5729           implemented. Fixes bug #78907 for now. Eliminated two warnings.
5730
5731 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
5732
5733         * PropertyGridView.cs: set StartPosition of drop down forms
5734         so they appear in correct initial spot.  Fixes #78190.
5735
5736 2006-07-19  Mike Kestner  <mkestner@novell.com>
5737
5738         * ThemeWin32Classic.cs: use parent background color when drawing
5739         flat toolbars.  Restructure the conditionals to make sure non-flat
5740         non-Divider toolbars are filled too.  Fixes #78837.
5741
5742 2006-07-19  Mike Kestner  <mkestner@novell.com>
5743
5744         * ListBox.cs: Sort on collection changes even if the handle
5745         isn't created yet.  Fixes #78813.
5746
5747 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5748
5749         * ListControl.cs: DisplayMember should never be null,
5750         and now we assign String.Empty when null is passed to it (this
5751         is the .Net way).
5752
5753 2006-07-17  Mike Kestner  <mkestner@novell.com>
5754
5755         * ListViewItem.cs: restructure Font and subitem Font handling 
5756         to hold a specific font and refer back to owner on null.
5757         Fixes #78761.
5758
5759 2006-07-17  Mike Kestner  <mkestner@novell.com>
5760
5761         * ToolBar.cs: bandaid for side-effect of previous patch which was
5762         discarding explicit heights for non-AutoSize toolbars.  Need to
5763         extend my format tester to deal with AutoSize=false. Fixes #78864.
5764
5765 2006-07-15  Jackson Harper  <jackson@ximian.com>
5766
5767         * LabelEditTextBox.cs:
5768         * TreeView.cs: Use a new LabelEdit class for node editing, this
5769         class automatically 'closes' itself when it gets the enter key or
5770         loses focus.
5771         - Use the client rectangle when setting the trees scrollbars, so
5772         border style is taken into account.
5773         
5774 2006-07-14  Jackson Harper  <jackson@ximian.com>
5775
5776         * TreeNode.cs:
5777         * TreeView.cs: Make the editing work similar to MSs, firing the
5778         events correctly and ending edits correctly.
5779
5780 2006-07-14  Mike Kestner  <mkestner@novell.com>
5781
5782         * ToolBarButton.cs:
5783         * ToolBar.cs: layout restructuring and redraw enhancements to support
5784         formatting changes gracefully, like setting TextAlign, ImageList, 
5785         ButtonSize, and Appearance.  Handles explicit button sizing quirks
5786         of the MS controls.  Things like flat toolbars ignoring button size
5787         but becoming constant sized at the largest button's size.  Normal
5788         toolbars with an image set cannot be shrunk smaller than the image,
5789         but text can be clipped/ignored.
5790         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
5791         is zero.  Seems like DrawString should be smart enough to not put
5792         anything on screen though. Also trim labels and ellipsize at the char
5793         boundary, not word.
5794         Fixes #78711 and #78483.
5795
5796 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5797
5798         * FolderBrowserDialog.cs: Disable "New Folder" button and
5799           "New Folder" contextmenu menuitem if a folder like "My Computer"
5800           is selected.
5801
5802 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5803
5804         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
5805         * FolderBrowserDialog.cs:
5806           - Use MWFConfig to store and read size and position settings
5807           - Added code to create a new folder (button or context menu).
5808             Use TreeView labeledit to change the name of the new folder.
5809
5810 2006-07-14  Jackson Harper  <jackson@ximian.com>
5811
5812         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
5813         when the tree is scrolled we end editing.
5814
5815 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5816
5817         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
5818           Down arrows
5819
5820 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
5821
5822         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
5823         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
5824         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
5825         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
5826         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
5827         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
5828         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
5829         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
5830         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
5831         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
5832         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
5833         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
5834         ListViewItemSelectionChangedEventHandler.cs,
5835         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
5836         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
5837         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
5838         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
5839         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
5840         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
5841         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
5842         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
5843         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
5844         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
5845         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
5846         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
5847         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
5848         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
5849         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
5850         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
5851         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
5852         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
5853         WebBrowserNavigatingEventHandler.cs, 
5854         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
5855
5856 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
5857
5858         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
5859         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
5860         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
5861         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
5862         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
5863         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
5864         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
5865         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
5866         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
5867         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
5868         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
5869         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
5870         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
5871         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
5872         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
5873         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
5874         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
5875         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
5876         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
5877         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
5878         ListViewItemStates.cs, MaskFormat.cs: Added
5879
5880 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
5881
5882         * PropertyGridView.cs: Fix keyboard navigation of drop down.
5883         Patch from eno for bug 78558.
5884         
5885 2006-07-13  Jackson Harper  <jackson@ximian.com>
5886
5887         * TreeView.cs: When an edit is finished make sure that the
5888         selected node is visible.
5889         - When setting the top/bottom use the scrollbars is_visible, so
5890         everything will be set correctly even if the tree isn't visible
5891         yet.
5892
5893 2006-07-13  Jackson Harper  <jackson@ximian.com>
5894
5895         * ComboBox.cs: Revert the item->index part of my previous patch.
5896         * TreeView.cs: Use LostFocus instead of Leave for detecting when
5897         the edit box has lost focus (duh).
5898         - Just make the edit box not visible when we get return, that will
5899         take the focus, which will call EndEdit
5900         * TreeNode.cs When we start editing, notify the treeview.
5901
5902 2006-07-12  Jackson Harper  <jackson@ximian.com>
5903
5904         * ComboBox.cs: Clear out old items before setting the item list.
5905         This prevents databound controls from having their items added
5906         twice.
5907         - Switch the combobox to use indices whereever possible instead of
5908         using Item's.  This allows usto navigate through lists that have
5909         more then one item with the same string value (ie a, b, b, a).
5910         - Scroll the listboxes scrollbar when a non visible item is
5911         highlighted
5912         - Allow keypress to cycle through all the possible values. For
5913         example if you have b1, b2, b3 and hold down the B key all the
5914         values will be cycled through.
5915         
5916 2006-07-12  Jackson Harper  <jackson@ximian.com>
5917
5918         * TextBoxBase.cs:
5919         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
5920         this using the internal methods.
5921         * Control.cs: Add OnGotFocusInternal.  A new method that allows
5922         controls to "override" OnGotFocus and change focus behavior if
5923         needed.
5924         - Same thing for LostFocus
5925         * ComboBox.cs: Pass off focus to the text control properly.
5926
5927 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
5928
5929         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
5930         * FolderBrowserDialog.cs: Almost a complete rewrite.
5931           - Better support for Environment.Specialfolders
5932           - Added support for MWFVFS
5933           - Made setting SelectedPath work
5934
5935 2006-07-12  Jackson Harper  <jackson@ximian.com>
5936
5937         * Control.cs: Optimze getting all the controls.
5938
5939 2006-07-11  Jackson Harper  <jackson@ximian.com>
5940
5941         * ContainerControl.cs: Override SETFOCUS in the container control,
5942         so that it is not selected on mouse click.
5943
5944 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
5945
5946         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
5947           Hopefully we will have a better way once all of focus is complete.
5948
5949 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
5950
5951         * ThemeWin32Classic.cs: Commented out some debug code and fixed
5952           a compile error with csc.
5953
5954 2006-07-11  Jackson Harper  <jackson@ximian.com>
5955
5956         * Control.cs: When hiding a control only select the next control
5957         if the current control was focused.
5958         - Don't handle enter/leave when setting/killing focus, this is
5959         done by the container control.
5960         - Remove is_selected, it's not needed anymore.
5961         - Add utility methods for selecting a child control, and for
5962         firing the Enter/Leave events.
5963         * ContainerControl.cs: When a control is activated fire the
5964         enter/leave events.
5965         - Don't wrap when processing the tab key, so that focus can be
5966         moved outside of the container.
5967         - Use the correct active control
5968
5969 2006-07-11  Jackson Harper  <jackson@ximian.com>
5970
5971         * ComboBox.cs: Remove some debug code that was blinding me.
5972         * UpDownBase.cs: These controls actually aren't implicit, they are
5973         visible to the user.
5974
5975 2006-07-10  Chris Toshok  <toshok@ximian.com>
5976
5977         * DataGrid.cs: move back to the is_adding boolean field.  god i
5978         hate this is_editing/is_adding/is_changing stuff.
5979
5980 2006-07-10  Chris Toshok  <toshok@ximian.com>
5981
5982         * DataGridTableStyle.cs: just check if the property type is bool.
5983         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
5984         Don't use CanRenderType.
5985
5986         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
5987         if our text == NullText.  Remove CanRenderType.
5988
5989         * DataGridBoolColumn.cs: nuke CanRenderType.
5990
5991         * DataGrid.cs: reenable some code to end the current edit inside
5992         of set_CurrentCell.  This fixes the other 1.1.16 regression.
5993         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
5994         Also, remove the visible_row_count arg from CalcRowHeaders, since
5995         we don't need to worry about the actual height of the area.
5996
5997 2006-07-10  Chris Toshok  <toshok@ximian.com>
5998
5999         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
6000         mode, just return.
6001
6002         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
6003         the real sense of the IsInEditOrNavigateMode property (true =
6004         navigate, false = edit).  Also, update OnKeyPress to reflect this.
6005
6006         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
6007         column style exists, we still need to set its property descriptor
6008         to match up with our list manager.
6009
6010 2006-07-10  Chris Toshok  <toshok@ximian.com>
6011
6012         * ThemeWin32Classic.cs: implement the new row/header painting
6013         approach.  The parent row painting will likely go away and
6014         replaced with label controls, but the rest seems to work ok (and
6015         efficiently).
6016
6017         * Theme.cs: change the way we draw datagrid rows.  we don't draw
6018         the row headers as a block now.  Instead we draw them in the
6019         normal draw-row loop.  Add some calls for drawing parent rows and
6020         relation rows.
6021
6022         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
6023         a default table style.  Set the defaults from ThemeEngine.Current,
6024         not SystemColors.  Fix lots of misc issues with property setters.
6025
6026         * DataGrid.cs: move loads of style information out of this class
6027         as it's being duplicated with DataGridTableStyle.  keep track of a
6028         special DataGridTableStyle for the properties we used to mirror
6029         here.  Switch all the style properties to access this table style
6030         instead of instance fields of this class.  Also add a internal
6031         class to represent parent rows (more needs to be stored here, like
6032         the selection state from the parent table, as well as the
6033         expansion state.)  Also, for datasources with relations, do the
6034         right thing for collapse/expand, and add support for the
6035         navigation/parent row buttons.
6036
6037         Lastly, fix the crash in the 1.1.16 build.
6038
6039         * GridTableStylesCollection.cs: make the explicit interface
6040         implementations call the class's methods as opposed to duplicating
6041         them.
6042
6043         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
6044         0 so the text doesn't jump around when we move the cursor.
6045
6046 2006-07-10  Jackson Harper  <jackson@ximian.com>
6047
6048         * TextBoxBase.cs:
6049         * ListBox.cs: Match MS's ToString (this makes debugging focus
6050         stuff infinitely easier).
6051
6052 2006-07-10  Jackson Harper  <jackson@ximian.com>
6053
6054         * Control.cs (SelectNextControl): When checking the control's
6055         parent use this instead of ctrl.parent so that null can be passed
6056         to SelectNextControl. (I have unit tests for this).
6057         - Remove unused var.
6058
6059 2006-07-10  Chris Toshok  <toshok@ximian.com>
6060
6061         * CurrencyManager.cs: correct one regression, the removal of the
6062         finalType field.  Also, add a MonoTODO on CanAddRows, implement
6063         Refresh() correctly, and fix some event emission in
6064         ListChangedHandler.
6065
6066 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6067
6068         * FileDialog.cs: Don't use brackets for new folders if they exist
6069           under *nix. Instead use -(number of existing folders +1).
6070
6071 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
6072
6073         * FileDialog.cs:
6074           - Fixed really nasty bug #78771
6075           - Don't block the whole GUI when reading directories with a lot of
6076             entries. Use an other thread instead and call BeginInvoke to
6077             update the ListView in MWFFileView
6078
6079 2006-07-07  Chris Toshok  <toshok@ximian.com>
6080
6081         * Control.cs (Dispose): release any Capture when disposing.
6082
6083 2006-07-07  Chris Toshok  <toshok@ximian.com>
6084
6085         * LinkLabel.cs (Select): if we chain up to the parent, set
6086         focused_index to -1 so we'll search for the first available link
6087         the next time the user tabs into us.  Also, if the direction is
6088         backward and focused_index == -1, start the search from the last
6089         element.
6090
6091 2006-07-07  Chris Toshok  <toshok@ximian.com>
6092
6093         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
6094         is beyond the end of the text, don't do anything.
6095         (CreateLinkPieces): set our ControlStyles.Selectable based on
6096         whether or not we have any links.
6097         (Link.Invalidate): use a loop instead of foreach.
6098         (Link.set_Start): null out owner.sorted_links so it'll be
6099         recreated by CreateLinkPieces.
6100
6101 2006-07-06  Chris Toshok  <toshok@ximian.com>
6102
6103         * LinkLabel.cs: revert the SetStyle change.
6104
6105 2006-07-06  Chris Toshok  <toshok@ximian.com>
6106
6107         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
6108         (OnEnableChanged): s/Refresh/Invalidate
6109         (OnGotFocus): if we have a focused index already, refocus it (so
6110         if we mouse out/in to the window it'll focus the right link).
6111         (OnKeyDown): move the tab handling out of here.
6112         (OnLostFocus): don't set focused_index to -1, so we can refocus it
6113         when we lose focus.
6114         (OnMouseDown): don't Capture here - Control handles it.  Also,
6115         focus the active link.
6116         (OnMouseUp): don't deal with Capture.
6117         (OnPaintBackgroundInternal): remove.
6118         (OnTextAlignChanged): CreateLinkPieces before calling the
6119         superclass's method.
6120         (OnTextChanged): call CreateLinkPieces before calling superclass's
6121         method.
6122         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
6123         move around.
6124         (Select): implement this, moving the selection between different
6125         links, and call parent.SelectNextControl if we don't have another
6126         link to focus in the given direction.
6127         (CreateLinkPieces): call Invalidate instead of Refresh.
6128         
6129 2006-07-06  Chris Toshok  <toshok@ximian.com>
6130
6131         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
6132         new LinkLabel internals.
6133
6134         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
6135         over pieces looking for active/focused/etc links.  also, deal with
6136         runs of text (and links) with embedded \n's in them, and use
6137         MeasureCharacterRanges instead of MeasureString to figure out the
6138         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
6139         two-step.
6140
6141 2006-07-04  Jackson Harper  <jackson@ximian.com>
6142
6143         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
6144         XKB or key auto repeat, do it manually.  Without key auto repeat,
6145         when a key is held down we get key press, key release, key press,
6146         key release, ... with auto repeat we get key press, key press, key
6147         press ..., and then a release when the key is actually released.
6148
6149 2006-07-03  Jackson Harper  <jackson@ximian.com>
6150
6151         * TabControl.cs:
6152         * ThemeWin32Classic.cs: Tabs do not obey normal background color
6153         rules, they are always control color regardless of the background
6154         color.
6155
6156 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
6157
6158         * FileDialog.cs: Added internal class MWFConfig.
6159           Removed Registry support and replaced it with support for the new
6160           MWFConfig class. See MWFConfig comments for more information.
6161
6162 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
6163
6164         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
6165           rectangle. Added some patches from eno from bug #78490 and fixed
6166           the arrow position for small up and down CPDrawScrollButtons.
6167
6168 2006-06-30  Jackson Harper  <jackson@ximian.com>
6169
6170         * InternalWindowManager.cs: Remove some debug code.
6171         * Form.cs: When an MdiParent is set to null, the window is
6172         "detatched" and becomes a normal window.
6173         * MdiClient.cs: Don't bring the new child form to the front until
6174         it is activated (setting it as active does this), this makes the
6175         previously active forms titlebar get redrawn as inactive.
6176
6177 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
6178
6179         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
6180           with later controls
6181
6182 2006-06-29  Mike Kestner  <mkestner@novell.com>
6183
6184         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
6185         arrow in keynav state.  Fixes #78682.
6186
6187 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6188
6189         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
6190           order (fixes #78393)
6191
6192 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
6193
6194         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
6195           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
6196           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
6197           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
6198           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
6199           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
6200           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
6201           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
6202           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
6203           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
6204           enumerations (FlagsAttribute, SerializableAttribute, added/removed
6205           values)
6206
6207 2006-06-28  Mike Kestner  <mkestner@novell.com>
6208
6209         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
6210
6211 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6212
6213         * PropertyGrid.cs,
6214           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
6215           item lines from other area (It also makes BackColor consistent and
6216           compatible with .NET). Fixed bug #78564.
6217
6218 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
6219
6220         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
6221         Patch from Eno for #78555.
6222
6223 2006-06-27  Chris Toshok  <toshok@ximian.com>
6224
6225         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
6226
6227         * DataGridColumnStyle.cs: same.
6228
6229         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
6230         
6231         * DataGridDrawingLogic.cs: nuke.
6232
6233 2006-06-27  Chris Toshok  <toshok@ximian.com>
6234
6235         * DataGridTableStyle.cs: clean up the constructors, and build the
6236         list of child relations for this table.  I have no idea if this is
6237         where we should be doing it (it probably isn't), but since we're
6238         already iterating over the properties..
6239
6240         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
6241         struct and array for keeping track of row information, similar to
6242         what's shown in a hack on
6243         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
6244
6245         * Theme.cs: be consistent about the naming of DataGrid methods,
6246         prefering ColumnWidths and RowHeights over columnsWidths and
6247         RowsHeights.
6248
6249         * ThemeWin32Classic.cs: same, and also add support for variable
6250         sized rows (and the +/- expansion icons for related rows).
6251
6252 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6253
6254         * TextBoxBase.cs: Applied Eno's patch from #78660
6255
6256 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6257
6258         * Form.cs (ScaleCore): We don't want to scale our form if it's
6259           state is minimized or maximized, but we still need to scale our
6260           child windows. Also, added try/finally block to ensure layout
6261           gets reset (Fixes #78697)
6262
6263 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6264
6265         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
6266
6267 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6268
6269         * Form.cs: Fixed c+p error and added check to resize form if minimum
6270           size is bigger than current size (Fixes #78709)
6271
6272 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
6273
6274         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
6275
6276 2006-06-26  Mike Kestner  <mkestner@novell.com>
6277
6278         * ComboBox.cs: only do Keypress handling in the combo when there  
6279         are items in the collection. Fixes #78710.
6280
6281 2006-06-26  Chris Toshok  <toshok@ximian.com>
6282
6283         * Binding.cs: make this work bi-directionally.  also, clear up
6284         other mixups between Push/Pull Data (e.g. we're supposed to pull
6285         data when validating).
6286
6287         * BindingManagerBase.cs: trim some fully qualified collection
6288         types.
6289
6290         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
6291
6292 2006-06-23  Chris Toshok  <toshok@ximian.com>
6293
6294         * PropertyManager.cs: It appears (according to the unit tests)
6295         that PropertyManager doesn't use
6296         PropertyDescriptor.AddValueChanged to track propery value changes
6297         in its datasource, but uses the same scheme as Binding, where it
6298         looks for a <Property>Changed event and binds to it.
6299
6300         Also, according to the docs, IsSuspended always returns false for
6301         a property manager with a non-null datasource.
6302
6303 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
6304
6305         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
6306           need to update the actual DialogResult. (Fixes #78613)
6307
6308 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
6309
6310         * Form.cs (ShowDialog): Release any captures before running the
6311           new message pump (fixes #78680)
6312
6313 2006-06-22  Mike Kestner  <mkestner@novell.com>
6314
6315         * ListView.cs: Layout column widths properly in details mode even 
6316         if HeaderStyle.None is set.  Fixes #78691.
6317
6318 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
6319
6320         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
6321
6322 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
6323
6324         * Control.cs (ContainsFocus): Using new driver method to get focused
6325           window, instead of trying to use internal tracking var, which can
6326           recursion issues (Fixes #78685)
6327         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
6328           XplatUIWin32.cs: Added GetFocus method to return focused window
6329
6330 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6331
6332         * ColorDialog.cs: when the mouse button is pressed inside the color
6333         matrix, don't let the cursor move out of it until the button is
6334         released, which is the behavior on windows. Changed 'colours' by
6335         'colors' to use the same word consistently.
6336
6337 2006-06-21  Chris Toshok  <toshok@ximian.com>
6338
6339         * DataGrid.cs: add in some basic navigation stuff (navigating to a
6340         child relation and back, using a stack).  Also, remove
6341         GetDataSource and the code that calls it - it's not needed.  Also,
6342         track CurrencyManager.ListName's removal.
6343
6344 2006-06-21  Chris Toshok  <toshok@ximian.com>
6345
6346         * CurrencyManager.cs: push some of the original type checking from
6347         BindingContext.CreateBindingManager to here, and remove some of
6348         the finalType stuff.  Need more tests to make sure I've got the
6349         ListName part right, and we might need more in SetDataSource.
6350
6351         * PropertyManager.cs: add a ctor that takes just the datasource,
6352         and no property name.  Make SetDataSource work with a null
6353         property_name, and make Current return the data_source if the
6354         property descriptor is null.  this makes 'string foo = "hi";
6355         BindingContext[foo].Current' return "hi" as it should.
6356
6357         * RelatedCurrencyManager.cs: make this code more generic - there's
6358         no reason the parent manager has to be CurrencyManager, and
6359         there's no reason to pass the DataRelation.  It suffices to use a
6360         BindingManagerBase and PropetyDescriptor.
6361
6362         * RelatedPropertyManager.cs: make a similar change here.
6363         
6364         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
6365         flower I knew it could be.
6366
6367 2006-06-20  Chris Toshok  <toshok@ximian.com>
6368
6369         * PropertyManager.cs: the PropertyChangedHandler is invoked when
6370         data in the source has changed and we need to update the control,
6371         so s/PullData/PushData.
6372
6373         * CurrencyManager.cs: Refresh is meant to update the control from
6374         data in the datasource.  So, s/PullData/PushData.
6375
6376         * BindingContext.cs: add more ugliness (we weren't handling the
6377         case where data_source = DataTable and data_member = column_name).
6378
6379         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
6380         from the perspective of the datasource.  PullData pulls from the
6381         control, PushData pushes to the control.
6382
6383 2006-06-20  Chris Toshok  <toshok@ximian.com>
6384
6385         * BindingContext.cs: rewrite the CreateBindingManager code to
6386         handle navigation paths more or less properly.  This could
6387         definitely stand some more work, in particular to push the
6388         recursion up to the toplevel.  But that relies on fixes in other
6389         places (System.Data comes to mind).
6390
6391         Also, move to a flat hashtable (and encode the twolevel nature of
6392         the dictionary into the hash key).  This lets us implement the
6393         IEnumerable.GetEnumerator method.
6394
6395         * RelatedCurrencyManager.cs: new class.  Update our view based on
6396         our relation and our parent CurrencyManager's position.
6397
6398         * CurrencyManager.cs: split out some logic from the ctor into
6399         SetView, so it can be called from the new RelatedCurrencyManager
6400         subclass.
6401
6402         * RelatedPropertyManager.cs: new class.  Update our datasource
6403         based on the position of our parent CurrencyManager.
6404
6405         * PropertyManager.cs: split out some logic from the ctor into
6406         SetDataSource, so it can be called from the new RelatedDataSource
6407         subclass.  Also, make the Current getter return the value
6408         of the PropertyDescriptor, not the data_source.
6409
6410         * Binding.cs: no need to duplicate the string splitting code here.
6411
6412 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6413
6414         * Control.cs:
6415           - set_Enabled: OnEnabledChanged is not called if the inherited state 
6416             of the control is not altered, even though  we might be changing the
6417             internal state of the control (#78458)
6418           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
6419             OnEnabledChanged, to allow easy altering of any child window state
6420           - OnEnabledChanged: Added code to enable/disable driver window state
6421           - OnParentEnabledChanged: Instead of firing the event, call 
6422             OnEnabledChanged, which will fire the event and also a) set driver
6423             window state and pass the enabled state to any grandchildren (#78458)
6424
6425 2006-06-19  Jackson Harper  <jackson@ximian.com>
6426
6427         * InternalWindowManager.cs: We don't set the cursor explicitly
6428         thats done via the response to NCHITTESTs.
6429         - Don't need to adjust for titlebar heights anymore, the
6430         coordinates are coming in the correct coordinates now (see peters
6431         last patch).
6432
6433
6434 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6435
6436         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
6437           being translated relative to whole window, instead of client window.
6438           That caused broken offsets on mouseclick (and caused gas for our
6439           InternalWindowManager)
6440
6441 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6442
6443         * TextControl.cs:
6444           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
6445           - Undo(): Added replay of cursor move on DeleteChars action; added
6446             calling Undo() again if a recorded cursor move is invalid (to
6447             ensure that some action is performed on Undo)
6448         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
6449
6450 2006-06-16  Jackson Harper  <jackson@ximian.com>
6451
6452         * MdiClient.cs: Instead of just sizing maximized windows when
6453         there is a resize we also have to adjust the Y of minimized
6454         windows, so they stay pinned to the bottom of the mdi container.
6455         - Eliminate separate tracking of the active control, we can just
6456         get this from the controls collection.
6457         - Paint the decorations for the newly activated titlebar so we get
6458         a pretty blue bar.
6459         * InternalWindowManager.cs:
6460         * ThemeWin32Classic.cs: Minimized windows get all three buttons
6461         even if they are a tool window.
6462         
6463 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6464
6465         * TextControl.cs (Undo): Handle non-existent cursor locations in the
6466           undo buffer, these can happen when text was deleted and the cursor
6467           was recorded first. Since we will also have a recorded cursor
6468           after the delete this is not an issue. (Fixes #78651)
6469
6470 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
6471
6472         * AccessibleObject.cs: Remove dependence on Control.is_selected;
6473           instead properly track control states internally (allows us to
6474           remove is_selected from Control)
6475
6476 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6477
6478         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
6479         whose width is not a multiple of 8.
6480
6481 2006-06-13  Jackson Harper  <jackson@ximian.com>
6482
6483         * MdiClient.cs:  Only maximize the next child if the current one
6484         is maximized.
6485
6486 2006-06-13  Chris Toshok  <toshok@ximian.com>
6487
6488         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
6489         modified.  Also, guard against grid or grid_drawing being null in
6490         Invalidate.
6491
6492         * DataGrid.cs: Reformat tons of getters/setters.  In the
6493         DataMember setter, just call SetNewDataSource instead of
6494         duplicating some of its functionality.  In SetNewDataSource, don't
6495         check ListManager for null, since the property getter creates the
6496         object if needed.
6497
6498         * DataGridTableStyle.cs: don't set TableStyle or call
6499         SetDataGridInternal on the column here, it's done in
6500         GridColumnStylesCollection.Add.
6501
6502         * GridColumnStylesCollection.cs: fix all the explicit interface
6503         implementations to just call our methods.  Nuke AddInternal() and
6504         move the body of it to Add().  Also, add a call to
6505         column.SetDataGridInternal to Add().
6506
6507         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
6508         base()+duplicate code.  Also, use the Format property instead of
6509         format to generate an Invalidate ala MS.  Lastly, create the
6510         textbox here, unconditionally.
6511         (set_Format): call Invalidate.
6512         (get_TextBox): no need to call EnsureTextBox.
6513         (Commit): remove the message box.
6514         (Edit) remove the call to EnsureTextBox.
6515         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
6516         (EnterNullValue): no need to check textbox for null.
6517         (HideEditBox): no need to check textbox for null.
6518         (SetDataGridInColumn): add the textbox to the grid's controls.
6519         (EnsureTextBox): nuke.
6520         
6521 2006-06-13  Jackson Harper  <jackson@ximian.com>
6522
6523         * MdiWindowManager.cs: Hook up to the maximized menus paint event
6524         and redraw the buttons when needed. Unhook when the window is
6525         unmaximized.
6526         * MainMenu.cs: Add an internal Paint event, the mdi window manager
6527         needs this so that it can redraw its buttons when the menu is
6528         repainted.
6529         * InternalWindowManager.cs:
6530         * Form.cs: The method order has changed for DrawMaximizedButtons,
6531         so that it can be a PaintEventHandler.
6532         
6533 2006-06-13  Jackson Harper  <jackson@ximian.com>
6534
6535         * MdiClient.cs: When we close a maximized mdi window, the next mdi
6536         window is activated and maximized, even if it wasn't before.
6537         - When  a new window is activated repaint the decorations of the
6538         old one, so that it no longer has the Active "look" (the blue
6539         titlebar).
6540         * InternalWindowManager.cs: Open up CreateButtons to base classes
6541         so they can recreate the buttons on state changes.
6542         - If a window is maximized give it all three buttons
6543         * MdiWindowManager.cs: Create the titlebar buttons when the state
6544         is changed, this is needed because a toolwindow will not have all
6545         three buttons until it is maximized.
6546
6547 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
6548
6549         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
6550           Fixed bug #78609.
6551
6552 2006-06-12  Jackson Harper  <jackson@ximian.com>
6553
6554         * KeysConverter.cs: Make sure we handle the Ctrl special case
6555         if its the only key.
6556         
6557 2006-06-12  Jackson Harper  <jackson@ximian.com>
6558
6559         * Theme.cs: Add a method to get the size of a managed window
6560         toolbar button.
6561         * InternalWindowManager.cs: Remove the ButtonSize property, this
6562         should be retrieved from the theme.
6563         * MdiWindowManager.cs: Get the button size from the theme
6564         * ThemeWin32Classic.cs: Make the method to get the managed window
6565         titlebar button size public.
6566         - Handle the different button sizes of maximized toolwindows
6567         (should match any maximized window).
6568         - Get the titlebar height from the theme, not the WM (which gets
6569         it from the theme).
6570
6571 2006-06-12  Jackson Harper  <jackson@ximian.com>
6572
6573         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
6574         event down to the mdi window manager.
6575         - Expose some extra stuff to base classes
6576         - Make sure to end the Capture on an NC Mouse up, so that we can
6577         get double clicks properly, and the sizing doens't stick.
6578         - When doing PointToClient contain it in the workable desktop
6579         area, this prevents windows from changing size when the cursor is
6580         pulled outside of the working area while sizing.
6581         * MdiWindowManager.cs: When we get a double click maximize the
6582         window.
6583         - Reset the cursor after handling mode changes.
6584
6585 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
6586
6587         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
6588           current desktop, instead of just assuming a 0, 0 origin. This
6589           is needed for our internal window manager, to know the top
6590           margin of the desktop
6591
6592 2006-06-12  Chris Toshok  <toshok@ximian.com>
6593
6594         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
6595         we need this to get rid of the selected background in the bool
6596         column.
6597         (CancelEditing): move the ConcedeFocus call to above the Abort
6598         call.  Also, set is_changing to false and invalidate the row
6599         header if we were changing before.
6600         (ProcessKeyPreviewInternal): remove, since noone outside this
6601         class calls it anymore.  Roll the code into ProcessKeyPreview.
6602         (EndEdit): remove the internal version.
6603         (InvalidateCurrentRowHeader): make private.
6604
6605         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
6606         Keys.Escape handling (and with it the last call to
6607         DataGrid.EndEdit from outside the class.)
6608
6609
6610 2006-06-12  Chris Toshok  <toshok@ximian.com>
6611
6612         * DataGridTextBox.cs (.ctor): isedit defaults to false.
6613         (OnKeyPress): set isedit to true.
6614         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
6615         already handled by the grid.
6616
6617         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
6618         right.  ugh.
6619         (set_DataSource): SetDataSource always returns true, so stop
6620         putting it in an if statement.
6621         (EndEdit): get rid of some {}'s
6622         (ProcessGridKey): return true in case Keys.Escape.
6623         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
6624         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
6625         PositionChanged, stopped connecting to CurrentChanged.
6626         (GetDataSource): simplify this a bunch.
6627         (SetDataSource): change return type from bool to void.
6628         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
6629         to this, and make sure we don't set ListManager.Position inside
6630         set_CurrentCell.
6631         (OnListManagerItemChanged): if we're passed an actual index,
6632         redraw that row.
6633
6634         * CurrencyManager.cs (set_Position): don't call PullData here.
6635
6636 2006-06-09  Jackson Harper  <jackson@ximian.com>
6637
6638         * TreeNode.cs:  Recalculate the visible order before doing the
6639         Expand/Collapse Below calls, because those calls generate an
6640         expose.
6641         - Reduce calls to the TreeView property, which is mildly expensive
6642         by using a local var.
6643         * Form.cs: Layout the MDI child windows when creating the parent
6644         form.
6645         - Don't use the internal constructor anymore
6646         * MdiClient.cs: use the parent form width/height (if available)
6647         when laying out the child windows, we do this because the
6648         mdiclient isn't docked yet when the initial layout is done.
6649         - Don't need an internal constructor anymore.
6650
6651 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6652
6653         * FileDialog.cs: handle access errors when trying to create a folder
6654         or changing to a directory. No need to initialize out parameters.
6655
6656 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6657
6658         * FileDialog.cs: Append a number when creating a new folder if the
6659           folder already exists (use parenthesis instead of square brackets)
6660
6661 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6662
6663         * FileDialog.cs:
6664           - Disabled registry support for windows and added better registry
6665             error checking for other systems (need to investigate why it
6666             works perfectly on my system)
6667           - If a folder already exist show an error MessageBox instead of
6668             trying to create an indexed name.
6669           - Fixed a non intentional typo.
6670
6671 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6672
6673         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
6674
6675 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6676
6677         * FileDialog.cs: When creating a new folder don't crash if the
6678           folder already exists.
6679
6680 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6681
6682         * FileDialog.cs: Allmost a complete rewrite.
6683           - added a "virtual" file system that handles the differences
6684             between unix and windows file systems (especially the directory
6685             structure). Moved most of the directory and file handling code
6686             into the vfs.
6687             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
6688             UnixFileSystem and FSEntry.
6689           - Recently used folder/directory, size, location and used file names
6690             (file name ComboBox) are now stored in the registry and get read
6691             before the dialog shows up (fixes part 6 of bug #78446).
6692           - Creation of new folders/directories is now possible (context menu
6693             or ToolBar). Added TextEntryDialog for this that fills in the gap
6694             until ListView.LabelEdit works.
6695           - Fixed cursor handling (bug #78527) and focus handling for
6696             PopupButtonPanel
6697           - Various "Search in" ComboBox enhancements. The content of the
6698             dropdown listbox now almost matches ms.
6699           - Changed the behaviour when the user switches to SpecialFolder
6700             Recent to show the ListView in View.Details.
6701           - Beside using the ToolBar to change the View property of the
6702             file ListView it is now possible to use the context menu too.
6703
6704 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6705
6706         * ComboBox.cs: Don't create a new ObjectCollection when an item
6707           gets inserted. Just insert the item in the existing object_items
6708           ArrayList.
6709
6710 2006-06-08  Jackson Harper  <jackson@ximian.com>
6711
6712         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
6713         that the treeview and root node checks are done also, this fixes a
6714         regression i caused in the unit tests.
6715
6716 2006-06-07  Wade Berrier <wberrier@novell.com> 
6717
6718         * RichTextBox.cs: More ISO8859-1 -> unicode
6719
6720 2006-06-07  Mike Kestner  <mkestner@novell.com>
6721
6722         * ComboBox.cs : use items to hold highlight/selection so that
6723         collection insertions don't require synchronization.
6724
6725 2006-06-07  Jackson Harper  <jackson@ximian.com>
6726
6727         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
6728         routine.  We now always keep the sized edge at the cursor instead
6729         of computing movement and adjusting rects.  There is one buglet
6730         with this method though when the cursor is moved over area that
6731         the window can not expand too (such as the toolbars on the desktop).
6732
6733 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6734
6735         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
6736         here. Fixes crash on startup in AlbumSurfer.
6737
6738 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
6739
6740         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
6741           values
6742
6743 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6744
6745         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
6746         statement to avoid calling XNextEvent which will block if another thread
6747         took the event that we were expecting. Fixes bug #78605.
6748
6749 2006-06-07  Mike Kestner  <mkestner@novell.com>
6750
6751         * ListView.cs : isolated checkbox clicking from the selection logic.
6752         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
6753
6754 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6755
6756         * Form.cs: Check that the value passed to Form.DialogResult
6757         is a valid enum value.
6758
6759 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6760
6761         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
6762         Computer'. Clicking it in the network view goes to 'My Computer'.
6763         Added CIFS filesystem type. Display the mount point of filesystems.
6764         Avoid duplicate mount points (happens for me with CIFS);
6765
6766 2006-06-06  Jackson Harper  <jackson@ximian.com>
6767
6768         * InternalWindowManager.cs: Draw the maximized windows buttons
6769         when resizing.
6770
6771 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6772
6773         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
6774         all other dialogs. Fixes bug #78585.
6775
6776 2006-06-06  Mike Kestner  <mkestner@novell.com>
6777
6778         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
6779         Only invalidate checkbox on checkstate changes to avoid flicker.
6780         * ListBox.cs : avoid unselect/select when clicking selected item.
6781         avoid reselection flicker for already multiselected items.
6782         Fixes #78382.
6783
6784 2006-06-06  Jackson Harper  <jackson@ximian.com>
6785
6786         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
6787         the parent form so that the menu is removed if needed.
6788
6789 2006-06-06  Mike Kestner  <mkestner@novell.com>
6790
6791         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
6792         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
6793
6794 2006-06-06  Mike Kestner  <mkestner@novell.com>
6795
6796         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
6797
6798
6799 2006-06-06  Jackson Harper  <jackson@ximian.com>
6800
6801         * Control.cs: Use the property (instead of the field) to get the
6802         default cursor so it is instantiated correctly.
6803         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
6804         resizes so we need to manually repaint the window decorations here.
6805         - Set the titlebar button locations as soon as they are created,
6806         otherwise they are not set correctly on win32.
6807         
6808 2006-06-06  Chris Toshok  <toshok@ximian.com>
6809
6810         * CurrencyManager.cs (set_Position): call PullData before
6811         OnCurrentChanged.
6812         (AddNew): after calling IBindingList.AddNew, update our
6813         listposition, and call OnCurrentChanged/OnPositionChanged (without
6814         calling PullData).
6815         (OnCurrentChanged): remove the call to PullData from here.
6816         (OnItemChanged): remove the call to PushData from here.
6817         (OnPositionChanged): change the test from == null to != null to
6818         match the other methods.
6819         (ListChangedHandler): the grossest part of the patch.  Implement
6820         this such that it passes the unit tests in CurrencyManagerTest and
6821         the output more or less matches that of MS's implementation.
6822  
6823 2006-06-06  Mike Kestner  <mkestner@novell.com>
6824
6825         * ListView.cs : only update check state on single click.
6826         * ThemeWin32Classic.cs : fix focus drawing for details view without
6827         fullrowselect.  Fixes #78454.
6828         * XplatUIX11.cs : fix for double click emission.
6829
6830 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6831
6832         * PropertyGridView.cs : Applied Atsushi's patch to fix
6833         font dialog bug  (#78197).
6834
6835 2006-06-05  Jackson Harper  <jackson@ximian.com>
6836
6837         * TreeNode.cs: Compute the next node for expanding/collapsing
6838         correctly. We now factor in nodes without a NextNode
6839         correctly. (Fixes somes cases in nunit-gui).
6840         * InternalWindowManager.cs: Set the bounds when updating the
6841         virtual position of a tool window.
6842         
6843 2006-06-05  Chris Toshok  <toshok@ximian.com>
6844
6845         * DataGrid.cs: rename cached_currencymgr to list_manager.
6846         (set_CurrentCell): move SetCurrentCell code here, and clean it up
6847         some.
6848         (CurrentRow, CurrentColumn): single accessors so we can make the
6849         cursor movement code a lot easier to understand.
6850         (CurrentRowIndex): implement this in terms of CurrentRow.
6851         (BeginEdit): clean this up a bit.
6852         (CancelEditing): sort out the is_editing/is_changing/is_adding
6853         stuff a little.
6854         (EndEdit): minor changes.
6855         (OnKeyDown): add a comment about a (most likely) unnecessary
6856         check.
6857         (OnMouseDown): cancel editing when we click on a row header.  And
6858         use the CurrentRow setter, not CurrentCell.
6859         (ProcessDialogKey): directly call ProcessGridKey.
6860         (UpdateSelectionAfterCursorMove): factor out this common block of
6861         code (it's used everywhere that we move the cursor by updating row
6862         or column).
6863         (ProcessGridKey): pretty substantial overhaul.  Use the
6864         CurrentRow/CurrentColumn properties to make the code a lot more
6865         readable.  Only use the CurrentCell property when we have to
6866         modify both row and column at once.  Tab behavior is still broken,
6867         and Delete is untested.
6868         (Select): if we have no selected rows, set selection_start to
6869         @row.
6870         (EditCurrentCell): rename EditCell this.  It was only ever invoked
6871         with CurrentCell as the arg, so drop the arg and rename it.
6872
6873         * DataGridColumnStyle.cs: clean up the constructors a little, and
6874         drop CommonConstructor().
6875
6876         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
6877         actually get notified when the user hits it.
6878         (ProcessKeyMessage): *substantially* simplify this method.
6879         There's no reason (that I can see) for the textbox to be making
6880         calls into the datagrid at all.  Remove all of them but the ones
6881         for Enter handling.  those will take some more work.
6882
6883         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
6884         calling HideEditBox.
6885         (HideEditBox): if we have an active textbox, render it invisible
6886         without causing a re-layout of the datagrid.
6887
6888 2006-06-05  Mike Kestner  <mkestner@novell.com>
6889
6890         * ListView.cs : fix NRE crasher when focuseditem is cleared by
6891         collection changes by resetting it to Items[0].  Fixes #78587.
6892
6893 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6894
6895         * MessageBox.cs: if the height of the text is larger than the icon_size,
6896         use that. Fixes bug #78575.
6897
6898 2006-06-05  Jackson Harper  <jackson@ximian.com>
6899
6900         * TreeView.cs: Fix line drawing when scrolling.  To do this each
6901         node is basically responsible for drawing its entire horizontal
6902         area.  When drawing a node it draws its parent node lines if
6903         needed.
6904         - Adjust the clip area to the viewport rectangle
6905         - Fix Left/Right key handling to match MS. (It expand/collapses
6906         and moves to parents/first child but does not move selection to
6907         sibling nodes).
6908         - Fix SetTop to work with new bound calculation code
6909         - When scrollbars are no longer needed we need to reset scrolling
6910         vars and recalculate the visible order so the redraw is correct
6911         * TreeNode.cs: We can't expand/collapse nodes with no children.
6912
6913 2006-06-03  John Luke  <john.luke@gmail.com> 
6914
6915         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
6916         so the colors work without dev packages
6917         
6918 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
6919
6920         * Control.cs 
6921           - Select: Implemented to just use activate. Seems to match MS 
6922             behaviour closest. Documented to only do actual control walking 
6923             based on it's parameters if in a container control so I moved 
6924             the code there.
6925           - Removed selection check logic from our internal Select() method
6926         * ContainerControl.cs:
6927           - Select: Moved selection logic from Control here, since MS documents
6928             that containers obey the bool arguments. No longer calling base
6929
6930 2006-06-02  Jackson Harper  <jackson@ximian.com>
6931
6932         * TreeView.cs: If the selected node isn't changed when we get
6933         focus update the previously selected node so that we see the
6934         selection box.
6935
6936 2006-06-02  Mike Kestner  <mkestner@novell.com>
6937
6938         * ComboBox.cs: restructure grab and general mouse event handling.
6939         Make the composite control raise mouse events like it was a single
6940         control for leaves/enters/motion/up/down events.  fix dropdown list
6941         coordinate mangling and refactor it into the scrollbar subclass to
6942         reduce code duplication.  Fixes #78282 #78361 and #78457.
6943
6944 2006-06-02  Mike Kestner  <mkestner@novell.com>
6945
6946         * ScrollBar.cs: remove Capture setting/clearing, as it happens
6947         automatically in the Control.WndProc.
6948
6949 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6950
6951         * FileDialog.cs: fix crash when running SharpChess, which sets the
6952         FilterIndex to 2 with only one Filter.
6953
6954 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6955
6956         * ToolBar.cs: add SizeSpecified property.
6957         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
6958         try to figure out our real size, otherwise fallback to what the
6959         container says.
6960
6961 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6962
6963         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
6964         * Control.cs (WndProc): MS always calls the DefWndProc to pass
6965           up the event
6966
6967 2006-06-01  Mike Kestner  <mkestner@novell.com>
6968
6969         * ListView.cs: revamp the focus management in ListView.  It still
6970         causes churn of LostFocus/GotFocus emissions on clicks, but it's
6971         better than not handling focus at all.  Will revisit when pdb feels
6972         the general focus handling is solid.  Fixes #78526.
6973
6974 2006-06-01  Jackson Harper  <jackson@ximian.com>
6975
6976         * TreeView.cs: Set the default border style in the constructor.
6977         - Move painting to use OnPaintInternal instead of capturing
6978         WM_PAINT, this is the correct way of doing things
6979         - UpdateBelow shouldn't invalidate the scrollbar area
6980         - Cap the top on update below in case the node was above the top
6981         of the viewport rectangle.
6982         - ExpandBelow and Collapse below need to obey Begin/End Update.
6983         * TreeNode.cs: Make is_expanded internal so the treenode
6984         collection can change it without firing the whole event chain.
6985         * TreeNodeCollection.cs: When clearing all the child nodes make
6986         sure to recalc the visible order.
6987         - Improve algo for remove the top node
6988
6989 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6990
6991         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
6992           SendMessage directly calling window procedures, which in turn might
6993           call SetFocus()
6994
6995 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
6996
6997         * Control.cs: Don't handle WM_SETFOCUS if the same window already
6998           has focus (works around X11 sending a FocusIn after our SetFocus)
6999         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
7000
7001 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
7002
7003         * Mime.cs: Fix for the NET_2_0 build.
7004           NameValueCollection needs StringComparer now.
7005
7006 2006-05-31  Chris Toshok  <toshok@ximian.com>
7007
7008         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
7009         return (via an out parameter) the starting X of the column.
7010         (UpdateVisibleColumn): track change to FromPixelToColumn.
7011         (HitTest): add a ColumnResize case here.
7012         (DrawResizeLine): new function, probably poorly named.
7013
7014         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
7015         only need to keep one reference.
7016         (set_ListManager): same.
7017         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
7018         Also, add support for HitTestType.ColumnResize.
7019         (OnMouseMove): add column resize behavior here, and change the
7020         cursor to the correct one as we move around the datagrid.
7021         (OnMouseUp): terminate the column resize if we're resizing.
7022         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
7023         for the current cell.
7024         (ConnectListManagerEvents): use cached_currencymgr.
7025         (DisconnectListManagerEvents): fill this in, using
7026         cached_currencymgr.
7027         (SetCurrentCell): remove cached_currencymgr_events handling.
7028         (SetDataMember): only call DisconnectListManagerEvents if
7029         cached_currencymgr is != null.
7030         (SetDataSource): same.
7031         (OnListManagerCurrentChanged): cached_currencymgr_events ->
7032         cached_currencymgr.
7033
7034 2006-05-31  Jackson Harper  <jackson@ximian.com>
7035
7036         * BindingManagerBase.cs: Remove somedebug code that creeped into
7037         SVN.
7038         * TreeNode.cs: We get the indent level dynamically right now, so
7039         don't track it as a member.
7040         * TreeNodeCollection.cs: Make sure all nodes added to the list
7041         have parents, treeviews/topnodes setup properly.
7042         - Don't attempt to track indent level.
7043
7044 2006-05-30  Jackson Harper  <jackson@ximian.com>
7045
7046         * BindingContext.cs: Create the currency manager tables here.
7047         This allows us to more easily create null tables (when bad data
7048         members are used), and more easily create related currency
7049         managers.
7050         * CurrencyManager.cs: All the table creation stuff is done by the
7051         binding context now.
7052         - Current should throw an exception if listposition is -1.
7053         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
7054         been bound yet.
7055
7056 2006-05-30  Mike Kestner  <mkestner@novell.com>
7057
7058         * ListView.cs: allow reexpansion of zero-width column headers.
7059         Fixes #78528.
7060
7061 2006-05-28  Chris Toshok  <toshok@ximian.com>
7062
7063         * CurrencyManager.cs (get_Current): after the late binding
7064         listposition = -1 fix, we need to guard against it here and return
7065         null, otherwise we raise an exception (which is swallowed
7066         elsewhere, and breaks datagrid databinding.)
7067
7068 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7069
7070         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
7071           than WM_SYSKEY, don't throw if get something unexpected (#78507)
7072
7073 2006-05-26  Jackson Harper  <jackson@ximian.com>
7074
7075         * ControlPaint.cs:
7076         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
7077         values, it's faster and it's all we care about (we don't care if
7078         the names aren't equal).
7079         * KeyboardLayouts.cs: Eliminate some dead code.
7080         - Lazy init things
7081         * X11Keyboard.cs: Lazy init keyboard detection.
7082         - Cleanup access modifiers a little.
7083
7084 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
7085
7086         * XplatUIX11.cs: Once again, attempting to get layout just right.
7087
7088 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
7089
7090         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
7091           the sizes of each link section, that will result in sizes that
7092           match DrawString's layout (Fixes #78391)
7093
7094 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
7095
7096         * FileDialog.cs: If AddExtension property is true autocomplete the
7097           extensions in SaveFileDialog correctly. Fixes bug #78453.
7098           Set MyNetwork and MyComputer to "C:\" for windows. This should
7099           fix part 8 of bug #78446 for now.
7100
7101 2006-05-26  Chris Toshok  <toshok@ximian.com>
7102
7103         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
7104         invalidate the current row header if we need to, but presumably
7105         we'll invalidate the row corrsponding to the bounds or
7106         editingControl.
7107         (GridHScrolled): switch back to this method, as it's part of the
7108         public api.  *sigh*.
7109         (GridVScrolled): same.
7110         (OnMouseWheel): hack up something that more or less works.  Call
7111         GridHScrolled/GridVScrolled directly, instead of duplicating much
7112         of their code here.
7113         (EnsureCellVisibility): reinstate a bunch of this code, since we
7114         can't just set the scrollbar Value and expect to do all the work
7115         in the ValueChanged handler.  Also, Call Update() after scrolling
7116         in one direction so the other XplatX11.ScrollWindow call has the
7117         proper stuff in the proper places.
7118         (EditCell): set is_editing to true before calling .Edit.
7119
7120         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
7121         don't bother comparing first.
7122         (OnKeyPress): call grid.ColumnStartedEditing before calling
7123         base.OnKeyPress.  this will set is_changing and invalidate the row
7124         header if necessary.
7125         (ProcessKeyMessage): for WM_CHAR messages, call
7126         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
7127         and WM_KEYDOWN.
7128         
7129         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
7130         it's done in the DataGrid.
7131         (NextState): call grid.ColumnStartedEditing, which takes care of
7132         invalidating the row header (and setting is_changing).
7133
7134         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
7135         here.  it's done in the DataGrid.
7136
7137 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7138
7139         * Control.cs: allow changing the cursor when the mouse position is
7140         out of bounds but Capture is set.
7141         * LinkLabel.cs: handle the case when the mouse button is pressed on the
7142         linklabel but released somewhere else.
7143
7144 2006-05-25  Jackson Harper  <jackson@ximian.com>
7145
7146         * TreeView.cs: When we get focus if there is no selected node make
7147         it the top node
7148         - Remove some uneeded setup code from Draw.
7149         * TreeNodeCollection.cs: If the tree doesn't have a top node when
7150         a new node is inserted make the new node the top.
7151         * XplatUIX11.cs:
7152         * Timer.cs: Use Utc time so that no local time zone stuff needs to
7153         be used (should be faster).
7154         
7155 2006-05-25  Chris Toshok  <toshok@ximian.com>
7156
7157         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
7158         problem with the last commit.
7159
7160 2006-05-25  Chris Toshok  <toshok@ximian.com>
7161
7162         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
7163         need the invalidate call here, while scrolling right-to-left via
7164         the left arrow key (i.e. moving the editing cell while scrolling).
7165
7166         * DataGrid.cs (.ctor): remove the initialization of
7167         ctrl_pressed/shift_pressed.  We no longer track them using key
7168         up/down handlers, but by using Control.ModifierKeys.  Also, switch
7169         to using ValueChanged handlers on the scrollbars instead of
7170         Scrolled event handlers.  This simplifies a bunch of the scrolling
7171         code.
7172         (GridHValueChanged): rename from GridHScrolled, and change it to
7173         work with the new event args.
7174         (GridVValueChanged): same.
7175         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
7176         (OnMouseWheel): actually scroll the datagrid.  Don't change the
7177         selected cell.
7178         (ProcessGridKey): correct all the keyboard navigation stuff I
7179         could find.  Ctrl up/down/left/right/home/end work now.
7180         (EnsureCellVisibility): correct method name spelling.  Also,
7181         simplify this a touch by not explicitly calling the
7182         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
7183         scrollbar value.
7184         (OnKeyUpDG): no need for this method now.
7185         
7186 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7187
7188         * LinkLabel.cs: display the OverrideCursor when hovering the label.
7189         Fixes bug #78392.
7190
7191 2006-05-25  Chris Toshok  <toshok@ximian.com>
7192
7193         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
7194         r61019.
7195
7196 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7197
7198         * Application.cs: Moved setting of is_modal and closing to before
7199           we create the control, to allow the event handlers called as a
7200           result of creation affect closing. Also removed Gonzalo's previous
7201           change to setting DialogResult, the behaviour has been moved to 
7202           Form.ShowDialog()
7203         * Form.cs: 
7204           - ShowDialog(): Removed explicit creation of the form, let RunLoop
7205             handle it instead
7206           - ShowDialog(): If no dialog result is set, we need to return Cancel
7207           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
7208             the close is cancelled
7209
7210 2006-05-25  Jackson Harper  <jackson@ximian.com>
7211
7212         * StatusBar.cs: We only need to update the sizes of the other
7213         panels when we have auto size contents.  Also we are only updating
7214         the contents of the panel, not the borders, so compensate for the
7215         border width (TODO: get this width from the theme somehow).
7216         * TreeView.cs: Scrollable is true by default
7217         - Use invalidate instead of refresh where needed
7218         - Factor the scrollable value into scrollbar updating
7219         - Update the scrollbars if the Scrollable property is altered
7220         - Update the selected node if its ImageIndex is changed
7221         - Handle null nodes in UpdateNode (mainly so we don't have to
7222         check if selected is null when updating it
7223         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
7224         are factored into the visible count
7225         - Use VisibleCount for clarity in the code
7226         - When the font is changed we need to recurse through all the
7227         nodes and invalidate their sizes
7228         
7229 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7230
7231         * Application.cs: set the DialogResult to fixed when the main form is
7232         hidden or destroyed while being modal.
7233
7234 2006-05-25  Miguel de Icaza  <miguel@novell.com>
7235
7236         * Theme.cs: Use Tangoified messagebox icons. 
7237
7238         (GetSizedResourceImage): Also cope with width = 0 and do not
7239         trigger a warning in that case (0 means "give me your icon from
7240         the resouce, no special size needed).
7241
7242 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7243
7244         * Application.cs: Leave runloop if the the main modal form is 
7245           hidden (fixes #78484)
7246
7247 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7248
7249         * BindingContext.cs : reject null datasource in Contains() and
7250           Item[].
7251         * CurrencyManager.cs : check data_member validity when data_source
7252           is dataset. When it is late binding, the initial position is -1.
7253
7254 2006-05-24  Jackson Harper  <jackson@ximian.com>
7255
7256         * TreeNodeCollection.cs: Dont't recalculate the visible order on
7257         inserted nodes that aren't visible.  This changes the
7258         max_visible_order which confuses scrollbar settings.
7259         - Use the enumerator to get the prev node instead of duplicating
7260         code.
7261         * TreeView.cs: Use new method for setting scrollbar values
7262         - Don't set the bounds every time the scrollbar is updated
7263         - When updating below the root node use an invalidate instead of a
7264         refresh to prevent the child controls (scrollbars) from being
7265         refreshed. (UpdateBelow still needs to be reworked anyways).
7266         - Reenable SetBottom now that visible orders are set correctly,
7267         added some debug code incase we ever get bad values there again.
7268         - Set the scrollbar max to 2 less then the max value, this
7269         compensates for the max value being one above the node count, and
7270         for scrollbars adding one extra "notch".
7271         - When drawing image nodes if there is an imagelist we draw the
7272         first image in the list if the supplied image index is out of the
7273         image list's bounds.
7274         
7275 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7276
7277         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
7278           we receive a size change from the WM (Fixes #78503)
7279
7280 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
7281
7282         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
7283           rectangle (Fixes #78501)
7284
7285 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7286
7287         * ButtonBase.cs: 
7288           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
7289             as a bitfield.
7290           - Fixed MouseMove to no longer switch pressed state unless the left
7291             mouse button is pressed. Atsushi provided the original patch (#78485)
7292           
7293 2006-05-24  Jackson Harper  <jackson@ximian.com>
7294
7295         * ScrollBar.cs: New internal methods that allow us to change a
7296         couple values on the scrollbar (the most common case is maximum
7297         and large change) without getting multiple invalidates.
7298
7299 2006-05-24  Chris Toshok  <toshok@ximian.com>
7300
7301         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
7302         (Edit): save off the original state in oldState, and set
7303         grid.is_editing to true.
7304         (OnKeyDown): abort editing if escape is pressed.  also, call
7305         NextState if space is pressed.
7306         (OnMouseDown): call NextState.
7307         (NextState): factor out shared code from OnKeyDown and OnMouseDown
7308         here.  Also, only invalidate the row header once (on the initial
7309         is_changing switch) to save on redraws.
7310
7311 2006-05-24  Chris Toshok  <toshok@ximian.com>
7312
7313         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
7314         if the value in the cell is different than it was before.  This
7315         keeps us from triggering a layout when we move around a datarid
7316         with a highlighted cell.
7317         (Edit): suspend layout when creating/positining the text box, and
7318         resume passing false so we don't ever actually re-layout.
7319         (ReleaseHostedControl): same.
7320         (EnsureTextBox): reformat slightly, and set WordWrap to false.
7321
7322         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
7323         control-key sequences should go to the datagrid - remove that
7324         lock.  Also, modify the conditions under which we move between
7325         cells when moving the cursor within a cell, and remove the "this"
7326         and "base" from field accesses.  We weren't even consistent, given
7327         they all were in the base class.
7328
7329 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
7330
7331         * Binding.cs : (.ctor)
7332           An obvious NRE fix for BindingTest.CtorNullTest().
7333
7334 2006-05-23  Chris Toshok  <toshok@ximian.com>
7335
7336         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
7337         them between lines.  This fixes some quirks editing cells in the
7338         datagrid.
7339
7340 2006-05-23  Jackson Harper  <jackson@ximian.com>
7341
7342         * TreeView.cs: Use begin/end update when doing expand/collapse all
7343         so that we don't get flicker on the scrollbar.
7344
7345 2006-05-23  Jackson Harper  <jackson@ximian.com>
7346
7347         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
7348         treenode calculations to be independant of the painting code. To
7349         do this nodes track a visible order which is calculated by the
7350         treeview.
7351         - Call new methods for expanding/collapsing nodes.  These methods
7352         use scrollwindow so we don't have to update everything below the
7353         node.
7354         * TreeView.cs: Refactored drawing and scrolling code.  We don't
7355         need to update nodes when drawing anymore or calculate scrollbar
7356         stuff.
7357         - Added new methods for expanding/collapsing nodes. These methods
7358         use ScrollWindow so as to not have to redraw all the nodes below.
7359         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
7360         we add/remove nodes or sort.
7361         - Handle removing the selected and the top node properly.
7362
7363 2006-05-23  Chris Toshok  <toshok@ximian.com>
7364
7365         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
7366         maybe this should actually happen in the datagrid code?
7367         (EndEdit): no need to invalidate anything, given that
7368         ReleaseHostedControl causes the datagrid to relayout, which
7369         invalidates everything anyway.
7370
7371         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
7372         in SetCurrentCell).
7373         (set_SelectionBackColor): call InvalidateSelection instead of
7374         Refresh.
7375         (set_SelectionForeColor): same.
7376         (BeginEdit): Flesh this out a bit.
7377         (CancelEditing): only do any of this if we're editing/adding.
7378         (EndEdit): same.
7379         (OnMouseDown): there's no need to cancel editing here, it's done
7380         in SetCurrentCell.
7381         (SetCurrentCell): only invalidate the current row header if it's a
7382         different row than the new one.
7383         (ShiftSelection): fix this to work like MS does.
7384         (ResetSelection): factor out the invalidation of selected_rows to
7385         InvalidateSelection.
7386         (SetDataSource): cancel any editing that's going on.
7387
7388         * DataGridColumnStyle.cs
7389         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
7390         call the non-interface version.
7391
7392         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
7393         header rectangle with the clip rectangle so we don't redraw the
7394         entire header for just a small area.  Gets rid of the last flicker
7395         when horizontally scrolling.
7396         (DataGridPaintRow): same.
7397
7398 2006-05-23  Mike Kestner  <mkestner@novell.com>
7399
7400         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
7401         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
7402         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
7403         Critical bug report.
7404
7405 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7406
7407         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
7408           and this fixes #78493
7409
7410 2006-05-23  Miguel de Icaza  <miguel@novell.com>
7411
7412         * Theme.cs (GetSizedResourceImage): Scale images if the proper
7413         size is not found.  
7414         
7415         * FileDialog.cs: Do not change the background for the side bar as
7416         it wont work nicely with the theme, and also reduces the artifacts
7417         in rendering the icons (which I want to fix too).
7418
7419         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
7420         resources, not resgen resources. 
7421
7422         (PlatformDefaultHandler): Pull images using the new API.
7423
7424 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7425
7426         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
7427           a reference to the hwnd and will not remove it unless there are
7428           no pending exposures (fixes #78341)
7429         * XplatUI.cs: Improved debug
7430
7431 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
7432
7433         * MenuAPI.cs : don't handle OnClick event when it was not the left
7434           button. Fixed bug #78487.
7435
7436 2006-05-23  Mike Kestner  <mkestner@novell.com>
7437
7438         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
7439         prefer submenus to the top menu for item lookup, to avoid popping down
7440         top-row items.
7441
7442 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
7443
7444         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
7445           Graphics.FillRectangle as the visual results are really bad (even
7446           on win). We now draw perfect arrows (and perfect shadows when the
7447           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
7448           Pen.DashPattern to draw the dots of each line.
7449
7450 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
7451
7452         * FileDialog.cs: Update the filename combobox when navigating through
7453           the ListView with the cursor keys. Fixes part 7 of bug #78446.
7454
7455 2006-05-22  Mike Kestner  <mkestner@novell.com>
7456
7457         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
7458         Fixes #78463.
7459
7460 2006-05-22  Mike Kestner  <mkestner@novell.com>
7461
7462         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
7463         requests. Fix a misspelled parameter and a copy paste exception error
7464         in Select.
7465
7466 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
7467
7468         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
7469           to get the same width/height (5/13) on X11 as the default font has on
7470           win32. This means that our DefaultFont emSize is smaller than the 
7471           the MS SWF equivalent (even thought the width/height stays the same)
7472
7473 2006-05-20  Jackson Harper  <jackson@ximian.com>
7474
7475         * MdiClient.cs:
7476         * MdiWindowManager.cs:
7477         * InternalWindowManager.cs: Make sure to use the border width from
7478         the theme.
7479
7480 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
7481
7482         * PrintDialog.cs: Implements printer details
7483
7484 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
7485
7486         * FileDialog.cs: Added focus handling for PopupButtonPanel.
7487           Fixes part 1 and 2 of bug #78446
7488
7489 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
7490
7491         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
7492           instead of sticking to the first ever calculated value
7493
7494 2006-05-19  Mike Kestner  <mkestner@novell.com>
7495
7496         * ComboBox.cs: fix mouse motion selection to use MousePosition and
7497         PointToClient, since Capture is set. Fixes #78344.
7498
7499 2006-05-19  Mike Kestner  <mkestner@novell.com>
7500
7501         * ListView.cs: match MS behavior in Details view where items are not
7502         drawn if Columns.Count == 0. 
7503         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
7504         Use a separate pen to draw the check, since changing the width affects
7505         the box as well.  Fixes #78454.
7506
7507 2006-05-18  Miguel de Icaza  <miguel@novell.com>
7508
7509         * ListView.cs: ArgumentOutOfRangeException, single versions of the
7510         exception should throw the name of the invalid argument.
7511
7512         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
7513         there are no files listed. 
7514
7515 2006-05-18  Jackson Harper  <jackson@ximian.com>
7516
7517         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
7518         up.
7519
7520 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7521
7522         * Control.cs: Brought back our old UpdateZOrder method as a private
7523           function and switched our calls from UpdateZOrder to the new one.
7524           This fixes the Paint.Net canvas disappearing bug.
7525
7526 2006-05-18  Jackson Harper  <jackson@ximian.com>
7527
7528         * Theme.cs:
7529         * ThemeWin32Classic.cs:
7530         * InternalWindowManager.cs: Move the drawing into the theme,
7531         expose everything the theme should need from the window manager.
7532
7533 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7534
7535         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
7536           from the call to NativeWindow to avoid walking up the parent chain
7537           further than needed (speeds up setting cursors and avoids setting
7538           the wrong cursor if a parent has another cursor defined)
7539         * Cursor.cs: When loading an icon as cursor, MS uses the center of
7540           the icon as hotspot, not what's contained as hotspot in the icon
7541           file. This fixes the perceived drawing offset seen with Paint.Net
7542         
7543 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7544
7545         * XplatUIX11.cs: 
7546           - Store the calculated rectangle in Hwnd object and use it when 
7547             setting the client size
7548           - Force Toolwindows to always be type Dock, to ensure they're on top
7549
7550 2006-05-18  Mike Kestner  <mkestner@novell.com>
7551
7552         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
7553         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
7554         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
7555         Substantial refactoring to remove confusing nested classes. Coding
7556         standard and Get+Set->property refactorings.  Shift to index based
7557         highlighting in ComboListBox instead of constantly using IndexOf and
7558         Items[]. Add invalidations on resize for DropDownList to fix ugliness
7559         in FileDialog growth.  Draw borders manually since Simple mode needs
7560         to look like two independent controls.  Make listbox border
7561         conditional to DropDownStyle.  Improved OwnerDraw support.
7562
7563 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
7564
7565         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
7566         Don't set the disposed graphics to null, so we can throw the "right"
7567         exception if the graphics is reused later (added a flag to avoid 
7568         double disposing). Some behaviours are different under 2.0 and are
7569         filled under bug #78448.
7570
7571 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7572
7573         * Control.cs: When double-buffering is enabled, we need to reset
7574           our graphics context between paint calls. Otherwise, any 
7575           transformations and other alterations on the context will 
7576           become cumulative (#77734)
7577
7578 2006-05-18  Mike Kestner  <mkestner@novell.com>
7579
7580         * ListView.cs: do focused item selection like MS on clicks. 
7581         Rework focus handling for ItemControl so LostFocus invalidates as
7582         well.
7583         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
7584         the ListView ItemControl has focus.
7585
7586 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
7587
7588         * XplatUIX11.cs: If client_window ends up being width or height zero
7589           due to border settings, move it off window inside whole_window (#78433)
7590
7591 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7592
7593         * Mime.cs: Shrink the mime file cache correctly.
7594
7595 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7596
7597         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
7598
7599 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7600
7601         * XplatUIX11.cs (AddExpose): More sanity checks
7602
7603 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7604
7605         * XplatUIX11.cs:
7606           - AddExpose: Don't add expose ranges outside the size of our
7607             window
7608           - Cast opacity values to Int32 to avoid crashes with certain
7609             values
7610           - Added disabled code paths that protect against illegal cross-
7611             thread painting (Developers.exe)
7612
7613 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7614
7615         * ProgressBar.cs: Invalidate the control when it's resized
7616           since block size is based on control size. (#78388)
7617
7618 2006-05-16  Miguel de Icaza  <miguel@novell.com>
7619
7620         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
7621         of setting the incoming argument to the "reset" value, we set the
7622         this.datamember to string.empty (before we were invalidating the
7623         incoming data).   
7624
7625         Fixes 78420
7626
7627 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7628
7629         * Form.cs: Only apply transparency settings after the form
7630           is created. (Fixes #77800)
7631
7632 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7633
7634         * ApplicationContext.cs: Grab the HandleDestroyed event so
7635           we know when to fire OnMainFormClosed 
7636
7637 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7638
7639         * Application.cs: Introduced sub-class to allow tracking of
7640           threads and centralized triggering of the event mess for
7641           ThreadExit, AppExit, etc..  (#76156)
7642
7643 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
7644
7645         * MimeIcon.cs:
7646           - Do not return a null icon index value for a mime subclass.
7647             Instead try the main mime type class too.
7648           - Seems that some newer distributions don't have a link to some
7649             gnome default icons anymore. So check the default gnome dir too.
7650           
7651
7652 2006-05-16  Jackson Harper  <jackson@ximian.com>
7653
7654         * MdiClient.cs: Don't paint the parent background image if we have
7655         our own background image.
7656
7657 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7658
7659         * Control.cs:
7660           - PerformLayout: Do not shrink space filled by DockStyle.Fill
7661             controls, all filled controls are supposed to overlap (#78080)
7662           - UpdateZOrder is supposed to update the control's z-order in the
7663             parent's z-order chain. Fixed to behave like that
7664           - BringToFront: Removed obsolete code
7665           - SendToBack: Simplyfied
7666           - SetChildIndex: Trigger layout calculations when Z-order changes
7667             since layout is done by z-order
7668
7669 2006-05-16  Chris Toshok  <toshok@ximian.com>
7670
7671         [ fixes bug #78410 ]
7672         * DataGrid.cs (set_AlternatingBackColor): use
7673         grid_drawing.InvalidateCells instead of Refresh().
7674         (set_BackColor): call grid_drawing.InvalidateCells.
7675         (set_BackgroundColor): use Invalidate instead of Refresh.
7676
7677         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
7678         invalidate the cell area.
7679
7680 2006-05-15  Chris Toshok  <toshok@ximian.com>
7681
7682         [ fixes bug #78011 ]
7683         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
7684         on to DataGridPaintRow.
7685         (DataGridPaintRow): take a clip argument, and only draw the cells
7686         which intersect it.  same with the not_usedarea.
7687
7688         * Theme.cs (DataGridPaintRow) add @clip parameter.
7689
7690         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
7691         XplatUI.ScrollWindow.
7692         (ScrollToRow): same.
7693
7694         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
7695         with last column which was causing a gray swath to appear with the
7696         XplatUI.ScrollWindow code.
7697
7698 2006-05-15  Chris Toshok  <toshok@ximian.com>
7699
7700         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
7701         use XplatUI.ScrollWindow.
7702         (VerticalScrollEvent): use XplatUI.ScrollWindow.
7703
7704 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
7705
7706         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
7707
7708 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7709
7710         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
7711           file since there are no equivalent X11 cursors
7712
7713 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7714
7715         * MonthCalendar.cs : DateTimePicker should reflect selected date
7716           on mouse*up*, not mouse*down*. Fixed originally reported part of
7717           bug #76474.
7718
7719 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7720
7721         * TabControl.cs : When argument index is equal or more than tab
7722           count, just ignore. Fixed bug #78395.
7723
7724 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7725
7726         * Control.cs: Dispose all child controls when control is diposed (#78394)
7727
7728 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7729
7730         * ColorDialog.cs: Finally it is possible to select the color with
7731           the text boxes
7732
7733 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7734
7735         * PrintDialog.cs: Fix typo
7736
7737 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7738
7739         * PrintDialog.cs: PrintDialog is not resizable
7740         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
7741           color. Made some ToolBar drawing methods protected virtual.
7742
7743 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
7744
7745         * PrintDialog.cs: Implementation of the PrintDialog
7746
7747 2006-05-12  Chris Toshok  <toshok@ximian.com>
7748
7749         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
7750         thumb, instead use MoveThumb.  This has the side effect of making
7751         most of the other thumb moving machinery use MoveThumb as well.
7752         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
7753         need to actually invalidate the rectangle where the new thumb will
7754         go.
7755         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
7756         We force an Update() after, so it's not as fast as it could be,
7757         but at least there's zero flicker and no droppings.
7758         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
7759         (UpdateThumbPos): add another argument (dirty), which says whether
7760         or not to calculate/add dirty regions which we later invalidate.
7761         For cases where we know we're going to use MoveThumb, we pass
7762         false for this.  Otherwise, pass true.
7763
7764 2006-05-12  Jackson Harper  <jackson@ximian.com>
7765
7766         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
7767         the status bar.
7768         
7769 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
7770
7771         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
7772           and GetClipRegion methods and UserClipWontExposeParent property.
7773         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
7774           overriding UserClipWontExposeParent property, setting to false, since
7775           Win32 handles the required expose messages to draw our clipped parent
7776           areas internally
7777         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
7778           PaintEventStart to set the user clip region if set.
7779         * Control.cs: 
7780           - Now internally tracking the Region for the control since we need to
7781             store it if the handle is not yet created and only set it when it
7782             becomes created. Before setting the region forced handle creation
7783           - Added code to draw the parents underneath a user-clipped region
7784         * Hwnd.cs: Added UserClip property
7785
7786 2006-05-12  Chris Toshok  <toshok@ximian.com>
7787
7788         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
7789         (set_Maximum): same.
7790         (set_Minimum): same.
7791         (set_SmallChange): same.
7792         (OnMouseUpSB): remove the call to refresh when releasing the
7793         thumb.  We shouldn't need it.
7794         
7795 2006-05-12  Miguel de Icaza  <miguel@novell.com>
7796
7797         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
7798         AutoSize set to None, we do not need to relayout everything, we
7799         just need to invalidate the current region.
7800
7801         (Draw): Do not draw the entire ClientArea, just redraw the
7802         clip area being passed.
7803
7804         * MdiClient.cs: Make MdiClient constructor with the Form argument
7805         internal. 
7806
7807 2006-05-12  Jackson Harper  <jackson@ximian.com>
7808
7809         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
7810         parents background image,  but strangely not their own.
7811         - (DrawStatusBarPanel): Take into account horizontal alignment
7812         when drawing the strings and icons.
7813
7814 2006-05-12  Mike Kestner  <mkestner@novell.com>
7815
7816         * ListBox.cs: avoid invalidations for focus when the collection is
7817         empty. 
7818
7819 2006-05-12  Chris Toshok  <toshok@ximian.com>
7820
7821         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
7822         invalidate the entire thumb area.  Call InvalidateDirty which
7823         limits the redraw to the thumb itself and surrounding pixels.
7824
7825         * XplatUIX11.cs (ScrollWindow): optimize copying.
7826         
7827 2006-05-12  Chris Toshok  <toshok@ximian.com>
7828
7829         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
7830         Figure out the positioning/layout in a single pass instead of
7831         multiple recursive invocations.  Speeds up the initial display of
7832         the data grid.  Also, make many things private that were
7833         originally public but unused outside this class.
7834
7835 2006-05-11  Jackson Harper  <jackson@ximian.com>
7836
7837         * MdiClient.cs: Improved layout code.
7838
7839 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
7840
7841         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
7842           not SelectedObject.
7843
7844 2006-05-11  Chris Toshok  <toshok@ximian.com>
7845
7846         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
7847         union of that will always be {0,0,width,height}.
7848
7849 2006-05-11  Jackson Harper  <jackson@ximian.com>
7850
7851         * Form.cs: Match MS's DefaultSize for forms (they must have
7852         changed the size in sp2).
7853
7854 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7855
7856         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
7857
7858 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7859
7860         * TextControl.cs : Fixed bug #78109. This incorrect position
7861           comparison caused crash on automatic line split.
7862         * TextBoxBase.cs : reduce duplicate code.
7863
7864 2006-05-10  Jackson Harper  <jackson@ximian.com>
7865
7866         * MdiClient.cs: Active form is only sent to the back when using
7867         the Next form functionality, when a form is clicked the current
7868         active shouldn't be sent to the back.
7869         - Layout the mdi windows when the container is first made visible.
7870         * Form.cs: Give the MdiClient a ref to the containing form when we
7871         create it.
7872         
7873 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7874
7875         * LinkLabel.cs : link_font could be uninitialized, so populate one
7876           before actual use. Fixed bug #78340.
7877
7878 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7879
7880         * XplatUIX11.cs : clipboard format native value is IntPtr.
7881           Fixed bug #78283.
7882
7883 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7884
7885         * Control.cs: 
7886           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
7887             which is passed up the parent chain by DefWndProc
7888           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
7889             to DefWndProc (#77956)
7890         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
7891
7892 2006-05-10  Jackson Harper  <jackson@ximian.com>
7893
7894         * MdiClient.cs: We need to remove the controls from the mdi
7895         collection, when we close the window.
7896         * MdiWindowManager.cs: Special handling of closing mdi windows.
7897         * InternalWindowManager.cs: Make the close method virtual so the
7898         mdi window manager can handle it specially.
7899
7900 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
7901
7902         * DataGrid.cs:
7903           - Recalculate grid when the data source has changed
7904           - Matches styles provided by user from all data sources types
7905         * DataGridTableStyle.cs: For columns that provided by the user set the
7906         with the preferred value is there was unassigned.
7907         * CurrencyManager.cs: throw OnItemChanged event
7908
7909 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
7910
7911         * PictureBox.cs: Don't animate until handle is created. Start animation
7912           when handle is created.
7913
7914 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7915
7916         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
7917           current codebase.
7918         * XEventQueue.cs: We don't need to provide the extra info
7919
7920 2006-05-10  Jackson Harper  <jackson@ximian.com>
7921
7922         * MdiClient.cs: If the mdi clients parent form has a background
7923         image set, we draw that background image for the mdi area's
7924         background.
7925
7926 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7927
7928         * TextBoxBase.cs: Set IBeam cursor (#78347)
7929
7930 2006-05-10  Mike Kestner  <mkestner@novell.com>
7931
7932         * ToolBar.cs: fix some text padding issues with ButtonSize
7933         calculation. Update the default size to match MS documentation.
7934         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
7935         button size. Fixes #78296.
7936
7937 2006-05-10  Mike Kestner  <mkestner@novell.com>
7938
7939         * ListBox.cs: use is_visible for scrollbar positioning in case the
7940         control isn't on screen yet.  Fix off by one with Right vs Width
7941         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
7942         
7943 2006-05-10  Jackson Harper  <jackson@ximian.com>
7944
7945         * X11Dnd.cs: Drop to a control with another control on top of it.
7946         * ToolBar.cs: Work on a copy of the buttons list, so that it can
7947         be modified in click handlers. TODO: Look for similar problems in
7948         other controls.
7949
7950 2006-05-09  Jackson Harper  <jackson@ximian.com>
7951
7952         * Form.cs: Window managers need the old window state when setting
7953         window state now.
7954         * InternalWindowManager.cs: Allow the base mdi window manager to
7955         handle more of the MDI only stuff (like maximize buttons).
7956         * MdiWindowManager.cs: Fix some snafus in changing the window
7957         state.  Add all the menu functionality, for both popup and
7958         maximized menus.
7959         * MdiClient.cs: When a new form is selected the currently
7960         activated form is sent to the back, this matches MS.
7961         - Implement a new method to activate the next mdi child window.
7962
7963 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
7964
7965         * Control.cs: 
7966           - Added new InternalCapture method to allow controls to prevent
7967             the capture behaviour on the click handlers
7968           - Switched to use InternalCapture
7969         * ComboBox.cs:
7970           - Using InternalCapture to prevent mouse captures from being released
7971             on mouse button release (Fixes #78100)
7972         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
7973           returns Form borders if a caption is present. (Fixes #78310)
7974
7975 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
7976
7977         * TreeNode.cs: Changed serialization .ctor to not require every field
7978           to be present. (#78265)
7979         * OwnerDrawPropertyBag.cs: Added serialization .ctor
7980
7981 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
7982
7983         * MimeIcon.cs: for is faster than foreach for strings.
7984
7985 2006-05-05  Mike Kestner  <mkestner@novell.com>
7986
7987         * CheckedListBox.cs: update check handling code to not use selected.
7988         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
7989         behavior for visual feedback, motion response, shift/ctrl handling,
7990         and properly deal with all 4 selection modes. Updates to bounds
7991         handling logic.  Add scroll wheel support. [Fixes #77842]
7992
7993 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
7994
7995         * ListView.cs:
7996           - Moved adding of Implicit controls into .ctor. That way, subsequent
7997             creation of the controls will not cause them to think they are 
7998             toplevel windows (fixes #78200 header problem)
7999           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
8000           - Switched visibility setting of header control to use internal field
8001             to avoid triggering handle creation
8002           - Now checking if handle is created before causing a refresh when items
8003             are added (This makes us now match handle creation time with MS)
8004         * Splitter.cs: Removed loading of private splitter cursor, switched to
8005           Cursors version now that that is loading the right ones
8006         * Cursors.cs: Load proper splitter cursors from resources
8007         * Cursor.cs: Added second method of loading resource cursors for the 
8008           VS.Net users amongst us
8009
8010 2006-05-05  Mike Kestner  <mkestner@novell.com>
8011
8012         * ListView.cs: give header_control a minimum size based on the
8013         ListView size.
8014
8015 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
8016
8017         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
8018           window seems to do that with metacity, so set that type. (#78120)
8019
8020 2006-05-05  Mike Kestner  <mkestner@novell.com>
8021
8022         * ListViewItem.cs: fix Details mode checkbox layout bug.
8023         * ThemeWin32Classic.cs: draw a ListView column header for unused space
8024         at the end of the header, if it exists. [Fixes for #78200]
8025
8026 2006-05-04  Jackson Harper  <jackson@ximian.com>
8027
8028         * MdiClient.cs: Add a helper property to get the container form.
8029         * MdiWindowManager.cs: We have to make sure to use the menu origin
8030         when drawing the icons and buttons, this fixes maximized window
8031         icons/buttons on win32.
8032         * InternalWindowManager.cs: Reset the restore captions when a
8033         window goes from Maximized to Minimized and vice versa. Move the
8034         DrawMaximizedButtons into the MdiWindowManager source, tool
8035         windows can't be maximized. NOTE: This could use a little
8036         refactoring if time ever permits.
8037         
8038 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8039
8040         * TextBox.cs: Add MWFCategoryAttributes
8041         * TextBoxBase.cs: Add MWFCategoryAttributes
8042         * Form.cs: Add MWFCategoryAttributes
8043
8044 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
8045
8046         * Control.cs: Add MWFCategoryAttributes
8047         * ScrollableControl.cs: Add MWFCategoryAttributes
8048
8049 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
8050
8051         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
8052           Divider is true. Fix a little glitch in PropertyToolBar
8053           drawing code
8054
8055 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
8056
8057         * Control.cs:
8058           - Dispose: Call base.Dispose, this causes the disposed event
8059             to be fired (and probably other, more important stuff)
8060           - SetVisibleCore: Set is_visible to true after creating the
8061             window so that the window still gets created invisible (if
8062             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
8063             to generate a WM_ACTIVE message
8064         * Form.cs: Call Dispose when we want to destroy the window, instead of
8065           just destroying the handle (Dispose will do that for us)
8066         * XplatUIX11.cs:
8067           - RootWindow also needs a queue, so we can properly process the
8068             property change events from RootWindow (like Activate)
8069           - Generatic synthetic WM_ACTIVE message when the active window is
8070             being destroyed
8071
8072 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8073
8074         * LinkLabel.cs: Trigger a recalc of our label dimensions when
8075           bounds are changed
8076
8077 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
8078
8079         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
8080           for determining width and height (image might not be assigned if
8081           we're drawing an imagelist)
8082
8083 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
8084
8085         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
8086         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
8087           height from system
8088         * Theme.cs: No longer returns hardcoded menu height, instead calls
8089           new driver method
8090         * Form.cs (OnLoad): Scaling happens before triggering Load events 
8091           on MS (# 78257)
8092
8093 2006-05-01  Mike Kestner  <mkestner@novell.com>
8094
8095         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
8096
8097 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
8098
8099         * TextBoxBase.cs: Removed Fixme
8100         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
8101
8102 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
8103
8104         * XplatUIX11.cs:
8105           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
8106             the rectangle relative to the parent, considering borders. We
8107             don't really want that.
8108           - ScrollWindow: Fixed warning to be more understandable
8109         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
8110           scrollbars and scroll only the visible area
8111         * RichTextBox.cs: Removed debug output
8112
8113 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8114
8115         * NumericUpDown.cs (Text): Just use base
8116         * UpDownBase.cs: Ensure txtView is created before using it
8117
8118 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8119
8120         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
8121           casting to IntPtr to avoid 64bit overflow errors
8122
8123 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8124
8125         * Control.cs:
8126           - AllowDrop: Don't force handle creation.
8127           - CreateHandle: Added call to tell driver if we're allowed to drop
8128
8129 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8130
8131         * FileDialog.cs: Remember the last directory not only for the
8132           current instance but also for new FileDialog instances.
8133
8134 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8135         
8136         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
8137           broke sending async messages
8138
8139 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8140
8141         * XplatUIX11.cs:
8142           - ScrollWindow: Fixed method. We finally generate expose events again
8143             for scrolled areas. This was causing 'garbage' when scrolling
8144             textbox and other controls that used ScrollWindow
8145           - Switched from using the regular queue for paint events to the MS 
8146             model of 'generating' paint events when the queue is empty.
8147             We use the new XQueueEvent.Paint subclass to store which windows
8148             need painting.
8149           - AddExpose now takes the x/y/width/height of the exposed area
8150             and inserts the window into the paint queue if not already there
8151           - InvalidateWholeWindow: Switched to use new AddExpose method
8152           - UpdateMessageQueue: Added which queue to monitor for paint events
8153           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
8154             the unlikely case nothing above handles it. We reset the expose
8155             pending states to get them off the queue.
8156           - GetMessage: Now pulls a paint event if no other events are in the
8157             queue
8158           - Invalidate: Switched to new AddExpose method
8159           - PeekMessage: Updated to understand pending paint events
8160           - UpdateWindow: Fixed logic bug. We were only updating if the window
8161             didn't need updating. Also switched to sending WM_PAINT directly,
8162             like MS does.
8163         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
8164           and random access Remove(). The random access is needed to handle
8165           UpdateWindow() where a WM_PAINT is sent directly without accessing
8166           the queue.
8167         * ScrollBar.cs: Added Update() calls to cause immediate updates to
8168           allow for better feedback when scrolling. Scrollbars are small and
8169           the immediate update should make it 'feel' more responsive without
8170           slowing things down. ScrollBar still needs it's invaliate logic
8171           updated to not always invalidate the whole bar on certain changes.
8172
8173 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8174
8175         * Control.cs:
8176         (BackColor): if the control does not support a transparent background,
8177         return the default backcolor when the parent backcolor is transparent.
8178
8179 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
8180
8181         * Application.cs: Updated to new StartLoop/GetMessage API
8182         * RichTextBox.cs: Provide some output on RTF parsing errors
8183         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
8184           new queue_id argument to GetMessage and PeekMessage to allow faster
8185           handling of per-thread queues in drivers.
8186         * Hwnd.cs: Added Queue tracking and property
8187         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
8188         * XEventQueue.cs: Added thread trackingA
8189         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
8190         * XplatUIX11.cs:
8191           - Implemented new per-thread queue
8192           - GetMessage: Fixed return/break behaviour on several cases. We were
8193             returning stale messages in some cases, instead of just processing
8194             the next message
8195
8196 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8197
8198         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
8199
8200 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
8201
8202         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
8203           fixed off-by-one comparisons between Width/Height and Right/Bottom.
8204
8205 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8206
8207         * PropertyGridView.cs: Fix drop down width.
8208
8209 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8210
8211         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
8212           a mess in DrawToolBar, so I removed one of them.
8213
8214 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8215
8216         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
8217           needed (clip). Otherwise we get artifacts.
8218
8219 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8220
8221         * FixedSizeTextBox.cs: Added constructor to allow specifying which
8222           dimension is fixed
8223         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
8224           and switched FixedSizeTextBox to only be fixed vertical (#78116)
8225         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
8226           if it matches the scale base font (avoids unneeded scaling)
8227
8228 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8229
8230         * X11DesktopColors.cs: One gtk_init_check should be enough
8231
8232 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
8233
8234         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
8235           match MS behaviour
8236
8237 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8238
8239         * TextBoxBase.cs: 
8240           - Generate OnTextChanged for Backspace even if we're only deleting
8241             the current selection
8242           - When setting the Text property, only select all text if the
8243             control does not have focus when it is being set. Otherwise
8244             just place the cursor at the beginning of the control
8245
8246 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8247
8248         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
8249           Added a little helper to draw PropertyGrid ToolBar with a different
8250           border and a different BackColor.
8251         * PropertyGrid.cs: Some background parts didn't get painted with the
8252           correct background color. Added a class that helps us to draw the
8253           correct border for PropertyGridView and a class that helps us to
8254           draw ToolBars with a different backcolor
8255         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
8256
8257 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
8258
8259         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
8260         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
8261
8262 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8263
8264         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
8265           into the palette entries. Also, since we're working on a copy
8266           we needed to copy the palette back onto the bitmap.
8267         * Cursor.cs: Same fix as XplatUIWin32.cs.
8268
8269 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
8270
8271         * ImageListStreamer.cs: Need to read the var (or we're off)
8272
8273 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8274
8275         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
8276           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
8277           TextBoxBase.cs: Unused var fixes
8278         * AxHost.cs: Small 2.0 fix
8279         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
8280           as it seems that is what at least Metacity expects. This will make
8281           icons show up on 64bit platforms. We still have some 64bit size
8282           issues, though, since the startup app window size still won't match.
8283
8284 2006-04-25  Mike Kestner  <mkestner@novell.com>
8285
8286         * *.cs: cleanup newly reported exception var unused warnings.
8287
8288 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8289
8290         * ThemeWin32Classic.cs: Button image alignment now matches exactly
8291           ms
8292
8293 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8294
8295         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
8296           image. The image position is always the same, no matter if the
8297           button is pressed or not.
8298
8299 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8300
8301         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
8302           selection and set the correct filename for SaveFileDialog.
8303           Patch by Emery Conrad.
8304
8305 2006-04-24  Mike Kestner  <mkestner@novell.com>
8306
8307         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
8308         check for item.X outside the ClientRect instead of item.Y. Fixes
8309         #78151.
8310
8311 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8312
8313         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
8314         trust that value blindly and do some sanity check. Fixes bug #77814.
8315
8316 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8317
8318         * ImageListStreamer.cs: save the mask as a 1bpp image.
8319
8320 2006-04-21  Mike Kestner  <mkestner@novell.com>
8321
8322         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
8323         pass Checked and Indeterminate to the Theme Engine. Improve
8324         encapsulation with ListBox.
8325         * ListBox.cs: Keep a StringFormat instead of calculating it every item
8326         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
8327         nested types.  Move all CheckState functionality to CheckedListBox.
8328         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
8329         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
8330         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
8331         single base list. Fix scrollbar sizing and placement to mirror MS.
8332         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
8333         used.
8334         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
8335         for CheckedListBox by using new DrawItemState info.  Center the
8336         checkboxes on the items. Use new StringFormat property.
8337
8338 2006-04-18  Jackson Harper  <jackson@ximian.com>
8339
8340         * Form.cs: MdiChildren don't do default locations the same way as
8341         regular forms.  This prevents a crash when trying to position the
8342         mdi windows.
8343
8344 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
8345
8346         * PropertyGridTextBox.cs: Formatting, copyright
8347         * PropertiesTab.cs: Formatting
8348         * PropertyGrid.cs: Formatting
8349         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
8350           click toggling of values
8351           
8352 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
8353
8354         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
8355         * Control.cs (.ctor): verify_thread_handle is static, don't reset
8356           every time a control is created
8357         * Application.cs: Removed obsolete EnableRTLMirroring method
8358
8359 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
8360
8361         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
8362         SelectedIndex to -1. Fixes bug #78121.
8363
8364 2006-04-17  Jackson Harper  <jackson@ximian.com>
8365
8366         * Binding.cs: Handle null values for Current and BindingContext.
8367         This occurs when binding is a little delayed.
8368         * CurrencyManager.cs: return null for Current when there are no
8369         items in the list.
8370         - Hookup to the listchanged event on the DataView and update
8371         bindings when the list is changed.  This fixes late binding of
8372         controls.
8373
8374 2006-04-17  Jackson Harper  <jackson@ximian.com>
8375
8376         * X11Dnd.cs:
8377         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
8378         Ringenbach.
8379
8380 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
8381
8382         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
8383           place
8384         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
8385           with the correct ButtonState
8386
8387 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
8388
8389         * XplatUIX11.cs: Improved distinguishing between window types to
8390           tell the WM a type closer to what the app wants (Fixes #78107)
8391
8392 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8393
8394         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
8395           GrabHandle
8396
8397 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8398
8399         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
8400           drawing code to reflect the size grip changes
8401
8402 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8403
8404         * ImageListStreamer.cs: fix handling of the mask that follows the main
8405         bitmap when deserializing and serialize it properly. The generated mask
8406         should better be a 1bpp image, but I'll do that later.
8407
8408 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8409
8410         * FileDialog.cs: Show something in the DirComboBox on *nix if the
8411           path doesn't fit into some of our Current.Places
8412
8413 2006-04-13  Jackson Harper  <jackson@ximian.com>
8414
8415         * ComboBox.cs: Use borders instead of drawing our own decorations,
8416         try to obey correct rules for heights.
8417         * Theme.cs:
8418         * ThemeNice.cs:
8419         * ThemeClearLooks.cs:
8420         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
8421         this is now handled by borders.
8422         - Remove unused DrawListBoxDecorationSize method.
8423         
8424 2006-04-13  Mike Kestner  <mkestner@novell.com>
8425
8426         * MenuAPI.cs: null guarding for the disbled click check fixes crash
8427         reported by Alex.
8428
8429 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8430
8431         * ThemeWin32Classic.cs: 
8432           - Fixed CPDrawStringDisabled
8433           - Corrected drawing of disabled menu items
8434           - Fixed drawing of disabled radio buttons (bug #78095)
8435           - Draw check in a disabled CheckBox with color ControlDark 
8436
8437 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8438
8439         * Form.cs: Use the provided width when calculating the menu size;
8440           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
8441           and ClientSize.Width won't be updated yet
8442         * Application.cs: Use Visible instead of Show() to make form visible,
8443           this way we create the handle later and menusize is considered
8444
8445 2006-04-12  Mike Kestner  <mkestner@novell.com>
8446
8447         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
8448         reporting.
8449
8450 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8451
8452         * TextBox.cs: Implemented context menu
8453
8454 2006-04-12  Mike Kestner  <mkestner@novell.com>
8455
8456         * ListView.cs: implement box selection. fixes #77838.
8457         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
8458
8459 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8460
8461         * XplatUIX11.cs: Added setting of window type when transient window
8462           is created (metacity would move it otherwise)
8463         * X11Structs.cs: Added WINDOW_TYPE atoms
8464         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
8465           background (the control is Opaque but still wants transparent
8466           backgrounds)
8467
8468 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8469
8470         * Control.cs: Added OnPaintBackgroundInternal to allow controls
8471           that set Opaque but don't mean it (like all ButtonBase-derived
8472           controls) to still draw their background
8473         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
8474           the background
8475
8476 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8477
8478         * Control.cs (PaintControlBackground): Set the graphics object
8479           on our PaintEvent to null to prevent it from being disposed
8480           when the PaintEvent gets disposed
8481
8482 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
8483
8484         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
8485         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
8486
8487 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8488
8489         * Control.cs: 
8490           - Added transparency check to BackColor property. Transparent
8491             backgrounds are only allowed if the control styles permit it
8492           - Added recursive painting of parent control background and
8493             foreground if a control with a transparent backcolor is drawn
8494             (Thanks to Tim Ringenback for providing his 'hack' as a base
8495              for this patch) Fixes #77985 and #78026.
8496           - Added Opaque style check before calling OnPaintBackground, no
8497             need to draw the background if the control is opaque
8498           - Removed ControlAccessibleObject owner variable (inherited from
8499             base, no need to define again)
8500           - Added some documentation links explaining the drawing events
8501             and styles
8502
8503 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8504
8505         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
8506           that the affected control is the located at the left border of our
8507           parent (Fixes #77936)
8508
8509 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8510
8511         * TextBoxBase.cs: When rendering disabled or readonly controls,
8512           draw the background with 'Control' instead of 'Window' color as
8513           long as the user hasn't specifically set a color
8514
8515 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8516
8517         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
8518           since that won't be updated if the user types text (only if it's
8519           programatically set)
8520
8521 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8522
8523         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
8524           layout changes do to app-triggered resizes will have the proper
8525           display rectangle for layout
8526
8527 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
8528
8529         * ThemeWin32Classic.cs:
8530           - Make use of the SystemBrushes and SystemPens wherever possible
8531           - Corrected some highlight colors
8532           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
8533             drawing
8534         * Theme.cs: Added Empty field to CPColor struct
8535
8536 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8537
8538         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
8539           is displayed when calculating the display rectangle. Thanks to Mike
8540           for teaching me the err of my ways.
8541
8542 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
8543
8544         * ScrollableControl.cs:
8545           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
8546             (instead of 0,0) and we now return the real width/height instead of
8547             just the clientrectangle, adjusted for padding. The rectangle is
8548             now cached and created by the new CalculateDisplayRectangle method.
8549           - Created new CalculateDisplayRectange method, which basically does
8550             what get_DisplayRectangle() did originally, but now using the 
8551             right edge instead of DisplayRectangle to determine the size of
8552             our scrollbars
8553           - get_Canvas(): Fixed it to properly calculate canvas for 
8554             right/bottom controls which seem to be placed to the right/bottom
8555             of any controls that have a fixed location
8556           - Removed TODO that's taken care of
8557           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
8558             and SetDisplayRectLocation according to new MSDN2 docs
8559           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
8560             event when that is called, this is added for compatibility
8561           - ScrollControlIntoView(): Implemented.
8562           - Switched scrollbars to be implicit, they shouldn't be selectable
8563         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
8564           call it when the active control is set/changed
8565         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
8566         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
8567           implicit_control variable (used for native Win32 message generation)
8568         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
8569           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
8570         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
8571         * XplatUIStructs.cs: Added ScrollBarCommands enum
8572
8573 2006-04-10  Jackson Harper  <jackson@ximian.com>
8574
8575         * ButtonBase.cs:
8576         * CheckedListBox.cs:
8577         * ComboBox.cs:
8578         * DataGrid.cs:
8579         * DataGridView.cs:
8580         * Form.cs:
8581         * GroupBox.cs:
8582         * ListBox.cs:
8583         * PrintPreviewControl.cs:
8584         * ProgressBar.cs:
8585         * PropertyGrid.cs:
8586         * Splitter.cs:
8587         * StatusBar.cs:
8588         * TrackBar.cs:
8589         * UpDownBase.cs: Fixup base event overrides.
8590         
8591 2006-04-06  Mike Kestner  <mkestner@novell.com>
8592
8593         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
8594         all user-initiated value changes to min <= value <= max-thumbsz+1.
8595         (set_Value): check for vert/horiz when calculating new thumb position.
8596         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
8597         like MS does.
8598         (OnMouseMoveSB): refactor the thumb dragging code and refine
8599         invalidation logic to reduce flicker.
8600         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
8601         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
8602         (UpdateThumbPosition): small code readability cleanup
8603
8604 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
8605
8606         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
8607           different
8608
8609 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8610
8611         * ThemeNice.cs: Use a better graphics effect when a button is pressed
8612
8613 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8614
8615         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
8616         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
8617           This dramatically reduces the number of Pen.Dispose calls. 
8618           Where possible call ResPool methods only once instead of calling it
8619           over and over again (for example for the same color).
8620
8621 2006-04-06  Mike Kestner  <mkestner@novell.com>
8622
8623         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
8624         Also remove an unused private field on the collection. Fixes #77972.
8625
8626 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8627
8628         * ThemeNice.cs: Added ToolBar drawing code
8629
8630 2006-04-06  Mike Kestner  <mkestner@novell.com>
8631
8632         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
8633         I'm assuming that means we need to look up the toplevel for the
8634         provided control. Fixes the crash trace in #77911 but exposes another
8635         crash in some strange reflection usage in NDocGui.
8636
8637 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8638
8639         * ThemeNice.cs: Gave it a little silver touch and added Images
8640           method
8641         * FontDialog.cs: FontDialog is not resizable
8642         * FileDialg.cs: Added SizeGripStyle.Show
8643
8644 2006-04-05  Jackson Harper  <jackson@ximian.com>
8645
8646         * KeyboardLayouts.cs: Remove warning.
8647
8648 2006-04-05  Jackson Harper  <jackson@ximian.com>
8649
8650         * Control.cs: Enable OnPaintInternal so we can use it for drawing
8651         all of our controls instead of Paint +=.
8652         * ListBox.cs:
8653         * ListView.cs:
8654         * MenuAPI.cs:
8655         * MessageBox.cs:
8656         * NotifyIcon.cs:
8657         * ProgressBar.cs:
8658         * ScrollBar.cs:
8659         * Splitter.cs:
8660         * StatusBar.cs:
8661         * TabControl.cs:
8662         * TextBoxBase.cs:
8663         * ToolBar.cs:
8664         * TrackBar.cs:
8665         * UpDownBase.cs:
8666         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
8667         use OnPaintInternal. Remove Width/Height and Visible checks in
8668         paint handler, this is done at a higher level now.
8669         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
8670         * PaintEventArgs.cs: Add a handled flag so controls that don't
8671         want anymore painting after OnPaintInternal can make sure OnPaint
8672         isn't called.
8673
8674 2006-04-05  Mike Kestner  <mkestner@novell.com>
8675
8676         * Form.cs: fix the menu WndProc hacks to respect the native enabled
8677         state of the form, so that we don't process events when Modal dialogs
8678         are up. Fixes #77922.
8679
8680 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
8681
8682         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
8683           checking is done.
8684
8685 2006-04-05  Mike Kestner  <mkestner@novell.com>
8686
8687         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
8688
8689 2006-04-05  Mike Kestner  <mkestner@novell.com>
8690
8691         * ListView.cs (HeaderMouseMove): null guarding for the over column
8692         when setting up the drag_to_index.  Fixes #78015.
8693
8694 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
8695
8696         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
8697           in the taskbar. Transient windows seem to accomplish that.
8698
8699 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
8700
8701         * Form.cs:
8702           - Re-enabled CreateParams.X/Y code for FormStartPosition
8703           - Added code for manual placement when creating the Control
8704           - Incomplete patch to treat MDI forms differently when
8705             setting the ClientSizeCore. (Still need to figure out handling
8706             x/y coords there)
8707         * XplatUIX11.cs:
8708           - When we're explicitly setting the X/Y position of a non-Child
8709             window, let the WM know. Metacity really wants this.
8710
8711 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8712
8713         * ThemeNice.cs: Added CPDrawButton
8714
8715 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8716
8717         * ThemeNice.cs: Changed the color for focused buttons and activated
8718           the arrows for small scroll buttons.
8719
8720 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8721
8722         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
8723           anymore. Changed some method modifiers to protected (virtual)
8724         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
8725           changes
8726         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
8727           Updated drawing of menus, buttons and progressbars; added
8728           CPDrawBorder3D 
8729
8730 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8731
8732         * ImageListStreamer.cs: implemented serialization/deserialization
8733         of the images.
8734
8735 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
8736
8737         * ThemeWin32Classic.cs:
8738           - Removed all the DrawFrameControl stuff; CPDrawButton,
8739             CPDrawCheckBox and CPDrawRadioButton are now handled directly
8740             inside the methods
8741           - Updated and corrected the drawing code of CPDrawButton,
8742             CPDrawCheckBox and CPDrawRadioButton to better match ms
8743           - Updated theme checkbox and radiobutton code to use the CP*
8744             methods
8745
8746 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8747
8748         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
8749           bug is fixed
8750
8751 2006-03-31  Jackson Harper  <jackson@ximian.com>
8752
8753         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
8754         sometimes.
8755         * UpDownBase.cs: Don't CreateGraphics manually, use a
8756         Refresh. Ideally we would invalidate the correct areas here.
8757
8758 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8759
8760         * XplatUIX11.cs: 
8761           - We now track the mapping state of windows. If a window (or 
8762             one of it's parents) is not mapped we no longer permit
8763             WM_PAINT messages to be generated since we'd otherwise get 
8764             lots of BadMatch X errors. Jackson did all the work figuring
8765             out the problem.
8766           - Destroying the caret if the window it's contained in is 
8767             destroyed. Can't use regular DestroyCaret method since it
8768             might fall into a drawing function (trying to remove the
8769             caret) and with that generate new BadMatch errors. Again,
8770             Jackson tracked this down.
8771           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
8772             make sure we send the messages to all windows. (The old code
8773             would send the WM_DESTROY to the window, and then all child
8774             windows would be 'gone' because the WM_DESTROY handle lookup
8775             would no longer find the destroyed window)
8776         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
8777         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
8778
8779 2006-03-31  Jackson Harper  <jackson@ximian.com>
8780
8781         * ScrollableControl.cs: Dont recalc if we are not visible.
8782
8783 2006-03-31  Mike Kestner  <mkestner@novell.com>
8784
8785         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
8786         the visibility branch.
8787
8788 2006-03-31  Jackson Harper  <jackson@ximian.com>
8789
8790         * ScrollBar.cs: Cap values when incrementing/decrementing.
8791
8792 2006-03-31  Mike Kestner  <mkestner@novell.com>
8793
8794         * MenuAPI.cs: setup menu.tracker for popup/context menus.
8795         * ToolTip.cs: guard against timer expirations with no active control.
8796         Not sure why it happened.
8797
8798 2006-03-31  Mike Kestner  <mkestner@novell.com>
8799
8800         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
8801         text.
8802         * ToolTip.cs: Position the tooltip based on where the cursor is at
8803         popup time, not at MouseEnter time.  Add a Down state so that we don't
8804         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
8805         positioning offset. Lookup DisplaySize at positioning time, since it
8806         can theoretically change during invocation.
8807         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
8808         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
8809
8810 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8811
8812         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
8813           Fixes behaviour when the Text property of the box is String.Empty
8814
8815 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
8816
8817         * XplatUIX11.cs: Only send mouseleave for our client windows, not
8818           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
8819           a window)
8820
8821 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8822
8823         * FileDialog.cs: Visual enhancement for the popup buttons in 
8824           PopupButtonPanel
8825
8826 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8827
8828         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
8829           code
8830
8831 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
8832
8833         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
8834           highlighted menu items to match ms
8835
8836 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
8837
8838         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
8839
8840 2006-03-30  Mike Kestner  <mkestner@novell.com>
8841
8842         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
8843         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
8844         go active to account for HotLight to Selected transition.
8845         * MenuItem.cs: add internal Selected prop. Fill out the Status
8846         property by calculating it from item info. Add HotLight,
8847         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
8848
8849 2006-03-30  Mike Kestner  <mkestner@novell.com>
8850
8851         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
8852
8853 2006-03-29  Jackson Harper  <jackson@ximian.com>
8854
8855         * Form.cs: Implement TODO.
8856
8857 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
8858
8859         * PrintPreviewDialog.cs: Implemented missing methods and events; still
8860           missing proper dialog setup in the constructor
8861
8862 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
8863
8864         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
8865         * Control.cs:
8866           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
8867           - Fixed ResetBindings and removed TODO
8868           - Added check for cross-thread calls to get_Handle()
8869           - Added Marshaller attribute for set_Font to satisfy class status
8870         * FontDialog.cs: Removed TODOs that seemed implemented
8871         * UpDownBase.cs: Removed unneeded TODO and Fixme
8872         * MessageBox.cs: Implemented support for Default button and removed TODO
8873         * FileDialog.cs: Removed obsolete TODO
8874         * DomainUpDown.cs: Removed obsolete TODO
8875         * ButtonBase.cs: Removed obsolete TODO
8876         * XplatUIWin32.cs: Removed obsolete TODO
8877         * Form.cs:
8878           - Removed obsolete TODO
8879           - Calling CheckAcceptButton when the acceptbutton is changed to allow
8880             internal status updates
8881           - Making sure the active control is selected when the control is created
8882         * CurrencyManager.cs: Removed obsolete TODO
8883
8884 2006-03-29  Mike Kestner  <mkestner@novell.com>
8885
8886         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
8887         of PrintPreviewDialog and RichTextBox.
8888
8889 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8890
8891         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
8892           DarkDark, Light and LightLight colors for a specific color
8893         * ThemeWin32Classic.cs:
8894           - Use Button drawing code to draw RadioButtons and CheckBoxes with
8895             Appearance = Button 
8896           - Make use of the new ResPool helper CPColor
8897           - Draw ProgressBar and StatusBar with correct 3D borders
8898
8899 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8900
8901         * ColorDialog.cs: Return selected color. Fixes bug #77940.
8902
8903 2006-03-28  Mike Kestner  <mkestner@novell.com>
8904
8905         * ListView.cs: fix Icon layout to plan for scrollbar widths when
8906         calculating col/row counts.
8907
8908 2006-03-28  Mike Kestner  <mkestner@novell.com>
8909
8910         * ColumnHeader.cs:
8911         * ListView.cs:
8912         * ListViewItem.cs:
8913         * Menu.cs: 
8914         switch to explicit interface method implementation for some methods
8915         corcompare identifies as inconsistent with MS.
8916
8917 2006-03-28  Mike Kestner  <mkestner@novell.com>
8918
8919         * MainMenu.cs: 
8920         * Menu.cs:
8921         add a few missing methods from the class status output.
8922
8923 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
8924
8925         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
8926           correct.
8927
8928 2006-03-28  Mike Kestner  <mkestner@novell.com>
8929
8930         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
8931
8932 2006-03-27  Mike Kestner  <mkestner@novell.com>
8933
8934         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
8935         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
8936
8937 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
8938
8939         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
8940
8941 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8942
8943         * ThemeWin32Classic.cs:
8944           - GroupBox: Inserted a little gap between the text and the lines
8945             on the right side
8946           - Made the code in CPDrawBorder3D more readable
8947           - Corrected the drawing location of the up and down arrows in 
8948             CPDrawScrollButton
8949
8950 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8951
8952         * ControlPaint.cs: Corrected line widths in DrawBorder for
8953           ButtonBorderStyle Inset and Outset
8954
8955 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8956
8957         * ThemeWin32Classic.cs:
8958           - Rewrote the totally broken CPDrawBorder3D method. That was
8959             one of the main problems for the terrific ThemeWin32Classic
8960             look
8961           - Updated and corrected Button drawing
8962           - Correct the dimensions of the SizeGrip to match ms ones
8963           - Removed a small drawing glitch in DrawComboBoxEditDecorations
8964         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
8965           Border3DStyle.Sunken to match ms.
8966
8967 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8968
8969         * ThemeWin32Classic.cs: First small part of the "de-uglify
8970           ThemeWin32Classic" effort, SizeGrip
8971
8972 2006-03-24  Jackson Harper  <jackson@ximian.com>
8973
8974         * XplatUIX11.cs: Give a max idle time of one second, this matches
8975         MS and forces an Idle event every second when there are no other
8976         events in the queue.
8977
8978 2006-03-24  Mike Kestner  <mkestner@novell.com>
8979
8980         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
8981         * ListView.Item.cs: fix layout issues with null image lists and images
8982         smaller than checkbox size.
8983         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
8984         mode like MS does.  It's weird, but consistent.  ;-)
8985         Fixes #77890.
8986
8987 2006-03-24  Mike Kestner  <mkestner@novell.com>
8988
8989         * ListView.cs: Scroll wheel support for the item control.  Fixes
8990         #77839.
8991
8992 2006-03-23  Jackson Harper  <jackson@ximian.com>
8993
8994         * ScrollableControl.cs: Special case negative sized areas, not
8995         zero.
8996         * MonthCalendar.cs: Save the rect of the clicked date so we can
8997         use it for invalidation.
8998         - Try to cut down on the number of invalidates
8999         - Invalidate the rect the mouse is over and was over when moving
9000         the mouse, so we get the focus box following the cursor.
9001
9002 2006-03-23  Mike Kestner  <mkestner@novell.com>
9003
9004         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
9005         focus rectangle drawing. Fixes #77835.
9006
9007 2006-03-23  Mike Kestner  <mkestner@novell.com>
9008
9009         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
9010         the if and else if and reverting back to the original == check on the
9011         None conditional.
9012
9013 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9014
9015         * FontDialog.cs: Update the example panel if the selected index of
9016           the fontListBox changes.
9017
9018 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
9019
9020         * FileDialog.cs: Make FileDialog remember which directory it was in
9021           last in the same execution.
9022
9023 2006-03-22  Mike Kestner  <mkestner@novell.com>
9024
9025         * FileDialog.cs: make the DropDownMenu on the toolbar display
9026         RadioChecks since they are mutually exclusive and that's what MS does.
9027
9028 2006-03-22  Mike Kestner  <mkestner@novell.com>
9029
9030         * Theme.cs: add Color param to CPDrawMenuGlyph.
9031         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
9032         checks and radio marks and arrows are visible on highlighted items.
9033         * ControlPaint.cs: update to use new Theme signature.
9034
9035 2006-03-22  Mike Kestner  <mkestner@novell.com>
9036
9037         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
9038         is active. Fixes #77870.
9039
9040 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9041
9042         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
9043           to be focused/selected after startup
9044
9045 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
9046
9047         * ColorDialog.cs: 
9048           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
9049             CustomColors and ShowHelp properties
9050           - Some internal rewrites to get better results when using the
9051             ColorMatrix
9052
9053 2006-03-22  Mike Kestner  <mkestner@novell.com>
9054
9055         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
9056         HoverSelection.  Fixes #77836.
9057
9058 2006-03-22  Mike Kestner  <mkestner@novell.com>
9059
9060         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
9061         ToggleButtons.  (De)Sensitize the Back button around a stack count of
9062         1, not 0.  Update ButtonSize based on a pixel count of the win32
9063         control.  Adjust the toolbar size/location for new button size.
9064
9065 2006-03-22  Jackson Harper  <jackson@ximian.com>
9066
9067         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
9068         true.
9069         * ScrollBar.cs: When doing increments and decrements we need to
9070         set the Value property so that ValueChanged gets raised. A
9071         possible optimization here would be to make an internal SetValue
9072         that doesn't invalidate immediately.
9073         * ToolTip.cs: Tooltips get added to their container (when
9074         supplied) so they get disposed when the container is disposed.
9075         - Don't create tooltips for String.Empty. This prevents all these
9076         little 2-3 pixel windows from showing up when running nunit-gui
9077         and driving me mad.
9078         * Form.cs: Don't set topmost when setting the owner if the handles
9079         haven't been created yet.  The topmost set will happen when the
9080         handles are created.
9081
9082 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
9083
9084         * XplatUIX11.cs:
9085           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
9086           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
9087             visible (to allow them to recalculate their sizes)
9088
9089 2006-03-21  Mike Kestner  <mkestner@novell.com>
9090
9091         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
9092         methods. Removed a ton of redundant code.  Still not really happy with
9093         the border rendering, but I think that's mainly because of the
9094         ControlDarkDark being black instead of a dark grey. Depending on how 
9095         close we want to be, we might want to revisit those color choices.
9096         Among the new features added during the refactor were DropDownArrow
9097         pressed rendering, Disabled image rendering.  Proper flat appearance
9098         boundary rendering.  Removed the Divider and Wrapping dividers since I
9099         can't figure out any combination of themes and conditions to make the
9100         MS control draw a horizontal line on a toolbar despite what the
9101         Divider property docs indicate.
9102         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
9103         conditions and incorrect layout.  Updated to coding standard.
9104         * ToolBarButton.cs: refactored layout and positioning code from
9105         ToolBar to here.  Invalidate wherever possible instead of forcing
9106         redraws of the whole toolbar. 
9107         (Known remaining issues: explicit ButtonSize smaller than provided
9108         images.)
9109
9110 2006-03-21  Mike Kestner  <mkestner@novell.com>
9111
9112         * ContextMenu.cs (Show): use the position parameter instead of just
9113         showing at the MousePosition.
9114
9115 2006-03-21  Jackson Harper  <jackson@ximian.com>
9116
9117         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
9118         control handle this.
9119         * TreeNodeCollection.cs: If we are clearing the root node we need
9120         to reset top_node so calcs can still happen.
9121         * ThemeWin32Classic.cs: This is a Flags so we need to check
9122         properly.
9123         
9124 2006-03-21  Jackson Harper  <jackson@ximian.com>
9125
9126         * DataGrid.cs: Create columns when the binding context has been
9127         changed.
9128         * X11Structs.cs: Keysyms are uints.
9129         - Add size to fix build.
9130
9131 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
9132
9133         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9134           XplatUIOSX.cs: 
9135           - Added ResetMouseHover method to allow controls to retrigger
9136             hovering if they need it more than once
9137           - Implemented MouseHoverTime and MouseHoverSize properties
9138         * Timer.cs: Start() must reset the interval
9139         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
9140           properties
9141
9142 2006-03-21  Jackson Harper  <jackson@ximian.com>
9143
9144         * X11Keyboard.cs: improved layout detection. Move the nonchar
9145         tables into this file.
9146         * KeyboardLayouts.cs: Move the tables into resource files.
9147
9148 2006-03-21  Mike Kestner  <mkestner@novell.com>
9149
9150         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
9151
9152 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
9153
9154         * Mime.cs: Various speed optimizations. Looking up mime types
9155           is now 2 times faster than before
9156
9157 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
9158
9159         * CreateParams.cs: Added internal menu field
9160         * Control.cs: 
9161           - Switched call order for UpdateBounds; now we always call
9162             the one that also takes ClientSize, and we're calculating the 
9163             client size via driver method in the others. The previous
9164             method of tracking client size by difference wasn't working
9165             for forms where even the starting client size wouldn't match
9166             the overall form size (due to borders) (Part of fix for #77729)
9167           - CreateParams(): Do not use parent.Handle unless the handle is
9168             already created. Causes havoc with Nexxia and throws off our
9169             creation of controls
9170         * XplatUIX11.cs:
9171           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
9172           - Switched handling of ConfigureNotify over to new PerformNCCalc 
9173             method (consolidates code)
9174           - Changed RequestNCRecalc to use new PerformNCCalc method
9175           - Added calls to RequestNCRecalc when menus and borders are changed
9176             to allow app to set NC size. (Part of fix for #77729) This matches
9177             when MS send a WM_NCRECALC on Win32 windows.
9178           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
9179             (Part of fix for #77729). This matches what MS does, they also
9180             send that message when the form is made visible.
9181           - XException.GetMessage: Improved usability of X errors by including
9182             a translation of the window into Hwnd and Control class
9183           - Improved debug info for window creation, reparenting and destruction
9184           - Created helper method WindowIsMapped() [Currently not used]
9185         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
9186         * Form.cs:
9187           - CreateParams: Now setting our menu on the new internal menu field
9188           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
9189             avoid calculating the same property twice
9190         * Hwnd.cs:
9191           - Improved usability of ToString() for debugging purposes
9192           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
9193             determine the height of the menu, instead of just the font. This
9194             required to also create a graphics context and to keep a bmp 
9195             around (for performance reasons)
9196
9197 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
9198
9199         * MenuAPI.cs: Added OnMouseUp method
9200         * Form.cs:
9201           - Now remembering the requested client size, avoids size errors
9202           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
9203             instead of base if the menu is active. This is required due to
9204             control now capturing and releasing on down/up and it would
9205             prematurely release our menu capture
9206
9207 2006-03-17  Jackson Harper  <jackson@ximian.com>
9208
9209         * KeyboardLayouts.cs: Add the czech layouts.
9210
9211 2006-03-16  Jackson Harper  <jackson@ximian.com>
9212
9213         * Control.cs: Use the viewport space when sizing not the controls
9214         client size, so things like ScrollableControl that effect the
9215         viewport size (when scrollbars are added) are computed correctly.
9216         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
9217         of ManagerEntrys.
9218         - Handle creating BindingManagers for null data sources.
9219         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
9220         source, otherwise when rows are added they are added to the 'fake'
9221         datasource and we will crash when trying to set the position in
9222         those rows.
9223         - Use Implicit scrollbars on the datagrid so they arent
9224         selectable.
9225         
9226 2006-03-16  Jackson Harper  <jackson@ximian.com>
9227
9228         * Binding.cs:
9229         * InternalWindowManager.cs:
9230         * MdiWindowManager.cs:
9231         * X11Keyboard.cs: I really want Mike to love me again (fix
9232         compiler warnings).
9233
9234 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
9235
9236         * DataGrid.cs:
9237           - OnMouseDown: Switch to editing mode when clicking on the cell
9238                          even if we're clicking on the cell that's currently 
9239                          selected
9240           - ProcessGridKey: Left/Right now wrap like MS.Net does
9241           - ProcessGridKey: Tab now knows to add a new row when tab is
9242                             pressed in the cell of the last column of the 
9243                             last row
9244           - ProcessGridKey: Enter now adds another row  if pressed in the last
9245                             row and selectes the new row, same column cell
9246           - ProcessGridKey: Home/End navigate columns, not rows, like 
9247                             originally implemented
9248           - Broke ProcessKeyPreview code out into an extra Internal method
9249             so it can be called from the edit code
9250         * DataGridTextBox.cs (ProcessKeyMessage):
9251           - Switched to accept Tab keypresses
9252           - Added F2 handling to allow jumping to the end of the edited cell
9253           - Added logic to allow moving caret left/right inside edited cell
9254             and making the edited cell jump when the caret hits cell borders
9255           - Tab and Enter are now passed to the datagrid after being handled
9256         * TextBoxBase.cs:
9257           - Removed capture code now that Control handles it
9258           - set_SelectionStart now ensures caret is visible
9259
9260 2006-03-16  Jackson Harper  <jackson@ximian.com>
9261
9262         * TrackBar.cs: Debackwards the increment/decrement for handling
9263         mouse clicks on the bar with vertical trackbars.
9264         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
9265         bottom to match MS.
9266
9267 2006-03-16  Mike Kestner  <mkestner@novell.com>
9268
9269         * ListView.cs: make shift/ctrl keyboard and mouse selection 
9270         consistent with the MS control. Fix a bug in
9271         SelectedListViewItemCollection.Clear that was pissing me off for the
9272         better part of a day because the collection was being altered
9273         underneath us as we walked the list.
9274
9275 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
9276
9277         * Control.cs: Not sure how we could miss this so long, but it seems
9278           that MS.Net has Capture set all the way from before calling 
9279           OnMouseDown through sending the mouse events until after
9280           OnMouseUp. This will fix DataGrid's selection being set to end
9281           at the location of the MouseUp.
9282
9283 2006-03-15  Jackson Harper  <jackson@ximian.com>
9284
9285         * BindingContext.cs: Check the binding after its added so that it
9286           can initialize the binding managers and hookup to events.
9287         * Binding.cs: Data members seem to sometimes include rows/cols in
9288           the format Row.Column we now take this into account.
9289           - Hookup to the position changed event so we can update the
9290           control when the position has changed in the data set.
9291         * CurrencyManager.cs: Take into account the row/col naming
9292           convention when creating dataset tables.
9293         * BindingContext.cs: Using a newer better way of storing
9294           datasource/datamember pairs.  Hopefully this better matches MS for
9295           looking up binding managers.
9296
9297
9298 2006-03-15  Jackson Harper  <jackson@ximian.com>
9299
9300         * BindingContext.cs: The currency manager needs the data member
9301         name, if the member is a data set we use the name to find the
9302         correct table.
9303         * CurrencyManager.cs: When creating the list prefer an IList over
9304         an IListSource.
9305         - Attempt to create a DataTable from a DataSet (TODO: might need
9306         some better error checking here, although MS doesn't seem to have much)
9307         - If we have a DataTable create a view and use it as our list.
9308
9309 2006-03-15  Mike Kestner  <mkestner@novell.com>
9310
9311         * ListView.cs: keep a matrix of the icon mode layout to facilitate
9312         keyboard navigation. Support Up/Down/Left/Right selection correctly
9313         for all 4 View modes.
9314         * ListViewItem.cs: add internal row/col fields for icon layouts.
9315
9316 2006-03-15  Jackson Harper  <jackson@ximian.com>
9317
9318         * TabControl.cs: Redraw the tabs when we resize so their newly
9319         calculated sizes are drawn on screen.
9320         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
9321         composite characters.
9322         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
9323         - filter events so that composite characters can be created
9324         patches by peter
9325         * X11Structs.cs: Add XIMProperties enum.
9326
9327 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9328
9329         * Control.cs (BringToFront, SendToBack): Don't use window or handle
9330           unless it's created
9331
9332 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9333
9334         * Control.cs (PerformLayout): We don't need to consider visiblity
9335           for anchoring, only for docking. This fixes 'whacky' alignment
9336           in listbox and other controls that use implicit scrollbars after
9337           the previous PerformLayout patch
9338         * ListBox.cs: Switched to use implicit scrollbars
9339           
9340 2006-03-14  Mike Kestner  <mkestner@novell.com>
9341
9342         * ToolBar.cs: 
9343         * VScrollBar.cs:
9344         - chain up the "new event" overrides to base and use
9345         OnEvent to raise them.  Part of fix for bug #76509.
9346
9347 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
9348
9349         * FileDialog.cs: Do not select an item in the parent directory
9350           on backspace
9351
9352 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9353
9354         * Control.cs (PerformLayout): It would seem that we considered
9355           invisible windows for our layout. Not quite the right thing
9356           to do. Now we don't any longer, thereby fixing bug #76889.
9357
9358 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9359
9360         * Control.cs (CanFocus): I goofed. A control can have focus 
9361           even though it's not selectable. Made it match MS docs.
9362
9363 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9364
9365         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
9366           center by default (fixes #76895)
9367         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
9368           all uses of Border3DSides.All with the explicit ORd together
9369           Left|Right|Top|Bottom because I assume that nobody was aware 
9370           that All also implies a center fill. Most places I checked had
9371           a fill right above.
9372         * ProgressBarStyle.cs: Added
9373
9374 2006-03-13  Mike Kestner  <mkestner@novell.com>
9375
9376         * ListView.cs: fix breakage in drag shadow header positioning 
9377         from Peter's csc compilation fix.
9378
9379 2006-03-13  Mike Kestner  <mkestner@novell.com>
9380
9381         * ListView.cs: fix NRE produced by backspacing twice in a focused
9382         FileDialog.
9383
9384 2006-03-13  Mike Kestner  <mkestner@novell.com>
9385
9386         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
9387
9388 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9389
9390         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
9391           be changed
9392         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
9393           the allowed size before making programmatic size changes
9394
9395 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
9396
9397         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
9398           set, metacity is broken and will still use the emty sizes in 
9399           the struct. (Fix for #77089)
9400
9401 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9402
9403         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
9404           WindowExStyles and marked both enums as Flags
9405         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
9406           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
9407           to match WindowStyles split
9408         * XplatUIX11.cs:
9409           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
9410           - Updated to match WindowStyles split
9411         * XplatUIWin32.cs:
9412           - Fixed FosterParent creation, was using ExStyle on the Style field
9413             (This should help with Popup focus issues)
9414           - Updated to match WindowStyles split
9415
9416 2006-03-13  Jackson Harper  <jackson@ximian.com>
9417
9418         * MdiWindowManager.cs: Use the system menu height. Fixes some
9419         strange sizing issues.
9420
9421 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9422
9423         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
9424         * TextBoxBase.cs:
9425           - Scroll to caret after inserting text (#77672)
9426           - Make scroll range one pixel higher, fixes off-by-one error (and
9427             makes underlines visible on the last line)
9428
9429 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
9430
9431         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
9432           the keyboard state from being stuck with keys in 'pressed' state when
9433           focus is switched away via keyboard
9434         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
9435           reset the keyboard if no X11 KeyUp events are expected to come
9436         * X11Structs.cs: Switched type of Visible to bool to match driver
9437
9438 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9439
9440         * TextControl.cs:
9441           - Switched caret to be just 1 pixel wide, matches MS and looks less
9442             clunky
9443           - Moved caret display 1 pixel down from the top of the control
9444             to improve view
9445           - InsertCharAtCharet: Update the selection start if moving the caret
9446             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
9447           - No longer always creating the caret when the caret methods are
9448             called. Only the actual ShowCaret/HideCaret will do that now
9449           - Only setting caret visible if the owner control has focus
9450           - UpdateView: Added invalidation-shortcut logic for center and right 
9451             aligned text. Previously we'd update all according to the left
9452             logic which caused drawing errors. Also fixed height of invalidated
9453             areas, now properly invalidating the whole area (was off-by-one)
9454           - owner_HandleCreated: Always generate the document when the
9455             handle is created; this ensures that 
9456         * TextBoxBase.cs:
9457           - Fixed situation where caret would disappear under the right
9458             window border, also improved scrolling behaviour on left-
9459             aligned textboxes
9460           - Fixed right-aligned textboxes to have a border to the
9461             right instead of the caret being under the right border
9462         * XplatUIX11.cs:
9463           - Switched from 'nested' to simple visible/not visible tracking 
9464             for caret (part of fix for #77671)
9465           - No longer passing through translated FocusIn/FocusOut messages
9466             since we were notifying too often and the wrong windows. Instead
9467             we just notify our focussed window of receiving or loosing focus
9468         * XplatUIWin32.cs: Switched from 'nested' show/hide 
9469           counting for caret to simple visible yes/no behaviour (part of 
9470           fix for #77671)
9471
9472 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9473
9474         * Mime.cs: Remove debug code...
9475
9476 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9477
9478         * MimeGenerated.cs: Removed
9479         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
9480           and subclasses) from /usr/(local/)share/mime and
9481           $HOME/.local/share/mime.
9482
9483 2006-03-10  Jackson Harper  <jackson@ximian.com>
9484
9485         * MdiWindowManager.cs: Recalc the NC area when a window is
9486         maximized/restored so that the menu area is drawn on forms that
9487         don't have a menu.
9488
9489 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9490
9491         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9492           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
9493           us to force a WM_NCCALCRESIZE message being sent. This is needed
9494           for MDI maximizing.
9495
9496 2006-03-10  Jackson Harper  <jackson@ximian.com>
9497
9498         * Form.cs: We need to use the ActiveMenu when calculating menu
9499         height.
9500         - Fix nullref when the window manager hasn't been created yet.
9501         * Control.cs: Fix nullref when we try to bring a control to the
9502         front that has no parent.
9503         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
9504         height.
9505         - Add a dummy item to the maximized menu so it always has the
9506         correct height. Otherwise when there are no menus we don't get our
9507         icon and buttons.
9508         
9509
9510 2006-03-10  Jackson Harper  <jackson@ximian.com>
9511
9512         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
9513         stuff.
9514         * Form.cs: Make the window_state internal so the window managers
9515         can track it.
9516         - When an MDI child is maximized let its window manager create the
9517         main menu (so it can add its icon).
9518         - Notify the window managers of state changes
9519         - Let the window manager paint its buttons and handle button
9520         clicks on the menu when it is maximized.
9521         * InternalWindowManager.cs: Move the prev_bounds into the mdi
9522         window manager, since tool windows don't use it, only mdi windows.
9523         - Tell the main form that we don't want it to handle NCPAINT
9524         itself to avoid extra painting.
9525         - Handle clicks on a maximized windows menu.
9526         - Handle window state changes
9527         - Handle minimize/maximize clicks correctly by setting the window state.
9528         * MdiWindowManager.cs: Add an icon menu that (the menu you get
9529         when clicking on the forms icon).
9530         - New method to create a forms maximized menu. This is its normal
9531         menu + an icon.
9532         - Handle window state changes.
9533         - Handle sizing of maximized windows.  Maximized windows are just
9534         drawn bigger then the parent visible area. All controls are still
9535         there, they are just outside the visible area (this matches windows).
9536         * MdiClient.cs: No scrollbars when a child window is maximized.
9537         - Let the children windows figure out how big they should be when
9538         sizing maximized windows.
9539         - Implement a version of ArrangeIconicWindows somewhat similar to
9540         Windows version.  There are some little differences, but I don't
9541         think any app will rely on the layout of minimized mdi windows.
9542
9543 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9544
9545         * Padding.cs: Several fixes to allow compiling with csc 2.0
9546
9547 2006-03-09  Jackson Harper  <jackson@ximian.com>
9548
9549         * Menu.cs:
9550         * MenuItem.cs: Cheap hack so we can add items to the list without
9551         the events being raised.  This allows adding mdi items during
9552         drawing. TODO: Should probably find a better time to add the items.
9553
9554 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9555
9556         * ThemeWin32Classic.cs:
9557           - CheckBox_DrawText: Added logic to not wrap if not enough space
9558             is available (Fix for bug #77727)
9559           - RadioButton_DrawText: Added logic not to wrap if not enough
9560             space is available (Fix for bug #77727). Also removed some
9561             duplicate code, DrawString always drawing the regular text
9562             before hitting the if statement.
9563
9564 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
9565
9566         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
9567
9568 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9569
9570         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
9571         * ContainerControl.cs: Partial implementation of some 2.0 scaling
9572           methods. Moved the new 2.0 properties into alphabetical order with
9573           other properties and added MonoTODO tags
9574
9575 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9576
9577         * AutoScaleMode.cs: Added. Fix build.
9578
9579 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9580
9581         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9582           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
9583           and was requiring premature handle creation for calls from above
9584         * Form.cs, Control.cs: Removed handle arguments from calls to
9585           CalculateClientRect()
9586
9587 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9588
9589         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
9590           drag_column.column_rect is MarshalByRef and can't be used that way
9591
9592 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9593
9594         * AxHost.cs: Added deserialization constructor for 
9595           AxHost+State (fixes 77743)
9596
9597 2006-03-09  Mike Kestner  <mkestner@novell.com>
9598
9599         * ListView.cs: 
9600         - Added column drag reordering for details view.
9601         - fixed behavior when mouse is dragged off column and
9602         AllowColumnReorder is false.
9603         * ColumnHeader.cs: clone the format too in Clone.
9604         * Theme.cs: add DrawListViewHeaderDragDetails method.
9605         * ThemeWin32Classic.cs:
9606         - impl new method for drawing drag column shadows and targets.
9607         - support column offset for details mode in DrawListViewItem.
9608
9609 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9610
9611         * TextControl.cs: Reset the char_count when the document is cleared
9612           (Fixes bug reported on mono-winforms mailing list)
9613
9614 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9615
9616         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
9617           of calling base we simply process the key ourselves, since both
9618           DefWindowProc and the handled method would set m.Result. 
9619           (Fixes #77732)
9620
9621 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9622
9623         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
9624           method also moves the window; instead implemented a copy of
9625           Control.ScaleCore (Part of fix for #77456)
9626         * TextBoxBase.cs: 
9627           - Created new CreateGraphicsInternal method to allow providing
9628             a graphics context when no handle is created without triggering
9629             handle creation. (Part of fix for #77456)
9630           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9631         * TextControl.cs: 
9632           - Switched Constructor to require TextBoxBase instead of Control (to
9633             allow uncast access to CreateGraphicsInternal)
9634           - Safeguarded use of owner.Handle property. No longer accessing it
9635             unless the handle is already created.
9636           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9637           - Now triggering a recalc when owning control becomes visible
9638         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
9639           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
9640           premature handle creation (Part of fix for #77456)
9641         * Control.cs:
9642           - We now only destroy our double-buffering buffers when the
9643             control is resized or disposed, but not when visibility
9644             changes. (The code even re-created them twice every time)
9645           - Now requiring a redraw of the buffer on visibility changes
9646             (fixes bug 77654 part 2)
9647           - Not passing OnParentVisibleChanged up unless the control
9648             is visible
9649           - CanFocus: Fixed to match MS documentation
9650           - Focus: Fixed to return actual focus state and to check if
9651             setting focus is legal before setting it
9652
9653 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
9654
9655         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
9656           when to draw focus rectangle by looking at parent focus and
9657           selected state instead. This fixes TabPages on Linux sometimes
9658           having none or multiple focus rectangles.
9659         * XplatUIX11.cs (SetFocus): 
9660           - Don't set the focus if the same window already has focus
9661           - Use SendMessage instead of PostMessage (like it's Win32
9662             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
9663             to match MS behaviour
9664         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
9665           are not selectable.
9666
9667 2006-03-07  Jackson Harper  <jackson@ximian.com>
9668
9669         * PictureBox.cs: Revert line I accidently committed last week.
9670
9671 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9672
9673         * Control.cs: 
9674           - Added new IsRecreating and ParentIsRecreating properties to
9675             allow testing if RecreateHandle has been called on ourselves
9676             or one of our parents
9677           - WndProc(WM_DESTROY): If our control handle is being recreated
9678             we immediately need to create the handle when receiving the
9679             destroy, that way our child windows find a valid parent handle
9680             when they themselves are being recreated upon WM_DESTROY receipt
9681             (fix for bug #77654 part 1)
9682         * XplatUIX11.cs:
9683           - DestroyWindow: WM_DESTROY must be sent to our own window before
9684             notifying any child windows. MS documents that child windows
9685             are still valid when WM_DESTROY is received. (Control now relies on
9686             this behaviour)
9687           - Added some fine-grain debug options
9688
9689 2006-03-06  Jackson Harper  <jackson@ximian.com>
9690
9691         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
9692         box and base calculations off this.
9693         * MdiChildContext.cs:
9694         * MdiWindowManager.cs: Don't need to ensure scrollbars here
9695         anymore.
9696         
9697 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
9698
9699         * Splitter.cs: In situations where the affected control is added
9700           to the parent's control list after the splitter, we would not
9701           populate affected. Now we try populating it on mousedown, if
9702           it's not already set, and force it to be re-set whenever our
9703           parent changes.
9704
9705 2006-03-03  Matt Hargett  <matt@use.net>
9706
9707         * Control.cs: implement Control.Padding
9708         * Padding.cs: -Padding.All returns -1 when constructing with the
9709         implicit default ctor
9710         -Padding.ToString() matches MS.NET
9711         * ContainerControl.cs: implement
9712         ContainerControl.AutoScaleDimensions
9713         * ListControl.cs: implement ListControl.FormattingEnabled
9714         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
9715         * ButtonBase.cs:
9716         * TabPage.cs: Implement UseVisualStyleBackColor.
9717         * PictureBox.cs: Implement PictureBox.InitialImage.
9718
9719 2006-03-03  Mike Kestner  <mkestner@novell.com>
9720
9721         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
9722         event declarations to proxy to base event.
9723         * ListViewItem.cs: update to use ItemControl.
9724         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
9725         * ThemeWin32Classic.cs: update to new ListView theme API and fix
9726         column header label rendering for 0 width columns.
9727
9728 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
9729
9730         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
9731           that causes the control to be created. Fixes #77476.
9732
9733 2006-03-02  Jackson Harper  <jackson@ximian.com>
9734
9735         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
9736         expose_pending.
9737
9738 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
9739
9740         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
9741           passed in for the EventArgs (fixes #77690)
9742
9743 2006-03-01  Jackson Harper  <jackson@ximian.com>
9744
9745         * ScrollBar.cs: Refresh afterbeing resized.
9746
9747 2006-02-28  Mike Kestner  <mkestner@novell.com>
9748
9749         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
9750         Clean up a tracker compile warning.
9751         * MenuItem.cs: add internal PerformPopup method.
9752         [Fixes #77457]
9753
9754 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9755
9756         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
9757           implicit expose) when the text is set to null
9758
9759 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
9760
9761         * RichTextBox.cs (FlushText): When newline is true, we always
9762           need to split the line, even if no text is on it and we may
9763           never eat newlines. (Fixes #77669)
9764
9765 2006-02-28  Mike Kestner  <mkestner@novell.com>
9766
9767         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
9768         and set Selected instead.
9769         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
9770         collections.
9771
9772 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9773
9774         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
9775
9776 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
9777
9778         * FontDialog.cs:
9779           - Got rid of the panel. All controls are now directly added to
9780             the dialog form
9781           - It is now possible to set a font with the Font property
9782           - MinSize and MaxSize property do now what they should
9783           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
9784           - Searching and selecting a font with the font textbox works now,
9785             the same applies to the style and size textbox
9786           - Draw the correct 3D border in the example panel
9787           - Fixed a little mem leak (unused fonts didn't get disposed)
9788           - Many other internal updates/rewrites...
9789           - Fix typo
9790
9791 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9792
9793         * TextControl.cs: 
9794           - InsertRTFFromStream: Added 'number of characters inserted' argument
9795           - set_SelectedRTF: Now using the number of characters to calculate
9796             the new location for the selection and cursor (x/y cannot be used
9797             due to potentially already wrapped text)
9798
9799 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
9800
9801         * TextControl.cs: Added property and implemented means to allow 
9802           disabling recalculation of a document (can be used to speed up
9803           multiple inserts and is needed to make RTF inserts predictable, see
9804           bug #77659)
9805         * RichTextBox.cs: Using the new NoRecalc property of Document to
9806           keep x/y insert locations predictable. Also makes it faster inserting
9807           large chunks of RTF
9808
9809 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9810
9811         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
9812           it's easier for a child control to handle the other messages without
9813           having to duplicate the special functionality
9814         * TextBoxBase.cs
9815           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
9816             code to handle processing the key ourselves, in order to get 
9817             access to the result of KeyEventArgs.Handled. We now only call 
9818             ProcessKey if they key hasn't been handled already. Fixes #77526.
9819           - set_Text: If null or empty string is given, just clear the 
9820             document. Fixes part of #77526
9821
9822 2006-02-27  Jackson Harper  <jackson@ximian.com>
9823
9824         * SizeGrip.cs: Paint the background color before painting the grip
9825         so things look right.
9826         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
9827
9828 2006-02-27  Mike Kestner  <mkestner@novell.com>
9829
9830         * ListView.cs:
9831           - Restructure layout and invalidation model to remove a ton of
9832           flicker from the control and speed up performance in general.
9833           - Add manual column resize, flickers like crazy, but I already have
9834           some ideas on how I'll fix that. (#76822)
9835           - Merge the three Icon-based views into a single layout method.
9836           - Move item selection interaction logic from the item since 
9837           interaction with the collections is more appropriate to the view.
9838           - Deselection on non-item clicks.
9839         * ListViewItem.cs:
9840           - Encapsulate most of the layout. Add some internal props to trigger
9841           layout.  Move to a model where Items invalidate themselves instead
9842           of just invalidating the whole control every time something changes.
9843           - Invalidate on Text/Caption changes.
9844           - switch to an offset based layout model to avoid having to absolute
9845           position every element on item moves.
9846           - correct checkbox layout to conform to MS layout.
9847         * ThemeWin32Classic.cs:
9848           - refactor some column header drawing code.
9849           - fix string justification for column headers (#76821)
9850           - make SmallIcon labels top justified for compat with MS impl.
9851         * ThemeClearlooks.cs:
9852           - adjust to new ListViewItem internal checkbox bounds api.
9853
9854 2006-02-27  Jackson Harper  <jackson@ximian.com>
9855
9856         * Control.cs:  Change where implicit controls fall in the zorder.
9857         They are now on top of all children.
9858         - Synced AddImplicit code with Add
9859         - Removed unused enumerator.
9860         * SizeGrip.cs: Remove the TODO as its been TODONE.
9861
9862 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
9863
9864         * TextControl.cs(Insert): Combine the last lines unless the insertion
9865           string ends with \n\n, otherwise we leave one line too many (Fixes
9866           something I noticed with the testapp for #77526; the bug itself was
9867           already fixed in the previous checkin)
9868
9869 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
9870
9871         * RichTextBox.cs:
9872           - SelectionColor and SelectionFont methods no longer set absolute
9873             styles. Instead, the keep font or color respectively (This 
9874             resolves a long-standing FIXME in the code)
9875           - When flushing RTF text, the insert code now considers text trailing
9876             behind the insertion point (Fixes the bug where when replacing
9877             the selected text via SelectedRTF the remainder of the line behind 
9878             the selection would stay on the first insertion line)
9879         * TextBoxBase.cs:
9880           - AppendText now updates the selection points after inserting text
9881           - AppendText now ensures that the last tag (sometimes 0-length) of
9882             the document is used for the style information (Fixes part of 
9883             bug #77220)
9884         * TextControl.cs:
9885           - Created new FontDefiniton class to allow describing partial style
9886             changes
9887           - StreamLine() now takes a lines argument, to allow it to decide
9888             whether an encountered zero-length tag is the last in the document
9889             (which must be kept to not loose the font/color contained in it,
9890             for later appends)
9891           - Created Combine() and Split() methods for Marker structs, to 
9892             support marker updates due to reformatted documents (soft line
9893             wraps)
9894           - Implemented Document.CaretTag setter
9895           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
9896             of the last line (Not the cause, but also exposed by bug #77220)
9897           - Added LineTag argument to InsertString method, to allow callers
9898             to force a certain tag to be used (required to force use of the
9899             trailing zero-length tag of a document)
9900           - Now updating markers in Combine(), to avoid stale tag markers
9901           - Added some method descriptions to aid maintenance
9902           - Implemented new FormatText concept, allowing additive/subtractive
9903             formatting by only specifying the components that are to be 
9904             changed. This was needed for resolving the RTB.SelectedColor/
9905             RTB.SelectedFont fixmes
9906           - Added Break() support method to allow breaking up linetags (used
9907             for partial formatting)
9908           - Added GenerateTextFormat() method. It is used for partial 
9909             formatting and allows to generate a full font/color from given
9910             attributes and an existing tag.
9911
9912 2006-02-26  Jackson Harper  <jackson@ximian.com>
9913
9914         * XplatUIX11.cs:  Use the correct caption height.
9915         - Translate hittest coordinates to screen coords to match MS.
9916         * XplatUIWin32.cs: When we create MDI windows we need to reset
9917         some of the style flags, so we get a nice blank window, and can
9918         draw all the decorations ourselves.
9919         - Set a clipping rectangle on the non client paint event, the
9920         window manager drawing code needs one.
9921         * Form.cs: The window manager needs to know when the window state
9922         has been updated.
9923         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
9924         don't need to factor in border and title sizes in these
9925         methods. TODO: Remove the args and fix the call points.
9926         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
9927         properly.
9928         - Let the driver set the cursors.
9929         - Improve active window handling
9930         - Correct sizes for title bars and buttons.
9931         - Match MS drawing better
9932         * MdiWindowManager.cs: We don't need to handle border style
9933         updates specially anymore.
9934         - Check for scrollbars when windows are done moving
9935         - Handle Active properly.
9936         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
9937         correctly. I am spewing the exception though, so we don't hide the
9938         bugs.
9939         
9940 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
9941
9942         * DataGridViewRowPostPaintEventArgs.cs,
9943           DataGridViewCellPaintingEventArgs.cs,
9944           DataGridViewRowCollection.cs,
9945           DataGridViewRowPrePaintEventArgs.cs,
9946           DataGridViewCell.cs: Clear a few warnings and implement a few
9947           exceptions that should be thrown.
9948
9949 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9950
9951         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
9952           'inheriting' our parent's (non-default) cursor. (Part of
9953            the fix for #77479)
9954
9955 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
9956
9957         * XplatUIX11.cs: Fixed cast to make csc happy
9958
9959 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9960
9961         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
9962           it's for the client area (part of fix for #77479 and needed
9963           for MDI window cursor handling)
9964         * XplatUIX11.cs
9965           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
9966             the appropriate default cursors and also passing the message
9967             up the parent chain 
9968           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
9969             for non-client areas
9970
9971 2006-02-15  Jackson Harper  <jackson@ximian.com>
9972
9973         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
9974         is a real MDI window
9975
9976 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
9977
9978         * X11DesktopColors.cs: Instead of checking the desktop session
9979           string for "KDE" check if it starts with "KDE"
9980
9981 2006-02-10  Jackson Harper  <jackson@ximian.com>
9982
9983         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
9984         systems).
9985
9986 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
9987
9988         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
9989           errors
9990         * ColorDialog.cs:
9991           - Got rid of the panel. All controls are now directly added to
9992             the dialog form
9993           - Changed to mono coding style
9994
9995 2006-02-10  Jackson Harper  <jackson@ximian.com>
9996
9997         * InternalWindowManager.cs: We don't need the set visibility to
9998         false hack anymore now that peter has written beautiful shutdown
9999         code.
10000
10001 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
10002
10003         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
10004           where already explicitly destroyed
10005
10006 2006-02-10  Jackson Harper  <jackson@ximian.com>
10007
10008         * MdiClient.cs: Handle the case where windows are too high or to
10009         the left and we need scrollbars.
10010
10011 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
10012
10013         * MimeIcon.cs: Added some icons
10014         * FileDialog.cs:
10015           - Fixed bug #77477
10016           - Got rid of the panel. All controls are now directly added to
10017             the dialog form
10018           - Changed to mono coding style
10019           - On Linux "My Computer" and "My Network" will now show some
10020             more usefull information. A new class, MasterMount, gathers
10021             this information from /proc/mount. Updated MWFFileView to make
10022             use of this information
10023           - Fixed a bug that caused FileDialog to crash when
10024             ".recently_used" file had a zero size
10025           - FilterIndex does now what it should
10026           - Some Refactoring
10027         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
10028             FileDialog changes
10029
10030 2006-02-09  Jackson Harper  <jackson@ximian.com>
10031
10032         * ComboBox.cs: Don't touch if null.
10033
10034 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
10035
10036         * Cursor.cs: 64bit safeness fix
10037         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
10038
10039 2006-02-09  Jackson Harper  <jackson@ximian.com>
10040
10041         * Form.cs: If a form is made into an MDI form update the styles so
10042         all the props can get set correctly.
10043         - Kill the mdi_container when we dont need it anymore.
10044         * InternalWindowManager.cs: Add missing NOT
10045
10046 2006-02-08  Jackson Harper  <jackson@ximian.com>
10047
10048         * InternalWindowManager.cs: Respek clipping when drawing MDi
10049         decorations.
10050
10051 2006-02-08  Jackson Harper  <jackson@ximian.com>
10052
10053         * Hwnd.cs: Add bits to track non client expose events.
10054         * XplatUIX11.cs: Track non client expose events on the hwnd. This
10055         gives us a proper invalid rect and will allow for some nice
10056         optimizations with NC client drawing
10057         - MDI windows are children windows, so move their style handling
10058         into the child window block.
10059         * InternalWindowManager.cs: Remove a state reset that was
10060         getting invoked at the wrong time. Fixes managed windows getting
10061         into a 'stuck' captured state.
10062
10063 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10064
10065         * TextControl.cs (Document.ctor): Now initializing 
10066           selection_anchor. Fixes #77493
10067
10068 2006-02-07  Jackson Harper  <jackson@ximian.com>
10069
10070         * TrackBar.cs: The increment/decrements were backwards.
10071
10072 2006-02-07  Mike Kestner  <mkestner@novell.com>
10073
10074         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
10075         to the instance itself.
10076
10077 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
10078
10079         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
10080           on ulongs and pointers, the size differs between 32bit and 64bit
10081           systems. 
10082
10083 2006-02-07  Mike Kestner  <mkestner@novell.com>
10084
10085         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
10086         for 64 bit platforms to work around a metacity bug. 
10087
10088 2006-02-07  Jackson Harper  <jackson@ximian.com>
10089
10090         * TrackBar.cs: Process the input keys we need, and hookup to
10091         KeyDown instead of using WndProc, so we get key messages.
10092
10093 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
10094
10095         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
10096           machine we're on. 
10097         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
10098           we need to translate the XdndVersion atoms array before sending it
10099
10100 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
10101
10102         * XplatUIX11.cs: 
10103           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
10104             number of bits for the property, not the number of bytes. The
10105             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
10106             but would not crash since it specified 8 bits instead of 4 bits)
10107           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
10108             defined as XID -> long in the C headers)
10109           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
10110             references since those are now IntPtr to begin with
10111           - Switched all Atom.XXX 'int' casts to IntPtr casts
10112           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
10113           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
10114           - Added XChangeActivePointerGrab DllImport (for X11DnD)
10115         * X11Structs.cs:
10116           - Changed 'int' type for Atoms in XEvent structures to IntPtr
10117           - Changed atom in HoverStruct to be IntPtr
10118         * X11DnD.cs:
10119           - Removed local DllImports, switched code to use those from XplatUIX11
10120           - Removed/fixed casts related to the switch of Atom to be a IntPtr
10121
10122 2006-02-06  Mike Kestner  <mkestner@novell.com>
10123
10124         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
10125         method signatures in the import region.  There may still be some
10126         lingering struct marshaling issues, as I didn't drill down into those.
10127         Yet.
10128
10129 2006-02-06  Jackson Harper  <jackson@ximian.com>
10130
10131         * ComboBox.cs: Dont manually set the top_item, this is computed
10132         when the scrollbar position is set.
10133
10134 2006-02-06  Mike Kestner  <mkestner@novell.com>
10135
10136         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
10137         startup crashes on amd64.  There's other fixes needed.  All pinvoke
10138         usage of Atom needs to be mapped to IntPtr for example.  And there are
10139         likely other int/long issues to be addressed.
10140
10141 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
10142
10143         * FileDialog.cs: One more...
10144
10145 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10146
10147         * FileDialog.cs: Next try
10148
10149 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10150
10151         * FileDialog.cs: First part of fix for #77464
10152
10153 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10154
10155         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
10156           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
10157           AcceptButton border drawing.
10158
10159 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
10160
10161         * Form.cs: Moved positioning of form after auto scaling is applied,
10162           otherwise it would possibly use wrong form size.
10163
10164 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
10165
10166         * Control.cs (RecreateHandle): No need to re-create any child
10167           controls, the child windows will get destroyed automatically by
10168           the windowing system or driver, and re-created when the handle
10169           is being accessed the first time. Fixes #77456
10170         * Form.cs: No longer setting the form to closing if the handle is 
10171           being recreated. This seems like the right thing to do, don't
10172           have a bug or testcase for this, though.
10173
10174 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10175
10176         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
10177           controls to avoid unwanted side effects
10178
10179 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
10180
10181         * Control.cs: 
10182           - ScaleCore needs to scale the bounds, not the ClientSize of the 
10183             control. Fixes #77416.
10184           - DefaultSize is 0,0 for control
10185         * TextBoxBase.cs: 
10186           - DefaultSize is 100, 20
10187           - SetBoundsCore: Now enforcing the height, no matter if the provided
10188             height is more or less than the preferred one, as long as AutoSize
10189             is on
10190         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
10191
10192 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10193
10194         * Control.cs:
10195           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
10196             call unless both performLayout is true *and* we have a pending
10197             layout change
10198           - ResumeLayout: MS does not completely nest Suspend and Resume,
10199             they bottom out at 0, fixed our code to match that.
10200           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
10201             SetBoundsCore, we were updating even when we shouldn't. This fixes
10202             swf-anchors mis-anchoring when resizing the app fast and lots.
10203           - UpdateDistances: Now only setting the left and top distance if 
10204             we have a parent and are not suspended, this is based on
10205             a suggestion by Don Edvaldson in bug #77355.
10206           - OnVisibleChanged: Fixed logic when to create the control. We may
10207             not create the control if we have no parent or if it's not visible;
10208             switched to using Visible property instead of is_visible field 
10209             since the property also considers parent states. This fixes a bug
10210             when starting Paint.Net
10211
10212 2006-02-02  Jackson Harper  <jackson@ximian.com>
10213
10214         * Form.cs: If the forms handle hasn't been created yet don't call
10215         into xplatui to make it top most, just set the topmost flag on the
10216         form in CreateParams
10217         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
10218
10219 2006-02-01  Jackson Harper  <jackson@ximian.com>
10220
10221         * ScrollableControl.cs: Refactored the Recalculate method a
10222         little, this wasn't handling all the variants of bottom and right
10223         bars needed to be added and added/removed based on their
10224         counterparts being added/removed (which changes the drawable
10225         size). Also we special case client widths and heights of 0 and
10226         don't add the scrollbar for those.
10227
10228 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
10229
10230         * XplatUIX11.cs: 
10231           - Added method to get AbsoluteGeometry(); currently unused, but might
10232             be used in the future, if we try again to figure out toplevel
10233             coordinates with some more crappy window managers
10234           - Added FrameExtents() method to retrieve the WM set decoration size
10235           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
10236             to deal with at least KDE, FVWM and metacity (Fixes #77092)
10237         * Hwnd.cs: 
10238           - Added whacky_wm tracking var for metacity
10239           - Added logic to have default menu height if the actual menu height
10240             has not yet been calculated (part of fix for #77426)
10241         * Form.cs: Keep track whether client size has been set and re-set 
10242           it if a menu is added/removed afterwards (Fixes #77426)
10243
10244 2006-01-31  Jackson Harper  <jackson@ximian.com>
10245
10246         * Control.cs: When a new Site is set on the component attempt to
10247         pull the AmbientProperties from it.
10248
10249 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
10250
10251         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
10252           in the background of the owning form. Fixes #77332
10253
10254 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10255
10256         * MimeIcon.cs: Fix for #77409
10257
10258 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10259
10260         * XplatUIX11GTK.cs: Initial import
10261
10262 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
10263
10264         * FixedSizeTextBox: fixes class signature
10265
10266 2006-01-30  Jackson Harper  <jackson@ximian.com>
10267
10268         * FixedSizeTextBox.cs: New internal class that represents a
10269         textBox that will not be scaled.
10270         * TreeView.cs:
10271         * ComboBox.cs:
10272         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
10273         standard TextBox.
10274                 
10275 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
10276
10277         * XplatUIX11.cs: Retrieve default screen number instead of
10278           assuming 0. Attempted fix for #77318
10279
10280 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
10281
10282         * XplatUIWin32.cs: 
10283           - GetWindowPos: When a window is parented by FosterParent, use 
10284             the desktop instead of FosterParent as the base to get coordinates
10285           - CreateWindow: Don't make FosterParent the parent window for Popups
10286             if we don't want a taskbar entry, Popups automatically don't get one
10287         * Hwnd.cs: Need to call remove to actually remove the key from the
10288           hash table
10289
10290 2006-01-30  Mike Kestner  <mkestner@novell.com>
10291
10292         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
10293
10294 2006-01-30  Jackson Harper  <jackson@ximian.com>
10295
10296         * TreeView.cs:
10297         * TreeNode.cs: Raise events no matter how the treenode is
10298         checked. Patch by Don Edvalson.
10299
10300 2006-01-30  Jackson Harper  <jackson@ximian.com>
10301
10302         * TreeNode.cs: Signature fix.
10303
10304 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
10305
10306         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
10307
10308 2006-01-20  Mike Kestner  <mkestner@novell.com>
10309
10310         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
10311         event forwarding when menus are active.
10312         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
10313         Most of the patch is pdb's with a little rework.
10314
10315 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10316
10317         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
10318           Removed GetMenuDC and ReleaseMenuDC methods; replaced
10319           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
10320         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
10321         * InternalWindowManager.cs: Added use of PaintEventStart/End to
10322           handling of WM_NCPAINT message, now passing the PaintEventArgs to
10323           the PaintWindowDecorations method
10324         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
10325         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
10326         * MenuAPI.cs: Made tracker window invisible
10327         * XplatUIWin32.cs:
10328           - Removed GetMenuDC and ReleaseMenuDC methods
10329           - Implemented the client=false path for PaintEventStart and
10330             PaintEventEnd
10331
10332 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10333
10334         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
10335         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
10336           styles
10337         * Form.cs: 
10338           - MaximizeBox, MinimizeBox: Recreate the handle when setting
10339             the style
10340           - CreateParams: Reworked the styles to match MS look'n'feel,
10341             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
10342             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
10343
10344 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10345
10346         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
10347           window is not mapped, since otherwise every form that's being 
10348           created is considered minimized, which is wrong.
10349         * Form.cs: Catching the exception and returning our internal value
10350           instead
10351
10352 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10353
10354         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
10355           SetWindowMinMax() to have means to tell the driver about the minimum,
10356           maximum and maximized state window sizes. (Part of the fix for #76485)
10357         * Form.cs:
10358           - Implemented tracking of minimum and maximum window size, now calling
10359             new SetWindowMinMax() driver method to tell the driver (Part of the
10360             fix for #76485)
10361           - Finished handling of WM_GETMINMAXINFO method, now setting all values
10362             (Completes fix for #76485)
10363           - Calling new SetWindowMinMax driver method when the handle for a 
10364             form is created, to make sure the driver knows about it even if
10365             the values have been set before the window was created
10366           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
10367             to avoid messing up our anchoring calculations (partial fix
10368             for #77355)
10369         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
10370         * XplatUIX11.cs:
10371           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
10372           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
10373             (and presumably other freedesktop.org compliant WMs). Left the
10374             assumption unmapped=minimized, needed for SetVisible to work.
10375           - Now setting the window state when creating windows
10376           - Fixed SetVisible to consider/set the window state when mapping
10377             a Form. We cannot set the state before it's mapped, and we cannot
10378             use Form.WindowState once it's mapped (since it would ask the
10379             driver and get 'normal'. Therefore, we grab the state before
10380             mapping, map, and then set state.
10381           - Implmemented SetWindowMinMax method; Metacity does not seem to
10382             honor the ZoomHints, though.
10383         * XplatUIWin32.cs:
10384           - Removed MINMAXINFO (moved to XplatUIStructs)
10385           - Added SetWindowMinMax stub (on Win32 the only way to set that
10386             information is in response to the WM_GETMINMAXINFO message, which
10387             is handled in Form.cs)
10388           - Added logic to SetVisible to set the proper window state when a 
10389             form is made visible (fixes #75720)
10390
10391 2006-01-26  Jackson Harper  <jackson@ximian.com>
10392
10393         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
10394         same way we handle them with Invoke.
10395
10396 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
10397
10398         * Form.cs:
10399           - Added tracking of window state so CreateParams can return
10400             the appropriate style
10401           - Moved setting of WS_CAPTION style in CreateParams to allow
10402             styles without caption
10403         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
10404           control if the TextBox property is accessed. Fixes #77345
10405         * Control.cs:
10406           - get_Created: now uses is_disposed and is_created to determine
10407             return value (suggested by Jackson)
10408           - CreateHandle: No longer exits if the handle is being recreated
10409           - RecreateHandle: If the handle is not yet created call the 
10410             appropriate method to create either control or handle. If the
10411             control is already created CreateHandle will simply exit instead
10412             of just creating the handle
10413         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
10414           now SendMessage WM_DESTROY directly to the control when DestroyWindow
10415           is called.
10416         * XplatUIX11.cs: 
10417           - When DestroyWindow is called, instead of waiting for the 
10418             DestroyNotification from X11, we directly post it to the WndProc
10419             and immediately dispose the hwnd object.
10420             Same applies to DestroyChildWindows, and this obsoletes the
10421             expose_pending tracking. Contrary to Win32 behaviour we destroy our
10422             child windows before our own, to avoid X11 errors.
10423           - Removed the direct sending of WM_PAINT on UpdateWindow
10424         * XplatUIWin32.cs:
10425           - Reworked DoEvents and GetMessage to allow access to internal queue
10426             even when trying non-blocking access to the queue.  Fixes #77335. 
10427             Based on a patch suggestion by Don Edvalson. The new private
10428             GetMessage can now also be used as a backend for a PeekMessage
10429             frontend version.
10430         * XplatUI.cs: Improved debug output for CreateWindow
10431
10432 2006-01-25  Jackson Harper  <jackson@ximian.com>
10433
10434         * Help.cs: Allow param to be null. Patch by Don Edvalson.
10435
10436 2006-01-24  Jackson Harper  <jackson@ximian.com>
10437
10438         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
10439         when we have a MaxDropItems lower then the selected index.
10440
10441 2006-01-24  Jackson Harper  <jackson@ximian.com>
10442
10443         * Control.cs: Don't allow selection of non visible controls, allow
10444         selection of controls without parents.
10445
10446 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10447
10448         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
10449         * DataGridDrawingLogic.cs: Add editing row only when is necessary
10450
10451 2006-01-23  Jackson Harper  <jackson@ximian.com>
10452
10453         * UpDownBase.cs: Make the textbox handle all the selection and
10454         tabbing. This fixes tabing to updown controls.
10455
10456 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10457
10458         * TextBoxBase.cs: fixes exception thown the object was null
10459
10460 2006-01-23  Jackson Harper  <jackson@ximian.com>
10461
10462         * ButtonBase.cs: Just use the base CreateParams. They set
10463         visibility and enabled correctly.
10464         * ComboBox.cs:
10465         * TrackBar.cs:
10466         * MonthCalendar.cs: Lets let the base set as much of the
10467         createparams as possible so we don't have duplicate code all over
10468         the place.
10469
10470 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
10471
10472         * ThemeGtk.cs: Added TrackBar and some experimental code to
10473           get double buffering back
10474
10475 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10476
10477         * DataGrid.cs: Allows row number set internally higher than the last
10478         when creating a new row. Restores the editing functionality.
10479
10480 2006-01-20  Mike Kestner  <mkestner@novell.com>
10481
10482         * MimeIcon.cs: delay Image creation until the icons are accessed
10483         instead of creating 190 scaled images on GnomeHandler startup.
10484
10485 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
10486
10487         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
10488           first call base before processing the event. Fixes #77279
10489
10490 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
10491
10492         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
10493           that the stride for the GDI bitmap would match the stride of
10494           a DIB or a Cursor.
10495
10496 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
10497
10498         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
10499
10500 2006-01-19  Jackson Harper  <jackson@ximian.com>
10501
10502         * ComboBox.cs: Hookup the text controls keydown event so we get
10503         those when the text control has the focus.
10504
10505 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10506
10507         * Label.cs: Now using the base events instead of defining new ones;
10508           this allows us to just call the base properties without having to
10509           duplicate all base property logic 
10510
10511 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10512
10513         * Label.cs: A label by default is not a tabstop (Fixes one of our
10514           failing nunit tests)
10515
10516 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10517
10518         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
10519         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
10520
10521 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10522
10523         * Cursor.cs: Reimplemented creating cursor bitmaps without using
10524           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
10525           This fixes #77218
10526         * XplatUIWin32.cs: 
10527           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
10528             constructor creates images that can't be saved. Part of the fix
10529             for #76103
10530           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
10531           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
10532             bug fix for handling window state in forms properly)
10533
10534 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10535
10536         * ThemeGtk.cs: Simplify ScrollBar drawing
10537
10538 2006-01-18  Jackson Harper  <jackson@ximian.com>
10539
10540         * Splitter.cs: Set the default dock style for the splitter control
10541         in the constructor.
10542
10543 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10544
10545         * ThemeGtk.cs: Corrected StateType and ShadowType for
10546           gtk_paint_box
10547
10548 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10549
10550         * Control.cs: Make use of Theme.DoubleBufferingSupported
10551         * ThemeGtk.cs:
10552           - Added drawing for flat style buttons
10553           - Added ScrollBar drawing
10554
10555 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10556
10557         * ThemeClearlooks.cs: Removed some unneeded code.
10558         * ThemeGtk.cs: First part of ThemeGtk enhancements.
10559
10560 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10561
10562         * LinkLabel.cs: We need to update the hover drawing when
10563           leaving the control as well.
10564
10565 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
10566
10567         * DataGrid.cs: Clicking on non empty areas in the columns
10568            area was giving an exception
10569
10570 2006-01-17  Jackson Harper  <jackson@ximian.com>
10571
10572         * ThemeWin32Classic.cs:
10573         * ListView.cs: Do not draw/clip the headers when the header style
10574         is None.
10575
10576 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10577
10578         * DataGrid.cs: Fixes 77260
10579         
10580 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10581
10582         * DataGrid.cs: Clicking on a column on a empty grid was giving
10583           an exception
10584
10585 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10586
10587         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
10588           or any keypress will crash the grid.
10589
10590 2006-01-17  Mike Kestner  <mkestner@novell.com>
10591
10592         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
10593         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
10594         invisible/previously-visible items.
10595         [Fixes #76909]
10596
10597 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
10598
10599         * ThemeClearlooks.cs:
10600         - Added CL_Draw_Button method; now other theme controls that are 
10601           not derived from button or do not have a button can draw buttons
10602           too
10603         - Updated ComboBox drawing
10604         - Beautified RadioButton drawing
10605         - Corrected drawing of bottom and left tabs
10606         - Beautified DateTimePicker and MonthCalendar
10607         - Added CPDrawButton and CPDrawRadioButton
10608
10609 2006-01-16  Jackson Harper  <jackson@ximian.com>
10610
10611         * ComboBox.cs: Set the initial value of the scrollbar to the
10612         current index. Reduce the numbers of refreshs and IndexOfs called.
10613
10614 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
10615
10616         * FileDialog.cs: When the file listview is focused hitting the
10617           backspace key moves the fileview to the parent directory
10618
10619 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10620
10621         * Form.cs: 
10622           - Added RecreateHandle call when changing taskbar visibility to 
10623             trigger reparenting in Win32 driver (Fixes #75719)
10624           - If a window has minimize or maximize buttons, it cannot have
10625             a help button
10626         * XplatUIWin32.cs:
10627           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
10628             the toplevel form with FosterParent (A toolwindow not on the
10629             taskbar) (Fixes #75719)
10630           - Made FosterParent a toolwindow
10631
10632 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10633
10634         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
10635
10636 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10637
10638         * ToolTip.cs: If SetToolTip is called from a control and the mouse
10639           is currently over that control, make sure that tooltip_window.Text
10640           gets updated
10641
10642 2006-01-13  Mike Kestner  <mkestner@novell.com>
10643
10644         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
10645
10646 2006-01-13  Jackson Harper  <jackson@ximian.com>
10647
10648         * TreeView.cs: On MS GetNodeAt never actually factors in the X
10649         value passed.  Also redraw the selected node when we recieve
10650         focus, so tabbing between trees works correctly.
10651
10652 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10653
10654         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
10655           ~/.gconf/%gconf-tree.xml, so use
10656           .gconf/desktop/gnome/interface/%gconf.xml
10657
10658 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10659
10660         * TextControl.cs: Draw text in gray if control is disabled
10661
10662 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10663
10664         * TreeView.cs: Draw the focus rectangle outside the highlight, to
10665           make sure it's always visible. Fixes #76680.
10666
10667 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10668
10669         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
10670
10671 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
10672
10673         * PageSetupDialog.cs: Added.
10674         * PrintDialog.cs: Attributes.
10675         * PrintPreviewControl.cs: Updates.
10676         * PrintPreviewDialog.cs: Updates.
10677         
10678 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10679
10680         * Control.cs: Undid my selection check fix, since it's not needed
10681         * TextBoxBase.cs:
10682           - Now considering the presence of hscroll/vscroll when sizing
10683             vscroll/hscroll respectively. Fixed bug #77077
10684           - Added Left/Up/Down/Right to IsInputKey list to prevent
10685             ContainerControl from stealing them. This fixes what I broke
10686             with my last checkin.
10687
10688 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
10689
10690         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
10691           I finally understand how the property can be set without a setter :-)
10692
10693 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10694
10695         * Application.cs:
10696           - Switched RunLoop to use static Message.Create to create a 
10697             Message object
10698           - Added PreProcessMessage call in runloop for keyboard events; this
10699             is part of the fix for #77219, I overlooked this originally in the
10700             MSDN doc for PreProcessMessage
10701         * Control.cs:
10702           - Removed call to PreProcessMessage from handling of keyboard 
10703             messages; it's supposed to be done in the message pump
10704           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
10705             per MSDN documentation.
10706           - IsInputChar: All chars are input chars by default; removed the 
10707             parent calling chain, MS does not document that
10708           - PreProcessMessage: If IsInputChar is true, we want to return false
10709             to allow dispatching of the message
10710           - When selecting the next control, now also check that we're not
10711             selecting ourselves again and therefore return a false positive.
10712         * TextBoxBase.cs:
10713           - Tried to match return values for IsInputKey and ProcessDialogKey
10714             to what MS returns; moved processing of our special keys outside
10715             ProcessDialogKey since MS does not seem to return true on those.
10716           - Moved code that previously was in ProcessDialogKey into new private
10717             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
10718           - Reworked handling of WM_CHAR to not have to duplicate code from
10719             Control.cs anymore, instead we simply call down to base.
10720            
10721 2006-01-12  Jackson Harper  <jackson@ximian.com>
10722
10723         * ComboBox.cs: We always need to refresh the text area when
10724         EndUpdate is called. Fixes the combobox in the file dialog.
10725         * Control.cs: Don't create the creator_thread until the controls
10726         handle is created.  Also in InvokeRequired we check if the
10727         creator_thread is null. This gives the effect of InvokeRequired
10728         returning true if the controls handle is not created yet, and
10729         matches MS.
10730
10731 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10732
10733         * XplatUI.cs:
10734           - Added StartLoop() driver method. This is used to allow drivers to
10735             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
10736             loop for a particular thread
10737           - Added EndLoop() driver method. This is called once the message
10738             pump for the thread is shut down
10739           - Added SupportsTransparency method to allow the driver to indicate
10740             opacity support for windows
10741         * Form.cs:
10742           - Removed TODO attribute, completed AllowTransparency property
10743           - Added documented logic to Opacity
10744         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
10745           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
10746           versions of CompatibleTextRendering
10747         * X11Structs.cs: Added opacity atom to our atom enumeration
10748         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
10749           of a form might be set before it's reparented by the WM, and we need
10750           the opacity value without calling up to Form)
10751         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
10752           SupportsTransparency() driver methods
10753         * Application.cs: Now calling StartLoop and EndLoop driver methods
10754         * XplatUIX11.cs:
10755           - Added opacity atom registration
10756           - Added StartLoop()/EndLoop() methods. They're empty right now but
10757             will need to get implemented when we switch to a per-thread queue
10758           - Implemented SupportsTransparency() method
10759           - Implemented SetWindowTransparency() method
10760           - Added support for setting the opacity value when a window is
10761             reparented (since the opacity needs to be set on the WM frame)
10762         * XplatUIOSX.cs, XplatUIWin32.cs:
10763           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
10764
10765 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10766
10767         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
10768
10769 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10770
10771         * FileDialog.cs: Added ToolTip for MWFFileView
10772         * MimeIcon.cs: Rewrote GnomeHandler.
10773           - Get currently used gnome icon theme from
10774             ($HOME)/.gconf/%gconf-tree.xml
10775           - Make use of inherited icon themes
10776           - Support SVG icon themes like Tango via librsvg
10777
10778 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10779
10780         Revert's Jackson's revert which broke 2.0 builds.   Fix both
10781         builds. 
10782         
10783         * Application.cs: Move the use_compatible_text_rendering outside
10784         the NET_2_0 define.  If we ever need to use the
10785         use_compatible_text_rendering on the individual controls they will
10786         access the variable from the common shared code paths.
10787
10788 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10789
10790         * XplatUI.cs:
10791           - Added more granular debug options
10792           - Added method to print both window text and id
10793           - Switched debug output to use new Window() debug method
10794           - Added IsEnabled() driver method
10795           - Added EnableWindow() driver method
10796         * Form.cs:
10797           - Removed end_modal; no longer needed, new loop handles termination
10798             via 'closing' variable
10799           - If form is modal, setting DialogResult will now initiate loop
10800             termination via 'closing' variable
10801           - Added support for is_enabled/WS_DISABLED to CreateParams
10802           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
10803             does all the work
10804           - Removed code that's now in RunLoop from ShowDialog()
10805           - Added various documented sanity checks to ShowDialog()
10806           - Added handling of WM_DESTROY message; we set 'closing' on getting
10807             the message to indicate the message pump to terminate
10808           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
10809             send by the Application.ExitThread method. (We send the message
10810             to destroy the window after all other events have been
10811             processed through the queue, instead of destroying the handle 
10812             directly)
10813           - Moved code from Close() method to WM_CLOSE handler; added logic
10814             to only send close-related events if the form is not displayed
10815             modal
10816         * Splitter.cs (..ctor): Fixed typo in resource name
10817         * Control.cs:
10818           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
10819             brush now
10820           - set_Cursor: Now only setting calling into XplatUI if the handle for
10821             the control is already created; this avoids implict handle creation
10822             or crashes if it's not created
10823           - set_Enabled: Now setting the enabled state via the new driver method
10824             instead of just tracking it
10825           - CreateParams: Added logic to set WS_DISABLED based on enabled state
10826           - CreateControl: Reordered event firing and method calls to more
10827             closely fire events in the order MS does. Now setting the
10828             enabled state in the driver when creating the control.
10829           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
10830             match MS order
10831         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
10832           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
10833         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
10834         * Hwnd.cs:
10835           - Added tracking of window enabled state (get_Enabled/set_Enabled)
10836           - Added EnabledHwnd property to easily allow a driver to find the
10837             handle of the first enabled window in the parent chain (this is
10838             used by drivers to pass up input events of disabled windows)
10839         * XplatUIDriver.cs: Added IsEnabled() method
10840         * Application.cs:
10841           - Removed crude and obsolete exiting tracking variable
10842           - Removed internal ModalRun(); replaced by RunLoop()
10843           - Implemented private CloseForms() method to allow closing all 
10844             windows owned by a particular (or all) threads
10845           - Exit() now properly closes all windows without forcing the message
10846             pump to quit
10847           - Removed obsolete InternalExit() method
10848           - Changed Run() methods to use new RunLoop() message pump
10849           - Implemented new RunLoop() method for both modal and non-modal forms
10850         * CommonDialog.cs:
10851           - get_CreateParams: Added setting of WS_DISABLED
10852           - Simplified ShowDialog(); now all the work is done in RunLoop(),
10853             invoked via Form.ShowDialog()
10854         * NativeWindow.cs: We don't remove the window from the collection when
10855           the handle is destroyed; there might still be messages for it in the
10856           queue (mainly the resulting WM_DESTROY); instead it will be removed
10857           when Control calls InvalidateHandle in the WM_DESTROY handler
10858         * XplatUIX11.cs:
10859           - CreateWindow: Added logic to handle the WS_DISABLED window style
10860           - EnableWindow: Implemented based on Hwnd.Enabled
10861           - GetMessage: Reset PostQuitState so the method can be called again
10862           - Implemented support for disabled windows (passing messages to the
10863             first enabled parent) in handling all input messages
10864           - Added optimizations for handling Expose events
10865           - Implemeted new driver method IsEnabled()
10866           - Now always resetting paint pending tracking vars when we start paint
10867           - Re-implemented UpdateWindow via just sending a WM_PAINT message
10868         * XplatUIOSX.cs: Added IsEnabled method stub
10869         * XplatUIWin32.cs: Implemented new IsEnabled() method
10870
10871 2006-01-11  Jackson Harper  <jackson@ximian.com>
10872
10873         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10874         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
10875         variables a little.
10876         * ColorDialog.cs: Clear out the old form before adding the new
10877         panel.  
10878
10879 2006-01-11  Jackson Harper  <jackson@ximian.com>
10880
10881         * X11Dnd.cs: Make sure to add all the text formats when adding
10882         strings to the data object.
10883         * TreeNodeCollection.cs: When adding to a sorted tree we need to
10884         do some redrawing too.  Also change the UpdateNode to an
10885         UpdateBelow so the newly added node gets painted.
10886         
10887 2006-01-11  Miguel de Icaza  <miguel@novell.com>
10888
10889         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10890         LinkLabel.cs, PropertyGrid.cs: Implement the
10891         UseCompatibleTextRendering property for 2.x
10892
10893         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
10894
10895 2006-01-11  Jackson Harper  <jackson@ximian.com>
10896
10897         * TreeView.cs: Use the property for setting the selected node so
10898         the correct events get raised.
10899         * TreeNode.cs: Update the tree when the fore/back colours of a
10900         node are set.
10901
10902 2006-01-10  Jackson Harper  <jackson@ximian.com>
10903
10904         * TreeView.cs: Allow setting SelectedNode to null.
10905
10906 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10907
10908         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
10909
10910 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10911
10912         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
10913
10914 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10915
10916         * PrintDialog.cs: Added attributes and set default property values.
10917
10918 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10919
10920         * PrintControllerWithStatusDialog.cs: 
10921         Added PrintControllerWithStatusDialog.
10922
10923 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10924
10925         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
10926         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
10927
10928 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10929
10930         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
10931
10932 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10933
10934         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
10935         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
10936
10937 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10938
10939         * MimeIcon.cs: Added internal class SVGUtil.
10940
10941 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10942
10943         * FileDialog.cs: Don't crash if there are two files with the
10944           same name but different locations.
10945
10946 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
10947
10948         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
10949         dates across multiple month grids. Used to not highlight entire 
10950         month, but does now.
10951         
10952 2006-01-06  Jackson Harper  <jackson@ximian.com>
10953
10954         * MonthCalendar.cs: Removed DoEvents call to prevent a running
10955         message loop. Change timer intervals to numbers that seem more
10956         natural.
10957
10958 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
10959
10960         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
10961           object for location info since screen object is now implemented.
10962
10963 2006-01-05  Jackson Harper  <jackson@ximian.com>
10964
10965         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
10966         * AsyncMethodResult.cs: We no longer use a WeakReference for the
10967         AsyncMethodResult, this is because we ALWAYS want the
10968         ManualResetEvent to get set.
10969         * Control.cs: When disposing use an async invoke to call shutdown
10970         code, so that thigns don't block on the finalizer thread.  Also
10971         check if we even have a message loop before trying to send
10972         messages, if we don't then don't bother sending messages.
10973         - No more weak references for async methods
10974         * XplatUIDriver.cs: No more weak references for async methods.
10975
10976 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10977
10978         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
10979           returns two FontFamily with the same name
10980
10981 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10982
10983         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
10984           drawing disabled text. Instead using the ColorGrayText color
10985
10986 2006-01-04  Jackson Harper  <jackson@ximian.com>
10987
10988         * TreeNode.cs: redraw the node when its image index is changed.
10989
10990 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10991
10992         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
10993           time I checked there are no others like it.
10994
10995 2006-01-04  Jackson Harper  <jackson@ximian.com>
10996
10997         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
10998         this gives the behavoir I was looking for.
10999         * Control.cs: Special case Invoking EventHandlers, this matches MS
11000         and fixes part of bug #76326.
11001
11002 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11003
11004         * ThemeClearlooks.cs, FileDialog.cs:
11005           - Reflect the latest Theme class changes
11006           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
11007             with DateTime
11008             
11009 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
11010
11011         * Theme.cs: Cache UI resource images and resize them if needed
11012
11013 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11014
11015         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
11016           is called. This fixes the crash in Nexxia when setting the font
11017           attributes in the chat. [However, RTF needs a look-over to make sure
11018           that all SelectionXXX methods handle the special case that selection
11019           is empty and therefore the change must be applied to all text starting
11020           at the cursor/selection start]
11021
11022 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
11023
11024         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11025           XplatUIOSX.cs: Added SendMessage and PostMessage methods
11026         * X11Keyboard.cs: Switched to new way of calling PostMessage
11027
11028 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
11029
11030         * Theme.cs: Added theme interface for images to allow the theme to
11031           control what images are used for things like FileDialog, MessageBox
11032           icons, etc.
11033         * MessageBox.cs: Now uses the new Theme icon/image interfaces
11034
11035 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
11036
11037         * FileDialog.cs:
11038           - Removed some dead code
11039           - Opening a recently used file does work now
11040           - Small UI enhancements
11041           - Refactoring
11042
11043 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11044
11045         * FileDialog.cs: Forgot too add __MonoCS__
11046
11047 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
11048
11049         * FileDialog.cs: We are able to read recently used files now let's
11050           go on and write them.
11051
11052 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
11053
11054         * FileDialog.cs: Breathe some life into "last open"/"recently used"
11055           button
11056         * MimeIcon.cs: Do a check for the top level media type also
11057
11058 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11059
11060         * ThemeClearlooks.cs:
11061           - Added CPDrawStringDisabled
11062           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
11063             some chars if the text doesn't fit into text_rect
11064           - DrawListViewItem: If View = View.LargeIcon center the image;
11065             rewrote the drawing of ListViewItem.Text if View = 
11066             View.LargeIcon
11067
11068 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
11069
11070         * MimeIcon.cs: Use default KDE icon theme if there is no
11071           "48x48" directory for the current icon theme, fixes #77114
11072         * Mime.cs: Disable not working and actually not used code. 
11073         * ThemeWin32Classic.cs:
11074           - Replace "new SolidBrush" in GetControlBackBrush and
11075             GetControlForeBrush with ResPool.GetSolidBrush
11076           - Changed DrawListViewItem from private to protected virtual
11077         * FileDialog.cs:
11078           - Added form.MaximizeBox = true
11079           - Don't throw an exception if there is a broken symbolic link
11080
11081 2005-12-23  Jackson Harper  <jackson@ximian.com>
11082
11083         * TabControl.cs: Give the panels focus, keyboard navigation is
11084         fixed so this works correctly now.
11085         - We need these key events also.
11086         * ToolBar.cs: Remove some of the poor mans double buffering.
11087         
11088 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
11089
11090         * ComboBox.cs: The internal TextBox now returns the focus.
11091
11092 2005-12-23  Jackson Harper  <jackson@ximian.com>
11093
11094         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
11095
11096 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11097
11098         * Control.cs: Removed debug code
11099         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
11100           implicit children
11101
11102 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
11103
11104         * Control.cs: When creating the control, update the Z-order after
11105           all it's children are created, too. (Fixes nexxia not showing
11106           picturebox bug)
11107
11108 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
11109
11110         * Control.cs: Do not update the anchoring distances if layout is
11111           suspended, instead do it once layout is resumed
11112
11113 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
11114
11115         * Control.cs: 
11116           - After many hours of debugging, for both Jackson and
11117             myself, it turns out that it helps to set the parent of a control
11118             if you want to actually see it onscreen. In the spirit of that
11119             discovery, we're now setting the parent of the control and
11120             it's children when the control's handle is created. This fix
11121             will make Lutz Roeder's Reflector run happily. 
11122           - now just creating the handle instead of the whole control when
11123             getting a graphics context for the control.
11124
11125 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11126
11127         * ScrollableControl.cs: When calculating the canvas, don't consider
11128           the scrollbar widths. Instead, predict if horizontal scrollbar
11129           will affect canvas when deciding on vertical display and vice versa.
11130
11131 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11132
11133         * RichTextBox.cs: Set default RTF font for documents that don't
11134           have a font table (Fixes #77076)
11135
11136 2005-12-22  Jackson Harper  <jackson@ximian.com>
11137
11138         * TextBoxBase.cs: It's difficult to do, but you can have an empty
11139         clipboard. This prevents a NullRef in that case.
11140         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
11141         clipboard. PRIMARY is for the currently selected text only. (We
11142         should implement PRIMARY at some point.
11143
11144 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11145
11146         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
11147           a Unicode function with a structure that was defined in Ansi way.
11148           This fixes #76942.
11149
11150 2005-12-21  Jackson Harper  <jackson@ximian.com>
11151
11152         * StatusBar.cs: Statusbar handles its fore/back colours on it's
11153         on. Because thats how it rolls. (and this avoids it using ambient
11154         colours).
11155         * ThemeWin32Classic.cs: Use the proper back color for filling.
11156         * Menu.cs: Use the system menu bar color for drawing menu
11157         bars. Using the window back color will bring ambient colours into
11158         the picture.
11159
11160 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
11161
11162         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
11163           Bitmaps were created and not disposed.
11164
11165 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11166
11167         * Control.cs (CreateControl): Don't do anything if the control is
11168           already created, otherwise we'd fire the OnCreated event more than
11169           once
11170
11171 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11172
11173         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
11174           will always match. Instead return -1. Fixes #76464.
11175
11176 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11177
11178         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
11179           neither the beginning nor the end of the line (Fixes bug #76479)
11180
11181 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11182
11183         * Control.cs:
11184           - ControlNativeWindow.ControlFromHandle(): Now handling situation
11185             where handle is invalid
11186           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
11187             instead of slower linear search
11188         * NativeWindow.cs: Don't remove the window from the hashtable until
11189           after the driver has destroyed it (since the driver might use
11190           Control.FromHandle to lookup the control object
11191         * Hwnd.cs: Added DestroyPending property to track if a window is 
11192           already destroyed as far as the driver is concerned and only hasn't
11193           yet notified the control
11194         * XplatUIX11.cs:
11195           - Activate(): Check if the window is still valid before using the 
11196             handle
11197           - Implemented DestroyChildWindow() method to mark child windows as
11198             destroyed when a window is destroyed. This prevents situations 
11199             where we might call an X method based on queued events for a
11200             window that already has been destroyed but we haven't yet pulled
11201             the destroy method from the queue.
11202           - Added a call to the new DestroyChildWindow() method to the drivers
11203             DestroyWindow code. Also now marking the destroyed window itself
11204             as pending
11205
11206 2005-12-20  Jackson Harper  <jackson@ximian.com>
11207
11208         * StatusBar.cs:
11209         * StatusBarPanel.cs: Don't calculate panel sizes on draw
11210         anymore. Just do them when needed, also track the rects of panels
11211         so that we can optimize refreshing more in the future.
11212
11213 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
11214
11215         * ColorDialog.cs: Fixed focus drawing in small color controls
11216
11217 2005-12-19  Jackson Harper  <jackson@ximian.com>
11218
11219         * InternalWindowManager.cs:
11220         * MdiWindowManager.cs: Cleanup some coordinate system changes so
11221         moving windows works properly.
11222
11223 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
11224
11225         * Control.cs: 
11226           - Removed call to InitLayout() from SetBoundsCore(); doc says
11227             it's only called when a control is added to a container
11228           - Split InitLayout logic, moved to separate UpdateDistances() method
11229             since we need to perform those calculations more often than just
11230             when adding the control to a container. (Needed to fix #77022)
11231           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
11232           - Reduced the OnBindingContextChanged events count, don't send them
11233             unless the control is created, we still aren't totally matching
11234             MS, but I can't quite figure out some of their rules
11235
11236 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11237
11238         * ThemeClearlooks.cs: Corrected distance between ProgressBar
11239           stripes
11240
11241 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11242
11243         * ThemeClearlooks.cs:
11244           - Updated ProgressBar drawing
11245           - Corrected drawing of ScrollBars and scroll buttons
11246           - Some temporary fixes for minor pixel artefacts
11247
11248 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
11249
11250         * Control.cs:
11251           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
11252             cause events to be sent in the same order as MS does.
11253           - Added ChangeParent() method to trigger various OnXXXChanged events
11254             that need to be fired when a parent changes (This is a reworking
11255             of the patch from r54254, with the X11 errors fixed)
11256           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
11257             since on MS we get OnLayoutChanged events when calling Clear()
11258           - Changed Enabled property to consider parent state as well, if a
11259             parent is not enabled, the control will not be either
11260           - Changed Parent property to simply call Controls.Add() since that
11261             now does all the work required, this way we avoid code duplication
11262           - Threw in a few OnBindingsContextChanged calls to try and match
11263             when MS sends them. We seem to send a few too many, though.
11264           - Added call to CreateControl when adding the control to a parent.
11265             We were never calling CreateControl. Still needs some work, in
11266             some places we treat HandleCreated and ControlCreated as equal, 
11267             which is wrong
11268           - Removed obsolete commented out code from UpdateZOrder()
11269
11270 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11271
11272         * ThemeClearlooks.cs: Updated TrackBar drawing.
11273
11274 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11275
11276         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
11277
11278 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11279
11280         * FileDialog.cs: Add the Help button and the open readonly
11281           checkbox only if needed
11282
11283 2005-12-16  Jackson Harper  <jackson@ximian.com>
11284
11285         * Control.cs: Make sure we have an active menu before trying to
11286         process commands on it. Prevents menu-less forms from crashing
11287         when Alt is pressed.
11288         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
11289         Dieter Bremes.
11290         * RichTextBox.cs: Expand statement to help out gmcs and fix the
11291         2.0 build.
11292
11293 2005-12-16  Jackson Harper  <jackson@ximian.com>
11294
11295         * InternalWindowManager.cs: Don't translate tool windows screen
11296         coordinates. This fixes windows 'bouncing' around when being moved.
11297
11298 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11299
11300         * TextBoxBase.cs:
11301           - MaxLength now treats 2^31-1 equal to unlimited length (this is
11302             not quite MS compatible, MS uses that number only for single line
11303             and 2^32-1 for multi-line, but I figure it won't hurt keeping
11304             the limit at 2GB)
11305           - Now enforcing the MaxLength limit when entering characters
11306           - Added argument to internal Paste() method to track if it's called
11307             from programatically or via keyboard, since keyboard driven pastes
11308             need to enforce max-length
11309           - Added logic to Paste to only paste as many chars as MaxLength 
11310             allows
11311         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
11312         * TextControl.cs:
11313           - Added Length property to return number of characters in document
11314           - Added private CharCount property which only tracks actual chars
11315             in the document (no linefeeds) and fires event when CharCount
11316             changes
11317           - Added tracking of character count to all methods that alter it
11318           - Added LengthChanged event to allow applications to subscribe
11319             to any changes to the document
11320
11321 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11322
11323         * TextBox.cs: 
11324           - Removed local password_char field (moved to TextBoxBase)
11325           - Now setting the document's password var when password is
11326             set
11327         * TextBoxBase.cs:
11328           - Added password_char field (needed here so MultiLine can
11329             access it)
11330           - Added logic to MultiLine property setter to set the document's
11331             variable when password display is allowed
11332           - Removed debug code and made some debug code conditional
11333         * TextControl.cs:
11334           - Added RecalculatePasswordLine() method to handle special password
11335             char only lines
11336           - Added PasswordChar property, also added related tracking vars
11337           - Draw() method now uses local text var for grabbing text to draw,
11338             this var is set to line.text unless we're doing password display,
11339             then it is set to the pre-generated all-password-chars line
11340           - Added calling RecalculatePasswordLine() method for password lines
11341
11342 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11343
11344         * Hwnd.cs: 
11345           - Added Reparented property to allow tracking of Window Manager
11346             reparenting actions (which affect X/Y calculations of toplevel 
11347             windows)
11348           - Made ToString() print window handles in hex
11349         * XplatUIX11.cs:
11350           - AddConfigureNotify(): Now uses reparented state off Hwnd to
11351             determine if X/Y needs offsetting
11352           - AddConfigureNotify(): Fixed offset calculations
11353           - Now adds ReparentNotify messages into the queue
11354           - Now processes ReparentNotify messages and causes a 
11355             WM_WINDOWPOSCHANGED message to be sent upstream if a window
11356             is reparented (as most likely it's X/Y coordinates are changed
11357             due to that)
11358
11359 2005-12-14  Jackson Harper  <jackson@ximian.com>
11360
11361         * XplatUIX11.cs: Tool windows still need to respek focus.
11362
11363 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11364
11365         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
11366           have a working release
11367
11368 2005-12-13  Jackson Harper  <jackson@ximian.com>
11369
11370         * Form.cs: Update styles after setting the border style regardless
11371         of whether or not the window is using a window manager.
11372
11373 2005-12-13  Jackson Harper  <jackson@ximian.com>
11374
11375         * Form.cs: We now hook into an internal window manager instead of just an
11376         MDI subsystem, this is so we can have properly behaving tool windows.
11377         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
11378         * InternalWindowManager.cs: New internal class that acts as a
11379         window manager for tool windows and as a base for mdi windows.
11380         * MdiWindowManager.cs: New class that acts as a window manager for
11381         mdi windows.
11382
11383 2005-12-12  Jackson Harper  <jackson@ximian.com>
11384
11385         * Control.cs: Updates so we match behavoir for for implicit
11386         controls. Fixes explosions in MDI.
11387
11388 2005-12-12  Jackson Harper  <jackson@ximian.com>
11389
11390         * Control.cs: Implement Invalidate (Region).
11391
11392 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
11393
11394         * Control.cs: 
11395           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
11396             the same events as MS does. MS fires events for each property 
11397             except, for unknown reasons, Cursor, when the control is reparented. 
11398             I can't seem to totally match add/remove since MS also fires some 
11399             VisibleChanged events, which makes no sense. Consolidated the
11400             parenting code into a separate method so it can be called from
11401             both Add and Remove. set_Parent no longer needs any special logic
11402             as it calls the parent's add method which implicitly fires
11403             all events
11404           - Removed some obsolete code and debug output
11405           - Enabled state is inherited from parents, if this is enabled
11406
11407 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
11408
11409         * Form.cs: Removed commented out code
11410
11411 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
11412
11413         * Control.cs:
11414           - Added internal version of Invoke, with additional argument 
11415             indicating if we're calling it from a Dispose() handler. That
11416             way we can avoid BeginInvoke throwing an exception if we're
11417             calling for an already destroyed window.
11418           - Added a dispose argument to BeginInvokeInternal, and made the
11419             check if a valid window handle chain exists conditional on
11420             it not being a dispose call
11421           - Removed code in DestroyHandle to destroy our children. Since we
11422             now handle the WM_DESTROY message we will catch all our children
11423             being destroyed.
11424           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
11425         * Form.cs:
11426           - Added a field to track the application context of the form.
11427           - No need to set closing variable as response to WM_CLOSE, instead
11428             we destroy the window. We also call PostQuitMessage if the form
11429             has an application context (which makes it the main app form,
11430             which, when closed terminates the app)
11431         * XplatUI.cs:
11432           - Dropped Exit() method, it's naming was confusing
11433           - Added PostQuitMessage() which causes GetMessage to return false
11434             once the message queue is empty
11435         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
11436           PostQuitMessage()
11437         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
11438           no longer a valid XplatUI method, but left it in since it's used
11439           internally. Added empty PostQuitMessage() method.
11440         * MenuAPI.cs: Replaced call to Exit() with call to
11441           PostQuitMessage, even though this is probably no longer needed.
11442         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
11443         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
11444         * Application.cs:
11445           - Replaced call to XplatUI.Exit() with PostQuitMessage()
11446           - Removed old debug code that would call XplatUI for exception
11447             display, enabled standard exception handling (Still not enabled
11448             though, until NativeWindow's ExternalExceptionHandler define
11449             is removed
11450         * NativeWindow.cs:
11451           - Added internal method to allow control to update NativeWindow
11452             after a window has been destroyed
11453           - Added handling of already destroyed windows when calling i
11454             DestroyWindow
11455           - Added removal of handle from list on ReleaseHandle
11456         * XplatUIX11.cs:
11457           - Dropped GetMessageResult var and related code
11458           - Added PostQuitState to field to track if PostQuitMessage has been
11459             called
11460           - Dropped Exit() method
11461           - Added PostQuitMessage() method
11462           - GetMessage now will return false if PostQuitState is set and no
11463             more messages are in the queue.
11464           - Expose handler will no longer generate WM_PAINT messages if we are
11465             in PostQuitState since it's very likely any windows have already
11466             been destroyed, and since Hwnd won't get updated until we have
11467             processed the DestroyNotify we'd be causing X errors.
11468         
11469 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11470
11471         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
11472           Thanks to Mike for pointing out the err of my ways.
11473
11474 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11475
11476         * Control.cs(PreProcessMessage): Moved menu handling back, but
11477           after all other key handling, to match MS (who handles Menu in
11478           DefWndProc)
11479         * Menu.cs (WndProc): Removed my brainfart
11480
11481 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11482
11483         * Control.cs(PreProcessMessage): Removed special menu handling 
11484         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
11485
11486 2005-12-07  Mike Kestner  <mkestner@novell.com>
11487
11488         * Control.cs : special case SYSKEYUP so that we can adjust keynav
11489         state according in tracker.
11490         * Menu.cs : promote tracker field to base class and provide a tracker
11491         lookup capability.  Add/Remove shortcuts dynamically if the top menu
11492         has a tracker. Unparent items that are removed from the collection.
11493         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
11494         * Theme*.cs: add always_show_hotkeys field to support configurability
11495         of mnemonic display.  win32 doesn't show mnemonics until Alt is
11496         pressed.
11497
11498 2005-12-07  Jackson Harper  <jackson@ximian.com>
11499
11500         * MdiChildContext.cs: Use Control.ResetCursor.
11501         * Control.cs: ResetCursor needs to set the property so that the
11502         correct XplatUI call gets made.
11503
11504 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11505
11506         * Control.cs: More fixes to make our key events match MS. We
11507           were not setting the modifier state on KeyData, and we were
11508           not generating any events when Alt was pressed with a key
11509           since handling of WM_SYSxxx was missing for the OnKey methods.
11510
11511 2005-12-07  Jackson Harper  <jackson@ximian.com>
11512
11513         * MdiChildContext.cs: reenable the sizing code.
11514         - When the mouse leaves a window reset its cursor.
11515
11516 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11517
11518         * ThemeClearlooks.cs: Reflect latest Hwnd changes
11519
11520 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11521
11522         * Hwnd.cs: Now using the theme 3d bordersize to calculate
11523           widths of Fixed3D borders
11524
11525 2005-12-07  Jackson Harper  <jackson@ximian.com>
11526
11527         * MdiClient.cs: Fix warnings. Earn Mike's love.
11528
11529 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11530
11531         * ThemeClearlooks.cs:
11532           - Adjusted mouse over button color
11533           - Added first parts of CheckBox drawing
11534           - Added correct color for selected text background
11535           - Fixed ComboBox drawing
11536           - Added CPDrawBorder3D and CPDrawBorder
11537
11538 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11539
11540         * XplatUIX11.cs: Added call to XBell for AudibleAlert
11541
11542 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
11543
11544         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11545           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
11546           alert users via sound. We could add an enum arg with different
11547           types of alerts in the future
11548
11549 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11550
11551         * Control.cs: Fix behaviour problems pointed out by Mike
11552
11553 2005-12-05  Mike Kestner  <mkestner@novell.com>
11554
11555         * StatusBarPanel.cs: add Invalidate method and hook it into all the
11556         prop setters.  Calls parent.Refresh for now, but could be maybe be
11557         optimized with an internal method on StatusBar at some point.
11558         [Fixes #76513]
11559
11560 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
11561
11562         * RichTextBox.cs: Implemented get_SelectionColor
11563
11564 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
11565
11566         * ThemeClearlooks.cs:
11567           - Removed dead code
11568           - Draw black button border only if button is Form.AcceptButton
11569           - Draw correct button color for pressed RadioButton if the mouse 
11570             has entered the button
11571           - Updated ProgressBar drawing!
11572           - Updated CPDrawSizeGrip drawing
11573           - Updated StatusBarPanel drawing
11574
11575 2005-12-05  Mike Kestner  <mkestner@novell.com>
11576
11577         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
11578         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
11579
11580 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
11581
11582         * ThemeClearlooks.cs: Initial check-in, activate with
11583           export MONO_THEME=clearlooks
11584         * ThemeEngine.cs: Added ThemeClearlooks
11585
11586 2005-12-03  Mike Kestner  <mkestner@novell.com>
11587
11588         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
11589         [Fixes #76897]
11590
11591 2005-12-02  Jackson Harper  <jackson@ximian.com>
11592
11593         * Form.cs: If the child form has no menu the default main menu is
11594         used as the active menu.
11595
11596 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
11597
11598         * ListBox.cs: Check if any items exist before trying to resolve 
11599           coordinates into items
11600
11601 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11602
11603         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
11604           as the second color for the background hatch
11605
11606 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11607
11608         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
11609         * RichTextBox.cs: FormatText position arguments are 1-based, now making
11610           sure that what we pass to FormatText is always 1-based. Fixes #76885
11611
11612 2005-11-29  Miguel de Icaza  <miguel@novell.com>
11613
11614         * NumericUpDown.cs (EndInit): When we are done initializing,
11615         reflect any updates on the UI.
11616
11617 2005-12-02  Jackson Harper  <jackson@ximian.com>
11618
11619         * ImplicitHScrollBar.cs:
11620         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
11621         their container controls.
11622         * TreeView.cs: Use the new implicit scrollbars.
11623
11624 2005-12-02  Jackson Harper  <jackson@ximian.com>
11625
11626         * TreeView.cs: Make top_node internal so the TreeNodeCollections
11627         can play with it.
11628         * TreeNodeCollection.cs: If we remove the topnode we need to
11629         update topnode to the next node in line.
11630         - When clearing nodes go through the same process as removing
11631         them, so they get depareneted and checked if they are top node.
11632
11633 2005-12-01  Jackson Harper  <jackson@ximian.com>
11634
11635         * TreeView.cs: When imagelists are used the image area is
11636         selectable as well as the text.
11637         - If there are no selected nodes select the first one.
11638         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
11639         so don't do it more then we need to.
11640
11641 2005-12-01  Jackson Harper  <jackson@ximian.com>
11642
11643         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
11644         that arrows can be scaled.
11645
11646 2005-12-01  Jackson Harper  <jackson@ximian.com>
11647
11648         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
11649         fail. Patch by Dieter Bremes
11650
11651 2005-11-30  Jackson Harper  <jackson@ximian.com>
11652
11653         * Form.cs: Property is 2.0 only
11654         * PrintDialog.cs: Signature fix.
11655
11656 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11657
11658         * TextControl.cs: 
11659           - No longer artificially moves text 2 pixels down (now that we have
11660             borders this is no longer needed)
11661           - Added calcs for left, hanging and right indent
11662
11663 2005-11-23  Mike Kestner  <mkestner@novell.com>
11664
11665         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
11666
11667 2005-11-30  Jackson Harper  <jackson@ximian.com>
11668
11669         * MdiChildContext.cs: Set the cloned menus forms, as these don't
11670         get cloned as part of CloneMenu ().
11671         * Menu.cs: Make sure the parent of the items get set correctly
11672         when they are added.  And the owners are notified of the changes.
11673         * Form.cs: Create an ActiveMenu property, so that when MDI is used
11674         we can change the menu being displayed/handled by the form without
11675         changing the menu assosciated with the form.
11676         - Don't let Mdi children draw/handle menus.
11677         
11678 2005-11-30  Jackson Harper  <jackson@ximian.com>
11679
11680         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
11681         a MenuChanged event. Just to make the API a little more
11682         consistent.
11683         * MainMenu.cs:
11684         * MenuItem.cs: Use the new OnMenuChanged
11685         * MdiChildContext.cs: Handle menu merging.
11686         * Form.cs: Implement MergedMenu.
11687         
11688 2005-11-30  Jackson Harper  <jackson@ximian.com>
11689
11690         * Menu.cs: We were misusing Add. Add goes behind the specified
11691         index according to the docs, and does not replace the specified
11692         index. So I added an Insert method.
11693
11694 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11695
11696         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
11697           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
11698           is for Jackson
11699         * RichTextBox.cs: Added calls to base for DnD events
11700
11701 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
11702
11703         * TextControl.cs:
11704           - Fixed drag-selection related crash; style fixes
11705           - Implemented undo class
11706             o Implemented method to capture document state for specified
11707               range in document tree
11708             o Implemented method to restore captured document state
11709             o Implemented cursor tracking
11710             o Implemented basic undo stack
11711           - Added undo cursor tracking to methods altering cursor location
11712           - Added undo tracking to selection deletion (still missing
11713             other text-altering hookups)
11714         * RichTextBox.cs:
11715           - Added SelectionLength property
11716           - Implemented CanPaste()
11717           - Implemented Paste()
11718           - Added missing protected methods
11719           - Fixed RTF->Document conversion; now uses font index 0 and color 
11720             index 0 as the default font for the parsed text
11721           - Fixed RTF<->Document font size translation
11722           - Fixed RTF generation, now properly handles cross-tag boundaries
11723             for single line selection
11724           - No longer always appends blank line to generated RTF
11725           - Removed TODOs
11726           - Added missing attributes
11727           - Hooked up undo-related methods
11728         * TextBoxBase.cs:
11729           - Implemented Copy()
11730           - Implemented Paste()
11731           - Implemented Cut()
11732           - Fixed caret mis-behaviour on backspace across line-boundaries
11733
11734 2005-11-29  Jackson Harper  <jackson@ximian.com>
11735
11736         * MdiClient.cs: Add a method for activating mdi children. Very
11737         basic right now. I imagine someday it might need more girth.
11738         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
11739         children windows names are added to the menu item.
11740         * ThemeWin32Classic.cs: Draw the arrow if the item is an
11741         mdilist. This happens regardless of whether or not there are any
11742         mdi windows to see in the list, and according to my tests happens
11743         before the items are even added. Also happens if there isn't even
11744         an mdi client to get windows from.
11745
11746 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
11747
11748         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
11749         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
11750
11751 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
11752
11753         * DataGridTableStyle.cs:
11754           - Create always the styles for the missing columns even if they are
11755             provided by the user (not default table style)
11756         * DataGrid.cs:
11757           - Fixes bug 76770
11758           - Fixes SetDataBinding (always re-attach source)
11759           - Fixes SetNewDataSource (only clear styles if they are not for 
11760             this source)
11761          -  Expands OnTableStylesCollectionChanged to handle style refresh 
11762             and remove properly
11763
11764 2005-11-29  Jackson Harper  <jackson@ximian.com>
11765
11766         * FileDialog.cs: Implement missing bits, remove some dead
11767         code.
11768         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
11769         creation of the panel so that the options set on the dialog are
11770         seen when the panel is created.
11771         * TreeView.cs: raise a click when items are clicked.
11772         
11773 2005-11-29  Jackson Harper  <jackson@ximian.com>
11774
11775         * MdiClient.cs: Pass some signature methods through to base.
11776
11777 2005-11-28  Jackson Harper  <jackson@ximian.com>
11778
11779         * ListView.cs: Raise the click event when items are clicked.
11780
11781 2005-11-28  Jackson Harper  <jackson@ximian.com>
11782
11783         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
11784         a nullref.
11785
11786 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
11787
11788         * ThemeNice.cs: - Removed 1 pixel bitmaps
11789           - Use SmoothingMode.AntiAlias where it makes sense
11790             (ScrollButton arrow for example)
11791           - Enhanced Button focus drawing
11792           - Fixed ComboBox drawing (no artefacts anymore, focus
11793             rectangle is back again, reduced size of ComboButton, etc.)
11794           - Fixed RadioButton focus drawing for Appearence.Button
11795           - Slight ScrollButton redesign
11796           - Some LinearGradientBrush size fixes
11797           - GroupBoxes have now rounded edges
11798           - Fixed StatusBar drawing
11799
11800 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
11801
11802         * ThemeNice.cs: - Remove dead code
11803           - use correct background colors for menus, etc.
11804           - Fake pixel drawing with 1 pixel bitmaps
11805
11806 2005-11-24  Jackson Harper  <jackson@ximian.com>
11807
11808         * MdiClient.cs: Size the scrollbars when resizing the window.
11809         - Resize the maximized windows when the client is resized
11810         * Form.cs: Make the child context available
11811         
11812 2005-11-23  Jackson Harper  <jackson@ximian.com>
11813
11814         * MdiChildContext.cs: Don't size windows if they are maximized.
11815
11816 2005-11-23  Mike Kestner  <mkestner@novell.com>
11817
11818         * ContextMenu.cs: use MenuTracker.
11819         * Control.cs: remove menu handle usage.
11820         * Form.cs: remove menu handle usage.
11821         * Hwnd.cs: remove menu handle usage.
11822         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
11823         motion and clicks to the new Tracker handlers.
11824         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
11825         and handle usage.
11826         * MenuAPI.cs: refactored to combine popup and menubar event handling.
11827         Killed the MENU and MENUITEM data types and associated collections
11828         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
11829         MenuTracker class that exposes the leftovers from the old MenuAPI
11830         static methods. Restructured Capture handling so that only one grab is
11831         done for the entire menu hierarchy instead of handing off grabs to
11832         submenus. Tracker now has an invisible control to Capture when active.
11833         * MenuItem.cs: add sizing accessors, kill Create
11834         and handle usage.
11835         * Theme.cs: remove menu handle and MENU(ITEM) usage.
11836         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
11837         MENU(ITEM). remove menu handle usage, use Menu directly.
11838         * XplatUIDriver.cs: remove menu handle usage.
11839         * XplatUIOSX.cs: remove menu handle usage.
11840         * XplatUIWin32.cs: remove menu handle usage.
11841         * XplatUIX11.cs: remove menu handle usage.
11842
11843 2005-11-22  Jackson Harper  <jackson@ximian.com>
11844
11845         * Hwnd.cs: Don't compute the menu size for
11846         DefaultClientRectangle.
11847         - Reenable menu sizes being computed for GetClienRectangle.
11848         * Form.cs: Remove comment of trechery
11849         
11850 2005-11-22  Jackson Harper  <jackson@ximian.com>
11851
11852         * Hwnd.cs: The adjustments for the menu bar are made when it is
11853         attached to the form.
11854
11855 2005-11-19  Jackson Harper  <jackson@ximian.com>
11856
11857         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
11858         (just like on windows).
11859
11860 2005-11-19  Jackson Harper  <jackson@ximian.com>
11861
11862         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
11863         use real buttons anymore because they are in non client area. The
11864         one TODO here is that I need to somehow invalidate a section of
11865         the non client area.
11866
11867 2005-11-18  Jackson Harper  <jackson@ximian.com>
11868
11869         * Control.cs: Put the enum check back in now that MDI doesnt have
11870         to use this to set border styles.
11871         * Form.cs: Only set mdi child windows borders if the handle has
11872         been created.
11873         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
11874         this directly on to the driver.
11875         - Get the move start position before adjusting for the titlebar
11876         height, this fixes the windows "skipping" when they are first
11877         moved.
11878
11879 2005-11-18  Jackson Harper  <jackson@ximian.com>
11880
11881         * XplatUIX11.cs: Just compute the mdi borders separately as they
11882         don't totally match up with normal form borders.
11883
11884 2005-11-18  Jackson Harper  <jackson@ximian.com>
11885
11886         * Control.cs: Set WS_ styles for borders, so that the driver does
11887         not have to retrieve the control instance to figure out what kind
11888         of borders it should have.
11889         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
11890         driver can know its an mdi child easily.
11891         * XplatUIX11.cs: Get the border styles and whether the window is
11892         MDI from the Styles and ExStyles params instead of having to get a
11893         control. This prevents a chicken and egg problem.       
11894
11895 2005-11-18  Jackson Harper  <jackson@ximian.com>
11896
11897         * MdiClient.cs: Fix typo so scrollbars show up correctly.
11898
11899 2005-11-18  Jackson Harper  <jackson@ximian.com>
11900
11901         * MdiClient.cs: Calculate when to add and remove scrollbars
11902         correctly.
11903         * MdiChildContext.cs: Adjust the y position to take the titlebar
11904         into account.
11905         - No height for FormBorderStyle.None
11906
11907 2005-11-18  Jackson Harper  <jackson@ximian.com>
11908
11909         * Control.cs: Allow non enum values to be used for
11910         InternalBorderStyle.  MDI does this to set a special border style.
11911         - New utility methods for converting points to/from client coords
11912         - Add the newly created control to the Controls collection before
11913         updating its style. This way UpdateStyle can walk the control
11914         heirarchy to find the control if needed.
11915         so I don't need to create a new Point object all the time.
11916         * Form.cs: Let MDI windows handle their border styles.
11917         - Set styles on MDI windows so the correct title style is derived.
11918         * MdiChildContext.cs: Move all the painting and window handling
11919         into the non client area.
11920         - Use correct sizing and put correct buttons on frames based on
11921         the FormBorderStyle.
11922         - Notify the mdi client about scrolling
11923         - Need to handle the buttons ourselves now, because they are all
11924         in non client areas and we can't add controls there.
11925         * MdiClient.cs: Halfway to scrolling, this implementation is
11926         somewhat broken though, we need to check to make sure other
11927         windows aren't causing scrolling before removing the bars. Also
11928         the bars need to be drawn on top, maybe I can switch implicit
11929         controls to be on top.
11930         * Hwnd.cs: caption_height and tool_caption_height are now
11931         properties of an hwnd, this way they can be set by the driver
11932         based on the type of window they are.  In X11 the window manager
11933         handles the decorations so caption_height is zero unless its an
11934         MDI window.
11935         - Add 3 pixel borders for MDI windows (0xFFFF).
11936         - Get rid of some code duplication, have DefaultClientRectanle
11937         just call GetClientRectangle.
11938         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
11939         Hwnd now.
11940         - Set border styles differently for mdi windows.
11941         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
11942         Hwnd now.
11943         
11944 2005-11-15  Mike Kestner  <mkestner@novell.com>
11945
11946         * Menu.cs: when adding an item to the collection, if item is already 
11947         parented, remove it from the parent.
11948
11949 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
11950
11951         * X11DesktopColors.cs: Added KDE support
11952
11953 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
11954
11955         * XplatUIWin32.cs: 
11956           - Clipboard methods now can translate Rtf format
11957           - No longer removes clipboard contents whenever a new format is added
11958             to allow placing multiple formats on the clipboard
11959         * Clipboard.cs: Clipboard now supports getting a IDataObject and
11960           will place all formats contained in it onto the clipboard. Also
11961           now cleans the clipboard before placing a new object onto it
11962         * RichTextBox.cs:
11963           - Implemented set_Rtf
11964           - Implemented set_SelectedRtf
11965           - Created InsertRTFFromStream() method to allow single code base
11966             for all properties and methods that insert RTF into document
11967           - Removed debug output
11968         * TextControl.cs:
11969           - Fixed Delete(int) to fix up line numbers
11970           - Fixed ReplaceSelection to combine start and end line
11971           - Fixed serious DeleteChars bug that would leave the document tree
11972             broken
11973           - Improved DumpTree with several logic checks to detect broken
11974             document trees
11975           - Removed debug lines
11976           - Fixed Caret.WordForward/WordBack moving code, now always also 
11977             updates caret.tag (fixes crash when word-selecting across tag
11978             boundaries via keyboard)
11979           - Added Insert() method for inserting multiline text into documents
11980           - Fixed DeleteChars() calculation errors that would cause a broken
11981             tag chain with multiple tag lines
11982           - DeleteChars() no longer crashes on multi-tag lines if not all tags
11983           - Split() no longer moves caret if split is at caret location
11984           - ReplaceSelection() now updates the cursor and re-displays it
11985           - ReplaceSelection() now uses new Insert() method to avoid code
11986             duplication
11987           - FormatText() can now handle formatting partial lines
11988         * TextBoxBase.cs:
11989           - Append now uses new TextControl.Insert() method (this avoids 
11990             duplicate code)
11991           - Implemented Ctrl-X (Cut) (
11992           - Implemented Ctrl-C (Copy)
11993           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
11994             regeneration when pasting text; roundtripping Copy&Paste within
11995             edit control still fails due to some calculation bugs in GenerateRTF)
11996           - The Delete key will now remove the current selection if it is visible
11997         * TextBox.cs: Removed debug lines
11998         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
11999           driver to be initialized and can't therefore be done via a static ctor)
12000
12001 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
12002
12003         * TextControl.cs: Added backend code for finding char arrays and strings
12004         * TextBoxBase.cs:
12005           - Added mouse wheel scroll support
12006           - Added support for VScroll and HScroll events
12007         * RichTextBox.cs:
12008           - Implemented all seven Find() variants
12009           - Implemented GetCharFromPosition()
12010           - Implemented GetCharIndexFromPosition()
12011           - Implemented GetLineFromIndex()
12012           - Implemented GetPositionFromCharIndex();
12013           - Implemented SaveFile for PlainText and UnicodeText
12014           - Fixed set_Font, now setting a new font applies that font to
12015             the whole document
12016           - Implemented generic Document to RTF converter
12017           - Implemented SaveFile for RichText format (still missing unicode
12018             conversion for non-ansi chars)
12019           - Implemented get_Rtf
12020           - Implemented get_SelectedRtf
12021
12022 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
12023
12024         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
12025           to allow any captures to be released before triggering OnClick. This
12026           way a click handler may capture the mouse without interference.
12027         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
12028           This way we send them even though X may not allow a grab (if the window
12029           isn't visible, for example)
12030
12031 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
12032
12033         * DataGridViewRowEventArgs.cs: DataGridView implementation
12034         * DataGridViewElement.cs: DataGridView implementation
12035         * DataGridViewComboBoxCell.cs: DataGridView implementation
12036         * DataGridViewDataErrorContexts.cs: DataGridView implementation
12037         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
12038         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
12039         * ImageLayout.cs: DataGridView implementation
12040         * DataGridViewComboBoxColumn.cs: DataGridView implementation
12041         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
12042         * DataGridViewSelectionMode.cs: DataGridView implementation
12043         * IDataGridViewEditingControl.cs: DataGridView implementation
12044         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
12045         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
12046         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
12047         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
12048         * DataGridViewColumnSortMode.cs: DataGridView implementation
12049         * DataGridView.cs: DataGridView implementation
12050         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
12051         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
12052         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
12053         * Padding.cs: DataGridView implementation
12054         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
12055         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
12056         * DataGridViewRowEventHandler.cs: DataGridView implementation
12057         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
12058         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
12059         * DataGridViewButtonCell.cs: DataGridView implementation
12060         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
12061         * DataGridViewEditMode.cs: DataGridView implementation
12062         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
12063         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
12064         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
12065         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
12066         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
12067         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
12068         * DataGridViewCellEventHandler.cs: DataGridView implementation
12069         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
12070         * DataGridViewCellStyleConverter.cs: DataGridView implementation
12071         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
12072         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
12073         * DataGridViewColumnEventArgs.cs: DataGridView implementation
12074         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
12075         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
12076         * QuestionEventArgs.cs: DataGridView implementation
12077         * IDataGridViewEditingCell.cs: DataGridView implementation
12078         * DataGridViewTriState.cs: DataGridView implementation
12079         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
12080         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
12081         * DataGridViewColumnCollection.cs: DataGridView implementation
12082         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
12083         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
12084         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
12085         * DataGridViewColumn.cs: DataGridView implementation
12086         * DataGridViewCellBorderStyle.cs: DataGridView implementation
12087         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
12088         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
12089         * DataGridViewRow.cs: DataGridView implementation
12090         * DataGridViewImageCellLayout.cs: DataGridView implementation
12091         * DataGridViewImageCell.cs: DataGridView implementation
12092         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
12093         * DataGridViewCheckBoxCell.cs: DataGridView implementation
12094         * DataGridViewHeaderCell.cs: DataGridView implementation
12095         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
12096         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
12097         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
12098         * DataGridViewTextBoxColumn.cs: DataGridView implementation
12099         * QuestionEventHandler.cs: DataGridView implementation
12100         * DataGridViewCellStyleScopes.cs: DataGridView implementation
12101         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
12102         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
12103         * DataGridViewCell.cs: DataGridView implementation
12104         * DataGridViewCellEventArgs.cs: DataGridView implementation
12105         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
12106         * DataGridViewCellStyle.cs: DataGridView implementation
12107         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
12108         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
12109         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
12110         * TextFormatFlags.cs: DataGridView implementation
12111         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
12112         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
12113         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
12114         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
12115         * DataGridViewButtonColumn.cs: DataGridView implementation
12116         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
12117         * HandledMouseEventArgs.cs: DataGridView implementation
12118         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
12119         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
12120         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
12121         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
12122         * DataGridViewRowCollection.cs: DataGridView implementation
12123         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
12124         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
12125         * DataGridViewHitTestType.cs: DataGridView implementation
12126         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
12127         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
12128         * DataGridViewColumnEventHandler.cs: DataGridView implementation
12129         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
12130         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
12131         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
12132         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
12133         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
12134         * DataGridViewContentAlignment.cs: DataGridView implementation
12135         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
12136         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
12137         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
12138         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
12139         * DataGridViewPaintParts.cs: DataGridView implementation
12140         * DataGridViewCellCollection.cs: DataGridView implementation
12141         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
12142         * DataGridViewImageColumn.cs: DataGridView implementation
12143         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
12144         * DataGridViewElementStates.cs: DataGridView implementation
12145         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
12146         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
12147         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
12148         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
12149         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
12150         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
12151         * DataGridViewRowHeaderCell.cs: DataGridView implementation
12152         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
12153         * DataGridViewTextBoxCell.cs: DataGridView implementation
12154         * DataGridViewBand.cs: DataGridView implementation
12155         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
12156         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
12157         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
12158         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
12159         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
12160         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
12161         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
12162         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
12163         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
12164         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
12165         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
12166
12167 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
12168
12169         * ThemeWin32Classic.cs: 
12170           - Draw the outside focus rectangle around buttons
12171           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
12172             doesn't use end caps for every dash of a line anymore. This
12173             workaround ignores the forecolor.
12174
12175 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
12176
12177         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
12178           endian safe.
12179
12180 2005-11-07  Jackson Harper  <jackson@ximian.com>
12181
12182         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
12183
12184 2005-11-07  Jackson Harper  <jackson@ximian.com>
12185
12186         * ScrollableControl.cs: Calculate the maximum and change vars
12187         (more) correctly so that scrollbars appear as a sensible size.
12188
12189 2005-11-04  Jackson Harper  <jackson@ximian.com>
12190
12191         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
12192         collection.
12193         * TreeView.cs: When the tree is sorted null out the top_node so
12194         that it is recalculated.
12195         - Use dotted lines instead of dashed lines to match MS better.
12196
12197 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
12198
12199         * ListView.cs: 
12200           - Implements key search for items. Useful when browsing files with FileDialog
12201           - When changing view mode or when clear the items reset scrollbar positions
12202
12203 2005-11-04  Jackson Harper  <jackson@ximian.com>
12204
12205         * CurrencyManager.cs: Implement the MetaDataChanged event, the
12206         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
12207         as to what the method may do as there is no real way of creating a
12208         derived CurrencyManager and calling the method. 
12209
12210 2005-11-03  Jackson Harper  <jackson@ximian.com>
12211
12212         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
12213         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
12214         method which seems to just be used internally to refresh the tabs.
12215
12216 2005-11-03  Jackson Harper  <jackson@ximian.com>
12217
12218         * TabControl.cs: Implement the remove method. Fix some broken
12219         comments.
12220
12221 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12222
12223         * DateTimePicker.cs:
12224           - Added missing DateTimePickerAccessibleObject class
12225           - Added missing events
12226           - Added OnFontChanged method
12227         * Form.cs: Added missing attributes
12228         * TreeView.cs: Added missing attributes
12229
12230 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
12231
12232         * GridItemCollection.cs: Fix signatures
12233
12234 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12235
12236         * XplatUI.cs: Updated build rev/date
12237         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
12238           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
12239         * Application.cs: Trigger context-specific ExitThread events
12240
12241 2005-11-03  Jackson Harper  <jackson@ximian.com>
12242
12243         * Menu.cs:
12244         * MainMenu.cs:
12245         * GridTableStylesCollection.cs:
12246         * Timer.cs:
12247         * TabPage.cs:
12248         * HelpProvider.cs:
12249         * StatusBar.cs:
12250         * MonthCalendar.cs: Signature fixes
12251
12252 2005-11-03  Jackson Harper  <jackson@ximian.com>
12253
12254         * TreeNodeCollection.cs: Remove should not be virtual.
12255         * TreeView.cs: Implement the last of the missing methods.
12256
12257 2005-11-03  Jackson Harper  <jackson@ximian.com>
12258
12259         * TreeNodeConverter.cs: Implement to get off my class-status back.
12260
12261 2005-11-03  Jackson Harper  <jackson@ximian.com>
12262
12263         * TreeView.cs: Hookup the bits for drag and drop.
12264         * TreeNode.cs: Don't cache the tree_view or index anymore, now
12265         that nodes can be moved from tree to tree easily this just causes
12266         all sorts of problems.
12267         * TreeNodeCollection: Don't need to give treenodes an index and
12268         treeview anymore when they are added, these are computed on the
12269         fly. Also make sure to remove a node before its added.
12270
12271 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12272
12273         * TextControl.cs:
12274           - Added CaretSelection enum
12275           - Added comparison methods to Marker struct, makes selection code
12276             more readable
12277           - Added SelectionStart and SelectionEnd as 'moveable' location for
12278             the CaretDirection enum and handler
12279           - Added selection_prev variable to track optimized invalidation for
12280             word and line selection
12281           - Added SelectionVisible property (returns true if there is a valid 
12282             selection)
12283           - Switched CaretHasFocus to only display the caret if there is no
12284             visible selection
12285           - Avoiding StringBuilder.ToString to retrieve a single char, instead
12286             using the direct character index; should be much faster
12287           - Added various conditional debug statements
12288           - Fixed invalidation calculation for selection ranges
12289           - Added ExpandSelection() method to support word and line selection
12290           - Switched SetSelectionToCaret to use new Marker compare overloads
12291           - Added central IsWordSeparator() method to determine word 
12292             separators/whitespace and FindWordSeparator() to streamline common
12293             usage of IsWordSeparator()
12294         * TextBoxBase.cs:
12295           - Removed unneeded grabbed variable, it was just mirroring
12296             Control.Capture
12297           - No longer firing OnTextChanged event when Text setter is called,
12298             since the base will fire the event for us
12299           - Added handling of Ctrl-Up/Down selection
12300           - Added handling of Shift-Cursorkey selection
12301           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
12302             words
12303           - Added handling of Shift and Ctrl-Shift-Home/End selection
12304           - Removed some debug output
12305           - Added handling for single/double/tripple-click to place caret/
12306             select word/select line respectively (Fixes bug #76031)
12307           - Added support for drag expansion of word/line selection
12308         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
12309           current selection
12310
12311 2005-11-02  Jackson Harper  <jackson@ximian.com>
12312
12313         * X11Dnd.cs: If the drag is going to and from a MWF window just
12314         copy the data instead of sending it out through the X Selection
12315         mechanism.
12316
12317 2005-11-02  Jackson Harper  <jackson@ximian.com>
12318
12319         * X11Dnd.cs:
12320         * XplatUIX11.cs: When in a drag we don't want motion notify
12321         messages to get passed on to the other controls. This prevents
12322         mouse move messages from showing up in the drag source.
12323
12324 2005-11-02  Jackson Harper  <jackson@ximian.com>
12325
12326         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
12327         the correct button is release to end a drag.
12328         * XplatUIX11.cs: Make the button state internal so the drag system
12329         can access it.  Dragging needs to know about all button releases,
12330         not just left button.
12331
12332 2005-11-02  Miguel de Icaza  <miguel@novell.com>
12333
12334         * Form.cs (Icon): If the icon is null, reset the icon to the
12335         default value. 
12336
12337         * Cursor.cs: When writing the AND-mask bitmap do not include the
12338         number of colors, but hardcode those to two (black and white),
12339         fixes the loading of color cursors (Paint Dot Net).
12340
12341         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
12342         turn off autoscaling.
12343
12344         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
12345
12346 2005-11-02  Jackson Harper  <jackson@ximian.com>
12347
12348         * X11Dnd.cs: Make sure to send a status message if the pointer
12349         enters a control that can not accept a drop, otherwise the cursor
12350         isn't updated correctly. Also tried to compress the lines of code
12351         a bit.
12352
12353 2005-11-02  Jackson Harper  <jackson@ximian.com>
12354
12355         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
12356         set actions correctly.  This isn't perfect as XDND and win32 have
12357         some differences on how you allow actions. I'll clear this up by
12358         adding a path for drag from MWF to MWF windows.
12359         * XplatUIX11.cs: Hook into the dnd system.
12360
12361 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
12362
12363         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
12364         previously shown but they are no longer need it. Very obvious when 
12365         browsing files with FileDialog.
12366
12367 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
12368
12369         * Control.cs: We always need to call OnPaintBackground. We pretty much
12370           ignore AllPaintingInWmPaint and always do the painting there, whether 
12371           it's set or not, since we always ignore the WM_ERASEBKGND message 
12372           (which we don't generate on X11). This fixes #76616.
12373         * Panel.cs: Removed unneeded background painting. This happens properly
12374           in Control.cs already
12375
12376 2005-10-31  Mike Kestner  <mkestner@novell.com>
12377
12378         * Menu.cs: Add items to collection before setting their index.
12379         * MenuItem.cs : add range checking with ArgumentException like MS.
12380         [Fixes #76510]
12381
12382 2005-10-31  Jackson Harper  <jackson@ximian.com>
12383
12384         * ListBox.cs: Invalidate if the area is visible at all not just
12385         contained in the visible rect. Fixes unselection of semi visible
12386         items.
12387
12388 2005-10-31  Jackson Harper  <jackson@ximian.com>
12389
12390         * Control.cs: Consistently name the dnd methods. Make them
12391         internal so we can override them to match some MS behavoir
12392         internally.
12393         * Win32DnD.cs: Use the new consistent names.
12394
12395 2005-10-31  Jackson Harper  <jackson@ximian.com>
12396
12397         * TreeView.cs: Don't draw the selected node when we lose focus.
12398
12399 2005-10-31  Jackson Harper  <jackson@ximian.com>
12400
12401         * X11Dnd.cs: We still need to reset the state even though a full
12402         reset isn't being done, otherwise status's still get sent all over
12403         the place.
12404
12405 2005-10-31  Jackson Harper  <jackson@ximian.com>
12406
12407         * Control.cs: Make the dnd_aware flag internal so the dnd
12408         subsystem can check it. Catch exceptions thrown in dnd handlers to
12409         match MS behavoir.
12410         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
12411         * X11Dnd.cs: Handle null data in the converters. Set the XDND
12412         version when sending a XdndEnter. Use the control/hwnd dnd_aware
12413         flags to reduce the number of dnd enters/status's sent.
12414
12415 2005-10-31  Jackson Harper  <jackson@ximian.com>
12416
12417         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
12418
12419 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
12420
12421         * PictureBox.cs: Fixes 76512
12422
12423 2005-10-28  Jackson Harper  <jackson@ximian.com>
12424
12425         * X11Dnd.cs: Early implementation to support winforms being a drag
12426         source for data on X11. Also restructured the converters so they
12427         can go both ways now.
12428         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
12429         
12430 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
12431
12432         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
12433           clipboard requests
12434
12435 2005-10-27  Jackson Harper  <jackson@ximian.com>
12436
12437         * TreeNode.cs: Implement serialization so my DnD examples will work.
12438
12439 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
12440
12441         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
12442           TreeView.cs: Don't dispose objects that are not owned.
12443           
12444 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
12445
12446         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
12447           should retrieve the current cursor and report that, but XplatUI
12448           doesn't (yet) have an interface for that (and I'm not sure I even
12449           can, on X11)
12450         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
12451           until any message loop processing is done (and the WM_SETCURSOR
12452           replaces the cursor to the proper one)
12453         * XplatUIX11.cs: 
12454           - Fixed override behaviour, we can't set the cursor globally on X11, 
12455             just for our windows.
12456           - Invalidating the System.Drawing X11 display handle when we are
12457             shutting down
12458         * Control.cs: Fix to make csc happy
12459
12460 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
12461
12462         * TextBoxBase.cs: 
12463           - get_Text: Add last line (without trailing newline) to returned
12464             value (Fixes 76212)
12465           - get_TextLength: Count last line in returned length
12466           - ToString: Call Text property instead of duplicating code
12467
12468 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
12469
12470         * ImageList.cs: Dispose ImageAttributes objects.
12471
12472 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12473
12474         * ImageList.cs: Use attribute constructors with less arguments where
12475           possible.
12476
12477 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12478
12479         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
12480           Use typeof instead of strings when assembly is referenced. Added
12481           some more comments.
12482
12483 2005-10-21  Jackson Harper  <jackson@ximian.com>
12484
12485         * ListView.cs: Raise a double click event. Also tried to somewhat
12486         fix when the selectedindexchanged event is raised. Its still
12487         broken though.
12488
12489 2005-10-21  Jackson Harper  <jackson@ximian.com>
12490
12491         * TreeView.cs: New method to invalidate the plus minus area of a
12492         node without invalidating the whole node (maybe this can be used
12493         in some more places).
12494         * TreeNodeCollection.cs: When adding to an empty node we need to
12495         invalidate its plus minus area so the little block shows up.
12496         
12497 2005-10-21  Jackson Harper  <jackson@ximian.com>
12498
12499         * TreeView.cs: Make sure that when we invalidate a node the bounds
12500         are big enough to cover the selected box and the focus
12501         rectangle. Use a different colour for the lines connecting nodes
12502         so they show up with all themes.
12503
12504 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12505
12506         * NativeWindow.cs: Don't call anything that could call into the driver,
12507           we might be on a different thread.
12508
12509 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
12510
12511         * Control.cs(Dispose): Since Dispose might run on a different thread,
12512           make sure that we call methods that could call into the driver via
12513           invoke, to avoid thread issues
12514
12515 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12516
12517         * XplatUI.cs: Removed finalizer
12518         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
12519           not allowing to be called on the finalizer thread.
12520
12521 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
12522
12523         * ImageList.cs:
12524           - Reverted r51889 and r51891.
12525           - Added ImageListItem class that stores unmodified image items and image
12526             properties required to create list images until handle is created.
12527           - Added AddItem and moved image creation logic to AddItemInternal.
12528           - Added CreateHandle method that creates images based on unmodified items.
12529           - Added DestroyHandle that changes state to store unmodified items.
12530           - Add and AddStrip methods no more create handle.
12531           - ReduceColorDepth has no return value.
12532           - Dispose destroys handle.
12533           - Modified other methods to reflect the above changes.
12534           - Implemented key support.
12535           - Added profile 2.0 members and attributes.
12536           - Added private Reset and ShouldSerialize methods that provide the same
12537             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
12538             them as they are private.
12539           - Added some more comments about implementation details.
12540
12541 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12542
12543         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
12544
12545 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12546
12547         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
12548
12549 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12550
12551         * DataGridDrawingLogic.cs: Fixes column hit calcultation
12552         * DataGridColumnStyle.cs: Remove debug message
12553
12554 2005-10-20  Jackson Harper  <jackson@ximian.com>
12555
12556         * TreeView.cs: We can always get input keys regardless of whether
12557         or not editing is enabled. They are used for navigation.
12558
12559 2005-10-20  Jackson Harper  <jackson@ximian.com>
12560
12561         * TreeNode.cs: Use the viewport rect for determining if a node
12562         needs to be moved for visibility. Don't use Begin/End edit. This
12563         calls a full refresh when its done.
12564         * TreeView.cs: New SetBottom works correctly.  Make the viewport
12565         rect property internal so the treenodes can see it. When clicking
12566         on a node we need to ensure that its visible because it might just
12567         be partly visible when clicked.
12568
12569 2005-10-20  Jackson Harper  <jackson@ximian.com>
12570
12571         * TreeNodeCollection.cs: Remove debug code.
12572
12573 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12574
12575         * Datagrid.cs: Implements column sorting in Datagrid
12576         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
12577
12578 2005-10-20  Jackson Harper  <jackson@ximian.com>
12579
12580         * TreeNodeCollection.cs: Remove items properly. Update the correct
12581         area after removing them.
12582
12583 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12584
12585         * Datagrid.cs: Should not call base.OnPaintBackground
12586
12587 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12588
12589         * XplatUIX11.cs (GetMessage):
12590           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
12591             window instead of client window
12592           - Now properly calculates NC_xBUTTONUP message coordinates
12593           - ScreenToMenu now properly calculates it's coordinates of whole 
12594             window, since menus are in the whole window, not in the client
12595             window
12596           - Added WholeToScreen coordinate translation method
12597
12598 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
12599
12600         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
12601           want to return a message, loop back to the beginning of the function
12602           and grab the next real message to process instead.
12603
12604 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12605
12606         * Splitter.cs: Properly set limits if no filler control is used
12607
12608 2005-10-19  Jackson Harper  <jackson@ximian.com>
12609
12610         * ColorDialog.cs: Don't show the help button if it is not enabled
12611         instead of disabling it (this is what MS does). Don't create the
12612         panel until the dialog is run, otherwise the vars (such as
12613         ShowHelp) are not set yet.
12614
12615 2005-10-19  Jackson Harper  <jackson@ximian.com>
12616
12617         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
12618         are reduced when adding nodes.
12619         * TreeNode.cs:
12620         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
12621         tree.
12622         
12623 2005-10-19  Jackson Harper  <jackson@ximian.com>
12624
12625         * FolderBrowserDialog.cs: End editing our treeview so the window
12626         actually gets refreshed.
12627
12628 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12629
12630         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
12631           Obsoleted handling of WM_ERASEBKGND, now always draws our background
12632           inside of WM_PAINT
12633
12634 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12635
12636         * MenuAPI.cs: Returns after Hidding window
12637         * XplatUIX11.cs: Added TODO found while debugging menu issues
12638
12639 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12640
12641         * XplatUIX11.cs: Do not re-map the whole window when it's size
12642           becomes non-zero unless it's supposed to be actually visible
12643
12644 2005-10-18  Jackson Harper  <jackson@ximian.com>
12645
12646         * TreeView.cs: We don't need to keep a count anymore.
12647         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
12648         use the Grow method.
12649
12650 2005-10-18  Jackson Harper  <jackson@ximian.com>
12651
12652         * TreeNodeCollection.cs: Insert is not supported on arrays, so
12653         implement it manually here.
12654
12655 2005-10-18  Jackson Harper  <jackson@ximian.com>
12656
12657         * ImageList.cs: Dont kill the list when the colour depth is
12658         changed, just change the colour depth of all the images.
12659         - Same goes for setting the image size. Just resize them all
12660         instead of killing the list softly.
12661
12662 2005-10-18  Jackson Harper  <jackson@ximian.com>
12663
12664         * Control.cs: Don't invalidate empty rectangles.
12665
12666 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12667
12668         * ListViewItem.cs:
12669           - Adds checked item to the Checked/Item lists (where empty before)
12670           - Do not add items to the Selected lists if they are already present
12671         * ListView.cs:
12672           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
12673           - When deleting items make sure that we delete them for the Selected
12674           and Checked list also.
12675
12676 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12677
12678         * Label.cs: Dispose objects no longer used
12679         * ThemeWin32Classic.cs: Dispose objects no longer used
12680
12681 2005-10-18  Jackson Harper  <jackson@ximian.com>
12682
12683         * TabControl.cs: Don't refresh the whole control when the tabs are
12684         scrolled, we just need to refresh the tab area.
12685
12686 2005-10-17  Jackson Harper  <jackson@ximian.com>
12687
12688         * XplatUIX11.cs: Compress code a little bit. Only calculate the
12689         after handle when we need it.
12690
12691 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12692
12693         * Control.cs: When the parent size changes, recalculate anchor 
12694           positions. Partial fix for #76462
12695
12696 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12697
12698         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
12699           drawn. Fixes #76462
12700
12701 2005-10-17  Jackson Harper  <jackson@ximian.com>
12702
12703         * MonthCalendar.cs: Don't create the numeric up down until our
12704         handle is created. Otherwise our handle is created in the
12705         constructor and we don't know if we are a WS_CHILD or WS_POPUP
12706         yet.
12707
12708 2005-10-17  Jackson Harper  <jackson@ximian.com>
12709
12710         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
12711         correctly.
12712
12713 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12714         * TreeNode.cs : small logical fix (was using local var instead of field)
12715         
12716 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12717
12718         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
12719
12720 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12721
12722         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
12723
12724 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
12725
12726         * Control.cs: 
12727           - Re-implemented anchoring code. My first version was really broken.
12728             This fixes bug #76033. Unlike the previous implementation we will
12729             no longer have round errors since all numbers are calculated from
12730             scratch every time. Removed various anchor-related obsolete vars.
12731           - InitLayout no longer causes layout event firing and layout to be 
12732             performed
12733
12734 2005-10-16  Jackson Harper  <jackson@ximian.com>
12735
12736         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
12737         which was broken).
12738
12739 2005-10-16  Jackson Harper  <jackson@ximian.com>
12740
12741         * TabControl.cs: Remove debug code.
12742
12743 2005-10-16  Jackson Harper  <jackson@ximian.com>
12744
12745         * XEventQueue.cs: Increase the default queue size (very simple
12746         apps needed to grow the queue).
12747         * Hwnd.cs: No finalizer so we don't need to suppress
12748         finalization. Compute the invalid area manually so a new rectangle
12749         does not newto be created.
12750         * ScrollableControl.cs: Don't set any params (otherwise visibility
12751         isn't set correctly).
12752         * MdiChildContext.cs: New constructor takes the mdi parent so it
12753         doesn't have to be computed and avoids a crash on windows. Draw
12754         the window icon properly, and allow the text to be seen.
12755         * Form.cs: Use new MdiChildContext constructor. Make sure the
12756         child context isn't null in wndproc.
12757         * TabControl.cs: Don't set focus, this is muddling keyboard
12758         behavoir. Expand the tab rows when a window size increase will
12759         allow extra tabs to be seen. Don't allow tabs smaller than the
12760         width of a window to be scrolled out of view.
12761         * TreeNode.cs:
12762         * TreeView.cs: Use measure string to calculate a nodes width, the
12763         width is cached and only updated when the text or the font is
12764         changed. Don't check for expand/collapse clicks on the first level
12765         nodes if root lines are disabled.
12766         
12767 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
12768
12769         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
12770
12771 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12772
12773         * DataGridBoolColumn.cs: fixes warning
12774
12775 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12776
12777         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
12778         to match more to match more precisely the MS Net behavior
12779
12780 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12781
12782         * Hwnd.cs: Added field to track if window is mapped
12783         * XplatUIX11.cs: 
12784           - Unmap windows if they become 0-size, re-map when 
12785             they are >0 again; fixes #76035
12786           - Re-set our error handler after initializing X11Desktop
12787             to override any error handlers Gtk or whatever was called
12788             may have set.
12789
12790 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12791
12792         * CheckedListBox.cs: Removed unused vars
12793         * ListView.cs: Fixed signatures
12794         * RichTextBox.cs: Removed unused vars
12795         * TextBoxBase.cs: Removed unused vars
12796         * XplatUIWin32.cs: Removed unused vars
12797         * XplatUIX11.cs: Removed unused vars
12798         * XplatUI.cs: Updated version and date to latest published
12799
12800 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12801
12802         * Cursor.cs: Added private .ctor to work around a bug in
12803           resourceset (Thanks to Geoff Norton for the help on this)
12804         * SplitterEventArgs.cs: Made fields accessible so we don't
12805           waste boatloads of objects and can reuse the same one
12806           in Splitter
12807         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
12808           any captions and borders when generating screen coordinates
12809         * Splitter.cs: Reimplemented control, now fully complete, uses
12810           rubberband drawing, supports and obeys all properties, has
12811           proper cursors
12812
12813 2005-10-13  Miguel de Icaza  <miguel@novell.com>
12814
12815         * Form.cs (Form): Setup default values for autoscale and
12816         autoscale_base_size;  Make these instance variables, not static
12817         variables. 
12818
12819         (OnLoad): on the first load, adjust the size of the form.
12820
12821 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12822
12823         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
12824           width argument to DrawReversibleRectangle()
12825         * XplatUIWin32.cs, XplatUIX11.cs: 
12826           - Implemented width for DrawReversibleRectangle()
12827           - Added logic to DrawReversibleRectangle that recognizes a zero
12828             width or height and only draws a line in that situation
12829         
12830 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
12831
12832         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
12833         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
12834         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
12835           method (it uses our FosterParent window to get a graphics context)
12836
12837 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
12838
12839         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
12840           and SetWindowBackground methods
12841         * Control.cs:
12842           - Setting proper ControlStyles
12843           - We no longer call XplatUI.SetWindowBackground and XplatUI.
12844             EraseWindowBackground, instead we draw the window background
12845             ourselves in PaintControlBackground. This behaviour is
12846             required to match MS, where, when OnPaintBackground is not
12847             called, the background is not drawn.
12848           - Removed unneeded Refresh() in set_Text
12849         * Hwnd.cs: Dropped the ErasePending support. No longer needed
12850         * XplatUIX11.cs:
12851           - Created DeriveStyles method to translate from CreateParams to
12852             FormBorderStyle and TitleStyle, also handles BorderStyle (which
12853             matches FormBorderStyle enum values)
12854           - Consolidated SetHwndStyles and CalculateWindowRect border/title
12855             style calculations into single DeriveStyles method
12856           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
12857             from redrawing the whole window on any resize or expose.
12858           - Fixed CreateWindow usage of SetWindowValuemask. Before not
12859             all styles were applied to our whole/client window appropriately
12860           - Removed EraseWindowBackground() and SetWindowBackground() methods
12861           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
12862             no longer clear/redraw the background through X
12863           - Removed handling of erase_pending bit, we have no use for it (or
12864             so it seems)
12865         * XplatUIOSX.cs:
12866           - Removed generation and handling of WM_ERASEBKGND message
12867           - Removed EraseWindowBackground() and SetWindowBackground() methods
12868           - Removed handling of hwnd.ErasePending flag
12869         * XplatUIWin32.cs:
12870           - Removed EraseWindowBackground() and SetWindowBackground() methods
12871           - We no longer call EraseWindowBackground on PaintEventStart, we 
12872             ignore the fErase flag, erasing is handled in Control in the
12873             background handler
12874         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
12875           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
12876           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
12877           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
12878           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
12879           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
12880           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
12881
12882 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
12883
12884         * PropertyGrids.cs: Get sub properties
12885         * PropertyGridView.cs: Fix drawing code
12886
12887 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12888
12889         * ListBox.cs: Fixes 76383
12890
12891 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12892
12893         * DataGridTextBoxColumn.cs: Sets location and size before attachment
12894         * ThemeWin32Classic.cs: Fixes border drawing and calculations
12895         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
12896
12897
12898 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12899
12900         * ComboBox.cs: Fixes border drawing
12901
12902 2005-10-10  Miguel de Icaza  <miguel@novell.com>
12903
12904         * MimeIcon.cs: Ignore errors if the file can not be read.
12905
12906 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12907
12908         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
12909          - Fixed border calculations
12910          - Fixed horizontal scrolling in single column listboxes
12911          - Fixed drawing issues
12912
12913 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
12914
12915         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
12916           FormBorderStyle enum
12917         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
12918           code to determine FormBorderStyles from CreateParams
12919         * Form.cs:
12920           - Fixed bug where we'd set the wrong window styles if we were
12921             not creating an MDI window
12922           - Added call to XplatUI.SetBorderStyle when form borders are set
12923         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
12924         * Hwnd.cs:
12925           - Removed obsolete edge style
12926           - Switched from BorderStyle to FormBorderStyle
12927         
12928 2005-10-10  Jackson Harper  <jackson@ximian.com>
12929
12930         * Form.cs: Use the property to get the window handle instead of
12931         accessing it directly. Prevents a null reference exception.
12932
12933 2005-10-10  Jackson Harper  <jackson@ximian.com>
12934
12935         * TreeView.cs: Don't adjust the rect given to DrawString now that
12936         our libgdiplus draws correctly.
12937
12938 2005-10-08  Jackson Harper  <jackson@ximian.com>
12939
12940         * TreeView.cs: Don't try to find the clicked on node if there are
12941         no nodes in the tree.
12942
12943 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12944
12945         * RichTextBox.cs:
12946
12947           restore
12948
12949 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12950
12951         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
12952           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
12953           ErrorProvider.cs:
12954           Use ResPool for brushes and dispose System.Drawing objects that
12955           are not used anymore.
12956
12957 2005-10-07  Jackson Harper  <jackson@ximian.com>
12958
12959         * MdiChildContext.cs: Use the new borders instead of drawing them
12960         ourselves.
12961
12962 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12963
12964         * Calling UpdateBounds after changing the window's BorderStyle 
12965         since the style can change the ClientSize
12966
12967 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12968
12969         * Control.cs: Made PaintControlBackground virtual
12970         * Panel.cs: Overriding PaintControlBackground instead of using paint
12971           event; paint event method was interfering with 'real' users of the
12972           event.
12973
12974 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12975
12976         * ThemeWin32Classic.cs: remove border drawing since it is handled
12977         by the base control class now and was causing double border drawing.
12978
12979 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12980
12981         * Panel.cs: Redraw our background on paint. Not a pretty solution,
12982           but it does seem to match MS behaviour. This fixes bug #75324
12983
12984 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12985
12986         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
12987           somewhat hackish looking
12988
12989 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12990
12991         * TextBoxBase.cs:
12992           - We now accept Enter even if AcceptEnter is false, if the containing
12993             form does not have an AcceptButton configured (fixes bug #76355)
12994           - Calculations are now fixed to no longer use Width/Height, but
12995             ClientSize.Width/Height, since we now support borders (this was
12996             a result of fixing borders and therefore bug #76166)
12997           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
12998             true (fixes bug #76354)
12999         
13000 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13001
13002         * Control.cs: 
13003           - Defaulting BorderStyle and setting it in XplatUI when our window 
13004             is created
13005           - Added enum check to InternalBorderStyle setter
13006         * XplatUIX11.cs: 
13007           - Added drawing of window borders
13008           - Now properly calculates WM decorations offset for toplevel 
13009             windows (fixes bug #74763)
13010         * XplatUIWin32.cs: 
13011           - Implemented BorderStyles for windows (we're letting win32 draw 
13012             the border for us)
13013           - Fixed the signature for SetWindowLong
13014         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
13015           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
13016           setting borders
13017         * UpDownBase.cs: Remove drawing of borders, this is handled by
13018           the driver, outside the client area
13019         * ListView.cs: Removed bogus border calculations. The control should
13020           be oblivious to borders, since those are not part of the client
13021           area. 
13022         * X11DesktopColors.cs: Commented out (currently) unneeded variables
13023         * ThemeWin32Classic.cs: Removed border calculations from ListView 
13024           drawing code
13025
13026 2005-10-06  Jackson Harper  <jackson@ximian.com>
13027
13028         * MdiChildContext.cs: Clear out the old virtual position remove
13029         all the unneeded calls to CreateGraphics.
13030
13031 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13032
13033         * TextControl.cs: Use proper color for highlighted text; fixes #76350
13034
13035 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
13036
13037         * Form.cs: 
13038           - Added loading and setting of our new default icon
13039           - Only set icon if window is already created
13040
13041 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
13042
13043         * Label.cs:
13044           - Do not explicitly set the foreground and background colors, to
13045             allow inheriting from parents (fixes #76302)
13046           - Use Control's InternalBorderStyle property to deal with borders
13047
13048 2005-10-06  Jackson Harper  <jackson@ximian.com>
13049
13050         * MdiChildContext.cs: Use the new xplatui function to draw a
13051         reversible rect.
13052
13053 2005-10-06  Jackson Harper  <jackson@ximian.com>
13054
13055         * Form.cs: Add the parent before creating the child context cause
13056         we need the parent when setting up the child.
13057
13058 2005-10-06  Jackson Harper  <jackson@ximian.com>
13059
13060         * FolderBrowserDialog.cs: redo the tree population code so a
13061         second thread isn't used. Should be a lot faster and more stable
13062         now.
13063
13064 2005-10-05  Jackson Harper  <jackson@ximian.com>
13065
13066         * TreeView.cs: There are no expand/collapse boxes if the node has
13067         no children.
13068
13069 2005-10-05  Jackson Harper  <jackson@ximian.com>
13070
13071         * X11DesktopColors.cs: Get menu colours for the gtk theme.
13072
13073 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
13074
13075         * FileDialog.cs: Fix InitialDirectory
13076
13077 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13078
13079         * ComboBox.cs:
13080                 - Fixes changing between styles
13081                 - Fixes simple mode
13082                 - Fixes last item crashing when navigating with keyboard
13083
13084 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
13085
13086         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
13087
13088 2005-10-05  Jackson Harper  <jackson@ximian.com>
13089
13090         * TreeView.cs: If updating the root node do a full refresh.
13091         * TreeNode.cs: The root node should be expanded by default. Also
13092         added a utility prop to tell if we are the root node.
13093         * TreeNodeCollection.cs: Only refresh if the node we are being
13094         added to is expanded. Also added a comment on a potential
13095         optimization.
13096         
13097 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
13098
13099         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
13100           in dispose method. Fixes #76330
13101
13102 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
13103
13104         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
13105
13106                 - Implements vertical and horizontal scrolling using XplatUI
13107                 - Fixes keyboard navagation
13108                 - Fixes EnsureVisible
13109                 - Drawing fixes
13110                 - Handles and draws focus properly
13111
13112
13113 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
13114
13115         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
13116           Create handle. NET_2_0: Destroy handle when value is null.
13117
13118 2005-10-03  Jackson Harper  <jackson@ximian.com>
13119
13120         * ScrollBar.cs: My last scrollbar patch was broken. This is a
13121         revert and a new patch to prevent the thumb from refreshing so
13122         much.
13123
13124 2005-10-02  Jackson Harper  <jackson@ximian.com>
13125
13126         * ScrollBar.cs: Don't update position if it hasn't actually
13127         changed. This occurs when you hold down the increment/decrement
13128         buttons and the thumb gets to the max/min.
13129
13130 2005-10-01  Jackson Harper  <jackson@ximian.com>
13131
13132         * Form.cs:
13133         * MdiChildContext.cs:
13134         * MdiClient.cs: Implement ActiveMdiChild in Form.
13135
13136 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
13137
13138         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
13139
13140 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
13141
13142         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
13143           be found
13144
13145 2005-09-30  Jackson Harper  <jackson@ximian.com>
13146
13147         * ListBox.cs: Don't do a full refresh unless some data has
13148         actually changed.
13149
13150 2005-09-30  Jackson Harper  <jackson@ximian.com>
13151
13152         * TreeView.cs: Make sure that the checkboxes size is factored in
13153         even when not visible.
13154
13155 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13156
13157         * FileDialog.cs: Fix Jordi's build break
13158
13159 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13160
13161         * FileDialog.cs: 
13162                 - Use standard the Windows colours for the combobox as espected
13163                 - Dispose objects that use resouces when no longer need them
13164
13165 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13166
13167         * X11DesktopColors.cs: Initial incomplete implementation
13168         * XplatUIX11.cs: Added call to initialize X11DesktopColors
13169
13170 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
13171
13172         * Theme.cs: 
13173           - Switched Theme color names to match the names defined in 
13174             System.Drawing.KnownColors. Life's hard enough, no need to make 
13175             it harder.
13176           - Added setters to all theme color properties so themes can set
13177             their color schemes. The setters also propagate the color changes
13178             to System.Drawing.KnownColors via reflection
13179         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
13180           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
13181           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
13182           use the new, more logical theme color names
13183         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
13184           post-NT colors
13185         * ThemeWin32Classic.cs:
13186           - Removed code to set the old classic Windows colors. Instead it
13187             now relies on the colors returned by System.Drawing.KnownColors
13188             which will be either modern static colors (Unix) or colors
13189             read from the user's configuration (Win32)
13190           - Updated to use the new, more logical theme color names
13191           - Switched DataGrid drawing code to use only Theme colors instead of
13192             a mix of System.Drawing.KnownColors and Theme colors
13193           - DrawFrameControl(): Removed code that fills the button area, the
13194             fill would overwrite any previous fill done by a control. This
13195             fixes bug #75338 
13196           - Added DrawReversibleRectangle() stub
13197         * ScrollableControl.cs: Set visible state to false when scrollbars
13198           are removed (pdn fix)
13199         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
13200           DrawReversibleRectangle() method to allow drawing primitive 
13201           'rubber bands'
13202         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
13203
13204 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13205
13206         * ImageList.cs: Add(Icon): Create handle.
13207
13208 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13209
13210         * ListView.cs:
13211         * ThemeWin32Classic.cs:
13212                 - Fixes detail mode
13213                 - Sets clippings
13214                 - Issues with drawing
13215
13216 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13217
13218         * ImageList.cs: Moved RecreateHandle back to ImageList as event
13219           source has to be the ImageList.
13220
13221 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13222
13223         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
13224
13225 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13226
13227         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
13228
13229 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13230
13231         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
13232
13233 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
13234         * GridItem.cs: Fixed TODOs
13235         * GridItemCollection.cs: Added ICollection interface
13236
13237 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13238
13239         * ImageList.cs: Resize icons when needed.
13240
13241 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
13242
13243         * ListViewItem.cs
13244                 - Fixes GetBounds and returns on screen rects
13245         * ListView.cs:
13246                 - Fixes vertical and horzintal scrolling of items
13247         * ThemeWin32Classic.cs:
13248                 - Fixes drawing
13249                 
13250 2005-09-29  Raja R Harinath  <harinath@gmail.com>
13251
13252         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
13253
13254 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
13255
13256         * ImageList.cs: Added comments about handle creation. Moved Handle,
13257           HandleCreated and OnRecreateHandle implementations to ImageCollection.
13258           Handle is created in Add methods.
13259
13260 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13261          
13262         * DataGridDrawingLogic.cs: 
13263                 - Takes rows into account on Colum calculations
13264                 - Returns the column when clickig
13265         * DataGrid.cs:
13266                 - Fixes default HitTestInfo values
13267                 - Fixes HitTestInfo.ToString
13268                 - Fixes ResetBackColor          
13269         
13270 2005-09-28  Jackson Harper  <jackson@ximian.com>
13271
13272         * MdiChildContext.cs: Obey rules for fixed sized windows (no
13273         sizing or cursor changes). Also added some temp code to draw the
13274         titlebars text (Makes dev a little easier).
13275
13276 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13277
13278         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
13279
13280 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13281          
13282         * ListBox.cs: Fixes bug 76253
13283
13284 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13285
13286         * ImageList.cs: Added comments about the current implementation. Added
13287           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
13288           Format32bppArgb to preserve transparency and can use Graphics.FromImage
13289           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
13290           with Bitmap.LockBits for better performance. Revised the whole file to
13291           match MS.NET behaviour and provide better performance. Non-public
13292           interface members are calling public members even when they throw
13293           NotSupportedException for better maintainability. Moved ColorDepth,
13294           ImageSize, ImageStream and TransparentColor implementations to
13295           ImageCollection for better performance as these properties are not used
13296           by ImageList.
13297         * ImageListStreamer.cs: Added a new internal constructor that takes an
13298           ImageList.ImageCollection and serializes Images based on
13299           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
13300           match ImageList property name.
13301
13302 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
13303
13304         * ListBox.cs: Fixes IndexFromPoint for last item
13305
13306 2005-09-27  Jackson Harper  <jackson@ximian.com>
13307
13308         * Form.cs: Set the position of new mdi children correctly.
13309
13310 2005-09-27  Jackson Harper  <jackson@ximian.com>
13311
13312         * MdiClient.cs: New mdi children need to be added to the back of
13313         the controls collection so the zorder is set correctly. Also add a
13314         count of all the child windows that have been created.
13315
13316 2005-09-27  Jackson Harper  <jackson@ximian.com>
13317
13318         * Form.cs (CreateParams): Setup MDI forms correctly.
13319
13320 2005-09-27  Jackson Harper  <jackson@ximian.com>
13321
13322         * MdiChildContext.cs:
13323         * MonthCalendar.cs:
13324         * UpDownBase.cs:
13325         * ListBox.cs:
13326         * ListView.cs:
13327         * TextBoxBase.cs:
13328         * TreeView.cs:
13329         * ScrollableControl.cs:
13330         * ComboBox.cs: Add implicit controls using the new implict control
13331         functionality in ControlCollection. Also try to block multiple
13332         control add in a suspend/resume layout to save some cycles.
13333         
13334 2005-09-27  Jackson Harper  <jackson@ximian.com>
13335
13336         * Control.cs: Add functionality to the controls collection to add
13337         'implicit controls' these are controls that are created by the
13338         containing control but should not be exposed to the user. Such as
13339         scrollbars in the treeview.
13340         * Form.cs: The list var of the ControlsCollection is no longer
13341         available because of the potential of implicit controls getting
13342         ignored by someone accessing the list directly.
13343
13344 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
13345
13346         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
13347           loose it's parent. (Fixed bug introduced in r49103 when we added
13348           setting the child parent to null on Remove)
13349
13350 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
13351
13352         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
13353         * Splitter.cs: Added missing attributes for BorderStyle property.
13354         * TextBoxBase.cs: Marked Calculate* methods internal.
13355         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
13356         MS.NET.
13357
13358 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
13359          
13360         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
13361
13362 2005-09-25  Jackson Harper  <jackson@ximian.com>
13363
13364         * TreeView.cs: Update the node bounds correctly regardless of
13365         whether the node is visible.
13366
13367 2005-09-25  Jackson Harper  <jackson@ximian.com>
13368
13369         * ImageList.cs: Don't dispose the image after it is added to the
13370         image list. Only reformat images that need to be resized.
13371
13372 2005-09-25  Jackson Harper  <jackson@ximian.com>
13373
13374         * ImageList.cs: Don't set the format when changing the image.
13375
13376 2005-09-25  Jackson Harper  <jackson@ximian.com>
13377
13378         * TreeView.cs: We can't just assume the node has a font. Use the
13379         treeviews font if no node font is available.
13380
13381 2005-09-25  Jackson Harper  <jackson@ximian.com>
13382
13383         * TreeView.cs: Allow the scrollbars to be reset with negative
13384         values.
13385         - Don't add scrollbars to negative sized windows.
13386
13387 2005-09-23  Jackson Harper  <jackson@ximian.com>
13388
13389         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
13390         old Mono.Posix. Also remove some stray code that shouldn't have
13391         been committed.
13392
13393 2005-09-23  Jackson Harper  <jackson@ximian.com>
13394
13395         * TreeView.cs: Attempt at proper sizing of the horizontal
13396         scrollbar. Also don't resize the scrollbars unless they are
13397         visible.
13398
13399 2005-09-23  Jackson Harper  <jackson@ximian.com>
13400
13401         * TreeView.cs: We don't need to expand the invalid area when the
13402         selection changes, as this is all drawn in the node's bounding
13403         box. The area needs to be expanded (previous typo was contracting
13404         it) when the focus rect moves.
13405
13406 2005-09-23  Jackson Harper  <jackson@ximian.com>
13407
13408         * TreeView.cs: Display the selection box under the correct
13409         circumstances. We were rendering white text with no selection box
13410         before.
13411
13412 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
13413
13414         * TextControl.cs(Split): Now updates selection start/end if it points 
13415           into a line that's being split. Fixes a FIXME and bug #75258
13416
13417 2005-09-23  Jackson Harper  <jackson@ximian.com>
13418
13419         * Binding.cs:
13420         * ListControl.cs: Don't use the path when retrieving binding
13421         managers from the binding context. My bat sense tells me that the
13422         path is only used on insertion.
13423
13424 2005-09-22  Jackson Harper  <jackson@ximian.com>
13425
13426         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
13427
13428 2005-09-22  Jackson Harper  <jackson@ximian.com>
13429
13430         * Splitter.cs: There are special cursors used for splitting.
13431         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
13432
13433 2005-09-22  Jackson Harper  <jackson@ximian.com>
13434
13435         * Splitter.cs: Change the cursor appropriately when the splitter
13436         is moused over, so the user actually knows there is a splitter
13437         there.
13438
13439 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13440
13441        * Label.cs : Fix ToString method to give same output as MS.NET
13442
13443 2005-09-22  Jackson Harper  <jackson@ximian.com>
13444
13445         * TreeView.cs: Create the scrollbars when the handle is created
13446         and add them right away, just make them invisble. Also account for
13447         the window being shrunk vertically to the point that the vert
13448         scrollbar needs to be added.
13449         - Remove some 0.5 adjustments to get around anti aliasing issues.
13450         
13451 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
13452          
13453         * MainMenu.cs: Fixes default value
13454         * MenuItem.cs: Fixes default value
13455
13456 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
13457
13458         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
13459
13460 2005-09-21  Jackson Harper  <jackson@ximian.com>
13461
13462         * Control.cs: Don't try to set the border style on the window if
13463         it hasn't been created. When the window is created the border
13464         style will be used.
13465
13466 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13467
13468         * Control.cs (Update): Don't call XplatUI if we don't have a
13469           window handle yet
13470
13471 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13472
13473         * ContainerControl.cs: Instead of throwing an exception, print
13474           a one-time warning about Validate not being implemented
13475         * XplatUIWin32.cs: Removed debug output
13476
13477 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13478
13479         * Control.cs: Only set XplatUI background if we expect the windowing
13480           system to handle the background. This stops controls that draw their
13481           own background from flickering
13482
13483         * XplatUIX11.cs: Support custom visuals and colormaps for window 
13484           creation. This allows, amongst other things, using MWF X11 windows 
13485           with OpenGL.
13486
13487 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13488
13489         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
13490           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
13491           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
13492           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
13493           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
13494           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
13495           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
13496           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
13497           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
13498           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
13499           GridColumnStylesCollection.cs, 
13500           IDataGridColumnStyleEditingNotificationService.cs,
13501           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
13502           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
13503           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
13504           TreeNodeCollection.cs, AmbientProperties.cs, 
13505           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13506           DataObject.cs, ErrorProvider.cs, Splitter.cs,
13507           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
13508           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
13509           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
13510           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
13511           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
13512           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
13513           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
13514           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
13515           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
13516           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
13517           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
13518           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
13519           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
13520           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
13521           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
13522           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
13523           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
13524           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
13525           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
13526           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
13527           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
13528           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
13529           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
13530           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
13531           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
13532           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
13533           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
13534           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
13535           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
13536           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
13537           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
13538           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
13539           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
13540           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
13541           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
13542
13543 2005-09-21  Jackson Harper  <jackson@ximian.com>
13544
13545         * TreeNode.cs: Call Before/After Expand not Collapse when
13546         expanding.
13547
13548 2005-09-20  Jackson Harper  <jackson@ximian.com>
13549         
13550         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
13551
13552 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13553          
13554         * ListViewItem.cs:
13555                 - Fixes bug 76120
13556                 - Fixes proper storing of subitems
13557                 - Fixes not updated items
13558
13559 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
13560
13561         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
13562           things if our window handle isn't created yet. Also disabled 
13563           debug for TextBoxBase
13564
13565 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
13566
13567         * MenuAPI.cs: Remove filtering of events to allow menu usage
13568
13569 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13570
13571         * Cursor.cs: Allow null to be passed to Cursor.Current.
13572
13573 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
13574
13575         * ThemeWin32Classic.cs:
13576           - Change some private methods/fields to protected virtual so that 
13577             they can be accessed and overriden in derived classes
13578           - First refactoring of some methods. Derived themes now don't 
13579             need to duplicate the complete code from ThemeWin32Classic
13580         * ThemeNice.cs:
13581           - Added nice StatusBar
13582           - Derive from ThemeWin32Classic and not Theme
13583           - Removed duplicate ThemeWin32Classic code
13584
13585 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13586
13587         * Control.cs (ControlCollection.Add): If the value null is passed
13588         the control is ignored. 
13589
13590         Optimize this loop.
13591
13592 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
13593
13594         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
13595           PostQuitMessage state.
13596         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
13597
13598 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
13599
13600         * Application.cs: Our constructor will never get called, move 
13601           initialization to fields; fixes bug #75933
13602
13603 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13604
13605         * FileDialog.cs :
13606                 - Allow files to be selected properly using file name
13607                 combo box.
13608                 - Add ability to change diretory (absolute / relative)
13609                 using file name combo box.
13610
13611 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13612          
13613         * ListBox.cs: 
13614                 - Fixes Multicolumn listboxes item wrong calculations
13615                 - Allows to click when only one item is in the listbox
13616                 - Fixes crash when no items using keyboard navigation
13617
13618 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
13619
13620         * ComboBox.cs: Reverted almost everything from the latest patch which
13621           broke ComboBox
13622
13623 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
13624         
13625         * ToolTip.cs:
13626                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
13627         * ComboBox.cs:
13628                 - When DropDownStyle is Simple, it does not show scrollbar 
13629                 to the last item of the list.
13630                 - When DropDownStyle is Simple, it crashed when the list was 
13631                 scrolled down with the down cursor key.
13632                 - Fixed a bug that when DropDownStyle is DropDownList, the 
13633                 selected item was not shown.
13634                 - The position of the selected item was not preserved when 
13635                 the next dropdown happened.
13636         * ThemeWin32Classic.cs:
13637                 - Items were wrapped at the right end.
13638         * CheckedListBox.cs:
13639                 - Fixed Add method
13640         * ListBox.cs:
13641                 - Items should be fully shown.
13642                 - When resizing and vertical scrollbar disappeared, the item 
13643                 of index 0 should be on the top of the list.
13644                 - GetItemRectangle should consider the size of ver. scrollbar
13645         * StatusBar.cs:
13646                 - SizingGrip area should not be allocated when it is not 
13647                 displayed.
13648                 - Now it reflects MinWidth of the containing panel and 
13649                 fixed a crash that happens when its width becomes so small.
13650
13651 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13652
13653         * CheckedListBox.cs: Fixes bug 76028
13654         * ListBox.cs: Fixes bug 76028
13655
13656 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13657
13658         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
13659         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
13660
13661 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
13662
13663         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
13664
13665 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13666
13667         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
13668
13669 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13670
13671         * IRootGridEntry.cs: Added
13672         * PropertyGridCommands.cs: Added
13673         * PropertiesTab.cs: Added missing methods and property
13674         * PropertyGridView.cs: Made class internal
13675         * PropertyGridTextBox.cs: Made class internal
13676
13677 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13678
13679         * MimeIcon.cs: Try to check some other environment variables
13680           if "DESKTOP_SESSION" returns "default"
13681
13682 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13683
13684         * ThemeNice.cs: Corrected background colors (e.g. menus)
13685         * ColorDialog.cs: Use correct background colors for controls
13686
13687 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13688
13689         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
13690
13691 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
13692
13693         * RichTextBox.cs: Added initial implementation
13694         * lang.cs: Removed. Was accidentally checked in long time ago
13695         * TODO: Removed. Contents were obsolete
13696
13697 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13698                                                                                 
13699         * PropertiesTab.cs : Added
13700
13701 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13702                                                                                 
13703         * PropertyGrid.cs : Update
13704         * PropertyGridView.cs : Update
13705         * System.Windows.Forms.resx : Added images and strings
13706
13707 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
13708
13709         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
13710  
13711 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
13712
13713         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
13714           a busy loop right after the Ungrab the X11 display is otherwise 
13715           blocked
13716
13717 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
13718
13719         * ThemeWin32Classic.cs: Optimise the use of clipping
13720
13721 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
13722
13723         * DataGrid.cs: fixes recursion bug
13724
13725 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
13726
13727         * ThemeNice.cs: 
13728           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
13729           - Cleanup
13730
13731 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
13732
13733         * ThemeNice.cs: Draw nice ProgressBars
13734
13735 2005-09-01  Miguel de Icaza  <miguel@novell.com>
13736
13737         * VScrollBar.cs: Another buglet found by Aaron's tool. 
13738
13739         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
13740         bug finder.
13741
13742 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
13743
13744         * ThemeNice.cs:
13745           - Added nicer menu drawing
13746           - Updated DrawTab
13747           - some refactoring
13748
13749 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13750
13751         * CreateParams.cs (ToString): Made output match MS
13752         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
13753             handle is already created (to avoid forcing window creation)
13754         * XplatUIX11.cs: Set window text to caption after creating window,
13755           in case Text was set before window was created
13756         * Form.cs: Use this.Text instead of a static string as caption
13757
13758 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13759
13760         * NotifyIcon.cs: Don't set the window to visible; this screws
13761           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
13762           OnPaint without a bitmap)
13763         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
13764           happen very often anyway; we could add the check to the WM_PAINT 
13765           event generation code
13766
13767 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13768
13769         * NotifyIcon.cs: Fill the icon area with a background color, to 
13770           avoid 'residue' when transparent icons are drawn
13771         * XplatUIX11.cs:
13772           - Handle whole_window == client_window when destroying windows
13773           - SystrayAdd(): Set client_window to whole_window value to
13774             get mouse and other events passed to NotifyIcon
13775
13776 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13777
13778         * Form.cs: Set proper default for Opacity property
13779         * NotifyIcon.cs:
13780           - ShowSystray(): Don't bother creating telling the OS
13781             about the systray item if no icon is provided
13782           - Now handles WM_NCPAINT message to deal with whole/client window
13783             split
13784           - Create window as visible to not get caught by Expose optimization
13785         * Hwnd.cs: Removed debug message
13786         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
13787           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
13788             PaintEventStart/End to use new client argument
13789         * TextBoxBase.cs:
13790           - Commented out debug messages
13791           - Switched PaintEventStart/End to use new client argument
13792         * XplatUI.cs: Added client window bool to PaintEventStart()/
13793           PaintEventEnd() calls, to support drawing in non-client areas
13794         * XplatUIDriver.cs: 
13795           - Added client window bool to PaintEventStart()/PaintEventEnd() 
13796             calls, to support drawing in non-client areas
13797           - Added conditional compile to allow using MWF BeginInvoke 
13798             on MS runtime
13799         * XplatUIX11.cs:
13800           - Added some conditional debug output
13801           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
13802             whole/client window split
13803           - Implemented handling of client argument to PaintEventStart()/End()
13804         * Control.cs:
13805           - Throw exception if BeginInvoke() is called and the window handle
13806             or one of the window's parent handles is not created
13807           - Added conditional compile to allow using MWF BeginInvoke on
13808             MS runtime
13809           - get_Parent(): Only sets parent if handle is created. This avoids
13810             forcing window handle creation when parent is set.
13811           - Now fires Layout and Parent changed events in proper order
13812           - Switched to use Handle instead of window.Handle for Z-Order setting,
13813             the get_Parent() patch above causes us to possibly get null for 'window'
13814           - Implemented handling of client argument to PaintEventStart()/End()
13815           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
13816             default handling)
13817           - Now sends a Refresh() to all child windows when Refresh() is called
13818
13819 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
13820
13821         * Form.cs: Added (non-functional) Opacity property
13822         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
13823
13824 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
13825         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
13826           use export MONO_THEME=nice to activate it.
13827           Currently supported controls:
13828           - Button
13829           - ComboBox
13830           - ScrollBar
13831           - TabControl (TabAlignment.Top only, other will follow)
13832         * ThemeEngine.cs: Add theme nice
13833         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
13834           if enabled
13835
13836 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
13837
13838         * Splitter.cs: Resize docked control and its neighbor.
13839
13840 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13841         -- Making Windows with Menus layout correctly --
13842         * Form.cs : The first leg of the fix
13843                 Menu setter - adjust Client Size as needed to make space for the menu
13844                 SetClientSizeCore - doesn't call base version to be able to pass the 
13845                         menu handle to XplatUI.CalculateWindowRect
13846         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
13847         * XplatUIX11.cs: The critical second leg of the fix
13848                 GetWindowPos needs to use a recalculated client_rect
13849                 so that resizing the window doesn't break layout of child controls. 
13850                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
13851                 Lots of \t\n killed
13852
13853 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13854
13855         * Label.cs: Now properly recalculates width and height on Font and Text
13856           changes if AutoSize is set
13857
13858 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13859         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
13860
13861 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
13862
13863         * ImageList.cs: Makes ToString method compatible with MS
13864
13865 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
13866
13867         * MenuAPI.cs: fixes bug 75716
13868
13869 2005-08-11 Umadevi S <sumadevi@novell.com>
13870         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
13871
13872 2005-08-11 Umadevi S <sumadevi@novell.com>
13873         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
13874
13875 2005-08-10  Umadevi S <sumadevi@novell.com>
13876         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
13877
13878 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
13879
13880         * Menu.cs: fixes bug 75700
13881         * MenuAPI.cs: fixes navigation issues
13882
13883 2005-08-09  Umadevi S <sumadevi@novell.com>
13884         * CheckedListBox.cs - simple fix for GetItemChecked.
13885
13886 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
13887
13888         * ComboBox.cs: Serveral fixes
13889         * ListBox.cs: Serveral fixes
13890
13891 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13892
13893         * ComboBox.cs: Fixes FindString methods and GetItemHeight
13894         * ListBox.cs: Fixes FindString methods
13895
13896 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13897
13898         * DataGrid.cs: fixes bugs exposed by new tests
13899
13900 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
13901
13902         * Mime.cs: Compile Mono assembly references only if compiling
13903           with Mono (Allows to build with VS.Net again)
13904
13905 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
13906
13907         * Control.cs (PaintControlBackground): Draw background image
13908         corrrectly.
13909         (CheckForIllegalCrossThreadCalls): Stubbed.
13910         
13911         * Form.cs (OnCreateControl): Center when should be centered.
13912         
13913         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
13914
13915 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
13916
13917         * Binding.cs: Binding to properties should be case unsensitive
13918
13919 2005-07-18 vlindos@nucleusys.com
13920
13921         * DataGrid.cs: fixes setmember order
13922
13923 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
13924
13925         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
13926         * FileDialog.cs: FileDialog is now resizable and uses the new
13927           MimeIconEngine
13928
13929 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
13930
13931         * DataGridTextBoxColumn.cs: default value
13932         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
13933         * GridTableStylesCollection.cs: fixes checking MappingName
13934         * DataGridDrawingLogic.cs: fixes drawing logic issues
13935         * DataSourceHelper.cs: rewritten to make compatible with more data sources
13936         * DataGrid.cs: fixes    
13937
13938 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
13939
13940         * MimeGenerated.cs: Use case sensitive comparer for
13941           NameValueCollections
13942
13943 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
13944
13945         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
13946         * ThemeWin32Classic.cs: bug fixes, code refactoring
13947         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
13948         * DataGrid.cs: bug fixes, code refactoring
13949         * DataGridTextBox.cs: bug fixes, code refactoring
13950         * DataGridColumnStyle.cs:  bug fixes, code refactoring
13951         * Theme.cs:  bug fixes, code refactoring
13952
13953 2005-07-01  Peter Bartok  <pbartok@novell.com> 
13954
13955         * TextControl.cs: Quick fix for the reported crash on ColorDialog
13956           and other text box usage
13957
13958 2005-07-01  Jackson Harper  <jackson@ximian.com>
13959
13960         * TabControl.cs: Make sure the bottom of the tab covers the pages
13961         border.
13962
13963 2005-06-30  Peter Bartok  <pbartok@novell.com> 
13964
13965         * Form.cs (ShowDialog): Assign owner of the dialog
13966         * TextBoxBase.cs: Always refresh caret size when deleting, caret
13967           might have been moved to a tag with different height
13968
13969 2005-06-30  Jackson Harper  <jackson@ximian.com>
13970
13971         * Form.cs: Don't create an infinite loop when setting focus
13972         * MenuItem.cs: Don't dirty the parents if we don't have any
13973
13974 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
13975
13976         * LibSupport.cs: Rename
13977
13978 2005-06-29  Peter Bartok  <pbartok@novell.com>
13979
13980         * TextBoxBase.cs: Re-align caret after deleting a character
13981         * TextControl.cs:
13982           - DeleteChars(): Ensure that tag covers the provided position
13983           - StreamLine(): Drop reference for dropped tag
13984
13985 2005-06-29  Peter Bartok  <pbartok@novell.com> 
13986
13987         * TextControl.cs: 
13988           - Selections now work properly, anchoring at the initial location
13989             and properly extending in either direction (SetSelectionToCaret(),
13990             SetSelectionStart() and SetSelectionEnd())
13991           - No longer redraws the whole control on selection change, now
13992             calculates delta between previous and new selection and only
13993             invalidates/redraws that area
13994           - Fixed FindPos() math off-by-one errors
13995           - Changed DeleteChars() to verify the provided tag covers the
13996             provided position, selections may have a tag that doesn't cover
13997             the position if the selection is at a tag border
13998           - Fixed off-by-one errors in DeleteChars()
13999           - Added missing streamlining check in DeleteChars() to remove
14000             zero-length tags
14001           - Implemented Invalidate() method, now properly calculates exposures
14002             between two given lines/positions
14003           - Implemented SetSelection()
14004           - Obsoleted and removed FixupSelection()
14005           - Improved RecalculateDocument() logic, removing code duplication
14006
14007 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14008
14009         * LibSupport.cs: changes to match different input/output arguments.
14010
14011 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14012
14013         * LibSupport.cs: added libsupport.so init routine.
14014
14015 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
14016         
14017         * ControlBindingsCollection.cs
14018                 - Throws an exception on null datasource when adding
14019                 - Checks for duplicated bindings when adding
14020
14021 2005-06-28  Jackson Harper  <jackson@ximian.com>
14022
14023         * TreeView.cs (OnKeyDown): Support left and right properly
14024         (navigates as well as expanding and collapsing.
14025         - Add support for Multiply, this expands all the selected nodes
14026         children.
14027         - Fix some tabbing.
14028
14029 2005-06-28  Jackson Harper  <jackson@ximian.com>
14030
14031         * TreeView.cs: Implement keyboard navigation, currently supports,
14032         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
14033         support for toggling checkboxes with the space bar.
14034
14035 2005-06-28  Jackson Harper  <jackson@ximian.com>
14036
14037         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
14038         tree.
14039
14040 2005-06-28  Jackson Harper  <jackson@ximian.com>
14041
14042         * TreeView.cs: Add missing event.
14043
14044 2005-06-27  Peter Bartok  <pbartok@novell.com> 
14045
14046         * TextControl.cs:
14047           - Made line ending size configurable (now allows for counting 
14048             lineendings as \n or \r\n)
14049           - Added margin to viewport to keep caret visible on right side
14050           - Fixed translation routines for line/pos to documentpos to consider
14051             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
14052           - Fixed some line-endings to be unix style
14053           - Fixed Document.FormatText to perform it's calculations 1-based
14054           - Added descriptions for a few methods that might otherwise get 
14055             used wrong
14056           - Added NOTE section with some basic conventions to remember at 
14057             the top of the file
14058           - Major fixup for RichTextBox selection drawing:
14059             * Fixed crashes when multiple tags on a single line were selected
14060             * fixed selection box drawing not overlaying text
14061             * fixed bogus offset calculation for tags not starting at index 1
14062             * Switched behaviour from using multiple Substrings of a 
14063               StringBuilder.ToString() to using multiple 
14064               StringBuilder.ToString(start, length) statements, hoping this is
14065               faster (kept original version commented out in the code, in case
14066               original version was faster)
14067         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
14068           alignment != Left
14069         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
14070           call it as well
14071
14072 2005-06-27  Jackson Harper  <jackson@ximian.com>
14073
14074         * TabControl.cs: Move to the left and right with the arrow
14075         keys. These keys don't cycle beyond first and last like
14076         tab. Refresh all the tabs when scrolling them to the left or
14077         right.
14078
14079 2005-06-27  Jackson Harper  <jackson@ximian.com>
14080
14081         * TabControl.cs:
14082           - ToString: Added method
14083           - CreateParams: Remove TODO and comment
14084           - OnKeyDown: Cycle through bounds properly.
14085           - SelectedIndex: Scroll to the right or left if we need to
14086           display the newly selected tab.
14087
14088 2005-06-23  Jackson Harper  <jackson@ximian.com>
14089
14090         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
14091         set.
14092
14093 2005-06-23  Jackson Harper  <jackson@ximian.com>
14094
14095         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
14096         CTRL-SHIFT-TAB, and HOME, END are there any others?
14097
14098 2005-06-23  Jackson Harper  <jackson@ximian.com>
14099
14100         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
14101
14102 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14103         
14104         * DataGridTextBoxColumn.cs: fixes and enhancements
14105         * ThemeWin32Classic.cs: fixes and enhancements
14106         * DataGridBoolColumn.cs:  fixes and enhancements
14107         * DataGridDrawingLogic.cs:  fixes and enhancements
14108         * CurrencyManager.cs: fixes and enhancements
14109         * DataGrid.cs: fixes and enhancements
14110         * DataGridColumnStyle.cs:  fixes and enhancements
14111
14112 2005-06-22  Jackson Harper  <jackson@ximian.com>
14113
14114         * TabControl.cs: Add some missing methods that just call into the
14115         base. Make the TabPageCollection's IList interface behave in the
14116         same manner as the MS implementation.
14117
14118 2005-06-22  Peter Bartok  <pbartok@novell.com> 
14119
14120         * TextControl.cs: Added sanity check
14121         * TextBoxBase.cs: 
14122           - Fixed wrapping behaviour, don't set wrap on single line controls
14123             (this fixes the breakage of colordialog introduced in an earlier
14124              checkin)
14125           - Added rudimentary support for autoscrolling right-aligned controls
14126             (still needs fixing, also, center alignment scroll is missing)
14127
14128 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14129         
14130         * ScrollBar.cs: Fixes thumbpos on Maximum values
14131
14132 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
14133         
14134         * PropertyGridView.cs: Pass context information to UITypeEditors 
14135
14136 2005-06-21  Peter Bartok  <pbartok@novell.com> 
14137
14138         * TextBoxBase.cs:
14139           - Now calling PositionCaret with absolute space coordinates
14140           - Enabled vertical scrolling
14141           - Better tracking of scrollbar changes, tied into WidthChange
14142             event
14143           - Improved cursor tracking
14144           - Removed debug output
14145         * TextControl.cs:
14146           - PositionCaret coordinates are now works in absolute space, not 
14147             the canvas
14148           - Improved tracking of document size
14149           - Added events for width and height changes
14150
14151 2005-06-21  Peter Bartok  <pbartok@novell.com>
14152
14153         * Form.cs: Set focus to active control when form is activated
14154         * TextControl.cs: 
14155           - Added word-wrap functionality to RecalculateLine() 
14156           - Added some short function descriptions for VS.Net to aid in
14157             writing dependent controls
14158           - Added Caret property, returning the current coords of the caret
14159           - Added ViewPortWidth and ViewPortHeight properties
14160           - Added Wrap property
14161           - Added CaretMoved event
14162           - Removed some old debug code
14163           - Split() can now create soft splits
14164           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
14165           - Added method to format existing text
14166           - Fixed size/alignment calculations to use viewport
14167           - RecalculateDocument now can handle changing line-numbers while
14168             calculating lines
14169
14170         * TextBox.cs:
14171           - Added some wrap logic, we don't wrap if alignment is not left
14172           - Added casts for scrollbar var, base class switched types to
14173             also support RichTextBoxA
14174           - Implemented handling of scrollbar visibility flags
14175
14176         * TextBoxBase.cs:
14177           - Switched scrollbars type to RichTextBoxScrollBars to support
14178             RichTextBox
14179           - Added tracking of canvas width/height
14180           - Switched scrollbars to be not selectable (to keep focus on text)
14181           - Added central CalculateDocument() method to handle all redraw
14182             requirements
14183           - Added ReadOnly support
14184           - Added WordWrap support
14185           - Fixed handling of Enter key (we now treat it as a DialogKey)
14186           - Fixed caret positioning when h or v scroll is not zero
14187           - Fixed placing/generation of vertical scrollbar
14188           - Added CalculateScrollBars() method to allow updating scrollbar
14189             limits and visibility
14190           - Fixed handling of horizontal scroll
14191           - Added handling of vertical scroll
14192           - Implemented auto-'jump' when caret moves to close to a left or
14193             right border and there is text to be scrolled into view (currently
14194             there's the potential for a stack overflow, until a bug in
14195             scrollbar is fixed)
14196
14197 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
14198         
14199         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
14200
14201 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
14202
14203         * Mime.cs:
14204         - added inodes.
14205         - return application/x-zerosize for files with size zero
14206           (if no extension pattern matches).
14207         - check matches collection for strings too.
14208         - return only the first mime type if the name value
14209           collection has more than one mime type.
14210
14211 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
14212         
14213         * PropertyGrid.cs: Cleaned up some TODOs
14214         * PropertyGridView.cs: Added support for UITypeEditors
14215
14216 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14217         
14218         * DataGrid.cs: clears cached value
14219
14220 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14221
14222         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
14223         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
14224         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
14225         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
14226         
14227 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
14228
14229         * ThemeWin32Classic.cs: fixes colour
14230
14231 2005-06-15  Peter Bartok  <pbartok@novell.com>
14232
14233         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
14234         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
14235         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
14236         * Control.cs: Added some MWFCategory and MWFDescription attributes
14237         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
14238
14239 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
14240
14241         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
14242         usage
14243
14244 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
14245
14246         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
14247         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
14248         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
14249         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
14250         * DataGrid.cs: default datagrid settings for Default Styles, fixes
14251         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
14252
14253 2005-06-13  Jackson Harper  <jackson@ximian.com>
14254
14255         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
14256         isn't printed when the user enables dropping. (X11 does accept
14257         drops).
14258         
14259 2005-06-13  Jackson Harper  <jackson@ximian.com>
14260
14261         * TreeView.cs: Remove some TODOS.
14262
14263 2005-06-13  Jackson Harper  <jackson@ximian.com>
14264
14265         * Form.cs: Hook into the mdi framework.
14266         * MdiClient.cs: Use the base control collections add method so
14267         parents get setup correctly. Set the default back colour and dock
14268         style.
14269         * MdiChildContext.cs: New class, this bad actor handles an
14270         instance of an MDI window. Right now there is only basic
14271         support. You can drag, close, and resize windows. Minimize and
14272         Maximize are partially implemented.
14273
14274 2005-06-13  Jackson Harper  <jackson@ximian.com>
14275
14276         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
14277         freaky when both vals are negative. NOTE: There are probably other
14278         places in XplatUIX11 that this needs to be done.
14279
14280 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
14281
14282         * DataGrid.cs: implement missing methods, move KeyboardNavigation
14283         * DataGridColumnStyle.cs: fixes signature
14284
14285 2005-06-12  Jackson Harper  <jackson@ximian.com>
14286
14287         * XplatUIX11.cs: Use sizing cursors similar to the ones on
14288         windows.
14289
14290 2005-06-11  Jackson Harper  <jackson@ximian.com>
14291
14292         * StatusBarPanel.cs: Signature cleanups. Implement
14293         BeginInit/EndInit.
14294
14295 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
14296
14297         * DataGridTextBoxColumn.cs: Honors aligment
14298         * GridColumnStylesCollection.cs: Contains is case unsensitive
14299         * GridTableStylesCollection.cs: several fixes
14300         * DataGridTableStyle.cs: default column creation
14301         * DataGridDrawingLogic.cs: fixes
14302         * CurrencyManager.cs: ListName property
14303         * DataGrid.cs: multiple styles support
14304         * DataGridColumnStyle.cs: fixes
14305         
14306
14307 2005-06-10  Peter Bartok  <pbartok@novell.com>
14308
14309         * Control.cs(Select): Moved SetFocus call to avoid potential
14310           loops if controls change the active control when getting focus
14311         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
14312           the up/down buttons
14313
14314 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
14315
14316         * ImageListConverter.cs: Implemented
14317
14318 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14319
14320         * MonthCalendar.cs: Wired in NumericUpDown control for year
14321
14322 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14323
14324         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
14325           DoubleClick events, since they are not meant to be fired.
14326
14327 2005-06-09  Peter Bartok  <pbartok@novell.com>
14328
14329         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
14330           Jonathan's standalone controls into MWF, implemented missing
14331           events, attributes and methods; added xxxAccessible classes
14332         * AccessibleObject.cs: Made fields internal so other classes
14333           can change them if needed
14334
14335 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
14336
14337         * UpDownBase.cs: Complete implementation
14338         * NumericUpDown.cs: Complete implementation
14339         * DomainUpDown.cs: Complete implementation
14340
14341 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
14342
14343         * DataGridTextBoxColumn.cs: drawing fixes
14344         * DataGridCell.cs: fixes ToString method to match MSNet
14345         * DataGridTableStyle.cs: fixes
14346         * DataGridBoolColumn.cs: fixes, drawing
14347         * DataGridDrawingLogic.cs: fixes, new methods
14348         * DataGridTextBox.cs: Keyboard and fixes
14349         * DataGrid.cs:
14350                 - Keyboard navigation
14351                 - Scrolling fixes
14352                 - Row selection (single, multiple, deletion, etc)
14353                 - Lots of fixes
14354         
14355 2005-06-07  Jackson Harper  <jackson@ximian.com>
14356
14357         * ThemeWin32Classic.cs: Clear the background area when drawing
14358         buttons.
14359
14360 2005-06-06  Peter Bartok  <pbartok@novell.com>
14361
14362         * ImageListStreamer.cs: Fixed signature for GetData
14363         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
14364         * ComboBox.cs:
14365           - Added missing ChildAccessibleObject class
14366           - Added missing OnXXXFocus overrides, switched to using those
14367             instead of the event handler
14368         * Control.cs:
14369           - Added Parent property for ControlAccessibleObject
14370           - Fixed signatures
14371           - Fixed attributes
14372           - Added ResetBindings()
14373         * ListBindingConverter.cs: Implemented some methods
14374         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
14375         * ImageList.cs: Implemented basic handle scheme, removed TODOs
14376         * ContainerControl.cs: Fixed signature, now subscribing to the
14377           ControlRemoved event instead of overriding the handler, LAMESPEC
14378         * CurrencyManager.cs: Added missing attribute
14379         * MonthCalendar.cs: Added missing properties
14380
14381 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14382
14383         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
14384         
14385 2005-06-06  Gaurav Vaish and Ankit Jain
14386
14387         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
14388         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
14389         
14390 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14391
14392         * Control.cs: fixes CreateParams Width / Height.
14393
14394 2005-06-05  Peter Bartok  <pbartok@novell.com>
14395
14396         * Win32DnD.cs: Removed compilation warnings
14397
14398 2005-06-05  Peter Bartok  <pbartok@novell.com>
14399
14400         * Control.cs (CreateParams): Since we don't know if one of the
14401           properties we use is overridden, lets make sure if we fail accessing
14402           we continue with a backup plan
14403
14404 2005-06-05  Peter Bartok  <pbartok@novell.com>
14405
14406         * Win32DnD.cs:
14407           - Removed debug output
14408           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
14409             struct
14410           - Plugged resource leak
14411         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
14412           MS size
14413
14414 2005-06-05  Peter Bartok  <pbartok@novell.com>
14415
14416         * XplatUIWin32.cs: Removed DnD code
14417         * Win32DnD.cs: Implemented drop source and drop target functionality
14418
14419 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14420
14421         * UpDownBase.cs: remove duplicate addition of event, enable some code
14422         that was commented out.
14423         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
14424         Validate input when a key is pressed. It works fine now for every
14425         combination of Hexadecimal. Only missing some drawing love when sharing
14426         space with other controls.
14427
14428 2005-06-04  Peter Bartok  <pbartok@novell.com>
14429
14430         * Control.cs:
14431           - We need to pass a window for DragDrop, so enable callback events
14432           - Added DnD callback events when being a DragSource
14433         * XplatUI.cs (StartDrag): Added window handle argument
14434         * XplatUIDriver.cs (StartDrag): Added window handle argument
14435         * QueryContinueDragEventArgs: Made fields internally accessible so
14436           drivers can set them
14437         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
14438           can set them
14439
14440 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
14441
14442         * DataGridTextBoxColumn.cs: column text editing
14443         * DataGridTableStyle.cs: Respect columns styles created by the user
14444         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
14445         * DataGridBoolColumn.cs: bool column editing
14446         * DataGrid.cs: fixes to scrolling, properties, etc
14447         * DataGridTextBox.cs: handle keyboard
14448         * DataGridColumnStyle.cs: fixes
14449
14450 2005-06-02  Jackson Harper  <jackson@ximian.com>
14451
14452         * ImageListStreamer.cs: Somewhat broken implementation of
14453         GetObjectData. The RLE needs some work to match MS properly.
14454
14455 2005-06-02  Jackson Harper  <jackson@ximian.com>
14456
14457         * X11Dnd.cs: Attempting to keep at least one file in MWF
14458         monostyled.
14459
14460 2005-06-02  Peter Bartok  <pbartok@novell.com>
14461
14462         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
14463           that way
14464
14465 2005-06-02  Peter Bartok  <pbartok@novell.com>
14466
14467         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
14468         * XplatUI.cs: Added DoDragDrop() method
14469         * XplatUIDriver.cs: Added DoDragDrop() method
14470
14471 2005-06-02  Jackson Harper  <jackson@ximian.com>
14472
14473         * Splitter.cs: Implement BorderStyle.
14474
14475 2005-06-02  Jackson Harper  <jackson@ximian.com>
14476
14477         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
14478         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
14479         X11 using XDND.
14480
14481 2005-06-02  Peter Bartok  <pbartok@novell.com>
14482
14483         * DataObject.cs:
14484           - Added Data setter
14485           - Fixed broken insertion code for SetData, now also
14486             overwrites any existing entry of the same format name
14487         * Hwnd.cs: Added list of pointers that automatically gets
14488           freed when the window is disposed
14489         * XplatUI.cs: Call driver initialization method when loading
14490           a driver
14491         * Control.cs:
14492           - OnDragLeave takes EventArgs, not DragEventArgs
14493           - Added setting of WS_EX_ACCEPTFILES style when dropping is
14494             supported
14495           - Forces style update when drop state changes
14496         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
14497           not perfect since we cannot (yet) call the IDataObject.GetData()
14498           method, we keep getting 0x80004005 error, dunno why)
14499
14500 2005-06-02  Peter Bartok  <pbartok@novell.com>
14501
14502         * DragEventArgs.cs: Make fields internal so we can cache the
14503           object and re-set the fields from XplatUI
14504
14505 2005-06-02  Jackson Harper  <jackson@ximian.com>
14506
14507         * Control.cs: Add some internal methods so the DnD subsystem can
14508         raise DnD events. Also call into the driver when AllowDrop is set.
14509         * XplatUI.cs:
14510         * XplatUIDriver.cs: New method for setting whether or not a window
14511         is allowed to accept drag and drop messages.
14512                 
14513 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
14514         
14515         * ScrollBar.cs: Make sure that values sent in Scroll events
14516         are always between Maximum and Minimum.
14517
14518 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
14519
14520         * Menu.cs: Call MenuChanged when menuitem visibility has been
14521         changed.
14522         * MenuItem.cs: Rebuild menu when item is (not) visible.
14523         * MainMenu.cs: MainMenu has special MenuChanged.
14524         * Theme.cs: Caption and FrameBorderSize are not fixed.
14525         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
14526         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
14527         * XplatUIX11.cs,
14528         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
14529         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
14530
14531 2005-05-30  Jackson Harper  <jackson@ximian.com>
14532
14533         * DataFormat.cs: We can't statically initialize this stuff because
14534         it calls into the xplatui and could create a loop. So we lazy init
14535         it.
14536
14537 2005-05-28  Jackson Harper  <jackson@ximian.com>
14538
14539         * Control.cs: Proper implementation of Product(Name/Version).
14540
14541 2005-05-27  Jackson Harper  <jackson@ximian.com>
14542
14543         * DataObject.cs: Dont crash if no data is found.
14544
14545 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
14546         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
14547                 as per status page, guessing it should be set to true
14548
14549 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
14550
14551         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
14552         * DataGridTableStyle.cs: set proper formatting text, def header text
14553         * ThemeWin32Classic.cs: new themable paramaters
14554         * DataGridBoolColumn.cs: paint check box, get data, fixes
14555         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
14556         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
14557         * DataGridColumnStyle.cs: fixes
14558         * Theme.cs: new themable paramaters
14559                 
14560 2005-05-26  Peter Bartok  <pbartok@novell.com>
14561
14562         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
14563
14564 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14565         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
14566
14567 2005-05-24  Peter Bartok  <pbartok@novell.com>
14568
14569         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
14570           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
14571           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
14572           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
14573           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
14574           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
14575           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
14576           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
14577           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
14578           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
14579           missing attributes, etc
14580         * DataGridPreferredColumnWidthTypeConverter.cs: Added
14581
14582 2005-05-24  Peter Bartok  <pbartok@novell.com>
14583
14584         * Help.cs: Added, implemented trivial functions, throws up MessageBox
14585           when user tries to get help
14586         * DataObject.cs, DataFormats.cs, LinkArea.cs,
14587           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
14588           to suppress warnings
14589         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
14590           avoid unreachable code warning
14591
14592 2005-05-20  Peter Bartok  <pbartok@novell.com>
14593
14594         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
14595
14596 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14597
14598         * DataGridTextBoxColumn.cs: Basic painting methods
14599         * DataGridTableStyle.cs: Set table style in the column
14600         * ThemeWin32Classic.cs: Use Theme for colors
14601         * DataGridDrawingLogic.cs: Implement more drawing
14602         * DataGrid.cs: drawing, theming, enhacements, fixes
14603         * DataGridColumnStyle.cs: fixes, drawing
14604         * Theme.cs: theming for Datagrid
14605
14606 2005-05-20  Peter Bartok  <pbartok@novell.com>
14607
14608         * Cursor.cs: Implemented GetObjectData() method
14609
14610 2005-05-20  Peter Bartok  <pbartok@novell.com>
14611
14612         * Cursors.cs: Added setting of cursor name
14613         * Cursor.cs:
14614           - Implemented constructors
14615           - Implemented Draw and DrawStretched
14616           - Implemented Current property
14617           - Implemented == and != operators
14618           - Implemented Dispose()
14619           - Implemented ToString
14620           - Added missing attributes
14621         * XplatUIX11.cs:
14622           - Added missing reset for OverrideCursor when DoEvents is called
14623           - Fixed creation of cursor, logic was wrong
14624         * XplatUIWin32.cs:
14625           - Added missing reset for OverrideCursor when DoEvents is called
14626           - Fixed creation of cursor, bit arrays were swapped
14627         * Clipboard.cs: Removed obsolete MonoTODO attribute
14628
14629 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14630
14631         * ComboBox.cs: fixes OnSelectedItemChanged
14632         * ControlBindingsCollection.cs: fixes item range check
14633
14634 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14635
14636         * UpDownBase.cs:
14637                 - Calc preferred height properly
14638                 - Implement missing properties
14639                 
14640         * NumericUpDown.cs: Implement missing events
14641
14642 2005-05-19  Jackson Harper  <jackson@ximian.com>
14643
14644         * TabControl.cs: New method that resizes the tab pages before
14645         redrawing them. This as needed as the control is double buffered
14646         and sizing will not be recalculated unless ResizeTabPages is
14647         called.
14648         * TabPage.cs: Set base.Text instead of Text in the constructor so
14649         that UpdateOwner does not get called. Use the new Redraw method of
14650         TabControl instead of Refresh so the sizing is recalculated.
14651         * ThemeWin32Classic.cs: Draw the text for button tabs.
14652
14653 2005-05-19  Jackson Harper  <jackson@ximian.com>
14654
14655         * Control.cs: Paint control background images. Fix typo where
14656         PaintControlBackground was not getting called correctly.
14657
14658 2005-05-19  Peter Bartok  <pbartok@novell.com>
14659
14660         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
14661           I can investigate, apparently I broke FileDialog
14662
14663 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
14664
14665         * AxHost.cs: Some simple properties.
14666         * Control.cs: window must be accessible after ctor.
14667         * Form.cs: Added TransparencyKey property.
14668         * TextBoxBase.cs: Implemented Clear. Text property can be null.
14669         * XplatUIWin32.cs: SetBorderStyle implemented.
14670
14671 2005-05-18  Peter Bartok  <pbartok@novell.com>
14672
14673         * DataObject.cs: Entries are not global but particular to the
14674           DataObject, now it behaves that way
14675         * XplatUIWin32.cs: Implemented Clipboard methods
14676         * Clipboard.cs: Implemented
14677         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
14678         * XplatUIOSX.cs: Updated to final clipboard prototypes
14679         * XplatUIX11.cs: Implemented Clipboard methods
14680         * XplatUIDriver.cs: Updated to final clipboard prototypes
14681         * XplatUIStructs.cs:
14682           - Added BITMAPINFOHEADER struct
14683           - Added ClipboardFormats enum
14684         * X11Structs.cs:
14685           - Added ClipboardStruct
14686           - Added Atom enum items for clipboard types
14687           - Fixed atom types for Selection event structures
14688         * DataFormats.cs:
14689           - Added internal properties and methods for drivers to enumerate
14690             all known formats
14691           - Switched initialization method to allow drivers to assign their
14692             own IDs even for the MS predefined clipboard IDs
14693         * XplatUI.cs: Updated to final clipboard interface
14694
14695 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14696         * PropertyGridView.cs: Fixed compiler warnings.
14697
14698 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14699         * PropertyGrid.cs: Added some event calls
14700         * PropertyGridView.cs: Change drawing code to use double buffering
14701         * PropertyGridTextBox.cs: Changed Text property name
14702         * GridItem.cs: Added Bounds property.
14703         * GridEntry.cs: Added Bounds property.
14704
14705 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
14706
14707         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
14708         since GetType() may not return the correct type if the object is
14709         a remoting proxy.
14710
14711 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
14712
14713         * TreeNodeCollection.cs: fixes get/set item ranges
14714         
14715 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14716
14717         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
14718                 
14719 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14720
14721         * ComboBox.cs: Fix item range comparation
14722         * ListView.cs: Fix item range comparation
14723
14724 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14725
14726         * FontDialog.cs:
14727           - Clear example panel when OnPaint is called
14728           - Better solution for displaying the example panel text
14729           - Select default indexes in the ListBoxes
14730
14731 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14732
14733         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
14734
14735 2005-05-11  Peter Bartok  <pbartok@novell.com>
14736
14737         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
14738         * SelectionRangeConverter.cs: Implemented
14739         * PropertyGrid.cs: Fixed attribute value
14740         * Control.cs:
14741           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
14742           - Added Sebastien Pouliot's CAS Stack Propagation fixes
14743         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
14744           that's common to all drivers. First methods to go there are
14745           Sebastien Pouliot's CAS Stack Propagation helper methods
14746         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
14747           Sebastien Pouliot for CAS Stack Propagation
14748
14749 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14750
14751         * OSXStructs.cs:
14752           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
14753
14754 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
14755
14756         * DataGridTextBoxColumn.cs: fixed some members
14757         * GridColumnStylesCollection.cs: indexed column is case insensitive
14758         * DataGridTableStyle.cs: fixes
14759         * ThemeWin32Classic.cs: add new theme parameter
14760         * Theme.cs: add new theme parameter
14761         * DataGridDrawingLogic.cs: Datagrid's drawing logic
14762         * DataGrid.cs: fixes, new internal properties, etc.
14763         * DataGridColumnStyle.cs: allows to set grid value
14764         *
14765
14766 2005-05-10  Peter Bartok  <pbartok@novell.com>
14767
14768         * AccessibleObject.cs:
14769           - Removed MonoTODO attribute on help, method is correct
14770           - Fixed Bounds property
14771         * AxHost.cs: Moved MonoTODO
14772         * ButtonBase.cs: Now setting AccessibleObject properties
14773         * RadioButton.cs: Setting proper AccessibleObject role
14774         * CheckBox.cs: Setting proper AccessibleObject role
14775         * ControlBindingsCollection.cs: Added properties, methods and attributes
14776         * DataFormats.cs: Fixed awkward internal API, and changed to enable
14777           userdefined DataFormats.Format items as well
14778         * ListControl.cs: Removed data_member from the public eye
14779         * OpenFileDialog.cs:
14780           - Made class sealed
14781           - Added missing attributes
14782         * SaveFileDialog.cs: Added missing attributes
14783         * ImageListStreamer.cs: Fixed code that caused warnings
14784         * LinkLabel.cs: Removed unreachable code
14785         * TreeView.cs: Fixed code that caused warnings
14786         * PropertyGridView.cs: Fixed code that caused warnings
14787         * GridColumnStylesCollection.cs: Added missing attributes
14788         * GridTableStylesCollection: Added missing attribute
14789         * PropertyManager: Added .ctor
14790         * SecurityIDType: Added
14791         * DataObject.cs: Implemented class
14792         * LinkArea.cs: Added missing attribute
14793
14794 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
14795
14796         * RadioButton.cs: call base method to allow to fire OnClick event
14797         * UpDownBase.cs: OnMouseUp call base method
14798         * CheckedListBox.cs: call base method before returning
14799         * TrackBar.cs: call base method before returning
14800         
14801
14802 2005-05-10  Peter Bartok  <pbartok@novell.com>
14803
14804         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
14805           for messages
14806
14807 2005-05-10  Peter Bartok  <pbartok@novell.com>
14808
14809         * DataFormats.cs: Implemented
14810         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
14811           XplatUIX11.cs: Added Clipboard APIs
14812         * XplatUIWin32.cs: Implemented Clipboard APIs
14813         * FolderBrowserDialog.cs: Added missing event, attributes
14814
14815 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
14816
14817         * CheckBox.cs: call base method to allow to fire OnClick event
14818
14819 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
14820
14821         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
14822
14823 2005-05-06  Peter Bartok  <pbartok@novell.com>
14824
14825         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
14826         * Screen.cs: Implemented
14827         * HelpNavigator.cs: Added
14828         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
14829           property
14830         * HelpProvider.cs: Implemented all we can do until we have a CHM
14831           help library (which means that "What's This" does work now)
14832
14833 2005-05-06  Jackson Harper  <jackson@ximian.com>
14834
14835         * XplatUIX11.cs: Fix waking up the main loop.
14836                 
14837 2005-05-05  Peter Bartok  <pbartok@novell.com>
14838
14839         * XplatUI.cs: Updated revision
14840         * Form.cs: Removed enless loop
14841         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
14842         * Label.cs (OnPaint): Added call to base.OnPaint()
14843         * ToolTip.cs: Made ToolTipWindow reusable for other controls
14844         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
14845         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
14846         * AxHost.cs: Added
14847         * ButtonBase.cs: Moved base.OnPaint() call to end of method
14848         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
14849           to ToolTip.ToolTipWindow for drawing and size methods; this allows
14850           reuse of ToolTipWindow by other controls
14851         * SizeGrip.cs: Moved base.OnPaint() call to end of method
14852         * XplatUIX11.cs: Now clipping drawing area (experimental)
14853         * PictureBox.cs: Moved base.OnPaint() call to end of method
14854         * Theme.cs: Fixed ToolTip abstracts to match new format
14855         * ErrorProvider.cs: Implemented
14856
14857 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
14858
14859         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
14860         * LinkLabel.cs:
14861                 - Adds cursors
14862                 - Handles focus
14863                 - Implements LinkBehavior
14864                 - Fixes many issues
14865
14866 2005-05-03  Jackson Harper  <jackson@ximian.com>
14867
14868         * ListView.cs: Calculate the scrollbar positioning on resize and
14869         paint, so they get put in the correct place.
14870
14871 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14872
14873         * ColorDialogs.cs: The small color panels are now handled by
14874           SmallColorControl. This fixes drawing of the focus rectangle
14875           and adds a 3D border.
14876
14877 2005-05-03  Peter Bartok  <pbartok@novell.com>
14878
14879         * Control.cs: Modified version of Jonathan Chamber's fix for
14880           double-buffering
14881
14882 2005-05-03  Jackson Harper  <jackson@ximian.com>
14883
14884         * ListView.cs: Remove redraw variable. Control now handles whether
14885         or not a redraw needs to be done, and will only raise the paint
14886         event if redrawing is needed.
14887
14888 2005-05-03  Jackson Harper  <jackson@ximian.com>
14889
14890         * Splitter.cs: No decorations for the splitter form. Cache the
14891         hatch brush.
14892
14893 2005-05-03  Jackson Harper  <jackson@ximian.com>
14894
14895         * TreeView.cs: Use dashed lines to connect nodes. Use the
14896         ControlPaint method for drawing the focus rect instead of doing
14897         that in treeview.
14898
14899 2005-05-02  Peter Bartok  <pbartok@novell.com>
14900
14901         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
14902
14903 2005-04-29  Jackson Harper  <jackson@ximian.com>
14904
14905         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
14906         entire image buffer. Just clear the clipping rectangle.
14907
14908 2005-04-29  Jackson Harper  <jackson@ximian.com>
14909
14910         * ThemeWin32Classic.cs: Don't draw list view items that are
14911         outside the clipping rectangle.
14912
14913 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
14914
14915         * ListBox.cs: added horizontal item scroll
14916
14917 2005-04-29  Jackson Harper  <jackson@ximian.com>
14918
14919         * ThemeWin32Classic.cs: Remove some old debug code that was
14920         causing flicker with the new double buffering code.
14921
14922 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
14923
14924         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
14925         behave like combobox and comboboxlist (still not sure if this is
14926         correct though).
14927
14928 2005-04-28  Jackson Harper  <jackson@ximian.com>
14929
14930         * ThemeWin32Classic.cs: Don't fill the middle of progress
14931         bars. This fills areas outside of the clip bounds that don't need
14932         to be filled.
14933
14934 2005-04-28  Jackson Harper  <jackson@ximian.com>
14935
14936         * Control.cs: Don't expose functionality to touch the image buffers.
14937         * ProgressBar.cs:
14938         * ListView.cs: We do not need to (and no longer can) manipulate
14939         the image buffers directly. All of this is handled by Control.
14940
14941 2005-04-28  Peter Bartok  <pbartok@novell.com>
14942
14943         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
14944           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
14945           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
14946
14947 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14948
14949         * Combobox:
14950                 - Adjust control's height for non-simple comboboxes (bug fix)
14951                 - Remove dead code
14952         * MenuAPI.cs: remove unused var
14953         * ScrollBar.cs: remove unsed var
14954                  
14955         * ListBox.cs: unselect items when clearing
14956
14957 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14958
14959         * ListControl.cs: honors OnPositionChanged and default Selected Item
14960         * ListBox.cs: unselect items when clearing
14961
14962 2005-04-27  Jackson Harper  <jackson@ximian.com>
14963
14964         * X11Keyboard.cs: Initialize a default keyboard and give a warning
14965         if a "correct" keyboard is not found. This will make us not crash,
14966         but might give some users bad keyboard layouts...seems to be the
14967         same thing rewind does.
14968
14969 2005-04-27  Jackson Harper  <jackson@ximian.com>
14970
14971         * BindingManagerBase.cs: Attach the current/position changed
14972         handlers to their respective events.
14973
14974 2005-04-27  Jackson Harper  <jackson@ximian.com>
14975
14976         * Control.cs: Make sure that the first WM_PAINT does a full draw,
14977         not just a blit.
14978         * ThemeWin32Classic.cs: Don't fill the background for picture
14979         boxes. This could overright user drawing.
14980         * ComboBox.cs: Just fill the clipping rect not the entire client
14981         rect when drawing the background. This prevents pieces of the
14982         image buffer from getting overwritten and is theoretically faster.
14983
14984 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
14985
14986         * ComboBox.cs: Databinding support fixes, fire missing events
14987         * ListControl.cs: implement missing methods and properties, fixes
14988         * ThemeWin32Classic.cs: Databiding support on Drawing
14989         * CheckedListBox.cs: Databinding support fixes, fire missing events
14990         * ListBox.cs: Databinding support fixes, fire missing events
14991         
14992 2005-04-25  Peter Bartok  <pbartok@novell.com>
14993
14994         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
14995
14996 2005-04-25  Jackson Harper  <jackson@ximian.com>
14997
14998         * TreeView.cs: Use the horizontal scrollbars height not width when
14999         determining how much of the client area is available.
15000
15001 2005-04-25  Jackson Harper  <jackson@ximian.com>
15002
15003         * Control.cs: Double buffering is handled differently now. As per
15004         the spec, the extra buffer is created in the WM_PAINT message and
15005         passed down to the control's drawing code.
15006         * GroupBox.cs:
15007         * Label.cs:
15008         * CheckBox.cs:
15009         * ProgressBar.cs:
15010         * RadioButton.cs:
15011         * ColorDialog.cs:
15012         * ComboBox.cs:
15013         * PropertyGridView.cs:
15014         * UpDownBase.cs:
15015         * MessageBox.cs:
15016         * MenuAPI.cs:
15017         * ListView.cs:
15018         * ButtonBase.cs:
15019         * SizeGrip.cs:
15020         * ScrollBar.cs:
15021         * ListBox.cs:
15022         * TrackBar.cs:
15023         * ToolBar.cs:
15024         * PictureBox.cs:
15025         * DateTimePicker.cs:
15026         * StatusBar.cs:
15027         * TreeView.cs: Update to new double buffering system.
15028         * MonthCalendar.cs: Uncomment block, as Capture is now
15029         working. Update to new double buffering
15030         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
15031         * PaintEventArgs.cs: New internal method allows us to set the
15032         graphics object. This is used for double buffering.
15033         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
15034         rectangle. The internal paint_area var has been removed from
15035         StatusBar. The clipping rect should be used instead.
15036         * Theme.cs: Give the PictureBox drawing method a clipping rect.
15037         * TabPage.cs: The RefreshTabs method was removed, so just call the
15038         tab controls Refresh method now.
15039         * TabControl.cs: Update to new double buffering. Make sure the
15040         handle is created before sizing the tab pages, otherwise we will
15041         get stuck in a loop.
15042
15043 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
15044
15045         * LinkLabel.cs: Fix typo, bug #74719; patch
15046           from Borja Sanchez Zamorano
15047
15048 2005-04-22  Jackson Harper  <jackson@ximian.com>
15049
15050         * TreeNode.cs: Implement Handle stuff.
15051         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
15052
15053 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
15054
15055         * DataGridTextBoxColumn.cs: call base constructors, fixes
15056         * GridColumnStylesCollection.cs: missing events, methods, and functionality
15057         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
15058         * DataGridTableStyle.cs: implements create default column styles
15059         * DataGridBoolColumn.cs: which types can handle
15060         * DataGrid.cs: missing methods, fixes, new functionality
15061         * DataGridColumnStyle.cs: fixes
15062
15063 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
15064         * FolderBrowserDialog.cs:
15065         - Use a thread to fill the TreeView
15066         - Adjusted some sizes
15067
15068 2005-04-19  Peter Bartok  <pbartok@novell.com>
15069
15070         * LinkLabel.cs: (Re-)create the pieces when setting the Text
15071           property. Fixes #74360.
15072
15073 2005-04-19  Jackson Harper  <jackson@ximian.com>
15074
15075         * XEventQueue.cs: Lock when getting the lockqueue size.
15076         * PictureBox.cs: Call base OnPaint
15077         
15078 2005-04-19  Peter Bartok  <pbartok@novell.com>
15079
15080         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
15081           messages were no longer being processed (this broke BeginInvoke)
15082
15083           
15084 2005-04-18  Jackson Harper  <jackson@ximian.com>
15085
15086         * TreeView.cs: buglet that caused node images to get drawn
15087         regardless of whether or not they were in the clipping rectangle.
15088
15089 2005-04-18  Jackson Harper  <jackson@ximian.com>
15090
15091         * CurrencyManager.cs: There are four rules for GetItemProperties:
15092         - If the type is an array use the element type of the array
15093         - If the type is a typed list, use the type
15094         - If the list contains an Item property that is not an object, use
15095         that property
15096         - use the first element of the list if there are any elements in
15097         the list.
15098         
15099 2005-04-17  Jackson Harper  <jackson@ximian.oom>
15100
15101         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
15102         click. This handles offsets for scrolling properly and reduces
15103         memory. Also fixed GetNode to not offset now that TopNode works
15104         properly.
15105         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
15106         
15107 2005-04-17  Jackson Harper  <jackson@ximian.com>
15108
15109         * CursorConverter.cs: Initial implementation.
15110
15111 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15112
15113         * ListControl.cs: work towards complex data binding support on ListControl
15114         * CurrencyManager.cs: work towards complex data binding support on ListControl
15115         * ListBox.cs: work towards complex data binding support on ListControl
15116
15117
15118 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15119
15120         * GridTableStylesCollection.cs: fixes name and constructor
15121         * DataGridTableStyle.cs: fixes
15122         * DataGridBoolColumn.cs: fixes names and constructors
15123         * DataGrid.cs: define methods and properties. Some init implementations
15124         * DataGridCell.cs: define methods and properties. Some init implementations
15125         * GridTablesFactory.cs: Define methods and properties
15126
15127 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
15128
15129         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
15130         graphics port changes.  We still want the coordinates in global screen
15131         coordinates.
15132
15133 2005-04-14  Jackson Harper  <jackson@ximian.com>
15134
15135         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
15136         check plus minus or checkbox clicks unless those features are enabled.
15137
15138 2005-04-14  Jackson Harper  <jackson@ximian.com>
15139
15140         * TreeView.cs: Add methods for setting the top and bottom visible
15141         nodes. TreeNode::EnsureVisible uses these methods.
15142         * TreeNode.cs: Implement EnsureVisible
15143
15144 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
15145
15146         * Form.cs: Pospone menu assignation if the window has not been created yet
15147         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
15148         size and position
15149
15150 2005-04-12  Jackson Harper  <jackson@ximian.com>
15151
15152         * TreeView.cs: Set the TopNode properly when scrolling
15153         occurs. This has the added benifit of reducing the amount of
15154         walking that needs to be done when drawing. Also removed an old
15155         misleading TODO.
15156         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
15157         
15158 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
15159
15160         * Timer.cs: fixes interval setting when the timer is already enabled
15161         
15162 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
15163
15164         * FolderBrowserDialog.cs: First approach
15165
15166 2005-04-09  Peter Bartok  <pbartok@novell.com>
15167
15168         * FolderBrowserDialog: Added
15169
15170 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
15171
15172         * LinkLabel.cs: move drawing code into the theme
15173         * ThemeWin32Classic.cs: drawing code and painting background bugfix
15174         * Theme.cs: define DrawLinkLabel method
15175
15176 2005-04-05  Jackson Harper  <jackson@ximian.com>
15177
15178         * BindingContext.cs: Use weak references so these bad actors don't
15179         stay alive longer then they need to.
15180
15181 2005-04-05  Jackson Harper  <jackson@ximian.com>
15182
15183         * ListControl.cs: Basic implementation of complex databinding.
15184         * ComboBox.cs:
15185         * ListBox.cs: Add calls to ListControl databinding methods.
15186
15187 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
15188
15189         * FileDialog.cs:
15190           - Don't change PopupButtonState to Normal when the
15191             PopupButton gets pressed several times.
15192           - Renamed ButtonPanel to PopupButtonPanel
15193
15194 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
15195
15196         * ColorDialog.cs: Use cached objects instead of creating them
15197         * LinkLabel.cs: Use cached objects instead of creating them
15198         * Splitter.cs: Use cached objects instead of creating them
15199         * FontDialog.cs: Use cached objects instead of creating them
15200         * PropertyGridView.cs: Use cached objects instead of creating them
15201         * MessageBox.cs: Use cached objects instead of creating them
15202         * FileDialog.cs: Use cached objects instead of creating them
15203         * ThemeWin32Classic.cs: Use cached objects instead of creating them
15204         * TreeView.cs: Use cached objects instead of creating them
15205         
15206 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
15207
15208         * Control.cs: use Equals to compare the font since no == op
15209         * ScrollBar.cs: use Equals to compare the font since no == op
15210
15211 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
15212
15213         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
15214
15215 2005-04-01  Jackson Harper  <jackson@ximian.com>
15216
15217         * Binding.cs: Implement IsBinding.
15218         * BindingManagerBase.cs:
15219         * PropertyManager.cs:
15220         * CurrencyManager.cs: Add IsSuspended property.
15221
15222 2005-04-01  Jackson Harper  <jackson@ximian.com>
15223
15224         * Binding.cs: Had some IsAssignableFrom calls backwards.
15225
15226 2005-04-01  Jackson Harper  <jackson@ximian.com>
15227
15228         * Binding.cs: Handle null data members when pulling data.
15229         * PropertyManager.cs: Handle the data member being a property that
15230         does not exist.
15231
15232 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15233
15234         * DataGridTextBoxColumn.cs: fixes signature
15235         * DataGrid.cs: calls right constructor
15236
15237 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15238
15239         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
15240         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
15241         * GridTableStylesCollection.cs: implements GridTableStylesCollection
15242         * DataGridTableStyle.cs: implements DataGridTableStyle
15243         * DataGridBoolColumn.cs: implements DataGridBoolColumn
15244         * DataGridTextBox.cs: implements DataGridTextBox
15245         * DataGridColumnStyle.cs: implements DataGridColumnStyle
15246
15247 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
15248
15249         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
15250
15251 2005-03-29  Peter Bartok  <pbartok@novell.com>
15252
15253         * Application.cs:
15254           - Properly implemented CompanyName property
15255           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
15256             returns a path that includes CompanyName, ProductName and
15257             Version (fixes bug #70330)
15258
15259 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
15260
15261         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
15262           fixes bug #72588.
15263
15264 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15265
15266         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
15267         
15268           - Added ReadOnly CheckBox
15269           - Further refactoring: moved some code from Open-/SaveFileDialog
15270             to FileDialog
15271
15272 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15273
15274         * OpenFileDialog.cs: Fixed CheckFileExists
15275         * FileDialog.cs:
15276           Moved FileView and DirComboBox outside FileDialog class.
15277           They can now be used outside FileDialog
15278
15279 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15280
15281         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
15282         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
15283
15284 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15285
15286         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15287           - Added missing CreatePrompt property in SaveDialog
15288           - Overall SaveDialog handling should be better now
15289           - Added non standard ShowHiddenFiles property
15290           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
15291           - Added InitialDirectory and RestoreDirectory support
15292
15293 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
15294
15295         * FileDialog.cs: Made dirComboBox usable
15296
15297 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
15298
15299         * FileDialog.cs: Added Filter support (case sensitiv)
15300
15301 2005-03-24  Jackson Harper  <jackson@ximian.com>
15302
15303         * TabControl.cs: Need a couple more pixels for the lines.
15304
15305 2005-03-23  Jackson Harper  <jackson@ximian.com>
15306
15307         * TabControl.cs: Give the tab page focus when it is selected.
15308
15309 2005-03-23  Jackson Harper  <jackson@ximian.com>
15310
15311         * TabControl.cs: Account for the drawing of tabs borders when
15312         invalidating. If the slider was clicked dont do click detection on
15313         the tabs.
15314
15315 2005-03-23  Jackson Harper  <jackson@ximian.com>
15316
15317         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
15318
15319 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
15320
15321         * CategoryGridEntry.cs: Added
15322         * GridItem.cs: Added helper properties
15323         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
15324         * GridEntry.cs: Updated code for collection
15325         * PropertyGrid.cs: Cleaned up some formatting
15326         * PropertyGridView.cs: Added drop down functionality for enums.
15327         * GridItemCollection.cs: Added enumerator logic
15328         * PropertyGridEntry.cs: Added
15329
15330 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15331
15332         * FileDialog.cs:
15333           - Removed unnecessary commented code
15334           - Fixed handling for entering the filename manually in the combobox
15335
15336 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15337
15338         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
15339
15340 2005-03-18  Peter Bartok  <pbartok@novell.com>
15341
15342         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
15343           them being touching the border
15344
15345 2005-03-18  Peter Bartok  <pbartok@novell.com>
15346
15347         * TextControl.cs: Quick hack to center text better
15348
15349 2005-03-18  Peter Bartok  <pbartok@novell.com>
15350
15351         * ControlPaint.cs:
15352           - Don't throw NotImplemented exceptions, just print a notice once
15353             instead (requested by Miguel). This makes running existing SWF
15354             apps a bit easier
15355         * Control.cs:
15356           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
15357           - Added context menu trigger on right click
15358         * Panel.cs: Trigger invalidate on resize
15359         * StatusBar.cs:
15360           - Removed old double-buffer drawing
15361           - Added ResizeRedraw style to force proper update of statusbar
15362         * ListView.cs:
15363           - Removed debug output
15364         * ThemeWin32Classic.cs:
15365           - Fixed drawing of status bar, now draws Text property if there
15366             are no defined panels
15367
15368 2005-03-18  Jackson Harper  <jackson@ximian.com>
15369
15370         * ImageList.cs: When the image stream is set pull all the images
15371         from it.
15372         * ImageListStreamer.cs: Implement reading image list streams.
15373
15374 2005-03-18  Peter Bartok  <pbartok@novell.com>
15375
15376         * ThemeWin32Classic.cs (DrawPictureBox):
15377           - Fixed calculations for centered drawing
15378           - Fixed drawing for normal mode, not scaling the image on normal
15379
15380 2005-03-18  Peter Bartok  <pbartok@novell.com>
15381
15382         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
15383           textbox
15384         * FileDialog.cs:
15385           - Made Open/Save button the accept button for FileDialog
15386           - Tied the cancel button to the IButtonControl cancel button
15387           - Save/Open now properly builds the pathname
15388           - Now handles user-entered text
15389           - Preventing crash on right-click if no item is selected
15390           - Fixed Text property, now uses contents of textbox
15391           - Fixed SelectedText property, now just returns the text part that
15392             is selected in the text box
15393
15394 2005-03-18  Jackson Harper  <jackson@ximian.com>
15395
15396         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
15397         rect, make sure to de-adjust the interior rect after drawing the
15398         tab text.
15399
15400 2005-03-18  Peter Bartok  <pbartok@novell.com>
15401
15402         * MenuAPI.cs: Remove menu *before* executing selected action to
15403           prevent the menu from 'hanging around'
15404           
15405 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
15406
15407         * XplatUIOSX.cs: Implemented WorkingArea property
15408
15409 2005-03-17  Peter Bartok  <pbartok@novell.com>
15410
15411         * XplatUIX11.cs: Fixed menu coord calculations
15412         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
15413           for calculating offsets
15414
15415 2005-03-17  Peter Bartok  <pbartok@novell.com>
15416
15417         * Hwnd.cs: Do not consider menu presence for default client
15418           rectangle location/size
15419         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
15420           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
15421           translation functions
15422         * FileDialog.cs: Fixed (what I presume is a) typo
15423
15424 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
15425
15426         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
15427           X access (avoids X-Async errors)
15428
15429 2005-03-16  Jackson Harper  <jackson@ximian.com>
15430
15431         * TabControl.cs: Raise the SelectedIndexChanged event.
15432
15433 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
15434
15435         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15436           - Removed vertical ToolBar and replaced it with a custom panel
15437             (desktop and home button already work)
15438           - Added Help button (some controls get resized or relocated then)
15439           - Draw correct text depending on Open or Save.
15440           - Fixed some typos...
15441
15442 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
15443
15444         * ScrollBar.cs:
15445           - Only change Maximum and Minimum when need it (bug fix)
15446
15447 2005-03-15  Peter Bartok  <pbartok@novell.com>
15448
15449         * Form.cs: Use Handle for icon, to trigger creation if
15450           the window does not yet exist
15451         * Control.cs:
15452           - CanSelect: Slight performance improvement
15453           - Focus(): Preventing possible recursion
15454           - Invalidate(): Removed ControlStyle based clear flag setting
15455           - WM_PAINT: fixed logic for calling OnPaintBackground
15456           - WM_ERASEBKGND: Fixed logic, added call to new driver method
15457             EraseWindowBackground if the control doesn't paint background
15458         * XplatUIWin32.cs:
15459           - Moved EraseWindowBackground() method to internal methods
15460           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
15461             is sent via SendMessage on BeginPaint call on Win32
15462         * XplatUIX11.cs:
15463           - Added EraseWindowBackground() method
15464           - No longer sends WM_ERASEBKGND on .Expose, but on call to
15465             PaintEventStart, which more closely matches Win32 behaviour
15466           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
15467           - Fixed SetFocus() to properly deal with client and whole windows
15468         * Hwnd.cs: Added ErasePending property
15469         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
15470         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
15471
15472 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
15473
15474         * XplatUIOSX.cs:
15475           - Fix hard loop when timers exist.
15476           - Fix bugs with middle and right click for 3 button mice.
15477
15478 2005-03-11  Peter Bartok  <pbartok@novell.com>
15479
15480         * XplatUIX11.cs:
15481           - get_WorkingArea: Need to call X directly, GetWindowPos only
15482             returns cached data now
15483           - Added sanity check to GetWindowPos hwnd usage
15484
15485 2005-03-11  Jackson Harper  <jackson@ximian.com>
15486
15487         * BindingManagerBase.cs: This method isn't used anymore as
15488         PullData now updates the data in the control.
15489
15490 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
15491
15492         * Form.cs: fixes menu drawing on X11
15493         * MenuAPI.cs:  fixes menu drawing on X11
15494
15495 2005-03-11  Peter Bartok  <pbartok@novell.com>
15496
15497         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
15498           from Jonathan Gilbert; should fix bug #73606
15499         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
15500           in Screen coordinates. Thanks, Jordi.
15501         * Form.cs: Added missing attribute
15502
15503 2005-03-11  Peter Bartok  <pbartok@novell.com>
15504
15505         * Form.cs:
15506           - Rudimentary Mdi support
15507           - Removed outdated FormParent code
15508           - Implemented lots of missing properties and methods, still missing
15509             transparency support
15510           - Added missing attributes
15511           - Implemented support for MaximumBounds
15512           - Added firing of various events
15513         * XplatUI.cs: Added SetIcon() method
15514         * XplatUIDriver.cs: Added SetIcon() abstract
15515         * XplatUIOSX.cs: Stubbed out SetIcon() method
15516         * XplatUIX11.cs:
15517           - Implemented SetIcon() support
15518           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
15519           - Switched to unix line endings
15520         * XplatUIWin32.cs:
15521           - Made POINT internal so for can access it as part of MINMAX
15522           - Implemented SetIcon() support
15523           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
15524             native Mdi support again, might have to go managed)
15525         * Control.cs: Now fires the StyleChanged event
15526         * MdiClient.cs: Added; still mostly empty
15527
15528 2005-03-10  Peter Bartok  <pbartok@novell.com>
15529
15530         * SaveFileDialog.cs: Added emtpy file
15531
15532 2005-03-08  Peter Bartok  <pbartok@novell.com>
15533
15534         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
15535           in turn triggers OnCreateContro) when creating a handle for the
15536           first time.
15537         * TextControl.cs: Fixed endless loop in certain cases when
15538           replacing the current selection
15539
15540 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
15541
15542         * ScrollBar.cs:
15543           - Honors NewValue changes in Scroll events allowing apps to change it
15544           - Adds First and Last Scroll events
15545           - Fixes Thumb events
15546
15547 2005-03-07  Peter Bartok  <pbartok@novell.com>
15548
15549         * Hwnd.cs: Added DefaultClientRectangle property
15550         * XplatUI.cs: Now using the X11 driver Where() method, which provides
15551           more detailed debug information
15552         * XplatUIX11.cs:
15553           - Fixed size-change feedback loop, where we would pull an old size
15554             off the queue and mistakenly change our window's size to an
15555             earlier value
15556           - Now compressing ConfigureNotify events, to reduce looping and
15557             redraw issues
15558         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
15559           is called
15560
15561 2005-03-07  Jackson Harper  <jackson@ximian.com>
15562
15563         * Binding.cs: Push data pushes from data -> property. Check if the
15564         property is readonly when attempting to set it.
15565
15566 2005-03-07  Jackson Harper  <jackson@ximian.com>
15567
15568         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
15569         instead of IsSubclassOf. Pulling data now sets the value on the
15570         control.
15571         * PropertyManager.cs:
15572         * CurrencyManager.cs: Just need to pull data when updating now,
15573         because PullData will set the value on the control.
15574
15575 2005-03-04  Jackson Harper  <jackson@ximian.com>
15576
15577         * Binding.cs: Implement data type parsing and converting on pulled
15578         data. TODO: Are there more ways the data can be converted?
15579
15580 2005-03-04  Jackson Harper  <jackson@ximian.com>
15581
15582         * Binding.cs: Support <Property>IsNull checks. Also bind to the
15583         controls Validating method so we can repull the data when the
15584         control loses focus.
15585
15586 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
15587
15588         * ColumnHeader.cs:
15589           - Fixes null string format
15590           
15591         * ListView.cs:
15592           - Adds enum type checks
15593           - Fixes redrawing and recalc need after changing some properties
15594           - Fixes on focus_item set after the event
15595           - Fixes adding columns after the control has been created
15596           
15597         * ThemeWin32Classic.cs:
15598           - Fixes CheckBox focus rectangle
15599           - Fixes ColumnHeader drawing
15600
15601
15602 2005-03-03  Jackson Harper  <jackson@ximian.com>
15603
15604         * Binding.cs: Bind to <Property>Changed events so we can detect
15605         when properties are changed and update the data.
15606
15607 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
15608
15609         * ImageList.cs:
15610           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
15611           - Fixes ImageList constructor with ImageList container
15612           - Fixes image scaling (wrong parameters at DrawImage)
15613
15614 2005-02-02  Jackson Harper  <jackson@ximian.com>
15615
15616         * Binding.cs: Make property searches case-insensitive. Eliminate
15617         some duplicated code.
15618
15619 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
15620
15621         * ComboBox.cs:
15622                 - Handle focus event
15623                 - Fix scrollbar events
15624                 - Discard highlighted item if remove it
15625                 - Fixes SelectedItem with strings
15626
15627 2005-03-01  Peter Bartok  <pbartok@novell.com>
15628
15629         * Control.cs:
15630           - Fixed Visible property, now follows (once again) parent chain
15631             to return false if any control in the chain is visible=false
15632           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
15633           - Fixed several places where is_visible instead of Visible was used
15634           - Implemented FIXME related to focus selection when setting focused
15635             control to be invisible
15636
15637         * XplatUIWin32.cs: Now using proper method to find out if window is
15638           visible. Thanks to Jordi for pointing it out
15639
15640 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
15641
15642         * ComboBox.cs: show/hide scrollbar instead of creating it
15643
15644 2005-02-27  Jackson Harper  <jackson@ximian.com>
15645
15646         * CurrencyManager.cs: Add PositionChanged stuff.
15647
15648 2005-02-27  Peter Bartok  <pbartok@novell.com>
15649
15650         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
15651         * XplatUIOSX.cs: Added GetMenuOrigin() stub
15652         * XplatUIWin32.cs: Implemented GetMenuOrigin()
15653         * XplatUIX11.cs:
15654           - Implemented GetMenuDC()
15655           - Implemented GetMenuOrigin()
15656           - Implemented ReleaseMenuDC()
15657           - Implemented generation of WM_NCPAINT message
15658           - Implemented generation and handling of WM_NCCALCSIZE message
15659         * Form.cs: Added debug helper message for Jordi's menu work
15660         * Hwnd.cs:
15661           - Modified ClientRect property; added setter, fixed getter to handle
15662             setting of ClientRect
15663           - Added MenuOrigin property
15664
15665 2005-02-26  Peter Bartok  <pbartok@novell.com>
15666
15667         * XplatUIX11.cs:
15668           - Destroys the caret if a window that's being destroyed contains it
15669           - Ignores expose events coming from the X11 queue for windows that
15670             already are destroyed
15671           - Now uses the proper variable for handling DestroyNotify, before we
15672             marked the wrong window as destroyed
15673           - Improved/added some debug output
15674
15675 2005-02-26  Peter Bartok  <pbartok@novell.com>
15676
15677         * X11Keyboard.cs: Fixes to work on 64bit systems
15678
15679 2005-02-26  Peter Bartok  <pbartok@novell.com>
15680
15681         * Control.cs:
15682           - Now calling OnHandleDestroyed from DestroyHandle()
15683             instead of Dispose()
15684           - Removed bogus call to controls.Remove() from DestroyHandle()
15685
15686 2005-02-26  Peter Bartok  <pbartok@novell.com>
15687
15688         * Control.cs: Properly destroy child windows when our handle is
15689           destroyed
15690
15691 2005-02-25  Peter Bartok  <pbartok@novell.com>
15692
15693         * XplatUI.cs:
15694           - Added 'DriverDebug' define to allow tracing XplatUI API calls
15695           - Alphabetized Static Methods and Subclasses
15696
15697         * XplatUIX11.cs:
15698           - Added XException class to allow custom handling of X11 exceptions
15699           - Created custom X11 error handler, tied into XException class
15700           - Added support for MONO_XEXCEPTIONS env var to allow the user
15701             to either throw an exception on X errors or continue running
15702             after displaying the error
15703           - Added handling of DestroyNotify message
15704           - Added handler for CreateNotify message (still disabled)
15705           - Improved (tried to at least) Where method to provide file and lineno
15706         * X11Structs.cs:
15707           - Added XErrorHandler delegate
15708           - Added XRequest enumeration (to suppor translation of errors)
15709
15710 2005-02-25  Jackson Harper  <jackson@ximian.com>
15711
15712         * PropertyManager.cs: Implement editing features
15713         * CurrencyManager.cs:
15714         * Binding.cs: First attempt at UpdateIsBinding
15715         * BindingManagerBase.cs: Call UpdateIsBinding before
15716         pushing/pulling data.
15717
15718 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
15719
15720         * MenuAPI.cs: Respect disabled items
15721         * ThemeWin32Classic.cs
15722                 - Caches ImageAttributes creation for DrawImageDisabled
15723                 - Fixes vertical menu line drawing
15724                 - Draws disabled arrows in disable menu items
15725
15726 2005-02-24  Peter Bartok  <pbartok@novell.com>
15727
15728         * Hwnd.cs:
15729           - Added UserData property to allow associating arbitrary objects
15730             with the handle
15731           - Fixed leak; now removing Hwnd references from static windows array
15732         * XplatUIWin32.cs:
15733           - Fixed Graphics leak in PaintEventEnd
15734           - Removed usage of HandleData, switched over to Hwnd class
15735         * HandleData.cs: Removed, obsoleted by Hwnd.cs
15736
15737 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15738
15739         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
15740         * ScrollBar.cs: Fixes bug
15741         * TrackBar.cs: removes death code, clipping, mimize refreshes,
15742          keyboard navigation enhancements
15743
15744 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15745
15746         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
15747         * GroupBox.cs: Add control styles
15748         * Label.cs: Add control styles
15749         * UpDownBase.cs: Add control styles
15750         * ListBox.cs: Add control styles
15751         * XplatUIWin32.cs: Fixes wrong parameter order
15752
15753
15754 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
15755
15756         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
15757
15758 2005-02-23  Jackson Harper  <jackson@ximian.com>
15759
15760         * PropertyManager.cs: Implement property binding. This doesn't
15761         seem to work yet though as (I think) there are some bugs in
15762         System.ComponentModel.PropertyDescriptor.
15763         * BindingContext.cs: Use new PropertyManager constructor.
15764
15765 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
15766
15767         * ProgressBar.cs: use clip region in ProgressBar
15768         * ThemeWin32Classic.cs: use clip region in ProgressBar
15769
15770 2004-02-22  Jackson Harper  <jackson@ximian.com>
15771
15772         * BindingsCollection.cs: Remove some debug code.
15773
15774 2005-02-22  Jackson Harper  <jackson@ximian.com>
15775
15776         * BindingContext.cs:
15777         * ControlBindingsCollection.cs:
15778         * CurrencyManager.cs:
15779         * Binding.cs:
15780         * BindingManagerBase.cs: Initial implementation
15781         * BindingsCollection.cs: Add an internal contains method that the
15782         BindingManagerBase uses to ensure bindings aren't added twice to
15783         the collection.
15784         * PropertyManager.cs: Stubbed out.
15785         * Control.cs:
15786         * ContainerControl.cs: Hook up databinding
15787         
15788 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
15789
15790         * XplatUIOSX.cs:
15791           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
15792           Fixed Invalidate/Update chain.
15793           Fixed tons of other minor bugs (this is almost a complete rewrite).
15794
15795 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
15796
15797         * ComboBox.cs: do subcontrol creation when the control is created
15798
15799 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15800
15801         * Label.cs: fixes image drawing (image and imagelist)
15802         * ThemeWin32Classic.cs: cache brushes
15803         
15804 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15805
15806         * Form.cs: Move menu drawing code to Theme class
15807         * ComboBox.cs: Move ComboBox drawing code to Theme class
15808         * MenuItem.cs: Move menu drawing code to Theme class
15809         * MenuAPI.cs: Move menu drawing code to Theme class
15810         * ThemeWin32Classic.cs: New methods
15811         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
15812         * ListBox.cs: Move Listbox drawing code to Theme class
15813         * Theme.cs: New methods
15814
15815 2005-02-20  Peter Bartok  <pbartok@novell.com>
15816
15817         * Control.cs:
15818           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
15819             only process mnemonics on those)
15820           - Fixed event sequence for key handling; first calling
15821             ProcessKeyEventArgs now
15822         * TextBoxBase.cs:
15823           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
15824             for processing non-character keys
15825           - Fixed WM_CHAR to generate proper event sequence before processing
15826         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
15827           generation
15828
15829 2005-02-19  Peter Bartok  <pbartok@novell.com>
15830
15831         * UserControl.cs: Added TextChanged event; added attributes
15832         * SizeGrip.cs: Implemented resizing and optional display of grip
15833         * Form.cs: Fixed attribute
15834         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15835           Changed meaning of ScrollWindow bool argument; instead of the
15836           clear attribute (which will be true usually anyway), it gives the
15837           option of moving child controls as well.
15838         * XplatUIX11.cs:
15839           - Changed to match new ScrollWindow argument
15840           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
15841             now handles the implicit parent window a WM puts around us
15842         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
15843           to work)
15844         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
15845         * TreeView.cs: Adjusted to new ScrollWindow arguments
15846
15847 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15848
15849         * Form.cs: Menu integration with non-client area
15850         * MenuItem.cs: Menu integration with non-client area
15851         * MenuAPI.cs: Menu integration with non-client area
15852
15853 2005-02-18  Peter Bartok  <pbartok@novell.com>
15854
15855         * MethodInvoker.cs: Added
15856         * MdiLayout.cs: Added
15857         * SendKeys.cs: Started implementation
15858         * ErrorIconAlignment.cs: Added
15859
15860 2005-02-18  Peter Bartok  <pbartok@novell.com>
15861
15862         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
15863         * Form.cs: Added handling for Menu-related Non-client messages
15864
15865 2005-02-17  Peter Bartok  <pbartok@novell.com>
15866
15867         * UpDownBase.cs: Fixed typo, compilation errors
15868         * DomainUpDown.cs: Fixed attribute value
15869
15870 2005-02-16  Miguel de Icaza  <miguel@novell.com>
15871
15872         * UpDownBase.cs: Attach entry events.
15873         Propagate events.
15874         Add ForeColor property, Focused, InterceptArrowKeys (interception
15875         does not work yet).
15876
15877 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
15878
15879         * Form.cs:
15880                 - Redraw non client are on Setmenu
15881                 - Calc proper menu starting point
15882
15883 2005-02-17  Peter Bartok  <pbartok@novell.com>
15884
15885         * Application.cs: Fixed message_filter check
15886
15887 2005-02-17  Peter Bartok  <pbartok@novell.com>
15888
15889         * Application.cs: Now calls registered message filters
15890         * DockStyle.cs: Fixed attribute
15891         * Form.cs: Fixed attribute
15892         * Menu.cs: Fixed attribute
15893         * ToolTip.cs: Fixed attribute
15894         * TreeNode.cs: Added missing attributes and arranged in regions
15895         * PropertyGrid.cs: Fixed signatures
15896         * TreeNodeCollection.cs: Added attributes
15897         * Splitter.cs: Added missing attributes; arranged into regions
15898         * TabPage.cs: Added missing attributes; arranged into regions
15899         * TextBoxBase.cs: Added missing attributes
15900         * TextBox.cs: Added missing attributes
15901         * ArrangeDirection.cs: Added missing attributes
15902         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
15903         * ToolBarButton.cs: Fixed attributes
15904         * AnchorStyles.cs: Fixed attribute
15905         * TrackBar.cs: Fixed attributes
15906         * TabControl.cs: Added missing attributes and arranged into regions
15907         * ToolBar.cs: Fixed attribute
15908         * StatusBar.cs: Fixed signature, organized into regions and added
15909           attributes
15910         * StatusBarPanel.cs: Fixed attributes
15911         * ContentsResizedEventArgs.cs: Implemented
15912         * ContentsResizedEventHandler.cs: Implemented
15913         * DateBoldEventArgs.cs: Implemented
15914         * DateBoldEventHandler.cs: Implemented
15915         * UpDownEventArgs.cs: Implemented
15916         * UpDownEventHandler.cs: Implemented
15917         
15918 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
15919
15920         * Form.cs: first Menu NC refactoring
15921         * MenuAPI.cs: first Menu NC refactoring
15922         
15923 2005-02-16  Peter Bartok  <pbartok@novell.com>
15924
15925         * ImeMode.cs: Added missing attributes
15926         * Menu.cs: Fixed attribute
15927         * GroupBox.cs: Fixed attribute
15928         * Label.cs: Fixed attribute
15929         * ColorDialog.cs (RunDialog): Removed TODO attribute
15930         * ComboBox.cs: Fixed attributes
15931         * ListControl.cs: Added missing attributes
15932         * PropertyGrid.cs: Fixed attributes
15933         * Control.cs: Fixed attributes
15934         * ListViewItem.cs: Added TypeConverter attribute
15935         * NotifyIcon.cs: Fixed attributes
15936         * ListView.cs: Fixed attributes
15937         * ButtonBase.cs: Fixed attribute
15938         * ImageList.cs: Added missing attributes
15939         * ContainerControl.cs: Fixed signature
15940         * CheckedListBox.cs: Fixed attribute; added missing attributes
15941         * Panel.cs: Fixed attributes
15942         * PropertyTabChangedEventArgs.cs: Added missing attribute
15943         * PropertyValueChangedEventArgs.cs: Added missing attribute
15944         * Binding.cs: Fixed attribute
15945         * ListViewItemConverter: Implemented ListViewSubItemConverter class
15946         * ListBox.cs: Fixed attribute; added missing attributes;
15947         * ScrollableControl.cs: Added missing attributes
15948         * PictureBox.cs: Added missing attributes; implemented missing property
15949         * DateTimePicker.cs: Added missing attributes
15950         * Theme.cs (ToolWindowCaptionHeight): Fixed type
15951         * MonthCalendar.cs: Fixed attributes
15952         * StatusBarPanel.cs: Added missing attributes
15953         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
15954
15955 2005-02-16  Peter Bartok  <pbartok@novell.com>
15956
15957         * TextBoxBase.cs: The previous method to enforce height yet remember
15958           the requested high was less than ideal, this is an attempt to do
15959           it better.
15960         * Control.cs: Added comment about possible problem
15961         * Copyright: Updated format
15962         * GridItemType.cs: Fixed swapped values
15963
15964 2005-02-15  Jackson Harper  <jackson@ximian.com>
15965
15966         * BaseCollection.cs: Use property so we never access an
15967         uninitialized list. Also initialize the list in the property.
15968
15969 2005-02-15  Peter Bartok  <pbartok@novell.com>
15970
15971         * GroupBox.cs (ProcessMnemonic): Implemented
15972         * Label.cs (ProcessMnemonic): Implemented
15973         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
15974           hotkeys
15975
15976 2005-02-15  Peter Bartok  <pbartok@novell.com>
15977
15978         * RadioButton.cs (ProcessMnemonic): Implemented
15979         * CheckBox.cs (ProcessMnemonic): Implemented
15980         * Control.cs:
15981           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
15982             handling
15983           - Added internal method to allow calling ProcessMnemonic from other
15984             controls
15985         * ContainerControl.cs:
15986           - Started support for handling validation chain handling
15987           - Implemented ProcessMnemonic support
15988           - Added Select() call to Active, to make sure the active control
15989             receives focus
15990         * Form.cs: Setting toplevel flag for Forms (this was lost in the
15991           FormParent rewrite)
15992         * ThemeWin32Classic.cs:
15993           - DrawCheckBox(): Fixed stringformat to show hotkeys
15994           - DrawRadioButton(): Fixed stringformat to show hotkeys
15995         * CommonDialog.cs: Removed WndProc override, not needed
15996
15997 2005-02-14  Peter Bartok  <pbartok@novell.com>
15998
15999         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
16000           missed those in the rewrite
16001
16002 2005-02-14  Miguel de Icaza  <miguel@novell.com>
16003
16004         * NumericUpDown.cs (Increment, ToString): Add.
16005         (DecimalPlaces): implement.
16006         
16007         Add attributes.
16008         
16009         * UpDownBase.cs: Add the designer attributes.
16010
16011 2005-02-13  Peter Bartok  <pbartok@novell.com>
16012
16013         * Panel.cs: Removed border_style, now in Control
16014         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
16015           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
16016
16017 2005-02-13  Peter Bartok  <pbartok@novell.com>
16018
16019         * MouseButtons.cs: Added missing attributes
16020         * XplatUIStructs.cs: Added enumeration for title styles
16021         * LeftRightAlignment.cs: Added missing attributes
16022         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
16023           it compatible with Graphics.FromHwnd()
16024         * SelectedGridItemChangedEventArgs.cs: Fixed property type
16025         * Keys.cs: Added missing attributes
16026         * SelectionRange.cs: Added missing attributes
16027         * SelectionRangeConverter.cs: Added
16028         * XplatUI.cs:
16029           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
16030             ReleaseMenuDC methods
16031           - Renamed ReleaseWindow to UngrabWindow
16032           - Added proper startup notice to allow version identification
16033         * Form.cs:
16034           - Added missing attributes
16035           - Removed FormParent concept
16036         * Label.cs: Removed border_style field, now in Control
16037         * RadioButton.cs: Now properly selects RadioButton when focus is
16038           received
16039         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
16040         * Control.cs:
16041           - Added missing attributes
16042           - Added borderstyle handling
16043           - Removed FormParent concept support
16044           - Fixed calls to XplatUI to match changed APIs
16045           - Fixed bug that would case us to use disposed Graphics objects
16046           - Removed unneeded internal methods
16047           - PerformLayout(): Fixed to handle DockStyle.Fill properly
16048           - SelectNextControl(): Fixed to properly check common parents
16049         * TextBoxBase.cs: Removed border_style field (now in Control)
16050         * MessageBox.cs:
16051           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
16052             fixed calculations for form size
16053           - Added support for localized strings and icons
16054           - Improved form size calculations, added border
16055         * ListView.cs: Removed border_style field (now in Control)
16056         * X11Structs.cs: Moved several structs from X11 driver here
16057         * X11Keyboard.cs: Changed debug message
16058         * Application.cs: Removed FormParent concept support
16059         * CommonDialog.cs:
16060           - Resetting end_modal flag
16061           - Removed FormParent concept support
16062         * NativeWindow.cs: Removed FormParent concept support
16063         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
16064           Client area and Non-Client whole window to allow support for WM_NC
16065           messages
16066         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
16067           prevent using it until it supports Hwnd as per Geoff Norton's request
16068         * ToolBar.cs: Fixed drawing, was not doing proper drawing
16069         * PictureBox.cs: Removed border_style field, now in Control
16070         * XplatUIWin32.cs: Added new driver methods
16071
16072 2005-02-12  Peter Bartok  <pbartok@novell.com>
16073
16074         * OpacityConverter.cs: Implemented
16075         * Hwnd.cs: Internal class to support drivers that need to emulate
16076           client area/non-client area window behaviour
16077
16078 2005-02-11  Peter Bartok  <pbartok@novell.com>
16079
16080         * KeysConverter.cs: Implemented
16081
16082 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
16083
16084         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
16085         * LinkLabel: Added missing attributes
16086         * MainMenu.cs: fixes ToString
16087         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
16088         * ListBox.cs: fixes event position
16089         * TrackBar.cs: adds missing attributes and events
16090         
16091 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
16092
16093         * MenuItem.cs: Use SystemInformation and bug fixes
16094         * MenuAPI.cs: Use SystemInformation and bug fixes
16095
16096 2005-02-09  Jackson Harper  <jackson@ximian.com>
16097
16098         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
16099         their keystate otherwise things like VK_MENU get stuck "on".
16100
16101 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
16102
16103         * ListBox.cs: Fixes AddRange bug
16104         
16105 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
16106
16107         * ProgressBar.cs
16108                 - Add missing attributes
16109                 - Add missing method
16110                 
16111         * CheckedListBox.cs: Added missing attributes
16112                 - Add missing attributes
16113                 - Remove extra method
16114         
16115         * ComboBox.cs: Added missing attributes
16116         * VScrollBar.cs: Added missing attributes
16117         * ScrollBar.cs:  Added missing attributes
16118         * ListBox.cs: Fixes signature, add missing consts
16119         * LinkArea.cs:   Added missing attributes
16120         
16121
16122 2005-02-08  Peter Bartok  <pbartok@novell.com>
16123
16124         * Menu.cs: Added missing attributes
16125         * MainMenu.cs: Added missing attributes
16126         * GroupBox.cs: Added missing attributes
16127         * Label.cs: Added missing attributes
16128         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
16129         * ColorDialog.cs:
16130           - Added Instance and Options properties
16131           - Added missing attributes
16132         * Cursor.cs: Made Serializable
16133         * NotifyIcon: Added missing attributes
16134         * MenuItem.cs: Added missing attributes
16135         * TextBoxBase.cs: Implemented AppendText() and Select() methods
16136         * Panel.cs: Added Missing attributes
16137         * MonthCalendar.cs: Fixed CreateParams
16138
16139 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16140         
16141         * LinkLabel.cs:
16142                 - Fixes signature
16143                 - Fixes issues with links
16144                 - Adds the class attributes
16145
16146 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16147         
16148         * ComboBox.cs:
16149                 - Fixes button when no items available in dropdown
16150                 - Fixes repainting problems
16151                 - Adds the class attributes
16152                 
16153 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16154
16155         * XplatUIOSX.cs: Detect the menu bar and title bar height from
16156         the current theme.  Cache these on startup.
16157
16158 2005-02-07  Jackson Harper  <jackson@ximian.com>
16159
16160         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
16161         the scrollbar buttons when they are depressed.
16162
16163 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16164
16165         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
16166         Get the display size from the main displayid.  We currently dont
16167         support multiple display configurations.
16168
16169 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16170
16171         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
16172
16173 2005-02-07  Miguel de Icaza  <miguel@novell.com>
16174
16175         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
16176
16177 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
16178
16179         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
16180
16181 2005-02-04  Jackson Harper  <jackson@ximian.com>
16182
16183         * ThemeWin32Classic.cs: Respect the clipping rect when
16184         drawing. Only fill the intersection of clips and rects so there
16185         isn't a lot of large fills.
16186         * ScrollBar.cs: Pass the correct clipping rect to the theme
16187         engine. Remove some debug code.
16188
16189 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
16190         
16191         * DateTimePicker.cs:
16192                 - Fixed crash on DateTime.Parse, use Constructor instead
16193
16194 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16195         
16196         * MenuItem.cs:
16197         * MenuAPI.cs:
16198                 - Owner draw support (MeasureItem and DrawItem)
16199
16200 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16201         
16202         *  Menu.cs:
16203                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
16204                 - Fixes MenuItems.Add range
16205         * MenuItem.cs:
16206                 - MergeMenu and Clone and CloneMenu functions
16207
16208 2005-02-03  Jackson Harper  <jackson@ximian.com>
16209
16210         * ScrollBar.cs: Make abstract
16211         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
16212         is abstract.
16213
16214 2005-02-03  Jackson Harper  <jackson@ximian.com>
16215
16216         * ScrollBar.cs: First part of my scrollbar fixups. This removes
16217         all the unneeded refreshes and uses invalidates with properly
16218         computed rects.
16219
16220 2005-02-03  Peter Bartok  <pbartok@novell.com>
16221
16222         * ComponentModel.cs: Added
16223         * IDataGridEditingService.cs: Added
16224         * Timer.cs: Added missing attributes
16225         * ToolTip.cs: Added missing attributes
16226
16227 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16228
16229         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
16230
16231 2005-02-03  Peter Bartok  <pbartok@novell.com>
16232
16233         * ListBox.cs: Added missing attributes
16234
16235 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
16236         
16237         * ListBox.cs:
16238                 - Fixes font height after font change
16239                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
16240                 
16241 2005-02-02  Peter Bartok  <pbartok@novell.com>
16242
16243         * HandleData.cs: Introduced static methods to allow class
16244           to be more self-contained and track it's own HandleData objects
16245         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
16246           HandleData to use new static methods
16247
16248 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
16249
16250         * Combobox.cs:
16251                 - Fixes default size and PreferredHeight
16252                 - Missing events
16253                 - ObjectCollection.Insert implementation
16254                 
16255         * ListControl.cs
16256                 - Fixes signature
16257         * ListBox.cs:
16258                 - Several fixes
16259                 - ObjectCollection.Insert implementation
16260                 - No selection after clean
16261                 - Small fixes
16262
16263 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16264
16265         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
16266
16267 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
16268
16269         * Combobox.cs:
16270                 - Caches ItemHeight calculation for OwnerDrawVariable
16271                 - Handles dropdown properly
16272                 - Fixes several minor bugs
16273
16274 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16275
16276         * ListBox.cs:
16277                 - Fixes 71946 and 71950
16278                 - Fixes changing Multicolumn on the fly
16279                 - Fixes keyboard navigation on Multicolumn listboxes
16280
16281 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16282         
16283         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
16284         crash reporter log.
16285
16286 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16287
16288         * XplatUIOSX.cs: Allow applications to actually exit.
16289
16290 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16291
16292         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
16293         their parent at creation time rather than lazily later.  Fixes a major
16294         regression we were experiencing.
16295
16296 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16297
16298         * ThemeWin32Classic.cs: more date time picker painting fixes
16299         * DateTimePicker.cs: more monthcalendar drop down fixes
16300         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
16301
16302 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16303
16304         * ScrollBar.cs:
16305                 - When moving the thumb going outside the control should stop the moving
16306                 - Adds the firing of missing events
16307                 - Fixes no button show if Size is not specified
16308                 - End / Home keys for keyboard navigation
16309
16310 2005-01-30  Peter Bartok  <pbartok@novell.com>
16311
16312         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
16313           sanity check to prevent theoretical loop
16314         * XplatUIWin32.cs (SetVisible): Removed debug output
16315         * XplatUIX11.cs (SystrayChange): Added sanity check
16316         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
16317         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
16318           behaviour, valid until the X11 client window rewrite is done
16319         * TextBox.cs (ctor): Setting proper default foreground and background
16320           colors
16321
16322 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
16323
16324         * Theme: Added DrawDateTimePicker to interface
16325         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
16326         * DateTimePicker.cs: Created (still needs keys and painting code)
16327         * DateTimePickerFormat.cs: added
16328         * MonthCalendar.cs: fixed CreateParams for popup window mode
16329           
16330 2005-01-29  Peter Bartok  <pbartok@novell.com>
16331
16332         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
16333           this should also the calculations for ligher/darker
16334         * Theme.cs: Fixed defaults for ScrollBar widths/heights
16335
16336 2005-01-29  Peter Bartok  <pbartok@novell.com>
16337
16338         * ArrangeDirection.cs: Added
16339         * ArrangeStartingPositon.cs: Added
16340         * SystemInformation.cs: Implemented
16341         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16342           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
16343           used by SystemInformation class
16344         * X11Strucs.cs: Added XSizeHints structure
16345         * MenuAPI.cs:
16346           - Fixed CreateParams to make sure the menu window is always visible
16347           - TrackPopupMenu: Added check to make sure we don't draw the
16348             menu offscreen
16349
16350 2005-01-29  Peter Bartok  <pbartok@novell.com>
16351
16352         * HandleData.cs: Added method for altering invalid area
16353         * TextBoxBase.cs: Implemented TextLength
16354
16355 2005-01-28  Peter Bartok  <pbartok@novell.com>
16356
16357         * XplatUIX11.cs: Improvement over last patch, not sending
16358           the WM_PAINT directly anymore, instead we scroll any pending
16359           exposed areas and let the system pick out the WM_PAINT later
16360
16361 2005-01-28  Peter Bartok  <pbartok@novell.com>
16362
16363         * SWF.csproj: Deleted, no longer used. Instead,
16364           Managed.Windows.Forms/SWF.csproj should be used
16365         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
16366           directly, to avoid a potential race condition with the next
16367           scroll
16368
16369 2005-01-28  Peter Bartok  <pbartok@novell.com>
16370
16371         * XplatUI.cs: Made class internal
16372
16373 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
16374
16375         * CheckedListBox.cs:
16376                 - Draw focus
16377                 - Fixed Drawing
16378                 - Missing methods and events
16379
16380 2005-01-27  Peter Bartok  <pbartok@novell.com>
16381
16382         * Application.cs (Run): Don't use form if we don't have one
16383
16384 2005-01-27  Peter Bartok  <pbartok@novell.com>
16385
16386         * TextBoxBase.cs (get_Lines): Fixed index off by one error
16387
16388 2005-01-27  Peter Bartok  <pbartok@novell.com>
16389
16390         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
16391         * GridItem.cs: Added; Patch by Jonathan S. Chambers
16392         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
16393         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
16394         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
16395         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
16396         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16397         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16398         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16399         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16400         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16401         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16402
16403 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16404
16405         * Combobox.cs:
16406                 - Draw focus on Simple Combobox
16407                 - Fixes drawing issues
16408                 - fixes 71834
16409
16410 2005-01-27  Peter Bartok  <pbartok@novell.com>
16411
16412         * Form.cs:
16413           - Place window in default location, instead of hardcoded 0/0
16414           - Send initial LocationChanged event
16415         * Control.cs:
16416           - UpdateBounds after creation to find out where the WM placed us
16417           - Make sure that if the ParentForm changes location the Form
16418             is notified
16419         * XplatUIX11.cs: XGetGeometry will not return the coords relative
16420             to the root, but to whatever the WM placed around us.
16421             Translate to root coordinates before returning toplevel
16422             coordinates
16423         * XplatUIWin32.cs: Removed debug output
16424         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
16425           flag to GetWindowPos, to allow translation of coordinates on X11
16426
16427 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16428
16429         * ListBox.cs: connect LostFocus Event
16430
16431 2005-01-27  Peter Bartok  <pbartok@novell.com>
16432
16433         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16434           XplatUIX11.cs: Extended the Systray API
16435         * Form.cs: Removed debug output
16436         * Application.cs: Fixed focus assignment, always need to call
16437           XplatUI.Activate() since Form.Activate() has rules that may
16438           prevent activation
16439         * NotifyIcon.cs: Should be complete now
16440         * ToolTip.cs: Worked around possible timer bug
16441
16442 2005-01-27  Jackson Harper  <jackson@ximian.com>
16443
16444         * TabControl.cs:
16445         - Only invalidate the effected tabs when the
16446         selected index changes. This reduces drawing and gets rid of some
16447         flicker.
16448         - Only refresh if the tabs need to be shifted, otherwise only
16449         invalidate the slider button.
16450         - On windows the tabs are not filled to right if the slider is
16451         visible.
16452         
16453 2005-01-27  Jackson Harper  <jackson@ximian.com>
16454
16455         * TabControl.cs: Only refresh on mouseup if we are showing the
16456         slider. Also only invalidate the button whose state has changed.
16457
16458 2005-01-26  Peter Bartok  <pbartok@novell.com>
16459
16460         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
16461         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
16462           and SystrayRemove() methods
16463         * XplatUIOSX.cs: Stubbed Systray methods
16464         * XplatUIX11.cs:
16465           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
16466             methods
16467           - Fixed broken XChangeProperty calls (marshalling messed up things)
16468         * X11Structs.cs: Added enums and structs required for Size hinting
16469         * NotifyIcon.cs: Added & implemented
16470
16471 2005-01-26  Jackson Harper  <jackson@ximian.com>
16472
16473         * TabControl.cs: Space vertically layed out tabs properly.
16474
16475 2005-01-26  Peter Bartok  <pbartok@novell.com>
16476
16477         * Form.cs (CreateClientParams): Always set the location to 0,0
16478           since we're a child window.
16479
16480         * Control.cs (SetVisibleCore): Always explicitly setting the location
16481           of a toplevel window, apparently X11 doesn't like to move windows
16482           while they're not mapped.
16483
16484 2005-01-26  Jackson Harper  <jackson@ximian.com>
16485
16486         * TabControl.cs: Implement FillToRight size mode with vertically
16487         rendered tabs.
16488
16489 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16490
16491         * ControlPaint.cs, ThemeWin32Classic.cs
16492                 - Fixes DrawFocusRectangle
16493
16494 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16495
16496         * MenuAPI.cs:
16497                 - MenuBar tracking only starts when item is first clicked
16498                 - Fixes menu hidding for multiple subitems
16499                 - Unselect item in MenuBar when item Executed
16500                 - Fixes bug 71495
16501
16502 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
16503
16504         * ListControl.cs:
16505                 - IsInputKey for ListBox
16506         * ListBox.cs:
16507                 - Focus item
16508                 - Shift and Control item selection
16509                 - Implement SelectionMode.MultiExtended
16510                 - Fixes RightToLeft
16511         * ComboBox.cs:
16512                 - IsInputKey implemented
16513                 - Do not generate OnTextChangedEdit on internal txt changes
16514                 
16515 2005-01-23  Peter Bartok  <pbartok@novell.com>
16516
16517         * AccessibleObject.cs: Partially implemented Select()
16518         * MonthCalendar.cs: Added missing attributes and events
16519         * Form.cs: Fixed CreateParams behaviour, now controls derived from
16520           form can properly override CreateParams.
16521         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16522           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
16523           Control performs Invalidate & Update
16524         * NativeWindow (CreateHandle): Added special handling for Form
16525           and Form.FormParent classes to allow overriding of From.CreateParams
16526         * Control.cs:
16527           - ControlNativeWindow: Renamed 'control' variable to more intuitive
16528             name 'owner'
16529           - ControlNativeWindow: Added Owner property
16530           - Removed usage of Refresh() on property changes, changed into
16531             Invalidate(), we need to wait until the queue is processed for
16532             updates, direct calls might cause problems if not all vars for
16533             Paint are initialized
16534           - Added call to UpdateStyles() when creating the window, to set any
16535             styles that CreateWindow might have ignored.
16536           - Added support for Form CreateParent overrides to UpdateStyles()
16537         * MessageBox.cs: Removed no longer needed FormParent override stuff,
16538           CreateParams are now properly overridable
16539         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
16540           CreateParams are now properly overridable
16541
16542 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
16543
16544         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
16545         OnTextBoxChanged.
16546
16547         Capture LostFocus and OnTextBoxChanged.  The later introduces a
16548         recursive invocation that I have not figured out yet.
16549
16550         Reset the timer when not using (it was accumulating).
16551
16552
16553         (OnTextBoxChanged): Set UserEdit to true here to track whether the
16554         user has made changes that require validation.
16555
16556         Reset changing to avoid loops.
16557
16558 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
16559
16560         * NumericUpDown.cs: Display value at startup.
16561
16562         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
16563         ValidateEditText.
16564
16565         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
16566         filled in.  Added some basic parsing of text.
16567
16568         Still missing the OnXXX method overrides, and figuring out the
16569         events that must be emitted.
16570
16571         * UpDownBase.cs: Handle UserEdit on the Text property.
16572         
16573 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
16574
16575         * ComboBox.cs:
16576           - Fixes IntegralHeight
16577           - ToString method
16578
16579 2005-01-21  Jackson Harper  <jackson@ximian.com>
16580
16581         * TabControl.cs: Set the SelectedIndex property when SelectedTab
16582         is set so that the page visibility is updated and the tabs are
16583         sized correctly.
16584
16585 2005-01-21  Jackson Harper  <jackson@ximian.com>
16586
16587         * TabControl.cs: Use cliping rectangle for blitting. Give the
16588         theme the clipping rect so we can do clipping while
16589         drawing. Remove some debug code.
16590
16591 2005-01-21  Jackson Harper  <jackson@ximian.com>
16592
16593         * TabPage.cs: Add a new method so tab pages can force the tab
16594         control to recalculate the tab page sizes.
16595         * TabControl.cs: UpdateOwner needs to make the tab control recalc
16596         sizes.
16597
16598 2005-01-20  Jackson Harper  <jackson@ximian.com>
16599
16600         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
16601
16602 2005-01-20  Jackson Harper  <jackson@ximian.com>
16603
16604         * TreeView.cs: Set the bounds for nodes properly. They were
16605         getting screwed up when checkboxes were not enabled, but images
16606         were.
16607
16608 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
16609
16610         * ListBox.cs:
16611                 - Owner draw support
16612                 - Fixes
16613                 
16614 2005-01-20  Jackson Harper  <jackson@ximian.com>
16615
16616         * XplatUIStructs.cs: More misc keys
16617         * X11Keyboard.cs: Ignore some control keys.
16618
16619 2005-01-20  Jackson Harper  <jackson@ximian.com>
16620
16621         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
16622         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
16623
16624 2005-01-19  Peter Bartok  <pbartok@novell.com>
16625
16626         * Control.cs: Un-selecting the control when it is loosing focus
16627
16628 2005-01-19  Jackson Harper  <jackson@ximian.com>
16629
16630         * TreeView.cs: Hook up to the text controls leave event so we can
16631         end editing when the users clicks outside the text box.
16632         
16633 2005-01-19  Jackson Harper  <jackson@ximian.com>
16634
16635         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
16636         get set in the conversion array.
16637
16638 2005-01-19  Peter Bartok  <pbartok@novell.com>
16639
16640         * Application.cs (ModalRun): Added a call to CreateControl to ensure
16641           focus is properly set
16642         * Button.cs:
16643           - Added missing attributes
16644           - removed styles, those are already set in the base class
16645         * ButtonBase.cs:
16646           - Added missing attributes
16647           - Added clip window styles
16648         * CheckBox.cs: Added missing attributes
16649         * CommonDialog.cs:
16650           - FormParentWindow.CreateParams: Added required clip styles
16651         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
16652           also filters modifier keys
16653         * MessageBox.cs:
16654           - Added assignment of Accept and Cancel button to enable Enter
16655             and Esc keys in MessageBox dialogs
16656           - FormParentWindow.CreateParams: Added required clip styles
16657         * RadioButton.cs: Added missing attributes
16658         * TextControl.cs: No longer draws selection if control does not
16659           have focus
16660         * TextBoxBase.cs:
16661           - Now draws simple rectangle around test area to make it obvious
16662             there's a control. This is a hack until we properly support borders
16663           - A few simple fixes to support selections better, now erases selected
16664             text when typing, and resets selection when using movement keys
16665
16666 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16667
16668         * UpDownBase.cs: Added some new properties.
16669
16670         * DomainUpDown.cs: Implement a lot to get my test working.
16671
16672 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16673
16674         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
16675
16676 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16677
16678         * OSXStructs (WindowAttributes): Fixed csc complaints
16679
16680 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16681
16682         * XplayUIOSX.cs:
16683           OSXStructs.cs: Initial refactor to move enums and consts into
16684           OSXStructs and use them in the driver for greater readability.
16685
16686 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16687
16688         * XplatUIOSX.cs: Initial support for Standard Cursors.
16689         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
16690
16691 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
16692
16693         * ComboBox.cs: ability to change style when the ctrl is already
16694         created, missing methods and events, bug fixes, signature fixes
16695
16696 2005-01-19  Peter Bartok  <pbartok@novell.com>
16697
16698         * Cursors.cs (ctor): Added ctor to fix signature
16699
16700 2005-01-18  Peter Bartok  <pbartok@novell.com>
16701
16702         * Button.cs: Implemented DoubleClick event
16703         * ButtonBase.cs:
16704           - Fixed keyboard handling to behave like MS, where the press of
16705             Spacebar is equivalent to a mousedown, and the key release is
16706             equivalent to mouseup. Now a spacebar push will give the same
16707             visual feedback like a mouse click.
16708           - Added missing attributes
16709           - Added ImeModeChanged event
16710           - Added support for generating DoubleClick event for derived classes
16711         * CheckBox.cs:
16712           - Implemented DoubleClick event
16713           - Added missing attributes
16714         * CommonDialog.cs: Added missing attribute
16715         * ContextMenu.cs: Added missing attributes
16716         * RadioButton.cs:
16717           - AutoChecked buttons do not allow to be unselected when clicked
16718             (otherwise we might end up with no selected buttons in a group)
16719           - Added missing attributes
16720           - Implemented DoubleClickEvent
16721         * ThreadExceptionDialog.cs: Enabled TextBox code
16722
16723 2005-01-18  Peter Bartok  <pbartok@novell.com>
16724
16725         * Form.cs: Removed debug output
16726         * Button.cs: Added support for DoubleClick method
16727
16728 2005-01-18  Peter Bartok  <pbartok@novell.com>
16729
16730         * Form.cs:
16731           - Added method to parent window that allows triggering size
16732             calculations when a menu is added/removed
16733           - set_Menu: Cleaned up mess from early days of Form and Control,
16734             now properly triggers a recalc when a menu is added/removed
16735           - Added case to select form itself as focused form if no child
16736             controls exist
16737           - Added PerformLayout call when showing dialog, to ensure properly
16738             placed controls
16739         * Control.cs:
16740           - Select(): Made internal so Form can access it
16741           - Focus(): Only call Xplat layer if required (avoids loop), and sets
16742             status
16743         * Application.cs (Run): Removed hack and calls PerformLayout instead
16744           to trigger calculation when Form becomes visible
16745
16746 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
16747
16748         * ComboBox.cs: fixes for ownerdraw
16749
16750 2005-01-18  Peter Bartok  <pbartok@novell.com>
16751
16752         * TextControl.cs:
16753           - Sentinel is no longer static, each Document gets it's own, this
16754             avoids locking or alternatively overwrite problems when more
16755             than one text control is used simultaneously.
16756           - Switched to use Hilight and HilightText brushes for text selection
16757
16758         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
16759
16760 2005-01-18  Peter Bartok  <pbartok@novell.com>
16761
16762         * Control.cs:
16763           - Hooked up the following events:
16764                 o ControlAdded
16765                 o ControlRemoved
16766                 o HandleDestroyed
16767                 o ImeModeChanged
16768                 o ParentChanged
16769                 o TabStopChanged
16770                 o Invalidated
16771                 o SystemColorsChanged
16772                 o ParentFontChanged
16773                 o Move
16774           - Removed debug output
16775           - Added a call to the current theme's ResetDefaults when a color change
16776             is detected
16777         * Form.cs: Now setting the proper ImeMode
16778         * Theme.cs: Defined a method to force recreation of cached resources
16779           and rereading of system defaults (ResetDefaults())
16780         * ThemeWin32Classic.cs: Added ResetDefaults() stub
16781
16782 2005-01-17  Peter Bartok  <pbartok@novell.com>
16783
16784         * Control.cs: Added missing attributes
16785
16786 2005-01-17  Jackson Harper  <jackson@ximian.com>
16787
16788         * TreeNode.cs: Implement editing. Add missing properties selected
16789         and visible.
16790         * TreeView.cs: Implement node editing. Also some fixes to use
16791         Invalidate (invalid area) instead of Refresh when selecting.
16792
16793 2005-01-17  Peter Bartok  <pbartok@novell.com>
16794
16795         * Control.cs:
16796           - Implemented InvokeGotFocus() method
16797           - Implemented InvokeLostFocus() method
16798           - Implemented InvokePaint() method
16799           - Implemented InvokePaintBackground() method
16800           - Implemented InvokeClick() method
16801           - Implemented FindForm() method
16802           - Implemented RectangleToClient() method
16803           - Implemented ClientToRectangle() method
16804           - Implemented ResetBackColor() method
16805           - Implemented ResetCursor() method
16806           - Implemented ResetFont() method
16807           - Implemented ResteForeColor() method
16808           - Implemented ResetImeMode() method
16809           - Implemented ResetLeftToRight() method
16810           - Implemented ResetText() method
16811           - Implemented Scale() methods
16812           - Implemented ScaleCore() method
16813           - Implemented Update() method
16814           - Removed unused variables
16815           - Stubbed AccessibilityNotifyClients and
16816             ControlAccessibleObject.NotifyClients() methods (dunno what to do
16817             with those yet)
16818           - Now setting proper default for RightToLeft property
16819           - Fixed bug in SetClientSizeCore that would cause windows to get
16820             really big
16821           - Now sending Click/DoubleClick events
16822           - Now selecting controls when left mouse button is clicked on
16823             selectable control
16824         * AccessibleEvents.cs: Added
16825         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
16826         * XplatUIOSX.cs: Stubbed UpdateWindow() method
16827         * XplatUIWin32.cs: Implemented UpdateWindow() method
16828         * XplatUIX11.cs: Implemented UpdateWindow() method
16829         * Form.cs: Removed stray semicolon causing CS0162 warning
16830         * ThemeWin32Classic.cs: Fixed unused variable warnings
16831         * ScrollableControl.cs: Now calls base method for ScaleCore
16832         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
16833           style to avoid interference with internal click handler (which is
16834           different than standard Control click handling)
16835         * RadioButton.cs:
16836           - Now unchecks all sibling radio buttons when control is
16837             selected (Fixes #68756)
16838           - Removed internal tabstop variable, using the one inherited from
16839             Control
16840
16841 2005-01-17  Jackson Harper  <jackson@ximian.com>
16842
16843         * NavigateEventArgs.cs: Fix base type.
16844         * LinkLabel.cs: Sig fix
16845         
16846 2005-01-17  Jackson Harper  <jackson@ximian.com>
16847
16848         * TreeView.cs: Only invalidate the effected nodes bounds when
16849         selecting nodes.
16850
16851 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16852
16853         * XplatUIWin32.cs: fixes Win32 marshaling
16854         * XplatUIX11.cs: fixes method signature
16855
16856 2005-01-17  Peter Bartok  <pbartok@novell.com>
16857
16858         * XplatUIX11.cs: Clean up resources when we no longer need them
16859
16860 2005-01-17  Peter Bartok  <pbartok@novell.com>
16861
16862         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
16863           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
16864           and DestroyCursor() methods.
16865         * Cursor.cs: Partially implemented, now supports standard cursors;
16866           still contains some debug code
16867         * Cursors.cs: Implemented class
16868         * Control.cs:
16869           - WndProc(): Added handling of WM_SETCURSOR message, setting the
16870             appropriate cursor
16871           - Implemented Cursor property
16872           - Replaced break; with return; more straightforwar and possibly
16873             faster
16874           - Now properly setting the result for WM_HELP
16875         * X11Structs.cs: Added CursorFontShape enum
16876         * XplatUIStructs.cs:
16877           - Added StdCursor enum (to support DefineStdCursor() method)
16878           - Added HitTest enum (to support sending WM_SETCURSOR message)
16879         * XplatUIX11.cs:
16880           - Now sends the WM_SETCURSOR message
16881           - Implemented new cursor methods
16882         * XplatUIOSX.cs: Stubbed new cursor methods
16883         * XplatUIWin32.cs:
16884           - Implemented new cursor methods
16885           - Added GetSystemMetrics function and associated enumeration
16886
16887 2005-01-15  Peter Bartok  <pbartok@novell.com>
16888
16889         * Control.cs:
16890           - WndProc(): Now handles EnableNotifyMessage
16891           - SelectNextControl(): Fixed bug where if no child or sibling
16892             controls exist we looped endlessly
16893
16894 2005-01-14  Jackson Harper  <jackson@ximian.com>
16895
16896         * TreeView.cs: Recalculate the tab pages when a new one is added
16897         so that the proper bounding rects are created.
16898
16899 2005-01-14  Jackson Harper  <jackson@ximian.com>
16900
16901         * TreeView.cs: Draw a gray box instead of a grip in the lower
16902         right hand corner when there are both horizontal and vertical
16903         scroll bars.
16904
16905 2005-01-14  Jackson Harper  <jackson@ximian.com>
16906
16907         * Control.cs: When erasing backgrounds use FromHwnd instead of
16908         FromHdc when there is a NULL wparam. This occurs on the X driver.
16909         * XplatUIX11.cs: Set the wparam to NULL.
16910
16911 2005-01-13  Jackson Harper  <jackson@ximian.com>
16912
16913         * PictureBox.cs: Implement missing methods (except ToString, need
16914         to test that on windows) and events. When visibility is changed we
16915         need to redraw the image because the buffers are killed. When size
16916         is changed refresh if the sizemode needs it.
16917
16918 2005-01-13  Peter Bartok  <pbartok@novell.com>
16919
16920         * Control.cs (SelectNextControl): Was using wrong method to select
16921           a control
16922
16923 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16924
16925         * ComboBox.cs: fixes dropstyle
16926
16927 2005-01-13  Peter Bartok  <pbartok@novell.com>
16928
16929         * Form.cs:
16930           - Implemented Select() override
16931           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
16932           - Now sets keyboard focus on startup
16933         * Control.cs (SelectNextControl): Now properly handles directed=true
16934         * TextBoxBase.cs:
16935           - WndProc: Now passes tab key on to base if AcceptTabChar=false
16936           - Added (really bad) focus rectangle (mostly for testing)
16937         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
16938           to enforce redraw on focus changes
16939         * ContainerControl.cs:
16940           - Fixed detection of Shift-Tab key presses
16941           - Fixed traversal with arrow keys
16942         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
16943           gonna keep this or if it's complete yet
16944         
16945 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16946
16947         * ComboBox.cs: missing properties, fixes
16948
16949 2005-01-13  Peter Bartok  <pbartok@novell.com>
16950
16951         * Panel.cs (ctor): Setting Selectable window style to off
16952         * Splitter.cs (ctor): Setting Selectable window style to off
16953         * GroupBox.cs (ctor): Setting Selectable window style to off
16954         * Label.cs (ctor): Setting Selectable window style to off
16955
16956 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
16957
16958         * UpDownBase.cs (InitTimer): If the timer has been already
16959         created, enable it.
16960
16961         Use a TextBox instead of a Label.
16962
16963 2005-01-12  Jackson Harper  <jackson@ximian.com>
16964
16965         * TreeView.cs: Refresh the tree after sorting the nodes. Always
16966         draw the connecting node lines (when ShowLines is true).
16967         * TreeNode.cs: The nodes index can now be updated. This is used
16968         when a node collection is sorted.
16969         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
16970         insert or an existing unsorted node collection can be sorted.
16971         
16972 2005-01-12  Peter Bartok  <pbartok@novell.com>
16973
16974         * ContainerControl.cs: Implemented ProcessDialogKeys()
16975
16976 2005-01-12  Peter Bartok  <pbartok@novell.com>
16977
16978         * Control.cs:
16979           - Implemented SelectNextControl() method
16980           - Several focus related bug fixes
16981           - Fixed Docking calculations to match MS documentation and
16982             behaviour
16983
16984 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
16985
16986         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
16987         bug fixes
16988
16989 2005-01-12  Peter Bartok  <pbartok@novell.com>
16990
16991         * Control.cs:
16992           - Fixed broken Contains() method
16993           - Implemented GetNextControl() method. Finally. This is the pre-
16994             requisite for focus handling.
16995
16996 2005-01-12  Peter Bartok  <pbartok@novell.com>
16997
16998         * OSXStrucs.cs: Added
16999
17000 2005-01-12  Peter Bartok  <pbartok@novell.com>
17001
17002         * XplatUIWin32.cs:
17003           - Removed PeekMessageFlags
17004           - Implemented SetWindowStyle() method
17005         * XplatUIStructs.cs: Added PeekMessageFlags
17006         * X11Structs: Added missing border_width field to XWindowChanges struct
17007         * XplatUIX11.cs:
17008           - PeekMessage: Now throws exception if flags which are not yet
17009             supported are passed
17010           - Implemented SetWindowStyle() method
17011           - Fixed SetZOrder to handle AfterHwnd properly
17012         * XplatUI.cs: Added SetWindowStyle() method
17013         * XplatUIDriver.cs: Added SetWindowStyle() abstract
17014         * Control.cs:
17015           - Implemented UpdateStyles() method
17016           - Implemented UpdateZOrder() method
17017         * XplatUIOSX.cs: Added SetWindowStyle() stub
17018
17019 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
17020
17021         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
17022         button mouse).
17023
17024
17025 2005-01-11  Jackson Harper  <jackson@ximian.com>
17026
17027         * TreeView.cs: Still need to draw lines to siblings even if out of
17028         the current node is out of the clip.
17029
17030 2005-01-11  Jackson Harper  <jackson@ximian.com>
17031
17032         * TreeView.cs: When setting the hbar/vbar/grip position use
17033         SetBounds so that perform layout is only called once. Also suspend
17034         and resume layout so layout is only done once for all controls.
17035         - Removed some debug fluff
17036         * SizeGrip.cs: Call base implmentation in overriding methods.
17037         - When visibility is changed the drawing buffers are killed so we
17038         need to redraw.
17039
17040 2005-01-11  Jackson Harper  <jackson@ximian.com>
17041
17042         * TreeView.cs: Calculate the open node count while drawing. This
17043         saves us an entire tree traversal for every paint operation. Use
17044         a member var for the open node count so less vars are passed around.
17045
17046 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
17047
17048         * MonthCalendar.cs:
17049         - fixed selection to use mousemove, not mouse polling on timer
17050         * ThemeWin32Classic.cs
17051         - removed redundant unused variable "no_more_content"
17052         
17053 2005-01-11  Peter Bartok  <pbartok@novell.com>
17054
17055         * XplatUIX11.cs (DoEvents): Needs to return when no more events
17056           are pending, so it now calls PeekMessage instead of GetMessage;
17057           implemented a incomplete version of PeekMessage
17058         
17059 2005-01-11  Peter Bartok  <pbartok@novell.com>
17060
17061         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
17062           I18n issues
17063         * TextBoxBase.cs: Added sending of TextChanged event
17064
17065 2005-01-10  Jackson Harper  <jackson@ximian.com>
17066
17067         * TreeView.cs: Try not to draw outside the clipping rectangle on
17068         each node element.
17069
17070 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
17071
17072         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
17073
17074 2005-01-10  Jackson Harper  <jackson@ximian.com>
17075
17076         * TreeView.cs:
17077         - Implement fast scrolling. Now only the newly
17078         exposed nodes are drawn and the old image is moved using the
17079         XplatUI::ScrollWindow method.
17080         - Factor in height of nodes when calculating whether or not the
17081         node is in the clipping rect.
17082
17083 2005-01-10  Jackson Harper  <jackson@ximian.com>
17084
17085         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
17086
17087 2005-01-10  Peter Bartok  <pbartok@novell.com>
17088
17089         * Application.cs: Added temporary hack to resolve all our resize
17090           required issues on startup. This will get fixed properly at
17091           some point in the future
17092
17093 2005-01-10  Jackson Harper  <jackson@ximian.com>
17094
17095         * SizeGrip.cs: New internal class that is used as a sizing
17096         grip control...hence the name.
17097
17098 2005-01-10  Peter Bartok  <pbartok@novell.com>
17099
17100         * Control.cs: Implemented proper TabIndex handling, now assigning
17101           a tabindex when a control is added to a container
17102         * GroupBox.cs (ctor): Now sets the Container style bit, required
17103           for Control.GetNextControl()
17104
17105 2005-01-09  Jackson Harper  <jackson@ximian.com>
17106
17107         * TextBoxBase.cs: Clear window when scrolling (fixes build).
17108
17109 2005-01-09  Peter Bartok <pbartok@novell.com>
17110
17111         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
17112           XplatUIX11.cs: Added ability to control ScrollWindow expose and
17113           an overload for ScrollWindow to allow only scrolling a rectangle
17114
17115 2005-01-09  Peter Bartok <pbartok@novell.com>
17116
17117         * Form.cs:
17118           - Implemented SetDesktopBounds method
17119           - Implemented SetDesktopLocation method
17120
17121 2005-01-08  Jackson Harper  <jackson@ximian.com>
17122
17123         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
17124         the node count has changed, this removes to VScroll::Refresh calls
17125         when drawing.
17126
17127 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
17128
17129         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
17130
17131 2005-01-07  Jackson Harper  <jackson@ximian.com>
17132
17133         * TreeNode.cs: Just update the single node when it is
17134         checked. Don't refresh after toggling, the Expand/Collapse already
17135         handles this.
17136         * TreeView.cs: Respect clipping a little more when drawing. Try
17137         not to redraw things that don't need to be redrawn. Just hide the
17138         scrollbars when they are no longer needed instead of removing
17139         them, so they don't have to be created again and again.
17140         
17141 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
17142
17143         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
17144         coordinates to window space to place the caret properly, FIXED.
17145         Implement GetWindowState & SetWindowState
17146
17147 2005-01-06  Peter Bartok <pbartok@novell.com>
17148
17149         * Form.cs:
17150           - Implemented ClientSize property
17151           - Implemented DesktopBounds property
17152           - Implemented DesktopLocation property
17153           - Implemented IsRestrictedWindow property
17154           - Implemented Size property
17155           - Implemented TopLevel property
17156           - Implemented FormWindowState property
17157         * Control.cs:
17158           - Implemented GetTopLevel() method
17159           - Implemented SetTopLevel() method
17160         * X11Structs.cs (Atom):
17161           - Added AnyPropertyType definition
17162           - Added MapState definiton and updated XWindowAttribute struct
17163         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
17164         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
17165         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
17166         * XplatUIWin32.cs:
17167           - Implemented GetWindowState() and SetWindowState() methods
17168           - Fixed Win32GetWindowLong return type
17169         * XplatUIX11.cs:
17170           - Introduced central function for sending NET_WM messages
17171           - Implemented GetWindowState() and SetWindowState() methods
17172         * TextBoxBase.cs (set_Lines):
17173           - Now uses Foreground color for text added via Text property (Duh!)
17174           - Added code to remember programmatically requested size (fixes
17175             behaviour when Multiline is set after Size)
17176           - Added AutoSize logic
17177
17178 2005-01-06  Jackson Harper  <jackson@ximian.com>
17179
17180         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
17181
17182 2005-01-06  Jackson Harper  <jackson@ximian.com>
17183
17184         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
17185         set to less then 0.
17186
17187 2005-01-06  Jackson Harper  <jackson@ximian.com>
17188
17189         * ScrollableControl.cs: Lazy init the scrollbars.
17190         
17191 2005-01-06  Jackson Harper  <jackson@ximian.com>
17192
17193         * Theme.cs: Speed up getting pens and solid brushes, by using
17194         their ARGB as a hash instead of tostring and not calling Contains.
17195
17196 2005-01-06  Peter Bartok <pbartok@novell.com>
17197
17198         * Form.cs:
17199           - Implemented OnActivated and OnDeactivate event trigger
17200           - Implemented Activate() method
17201           - Fixed ShowDialog() to activate the form that was active before
17202             the dialog was shown
17203         * XplatUIX11.cs:
17204           - Added global active_window var that tracks the currently active
17205             X11 window
17206           - Now always grabs Property changes from the root window to always
17207             catch changes on the active window property
17208           - Added code to PropertyNotify handler to send Active/Inactive
17209             messages when state changes. This puts X11 and Win32 en par on
17210             WM_ACTIVATE notifications (except for double notifications when
17211             the user clicks away from our modal window to another one of our
17212             windows)
17213
17214 2005-01-05  Jackson Harper  <jackson@ximian.com>
17215
17216         * ImageList.cs: Implment ctor
17217
17218 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17219
17220         * XplatUIOSX.cs: Implement Activate/SetTopmost
17221
17222 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17223
17224         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
17225
17226 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17227
17228         * XplatUIOSX.cs: Implement GetActive/SetFocus.
17229
17230 2005-01-05  Peter Bartok <pbartok@novell.com>
17231
17232         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
17233           XplatUIOSX.cs: Added GetActive method to return the currently
17234           active window for the application (or null, if none is active)
17235         * Form.cs:
17236           - Implemented ActiveForm
17237           - Commented out owner assignment for modal dialogs (causes problems
17238             on Win32, since the owner will be disabled)
17239           - Reworked some Active/Focus handling (still incomplete)
17240         * CommonDialog.cs: Commented out owner assignment for modal dialogs
17241           (causes problems on Win32, since the owner will be disabled)
17242         * IWin32Window: Added ComVisible attribute
17243
17244 2005-01-05  Peter Bartok <pbartok@novell.com>
17245
17246         * ToolTip.cs (WndProc): Enable setting focus now that we have the
17247           required XplatUI functions.
17248
17249 2005-01-05  Peter Bartok <pbartok@novell.com>
17250
17251         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
17252           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
17253           to implement focus and activation handling; still incomplete and
17254           with debug output
17255
17256 2005-01-04  Peter Bartok <pbartok@novell.com>
17257
17258         * TextBoxBase.cs: Changed access level for Document property to
17259           match switch to internal for TextControl
17260
17261 2005-01-04  Peter Bartok <pbartok@novell.com>
17262
17263         * AccessibleObject: Added ComVisible attribute
17264
17265 2005-01-04  Jackson Harper  <jackson@ximian.com>
17266
17267         * X11Keyboard.cs: Remove unneeded var.
17268
17269 2005-01-04  Jackson Harper  <jackson@ximian.com>
17270
17271         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
17272         but PAINT.
17273         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
17274         ClientMessage. This makes apps exit cleanly (more often).
17275         
17276 2005-01-04  Jackson Harper  <jackson@ximian.com>
17277
17278         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
17279         handling focus, return correct colors and fonts,
17280         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
17281         handle selection, horizontal scrolling, and mouse interaction.
17282
17283 2005-01-04  Peter Bartok <pbartok@novell.com>
17284
17285         * ICommandExecutor.cs: Added
17286         * IDataGridColumnStyleEditingNotificationService.cs: Added
17287         * IFeatureSupport.cs: Added
17288         * IFileReaderService.cs: Added
17289         * IDataObject.cs: Added ComVisible attribute
17290         * AmbientProperties.cs: Added
17291         * BaseCollection.cs: Added missing attributes
17292         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
17293         * BaseCollection.cs: Added missing attributes
17294         * Binding.cs: Added TypeConverter attribute
17295         * BindingContext.cs: Added DefaultEvent attribute
17296         * BindingsCollection.cs: Added DefaultEvent attribute
17297         * Button.cs: Added DefaultValue attribute
17298         * DragEventArgs.cs: Added ComVisible attribute
17299         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
17300         * KeyEventArgs.cs: Added ComVisible attribute
17301         * KeyPressEventArgs.cs: Added ComVisible attribute
17302         * MouseEventArgs.cs: Added ComVisible attribute
17303         * NavigateEventArgs.cs: Added
17304         * NavigateEventHandler.cs: Added
17305         * FeatureSupport.cs: Added
17306         * OSFeature.cs: Added
17307         * Theme.cs: Added abstract Version property to support OSFeature
17308         * ThemeWin32Classic.cs: Added Version property to
17309           support OSFeature.Themes
17310         * ProgressBar.cs: Removed OnPaintBackground override, not required since
17311           the proper styles to avoid background drawing are set, also doesn't
17312           match MS signature
17313         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
17314         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
17315         * ScrollEventArgs.cs: Added ComVisible attribute
17316         * SplitterEventArgs.cs: Added ComVisible attribute
17317         * AccessibleSelection.cs: Added Flags attribute
17318         * Appearance.cs: Added ComVisible attribute
17319         * Border3DSide.cs: Added ComVisible attribute
17320         * Border3DStyle.cs: Added ComVisible attribute
17321         * BorderStyle.cs: Added ComVisible attribute
17322         * DragAction.cs: Added ComVisible attribute
17323         * ErrorBlinkStyle.cs: Added
17324         * ScrollEventType.cs: Added ComVisible attribute
17325         * AnchorStyles.cs: Added Editor attribute
17326         * DockStyle.cs: Added Editor attribute
17327         * HorizontalAlignment.cs: Added ComVisible attribute
17328         * HelpEventArgs.cs: Added ComVisible attribute
17329         * PaintEventArgs.cs: Added IDisposable
17330
17331 2005-01-04  Peter Bartok <pbartok@novell.com>
17332
17333         * TextControl.cs: Switched Line, LineTag and Document classes to
17334           internal
17335
17336 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17337
17338         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
17339         Simple mode, fixes, IntegralHeight, etc.
17340
17341 2005-01-04  Peter Bartok <pbartok@novell.com>
17342
17343         * TextBoxBase.cs: Using proper font variable now
17344
17345 2005-01-04  Peter Bartok <pbartok@novell.com>
17346
17347         * Form.cs (ShowDialog): Set parent to owner, if provided
17348         * GroupBox.cs: Removed unused vars
17349         * TextControl.cs:
17350           - Added GetHashCode() for Document and LineTag classes
17351           - Removed unused variables
17352           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
17353             to allow translation between continuous char position and line/pos
17354         * CheckBox.cs: Removed vars that are provided by base class
17355         * RadioButton.cs: Removed vars that are provided by base class, added
17356           new keyword where required
17357         * LinkLabel.cs: Added new keyword where required
17358         * Control.cs (WndProc): Removed unused variable
17359         * TextBoxBase.cs:
17360           - Finished SelectionLength property
17361           - Implemented SelectionStart property
17362           - Implemented Text property
17363           - Removed unused vars
17364         * MessageBox.cs: Added new keyword where required
17365         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
17366           WndProc signature
17367         * MenuAPI.cs: Added new keyword where required
17368         * ButtonBase.cs: Removed vars that are provided by base class, added
17369           new keyword where required
17370         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
17371           argument to double, to allow compiling with csc 2.0 (Atsushi ran
17372           into this)
17373         * Application.cs (Run): Now triggers the ThreadExit event
17374         * CommonDialog.cs: Added new keyword where required; now properly sets
17375           parent (owner) for dialog
17376         * XplatUIX11.cs: Commented out unused vars
17377         * StatusBar.cs: Fixed signature for Text property
17378         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
17379
17380 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17381
17382         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
17383         TrackBar.cs, MonthCalendar.cs: remove unused vars
17384
17385 2005-01-03  Jackson Harper  <jackson@ximian.com>
17386
17387         * ThemeWin32Classic.cs:
17388         * X11Keyboard.cs: Remove unused vars.
17389
17390 2005-01-03  Peter Bartok  <pbartok@novell.com>
17391
17392         * TextBox.cs:
17393           - set_Text: Tied into TextControl
17394           - set_TextAlignment: Tied into TextControl
17395         * TextControl.cs:
17396           - Added alignment properties and implemented alignment handling
17397             and drawing (still has a bug, not generating proper expose events)
17398           - Added new Line() constructor to allow passing the line alignment
17399           - Fixed selection setting, properly handling end<start now
17400           - Added aligment considerations to RecalculateDocument()
17401         * TextBoxBase.cs:
17402           - Now properly enforces control height for single line controls
17403           - Added support for CharacterCasing
17404           - Added IsInputKey override
17405           - Fixed Keys.Enter logic
17406           - Added SetBoundsCore override
17407           - Fixed mouse selection handling
17408
17409 2005-01-03  Jackson Harper  <jackson@ximian.com>
17410
17411         * TreeView.cs:
17412           - Collapse and uncheck all nodes when CheckBoxes is disabled.
17413           - Checkboxes are always aligned to the bottom of the node,
17414           regardless of item height.
17415           - Use the node bounds to draw the text so we can center it when
17416           the item height is greater then the font height.
17417           - Node::Bounds are only the text part of the node.
17418         * TreeNode.cs: New method to combine collapsing and unchecking all
17419           nodes recursively.
17420
17421 2005-01-02  Jackson Harper  <jackson@ximian.com>
17422
17423         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
17424         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
17425         tree when a check is changed. TODO: Only refresh the checked node.
17426
17427 2004-12-30  Jackson Harper  <jackson@ximian.com>
17428
17429         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
17430         * TreeNode.cs: When collapsing make sure to never collapse the
17431         root node.
17432
17433 2004-12-29  Jackson Harper  <jackson@ximian.com>
17434
17435         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
17436         
17437 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
17438
17439         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
17440
17441 2004-12-28  Peter Bartok  <pbartok@novell.com>
17442
17443         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
17444           not yet assigned
17445
17446 2004-12-28  Peter Bartok  <pbartok@novell.com>
17447
17448         * Control.cs (WndProc): Added WM_HELP handler, now generates
17449           HelpRequested event
17450         * Form.cs: Added HelpButton property and required support code
17451         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
17452
17453 2004-12-28  Peter Bartok  <pbartok@novell.com>
17454
17455         * CommonDialog.cs:
17456           - Made DialogForm.owner variable internal
17457           - Added check to ensure owner form is set before setting
17458             owner properties in CreateParams
17459
17460 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
17461
17462         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
17463           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
17464           GetCursorPos.  Fix major visibility issues.  Rework the windowing
17465           system to support borderless/titleless windows (implements menus).
17466           Fix GetWindowPos.  Implement initial background color support for
17467           views.
17468
17469 2004-12-28  Peter Bartok  <pbartok@novell.com>
17470
17471         * Form.cs (get_CreateParams): Make sure we have an owner before using
17472           the owner variable. Implement proper default if no owner exists
17473
17474 2004-12-28  Peter Bartok  <pbartok@novell.com>
17475
17476         * In preparation for making Managed.Windows.Forms the default build target
17477           for System.Windows.Forms, the following stubbed files were added.
17478           Dialogs are currently being implemented by contributors and are only
17479           short-term place holders.
17480         * ColorDialog.cs: Initial check-in (minmal stub)
17481         * DataGrid.cs: Initial check-in (minimal stub)
17482         * DataGridLineStyle.cs: Initial check-in (minimal stub)
17483         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
17484         * DataGridTableStyle.cs: Initial check-in (minimal stub)
17485         * FontDialog.cs: Initial check-in (minimal stub)
17486         * FileDialog.cs: Initial check-in (minimal stub)
17487         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
17488         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
17489         * OpenFileDialog: Initial check-in (minimal stub)
17490         * IComponentEditorPageSite.cs: Initial check-in
17491         * Splitter.cs: Initial check-in (for Jackson)
17492         * SplitterEventArgs.cs: Initial check-in (for Jackson)
17493         * SplitterEventHandler.cs: Initial check-in (for Jackson)
17494         * TextBox.cs: Initial check-in; still needs some wiring to
17495           TextControl backend
17496         * Form.cs: Implemented ControlBox property
17497         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
17498         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
17499         * TextControl.cs: Added selection functionality; added todo header
17500         * TextBoxBase.cs:
17501           - Implemented Lines property
17502           - Implemented TextHeight property
17503           - Implemented SelectedText property
17504           - Implemented SelectionLength property
17505           - Implemented SelectAll method
17506           - Implemented ToString method
17507           - Removed and cleaned up some debug code
17508           - Implemented (still buggy) mouse text selection
17509
17510 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
17511
17512         * ComboBox.cs: Complete DropDownList implementation, fixes.
17513
17514 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
17515
17516         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
17517         * ComboBoxStyle.cs: ComboBoxStyle enum
17518         * ComboBox.cs: Initial work on ComboBox control
17519
17520 2004-12-21  Peter Bartok  <pbartok@novell.com>
17521
17522         * Control.cs (ctor, CreateParams): Moved setting of is_visible
17523           forward so that anything that creates a window gets the default,
17524           also no longer uses Visible property in CreateParams to avoid
17525           walking up the parent chain and possibly get the wrong visible
17526           status. Fixed IsVisible to no longer walk up to the parent.
17527
17528 2004-12-21  Peter Bartok  <pbartok@novell.com>
17529
17530         * Form.cs (ShowDialog): Unset modality for the proper window
17531  
17532 2004-12-20  Peter Bartok  <pbartok@novell.com>
17533
17534         * CommonDialog.cs: Initial check-in
17535
17536 2004-12-20  Peter Bartok  <pbartok@novell.com>
17537
17538         * Control.cs (Visible): Now uses the parent window instead of the
17539           client area window for the property
17540
17541         * Form.cs
17542           - ShowDialog(): Now uses the proper window for modality
17543           - The default visibility state for the form parent is now false. This
17544             will prevent the user from seeing all the changes to the form and
17545             its controls before the application hits Application.Run()
17546           - Removed some stale commented out code
17547
17548         * NativeWindow.cs:
17549           - Added FindWindow() method to have a method to check for existence
17550             of a window handle
17551           - Added ability to override default exception handling (for example
17552             when debugging with VS.Net; to do this the ExternalExceptionHandler
17553             define must be set
17554           - Removed some useless debug output
17555
17556         * XplatUIX11.cs:
17557           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
17558             not working as expected
17559           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
17560             property to allow switching back to the modal window if focus is
17561             given to another one of our windows (Application Modal)
17562           - Now only sets override_redirect if we create a window
17563             without WS_CAPTION
17564           - Moved EventMask selection before mapping of newly created window
17565             so we can catch the map event as well
17566           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
17567           - Added various Atom related DllImports
17568           - Implemented Exit() method
17569           - .ctor() : No longer shows window if WS_VISIBLE is not defined
17570             in the CreateParams
17571
17572         * MessageBox.cs: Now properly deals with the FormParent window by
17573           providing an override the FormParent CreateParams property to
17574           set as POPUP instead of OVERLAPPED window.
17575
17576 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17577
17578         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
17579         Minor code cleanup.
17580
17581 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17582         
17583         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
17584
17585 2004-12-18  Peter Bartok  <pbartok@novell.com>
17586
17587         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
17588           implementing SetModal() method
17589
17590 2004-12-18  Peter Bartok  <pbartok@novell.com>
17591
17592         * X11Structs.cs (XGCValues): Fixed type of function element
17593         * XplatUI.cs: Added ScrollWindow() method
17594         * XplatUIDriver.cs: Added ScrollWindow() abstract
17595         * XplatUIWin32.cs: Implemented ScrollWindow() method
17596         * XplatUIX11.cs: Implemented ScrollWindow() method
17597         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
17598
17599 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17600
17601         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
17602         Some more keyboard support (INCOMPLETE)
17603
17604 2004-12-17  Peter Bartok  <pbartok@novell.com>
17605
17606         * TextControl.cs:
17607         - Added color attribute to line tags.
17608         - Added color argument to all functions dealing with tags
17609         - Added color argument support to various functions
17610         - Fixed miss-calculation of baseline/shift in certain circumstances
17611
17612         * TextBoxBase.cs: Added new color option to test code
17613
17614 2004-12-17  Jackson Harper  <jackson@ximian.com>
17615
17616         * TreeNode.cs:
17617         * MonthCalendar.cs: Signature fixes
17618
17619 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17620
17621         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
17622         keyboard event moved it.  Create a new graphics context for each paint resolves this
17623
17624 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17625
17626         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
17627         Make caret exist and go blink blink.  Initial keyboard support.
17628         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
17629         works.
17630
17631 2004-12-17  Jackson Harper  <jackson@ximian.com>
17632
17633         * XplatUIStructs.cs: Updated set of virtual keycodes.
17634         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
17635
17636 2004-12-17  Jackson Harper  <jackson@ximian.com>
17637
17638         * XplatUIX11.cs: Prune old keyboard code.
17639
17640 2004-12-17  Jackson Harper  <jackson@ximian.com>
17641
17642         * XplatUIX11.cs: When generating mouse wparams get the modifier
17643         keys from the ModifierKeys property.
17644
17645 2004-12-17  Jackson Harper  <jackson@ximian.com>
17646
17647         * X11Keyboard.cs: Send up/down input when generating
17648         messages. Remove some unused vars.
17649
17650 2004-12-17  Jackson Harper  <jackson@ximian.com>
17651
17652         * TabControl.cs:
17653         * TreeView.cs: get rid of warnings.
17654
17655 2004-12-17  Jackson Harper  <jackson@ximian.com>
17656
17657         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
17658
17659 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
17660
17661         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
17662           CheckedListBox.cs: Implementation
17663
17664 2004-12-17  Peter Bartok  <pbartok@novell.com>
17665
17666         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
17667
17668 2004-12-16  Peter Bartok  <pbartok@novell.com>
17669
17670         * TextControl.cs:
17671           - InsertCharAtCaret(): Fixed start pos fixup
17672           - CaretLine_get: No longer derives the line from the tag, the tag
17673             could be stale if lines in the document have been added or deleted
17674           - RebalanceAfterDelete(): Fixed bug in balancing code
17675           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
17676           - Line.Streamline(): Now can also elminate leading empty tags
17677           - DumpTree(): Added a few more tests and prevented exception on
17678             uninitialized data
17679           - Added Debug section for Combining lines
17680           - Delete(): Now copies all remaining properties of a line
17681           
17682         * TextBoxBase.cs:
17683           - Left mousebutton now sets the caret (and middle button still acts
17684             as formatting tester, which must go away soon)
17685           - Added Debug section for Deleting/Combining lines
17686           - Fixed calculations for UpdateView after Combining lines
17687
17688 2004-12-16  Peter Bartok  <pbartok@novell.com>
17689
17690         * TextControl.cs: Now properly aligns text on a baseline, using the
17691           new XplatUI.GetFontMetrics() method. Simplified several calculations
17692         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
17693           defined
17694
17695 2004-12-16  Peter Bartok  <pbartok@novell.com>
17696
17697         * XplatUI.cs: Added GetFontMetrics() method
17698         * XplatUIDriver.cs: Added GetFontMetrics() abstract
17699         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
17700           into libgdiplus, our private GetFontMetrics function
17701         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
17702         * XplatUIWin32.cs: Implemented GetFontMetrics() method
17703
17704 2004-12-16  Jackson Harper  <jackson@ximain.com>
17705
17706         * XplatUIStruct.cs: Add enum for dead keys
17707         * X11Keyboard.cs: Map and unmap dead keys.
17708
17709 2004-12-16  Jackson Harper  <jackson@ximian.com>
17710
17711         * X11Keyboard.cs: Detect and use the num lock mask.
17712
17713 2004-12-16  Peter Bartok  <pbartok@novell.com>
17714
17715         * Control.cs (CreateGraphics): Added check to make sure the
17716           handle of the window exists before calling Graphics.FromHwnd()
17717
17718 2004-12-16  Peter Bartok  <pbartok@novell.com>
17719
17720         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
17721           contains a lot of code that's not supposed to be there for the
17722           real thing, but required for developing/testing the textbox
17723           backend.
17724
17725 2004-12-16  Peter Bartok  <pbartok@novell.com>
17726
17727         * TextControl.cs:
17728         - Fixed Streamline method
17729         - Added FindTag method to Line
17730         - Added DumpTree method for debugging
17731         - Added DecrementLines() method for deleting lines
17732         - Fixed UpdateView to update the cursor to end-of-line on single-line
17733           updates
17734         - Added PositionCaret() method
17735         - Fixed MoveCaret(LineDown) to move into the last line, too
17736         - Added InsertChar overload
17737         - Fixed InsertChar tag offset calculations
17738         - Added DeleteChar() method
17739         - Added Combine() method for folding lines
17740         - Fixed Delete() method, no longer allocates wasted Line object and
17741           now copies all properties when swapping nodes
17742         - Delete() method now updates document line counter
17743
17744 2004-12-15  Jackson Harper  <jackson@ximian.com>
17745
17746         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
17747         * X11Keyboard.cs: Expose the currently selected modifier keys
17748         through a property.
17749
17750 2004-12-15  Peter Bartok  <pbartok@novell.com>
17751
17752         * TextControl.cs: Initial check-in. Still incomplete
17753
17754 2004-12-15  Jackson Harper  <jackson@ximian.com>
17755
17756         * TreeNode.cs:
17757         * TreeView.cs: Fix build on csc (second time today ;-))
17758
17759 2004-12-15  Jackson Harper  <jackson@ximian.com>
17760
17761         * TreeView.cs: Store the treenodes plus/minus box bounds when it
17762         is calculated and use this for click testing.
17763         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
17764
17765 2004-12-15  Jackson Harper  <jackson@ximian.com>
17766
17767         * TreeView.cs: Pass the nodes image index to the image list when
17768         drawing that image.
17769
17770 2004-12-15  Jackson Harper  <jackson@ximian.com>
17771
17772         * X11Keyboard.cs: Set messages hwnd.
17773         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
17774         post_message calls.
17775
17776 2004-12-15  Jackson Harper  <jackson@ximian.com>
17777
17778         * X11Keyboard.cs: Fix to compile with csc.
17779         
17780 2004-12-15  Jackson Harper  <jackson@ximian.com>
17781
17782         * X11Structs.cs: Add key mask values
17783         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
17784         * X11Keyboard.cs: New file - Extrapolates and interpolates key
17785         down/up foo into WM_CHAR foo
17786         * KeyboardLayouts.cs: Common keyboard layouts
17787         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
17788         post messages into the main queue.
17789
17790 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
17791
17792         * Button.cs: implement ProcessMnemonic
17793         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
17794           brushes everytime
17795         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
17796         * ButtonBase.cs: Show HotkeyPrefix (not the &)
17797
17798 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
17799         
17800         * MonthCalendar.cs: Implemented click-hold for next/previous month
17801           and date selection
17802           
17803 2004-12-11  Peter Bartok  <pbartok@novell.com>
17804
17805         * X11Structs.cs:
17806           - Added XKeyboardState (moved from XplatUIX11.cs)
17807           - Added XCreateGC related enums and structures
17808           - Added GXFunction for XSetFunction
17809
17810         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
17811
17812         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
17813           CaretVisible() calls
17814
17815         * ToolTip.cs: Added code to prevent stealing focus from app windows
17816
17817         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
17818           DestroyCaret, SetCaretPos and CaretVisible)
17819
17820         * XplatUIX11.cs:
17821           - Added implementation for caret functions
17822           - Moved hover variables into a struct, to make it a bit easier
17823             on the eyes and to debug
17824           - Removed XKeyboardState (moved to XplatUIX11.cs)
17825           - Moved Keyboard properties into the properties region
17826
17827         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
17828           call to get a graphics context for our control
17829
17830         * XplatUIOSX.cs: Added empty overrides for the new caret functions
17831
17832         * TreeView.cs: Fixed bug. No matter what color was set it would always
17833           return SystemColors.Window
17834
17835         * XplatUIWin32.cs: Implemented caret overrides
17836
17837 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
17838
17839         * ListBox.cs: fire events, implement missing methods and properties,
17840         sorting.
17841
17842 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
17843
17844         * MonthCalendar.cs: invalidation bug fixing
17845         * ThemeWin32Classic.cs: paint fixing
17846
17847 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
17848
17849         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
17850         prepare the CGContextRef there now.
17851
17852 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
17853
17854         * MonthCalendar.cs:
17855           - optimisationL only invalidate areas that have changed
17856         * ThemeWin32Classic.cs:
17857           - only paint parts that intersect with clip_area
17858
17859 2004-12-09  Peter Bartok  <pbartok@novell.com>
17860
17861         * Application.cs: Undid changes from r37004 which cause problems
17862         on X11
17863
17864 2004-12-09  Ravindra  <rkumar@novell.com>
17865
17866         * ToolBar.cs: Added support for displaying ContextMenu
17867         attached to a button on ToolBar.
17868         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
17869         property.
17870
17871 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17872
17873         * Label.cs: autosize works in text change and removes unnecessary
17874         invalidate
17875
17876 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17877
17878         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17879         remove warnings
17880
17881 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
17882
17883         * XplatUIOSX.cs: Added mouse move/click/grab support
17884         Remove some debugging WriteLines not needed anymore.
17885         Add window resizing/positioning.
17886         Fix visibility on reparenting.
17887
17888 2004-12-08  Peter Bartok  <pbartok@novell.com>
17889
17890         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
17891
17892 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
17893
17894         * XplatUIOSX.cs: Initial checkin
17895         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
17896
17897 2004-12-03  Ravindra <rkumar@novell.com>
17898
17899         * ListView.cs: Added some keybindings and fixed scrolling.
17900         ScrollBars listen to ValueChanged event instead of Scroll
17901         Event. This would let us take care of all changes being
17902         done in the scrollbars' values programmatically or manually.
17903         * ListView.cs (CanMultiselect): Added a check for shift key.
17904         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
17905         * ListViewItem.cs (Clone): Fixed. We need to make a copy
17906         of ListViewSubItemCollection as well.
17907
17908 2004-12-06  Peter Bartok <pbartok@novell.com>
17909
17910         * Control.cs (Parent): Added check and exception to prevent
17911         circular parenting
17912
17913 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
17914
17915         * ListBox.cs: implemented clipping, selection single and multiple,
17916         bug fixing
17917
17918 2004-12-03  Ravindra <rkumar@novell.com>
17919
17920         * ListView.cs (ListView_KeyDown):
17921         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
17922         when CTRL key is pressed.
17923         * ListViewItem.cs (Selected): Fixed setting the property.
17924
17925 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17926
17927         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
17928
17929         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
17930         MinimizeBox, ShowInTaskbar, TopMost properties.
17931
17932         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
17933         will be implemented).
17934
17935 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17936
17937         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
17938
17939         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
17940         tests.
17941         
17942         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
17943         
17944         * TreeView.cs: BackColor is Colors.Window.
17945
17946 2004-12-01  Jackson Harper  <jackson@ximian.com>
17947
17948         * TreeView.cs: When resizing the tree if the user is making it
17949         smaller we don't get expose events, so we need to handle adding
17950         the horizontal scrollbar in the size changed handler as well as
17951         the expose handler.
17952
17953 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
17954
17955         * DrawItemState.cs: fixes wrong enum values
17956
17957 2004-12-01  Jackson Harper  <jackson@ximian.com>
17958
17959         * TreeView.cs: Resize the hbar as well as the vbar on resize.
17960
17961 2004-12-01  Jackson Harper  <jackson@ximian.com>
17962
17963         * NodeLabelEditEventArgs.cs:
17964         * NodeLabelEditEventHandler.cs:
17965         * OpenTreeNodeEnumerator.cs:
17966         * TreeNode.cs:
17967         * TreeNodeCollection.cs:
17968         * TreeView.cs:
17969         * TreeViewAction.cs:
17970         * TreeViewCancelEventArgs.cs:
17971         * TreeViewCancelEventHandler.cs:
17972         * TreeViewEventArgs.cs:
17973         * TreeViewEventHandler.cs: Initial implementation.
17974
17975 2004-12-01  Ravindra <rkumar@novell.com>
17976
17977         * ListView.cs (CalculateListView): Fixed scrolling related
17978         calculations. Also, removed some debug statements from other
17979         places.
17980         * ListViewItem.cs: Changed access to 'selected' instance variable
17981         from private to internal.
17982         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
17983
17984 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
17985
17986         * ThemeWin32Classic.cs: remove cache of brush and pens for
17987         specific controls and use the global system, fixes scrollbutton
17988         bugs (for small sizes, disabled, etc)
17989         
17990         * ScrollBar.cs: does not show the thumb for very small controls
17991         (as MS) and allow smaller buttons that the regular size
17992
17993 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
17994
17995         * UpDownBase.cs: Add abstract methods for the interface.
17996         Add new virtual methods (need to be hooked up to TextEntry when it
17997         exists).
17998         Add override methods for most features.
17999         Computes the size, forces the height of the text entry.
18000
18001         * NumericUpDown.cs: Put here the current testing code.
18002
18003         * Set eol-style property on all files that do not have mixed line
18004         endings, to minimize the future problems.  There are still a few
18005         files with mixed endings, and someone should choose whether they
18006         want to move it or not.
18007
18008 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
18009
18010         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
18011         System.Colors
18012         
18013 2004-11-30  Ravindra <rkumar@novell.com>
18014
18015         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
18016         drawing and replaced use of SystemColors by theme colors.
18017         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
18018         * ListView.cs (ListViewItemCollection.Add): Throw exception when
18019         same ListViewItem is being added more than once.
18020
18021 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
18022
18023         * MonthCalendar.cs:
18024           - ControlStyles love to make the control not flicker
18025           
18026 2004-11-30  Peter Bartok  <pbartok@novell.com>
18027
18028         * CharacterCasing.cs: Added
18029
18030 2004-11-29  Peter Bartok  <pbartok@novell.com>
18031
18032         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18033           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
18034           I am removing these files as they conflict with already completed
18035           work. While it is fantastic to get contributions to MWF, I
18036           respectfully ask that everyone please coordinate their contributions
18037           through mono-winforms-list or #mono-winforms at this time. We're
18038           explicitly avoiding stubbing and don't want controls that don't have
18039           their basic functionality implemented in svn. Please also see
18040           http://www.mono-project.com/contributing/winforms.html
18041
18042
18043 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
18044
18045         * Application.cs (ModalRun): Don't hang after exit.
18046
18047         * Theme.cs: New TreeViewDefaultSize property.
18048
18049         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
18050         with less hardcoded SystemColors constant.
18051         Implemented TreeViewDefaultSize.
18052
18053         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
18054         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
18055
18056
18057 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
18058
18059         * MonthCalendar.cs:
18060           - Fix NextMonthDate and PrevMonthDate click moving calendar
18061
18062 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18063
18064         * MonthCalendar.cs:
18065           - Fix usage of ScrollChange Property when scrolling months
18066
18067 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
18068
18069         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
18070          - Fixes menu destroying
18071          - Support adding and removing items on already created menus
18072
18073 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
18074
18075         * MonthCalendar.cs:
18076           - Re-worked all bolded dates handling to match win32
18077         * ThemeWin32Classic.cs:
18078           - Fixed rendering with bolded dates
18079
18080 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
18081
18082         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
18083         - Horizontal scroolbar
18084         - Multicolumn
18085         - Fixes
18086
18087
18088 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
18089
18090         * MonthCalendar.cs:
18091           - Fix Usage of MaxSelectionCount from SelectionRange
18092           - Fixed Shift + Cursor Selection
18093           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
18094           - Fixed normal cursor selection to be compat with win32
18095           - Fixed Shift + Mouse Click selection
18096
18097 2004-11-24  Peter Bartok <pbartok@novell.com>
18098
18099         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
18100         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
18101         * XplatUIX11.cs:
18102           - CreatedKeyBoardMsg now updates keystate with Alt key
18103           - Added workaround for timer crash to CheckTimers, Jackson will
18104             develop a proper fix and check in later
18105           - Implemented DispatchMessage
18106           - Removed calling the native window proc from GetMessage (call
18107             now moved to DispatchMessage)
18108
18109         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
18110           the keydata (Fixes bug #69831)
18111
18112         * XplatUIWin32.cs:
18113           - (DispatchMessage): Switched to return IntPtr
18114           - Added DllImport for SetFocus
18115
18116 2004-11-24  Ravindra <rkumar@novell.com>
18117
18118         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
18119         background drawing.
18120         * ListViewItem.cs: Fixed various properties, calculations
18121         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
18122         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
18123         and some internal properties. Fixed MouseDown handler and Paint
18124         method.
18125
18126 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18127
18128         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
18129
18130 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18131
18132         * ContainerControl.cs: correct accidental check in of local changes
18133
18134 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18135
18136         * ThemeWin32Classic.cs:
18137                 - Fixed Drawing Last month in grid (sometimes not showing)
18138         * MonthCalendar.cs:
18139                 - Fixed title width calculation bug (makeing title small)
18140
18141 2004-11-23  Peter Bartok <pbartok@novell.com>
18142
18143         * XplatUIX11.cs:
18144           - Added generation of WM_MOUSEHOVER event
18145           - Added missing assignment of async_method atom
18146           - Fixed WM_ERASEBKGND; now only redraws the exposed area
18147
18148 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18149
18150         * ThemeWin32Classic.cs:
18151                 - Fixed Drawing of today circle when showtodaycircle not set
18152                 - fixed drawing of first and last month in the grid (gay dates)
18153         * MonthCalendar.cs:
18154                 - Fixed Drawing of today circle
18155                 - Fixed drawing of grady dates
18156                 - Fixed HitTest for today link when ShowToday set to false
18157                 - Fixed DefaultSize to obey ShowToday
18158
18159 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18160
18161         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
18162         * System.Windows.Forms/Theme.cs
18163         * MonthCalendar.cs: added for MonthCalendar
18164         * SelectionRange.cs: added for MonthCalendar
18165         * Day.cs: added for MonthCalendar: added for MonthCalendar
18166         * DateRangeEventArgs.cs: added for MonthCalendar
18167         * DateRangeEventHandler.cs: added for MonthCalendar
18168
18169 2004-11-22  Ravindra <rkumar@novell.com>
18170
18171         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
18172         property.
18173
18174 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
18175
18176         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
18177         event handler.
18178         
18179         * NumericUpDown.cs: Added new implementation.
18180         * UpDownBase.cs: Added new implementation.
18181
18182         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
18183         implementations.
18184         
18185         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
18186         implementations.
18187
18188         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
18189         methods.
18190
18191 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
18192
18193         * Timer.cs  (Dispose): Should call the base dispose when
18194         overriding.
18195
18196 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18197
18198         * ScrollBar.cs: updates thumb position when max, min or increment
18199         is changed
18200
18201 2004-11-21  Ravindra <rkumar@novell.com>
18202
18203         * ListView.cs: Implemented item selection, activation and
18204         column header style. Fixed properties to do a redraw, if
18205         required. Added support for MouseHover, DoubleClick, KeyDown
18206         and KeyUp event handling and some minor fixes.
18207         * ListViewItem.cs: Fixed constructor.
18208         * ThemeWin32Classic.cs: Improved drawing for ListView.
18209
18210 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18211
18212         * ThemeWin32Classic.cs: initial listbox drawing code
18213         * DrawMode.cs: new enumerator
18214         * ListControl.cs: stubbed class
18215         * ListBox.cs: initial implementation
18216         * Theme.cs: new methods definitions
18217         * SelectionMode.cs: new enumerator
18218
18219 2004-11-17  Peter Bartok  <pbartok@novell.com>
18220
18221         * XplatUIWin32.cs: Added double-click events to the class style
18222         * Control.cs (WndProc):
18223           - Added handling of click-count to MouseDown/ MouseUp events.
18224           - Added handling of middle and right mouse buttons
18225           - Removed old debug code
18226
18227 2004-11-17  Jackson Harper  <jackson@ximian.com>
18228
18229         * XplatUIX11.cs: Use the new Mono.Unix namespace.
18230
18231 2004-11-17  Ravindra <rkumar@novell.com>
18232
18233         * ListView.cs: Added event handling for MouseMove/Up/Down.
18234         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
18235         * ThemeWin32Classic.cs: We need to clear the graphics context and
18236         draw column header in a proper state.
18237
18238
18239 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
18240
18241         *  Menu.cs: fixes signature
18242
18243 2004-11-16  Peter Bartok  <pbartok@novell.com>
18244
18245         * XplatUIX11.cs (GetMessage): Implemented generation of
18246           double click mouse messages
18247
18248 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
18249
18250         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
18251         not by menu
18252
18253 2004-11-11  Peter Bartok  <pbartok@novell.com>
18254
18255         * HandleData.cs: Added Visible property
18256         * XplatUIX11.cs (IsVisible): Now uses Visible property from
18257           HandleData
18258         * XplatUIX11.cs: Removed old debug leftovers
18259         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
18260         * Control.cs (WndProc): Removed old debug leftovers,
18261           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
18262           needed WM_SIZE handling
18263
18264 2004-11-11  Jackson Harper  <jackson@ximian.com>
18265
18266         * OwnerDrawPropertyBag.cs:
18267         * TreeViewImageIndexConverter.cs: Initial implementation
18268
18269 2004-11-10  Jackson Harper  <jackson@ximian.com>
18270
18271         * ThemeWin32Classic.cs:
18272         * TabControl.cs: instead of moving tabs by the slider pos just
18273         start drawing at the tab that is offset by the slider. This way
18274         scrolling always moves by exactly one tab.
18275
18276 2004-11-10  Jackson Harper  <jackson@ximian.com>
18277
18278         * TabControl.cs: You can only scroll left when the slider has
18279         already ben moved right.
18280         
18281 2004-11-10  Jackson Harper  <jackson@ximian.com>
18282
18283         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
18284         the clip area.
18285         
18286 2004-11-10  Jackson Harper  <jackson@ximian.com>
18287
18288         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
18289         clip area.
18290         
18291 2004-11-09  Jackson Harper  <jackson@ximian.com>
18292
18293         * TabControl.cs (CalcXPos): New helper method so we can determine
18294         the proper place to start drawing vertical tabs.
18295         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
18296         
18297 2004-11-09  Jackson Harper  <jackson@ximian.com>
18298
18299         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
18300         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
18301         and Bottom, left and right are illegal values for this and
18302         multiline is enabled when the alignment is set to left or right.
18303         (DrawTab): Each alignment block should draw the text itself now
18304         because Left requires special love. Also add rendering for Left
18305         aligned tabs.
18306         
18307 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
18308
18309         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
18310         does not destroy the windows, removes debugging messages
18311
18312 2004-11-09  jba  <jba-mono@optusnet.com.au>
18313
18314         * ThemeWin32Classic.cs
18315         (DrawButtonBase): Fix verticle text rect clipping in windows
18316         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18317         rendering and incorrect text rect clipping
18318         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18319         rendering and incorrect text rect clipping
18320         
18321 2004-11-08  Jackson Harper  <jackson@ximian.com>
18322
18323         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
18324         bottom when they are bottom aligned so the bottoms of the tabs get
18325         displayed.
18326         * TabControl.cs (DropRow): Move rows up instead of down when the
18327         tab control is bottom aligned.
18328
18329 2004-11-08 13:59  pbartok
18330
18331         * XplatUIX11.cs:
18332           - Added handling for various window styles
18333           - Added handling for popup windows
18334           - Added SetTopmost handling
18335
18336 2004-11-08 13:55  pbartok
18337
18338         * XplatUIWin32.cs:
18339           - Added argument to SetTopmost method
18340           - Fixed broken ClientToScreen function
18341
18342 2004-11-08 13:53  pbartok
18343
18344         * XplatUIStructs.cs:
18345           - Added missing WS_EX styles
18346
18347 2004-11-08 13:53  pbartok
18348
18349         * XplatUI.cs, XplatUIDriver.cs:
18350           - Added argument to SetTopmost
18351
18352 2004-11-08 13:52  pbartok
18353
18354         * X11Structs.cs:
18355           - Added XSetWindowAttributes structure
18356           - Improved XWindowAttributes structure
18357           - Added SetWindowValuemask enum
18358           - Added window creation arguments enum
18359           - Added gravity enum
18360           - Added Motif hints structure
18361           - Added various Motif flags and enums
18362           - Added PropertyMode enum for property functions
18363
18364 2004-11-08 13:50  pbartok
18365
18366         * Form.cs:
18367           - Fixed arguments for updated SetTopmost method
18368
18369 2004-11-08 13:49  pbartok
18370
18371         * ToolTip.cs:
18372           - Fixed arguments for updated SetTopmost function
18373           - Fixed usage of PointToClient
18374
18375 2004-11-08 13:44  pbartok
18376
18377         * MenuAPI.cs:
18378           - Added Clipping of children and siblings
18379
18380 2004-11-08 13:41  pbartok
18381
18382         * MainMenu.cs:
18383           - Removed SetMenuBarWindow call. We do this in Form.cs
18384
18385 2004-11-08 13:40  jackson
18386
18387         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
18388           scrolling jimmi in the correct location with bottom aligned tabs
18389
18390 2004-11-08 13:36  pbartok
18391
18392         * ContainerControl.cs:
18393           - Implemented BindingContext
18394           - Implemented ParentForm
18395
18396 2004-11-08 12:46  jackson
18397
18398         * TabControl.cs: Put bottom rendered tabs in the right location
18399
18400 2004-11-08 07:15  jordi
18401
18402         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
18403           removes dead code
18404
18405 2004-11-05 17:30  jackson
18406
18407         * TabControl.cs: When selected tabs are expanded make sure they
18408           don't go beyond the edges of the tab control
18409
18410 2004-11-05 14:57  jackson
18411
18412         * TabControl.cs: Reset show_slider so if the control is resized to
18413           a size where it is no longer needed it's not displayed anymore
18414
18415 2004-11-05 13:16  jackson
18416
18417         * TabControl.cs: Make tab pages non visible when added to the
18418           control
18419
18420 2004-11-05 12:42  jackson
18421
18422         * TabControl.cs: Implement SizeMode.FillToRight
18423
18424 2004-11-05 12:16  jackson
18425
18426         * Control.cs: Do not call CreateHandle if the handle is already
18427           created
18428
18429 2004-11-05 11:46  jackson
18430
18431         * TabControl.cs: Remove superflous call to CalcTabRows
18432
18433 2004-11-05 09:07  jackson
18434
18435         * XplatUIX11.cs: Update for Mono.Posix changes
18436
18437 2004-11-05 07:00  ravindra
18438
18439         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
18440           scrolling.
18441
18442 2004-11-04 22:47  jba
18443
18444         * ThemeWin32Classic.cs:
18445           - Fix Button rendering for FlatStyle = Flat or Popup
18446           - Fix RadioButton and CheckBox rendering when Appearance = Button
18447             (normal and flatstyle).
18448           - Correct outer rectangle color when drawing focus rectangle
18449           - Adjust button bounds to be 1 px smaller when focused
18450           - Make button not draw sunken 3d border when pushed (windows compat)
18451           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
18452           - Offset the text in RadioButton and Checkbox when being rendered as
18453           a button.
18454           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
18455           radiobuttons
18456           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
18457           - Fixed disabled text rendering for normally rendered radiobuttons
18458
18459 2004-11-04 10:26  jackson
18460
18461         * TabControl.cs: Recalculate tab rows when resizing
18462
18463 2004-11-04 07:47  jordi
18464
18465         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
18466           collection completion, drawing issues, missing features
18467
18468 2004-11-04 05:03  ravindra
18469
18470         * ScrollBar.cs:
18471                 - We need to recalculate the Thumb area when
18472                 LargeChange/maximum/minimum values are changed.
18473           - We set the 'pos' in UpdatePos() method to minimum, if it's less
18474                 than minimum. This is required to handle the case if large_change is
18475                 more than max, and use LargeChange property instead of large_change
18476                 variable.
18477           - We return max+1 when large_change is more than max, like MS does.
18478
18479 2004-11-04 04:29  ravindra
18480
18481         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
18482                 - Changed default value signatures (prefixed all with ListView).
18483                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
18484                 ListView.
18485           - Fixed calculations for ListViewItem and implemented Clone()
18486           method.
18487
18488 2004-11-04 04:26  ravindra
18489
18490         * Theme.cs, ThemeWin32Classic.cs:
18491                 - Changed default ListView values signatures (prefixed all with
18492                 ListView).
18493           - Fixed default size values for VScrollBar and HScrollBar.
18494                 - Fixed DrawListViewItem method.
18495
18496 2004-11-04 04:05  ravindra
18497
18498         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
18499
18500 2004-11-04 04:04  ravindra
18501
18502         * ImageList.cs: Implemented the missing overload for Draw method.
18503
18504 2004-11-03 19:29  jackson
18505
18506         * TabControl.cs: Handle dropping rows on selection properly
18507
18508 2004-11-03 11:59  jackson
18509
18510         * TabControl.cs: remove debug code
18511
18512 2004-11-03 11:52  jackson
18513
18514         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
18515           the scrolly widgerywoo
18516
18517 2004-11-02 13:52  jackson
18518
18519         * TabControl.cs: Resize the tab pages and tabs when the tab control
18520           is resized
18521
18522 2004-11-02 13:40  jackson
18523
18524         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
18525           selected tab to the bottom
18526
18527 2004-11-02 13:39  jackson
18528
18529         * TabPage.cs: Store the tab pages row
18530
18531 2004-11-02 12:33  jordi
18532
18533         * MenuItem.cs: fixes handle creation
18534
18535 2004-11-02 11:42  jackson
18536
18537         * TabControl.cs: signature fix
18538
18539 2004-11-02 08:56  jackson
18540
18541         * TabControl.cs: Calculate whether the tab is on an edge properly.
18542           Remove top secret debugging code
18543
18544 2004-11-01 19:57  jackson
18545
18546         * TabControl.cs: Add click handling, and proper sizing
18547
18548 2004-11-01 19:47  jackson
18549
18550         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
18551           tab controls
18552
18553 2004-11-01 19:39  jackson
18554
18555         * TabPage.cs: add internal property to store the bounds of a tab
18556           page
18557
18558 2004-10-30 04:23  ravindra
18559
18560         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
18561           values.
18562
18563 2004-10-30 04:21  ravindra
18564
18565         * ListView.cs, ListViewItem.cs: Added support for scrolling and
18566           fixed calculations.
18567
18568 2004-10-30 03:06  pbartok
18569
18570         * XplatUIX11.cs:
18571           - Removed extension of DllImported libs
18572
18573 2004-10-29 09:55  jordi
18574
18575         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
18576           navigation, itemcollection completion, menu fixes
18577
18578 2004-10-27 22:58  pbartok
18579
18580         * XplatUIX11.cs:
18581           - Now throws a nice error message when no X display could be opened
18582
18583 2004-10-26 13:51  jordi
18584
18585         * ListView.cs: removes warning
18586
18587 2004-10-26 03:55  ravindra
18588
18589         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
18590           ThemeWin32Classic.cs: Some formatting for my last checkins.
18591
18592 2004-10-26 03:36  ravindra
18593
18594         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
18595           control and default values.
18596
18597 2004-10-26 03:35  ravindra
18598
18599         * Theme.cs: Added some default values for ListView control.
18600
18601 2004-10-26 03:33  ravindra
18602
18603         * ToolBar.cs: ToolBar should use the user specified button size, if
18604           there is any. Added a size_specified flag for the same.
18605
18606 2004-10-26 03:33  ravindra
18607
18608         * ColumnHeader.cs: Added some internal members and calculations for
18609           ColumnHeader.
18610
18611 2004-10-26 03:32  ravindra
18612
18613         * ListViewItem.cs: Calculations for ListViewItem.
18614
18615 2004-10-26 03:31  ravindra
18616
18617         * ListView.cs: Added some internal members and calculations for
18618           ListView.
18619
18620 2004-10-22 13:31  jordi
18621
18622         * MenuAPI.cs: speedup menus drawing
18623
18624 2004-10-22 13:16  jackson
18625
18626         * XplatUIX11.cs: Make sure to update exposed regions when adding an
18627           expose event
18628
18629 2004-10-22 11:49  jackson
18630
18631         * Control.cs: oops
18632
18633 2004-10-22 11:41  jackson
18634
18635         * Control.cs: Check to see if the window should have its background
18636           repainted by X when drawing.
18637
18638 2004-10-22 11:31  jackson
18639
18640         * XplatUIX11.cs: When invalidating areas only use XClearArea if
18641           clear is true, this way we do not get flicker from X repainting the
18642           background
18643
18644 2004-10-22 11:28  jackson
18645
18646         * XEventQueue.cs: Queue properly
18647
18648 2004-10-21 09:38  jackson
18649
18650         * XEventQueue.cs: Fix access modifier
18651
18652 2004-10-21 09:36  jackson
18653
18654         * XEventQueue.cs: Don't loose messages
18655
18656 2004-10-21 09:22  jackson
18657
18658         * XEventQueue.cs: Don't loose messages
18659
18660 2004-10-20 04:15  jordi
18661
18662         * BootMode.cs: enum need it by SystemInfo
18663
18664 2004-10-19 21:58  pbartok
18665
18666         * XplatUIWin32.cs:
18667           - Small sanity check
18668
18669 2004-10-19 21:56  pbartok
18670
18671         * Form.cs:
18672           - Added private FormParentWindow class which acts as the container
18673             for our form and as the non-client area where menus are drawn
18674           - Added/Moved required tie-ins to Jordi's menus
18675           - Fixed/Implemented the FormStartPosition functionality
18676
18677 2004-10-19 21:52  pbartok
18678
18679         * Control.cs:
18680           - Removed unneeded locals
18681           - Added code to all size and location properties to understand and
18682             deal with the parent container of Form
18683
18684 2004-10-19 21:33  pbartok
18685
18686         * Application.cs:
18687           - Fixed to deal with new Form subclasses for menus
18688
18689 2004-10-19 17:48  jackson
18690
18691         * XEventQueue.cs: commit correct version of file
18692
18693 2004-10-19 16:50  jackson
18694
18695         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
18696
18697 2004-10-19 16:15  jordi
18698
18699         * MenuAPI.cs: MenuBarCalcSize returns the height
18700
18701 2004-10-19 08:31  pbartok
18702
18703         * Control.cs:
18704           - Added missing call to PreProcessMessage before calling OnXXXKey
18705           methods
18706
18707 2004-10-19 00:04  ravindra
18708
18709         * ToolTip.cs: Fixed constructor.
18710
18711 2004-10-18 09:31  jordi
18712
18713         * MenuAPI.cs: menuitems in menubars do not have shortcuts
18714
18715 2004-10-18 09:26  jordi
18716
18717         * MenuItem.cs: fixes MenuItem class signature
18718
18719 2004-10-18 08:56  jordi
18720
18721         * MenuAPI.cs: prevents windows from showing in the taskbar
18722
18723 2004-10-18 00:28  ravindra
18724
18725         * ToolTip.cs: Suppressed a warning message.
18726
18727 2004-10-18 00:27  ravindra
18728
18729         * Control.cs: Default value of visible property must be true.
18730
18731 2004-10-17 23:19  pbartok
18732
18733         * ToolTip.cs:
18734           - Complete implementation
18735
18736 2004-10-17 23:19  pbartok
18737
18738         * XplatUIX11.cs:
18739           - Added EnableWindow method
18740           - Added SetModal stub
18741           - Added generation of WM_ACTIVATE message (still needs testing)
18742           - Added SetTopMost stub
18743           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
18744
18745 2004-10-17 23:17  pbartok
18746
18747         * XplatUIWin32.cs:
18748           - Removed VirtualKeys to XplatUIStructs
18749           - Implemented SetTopMost method
18750           - Implemented EnableWindow method
18751           - Bugfix in ScreenToClient()
18752           - Bugfixes in ClientToScreen()
18753
18754 2004-10-17 22:51  pbartok
18755
18756         * XplatUIStructs.cs:
18757           - Added WS_EX styles to WindowStyles enumeration
18758
18759 2004-10-17 22:50  pbartok
18760
18761         * XplatUI.cs, XplatUIDriver.cs:
18762           - Added method for enabling/disabling windows
18763           - Added method for setting window modality
18764           - Added method for setting topmost window
18765
18766 2004-10-17 22:49  pbartok
18767
18768         * ThemeWin32Classic.cs:
18769           - Added ToolTip drawing code
18770
18771 2004-10-17 22:49  pbartok
18772
18773         * Theme.cs:
18774           - Added ToolTip abstracts
18775
18776 2004-10-17 22:47  pbartok
18777
18778         * Form.cs:
18779           - Fixed Form.ControlCollection to handle owner relations
18780           - Added Owner/OwnedForms handling
18781           - Implemented Z-Ordering for owned forms
18782           - Removed unneeded private overload of ShowDialog
18783           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
18784             so I hope)
18785           - Fixed Close(), had wrong default
18786           - Added firing of OnLoad event
18787           - Added some commented out debug code for Ownership handling
18788
18789 2004-10-17 22:16  pbartok
18790
18791         * Control.cs:
18792           - Fixed/implemented flat list of controls
18793
18794 2004-10-17 22:14  pbartok
18795
18796         * Application.cs:
18797           - Added code to simulate modal dialogs on Win32
18798
18799 2004-10-17 16:11  jordi
18800
18801         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
18802           mouse event
18803
18804 2004-10-17 13:39  jordi
18805
18806         * MenuAPI.cs: menu drawing fixes
18807
18808 2004-10-15 09:10  ravindra
18809
18810         * StructFormat.cs: General Enum.
18811
18812 2004-10-15 09:09  ravindra
18813
18814         * SizeGripStyle.cs: Enum for Form.
18815
18816 2004-10-15 09:08  ravindra
18817
18818         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
18819           in Theme for ListView.
18820
18821 2004-10-15 09:06  ravindra
18822
18823         * ColumnHeader.cs: Flushing some formatting changes.
18824
18825 2004-10-15 09:05  ravindra
18826
18827         * ListViewItem.cs: Implemented GetBounds method and fixed coding
18828           style.
18829
18830 2004-10-15 09:03  ravindra
18831
18832         * ListView.cs: Implemented Paint method and fixed coding style.
18833
18834 2004-10-15 07:34  jordi
18835
18836         * MenuAPI.cs: fix for X11
18837
18838 2004-10-15 07:32  ravindra
18839
18840         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
18841                 - Renamed Paint() method to Draw() for clarity. Also, moved
18842                 DrawImage() to OnPaint().
18843
18844 2004-10-15 07:25  ravindra
18845
18846         * CheckBox.cs, RadioButton.cs:
18847                 - Removed Redraw (), we get it from ButtonBase.
18848                 - Implemented Paint (), to do class specific painting.
18849
18850 2004-10-15 07:16  ravindra
18851
18852         * ButtonBase.cs:
18853                 - Redraw () is not virtual now.
18854                 - Added an internal virtual method Paint (), so that
18855                 derived classes can do their painting on their own.
18856                 - Modified OnPaint () to call Paint ().
18857
18858 2004-10-15 06:43  jordi
18859
18860         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
18861           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
18862
18863 2004-10-15 00:30  ravindra
18864
18865         * MessageBox.cs:
18866                 - MessageBox on windows does not have min/max buttons.
18867                 This change in CreateParams fixes this on Windows. We
18868                 still need to implement this windowstyle behavior in
18869                 our X11 driver.
18870
18871 2004-10-14 05:14  ravindra
18872
18873         * ToolBar.cs:
18874                 - Changed Redraw () to do a Refresh () always.
18875                 - Fixed the MouseMove event handling when mouse is pressed,
18876                 ie drag event handling.
18877                 - Replaced the usage of ToolBarButton.Pressed property to
18878                 ToolBarButton.pressed internal variable.
18879
18880 2004-10-14 05:10  ravindra
18881
18882         * ToolBarButton.cs:
18883                 - Added an internal member 'inside' to handle mouse move
18884                 with mouse pressed ie mouse drag event.
18885                 - Changed 'Pressed' property to return true only when
18886                 'inside' and 'pressed' are both true.
18887                 - Some coding style love.
18888
18889 2004-10-14 00:17  ravindra
18890
18891         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
18892           public method.
18893
18894 2004-10-14 00:15  ravindra
18895
18896         * ButtonBase.cs: Redraw () related improvements.
18897
18898 2004-10-14 00:14  ravindra
18899
18900         * MessageBox.cs: Moved InitFormSize () out of Paint method and
18901           removed unnecessary calls to Button.Show () method.
18902
18903 2004-10-13 17:50  pbartok
18904
18905         * XplatUIX11.cs:
18906           - Formatting fix
18907           - Removed destroying of window until we solve the problem of X
18908             destroying the window before us on shutdown
18909
18910 2004-10-13 16:32  pbartok
18911
18912         * ButtonBase.cs:
18913           - Now Redraws on MouseUp for FlatStyle Flat and Popup
18914
18915 2004-10-13 14:18  pbartok
18916
18917         * XplatUIX11.cs:
18918           - Added code to destroy the X window
18919
18920 2004-10-13 14:18  pbartok
18921
18922         * XplatUIWin32.cs:
18923           - Added code to destroy a window
18924
18925 2004-10-13 14:12  pbartok
18926
18927         * ButtonBase.cs:
18928           - Added the Redraw on Resize that got dropped in the last rev
18929
18930 2004-10-13 09:06  pbartok
18931
18932         * ThemeWin32Classic.cs:
18933           - Path from John BouAntoun:
18934             * Fix check rendering (centre correctly for normal style, offset
18935               correctly for FlatStyle).
18936             * Fix border color usage (use backcolor) for FlatStyle.Popup
18937             * Use checkbox.Capture instead of checkbox.is_pressed when
18938               rendering flatstyle states.
18939
18940 2004-10-12 21:48  pbartok
18941
18942         * ThemeWin32Classic.cs:
18943           - Removed all occurences of SystemColors and replaced them with the
18944             matching theme color
18945
18946 2004-10-12 21:41  pbartok
18947
18948         * ThemeWin32Classic.cs:
18949           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
18950             him using the function for flatstyle drawing
18951           - Changed functions to use the new version of CPDrawBorder3D
18952
18953 2004-10-12 21:15  pbartok
18954
18955         * ControlPaint.cs:
18956           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
18957             match MS documentation. They need to return defined colors if the
18958             passed color matches the configured control color. Thanks to John
18959             BouAntoun for pointing this out.
18960
18961 2004-10-12 20:57  pbartok
18962
18963         * Control.cs:
18964           - Fix from John BouAntoun: Raise ForeColorChanged event when text
18965             color is changed
18966
18967 2004-10-12 20:46  pbartok
18968
18969         * CheckBox.cs:
18970           - Fix from John BouAntoun: Now properly sets the Appearance property
18971
18972 2004-10-12 20:45  pbartok
18973
18974         * ThemeWin32Classic.cs:
18975           - Fixes from John BouAntoun: now handles forecolors and backcolors
18976             for flatstyle rendered controls much better; It also fixes normal
18977             checkbox rendering when pushed or disabled.
18978
18979 2004-10-08 02:50  jordi
18980
18981         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
18982           work
18983
18984 2004-10-07 08:56  jordi
18985
18986         * ThemeWin32Classic.cs: Removes deletion of cached brushes
18987
18988 2004-10-06 03:59  jordi
18989
18990         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
18991           XplatUIWin32.cs: removes warnings from compilation
18992
18993 2004-10-05 12:23  jackson
18994
18995         * RadioButton.cs: Fix ctor
18996
18997 2004-10-05 11:10  pbartok
18998
18999         * MessageBox.cs:
19000           - Partial implementation by Benjamin Dasnois
19001
19002 2004-10-05 10:15  jackson
19003
19004         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
19005           by John BouAntoun
19006
19007 2004-10-05 03:07  ravindra
19008
19009         * ToolBar.cs:
19010                 - Removed a private method, Draw ().
19011                 - Fixed the ButtonDropDown event handling.
19012                 - Fixed MouseMove event handling.
19013
19014 2004-10-05 03:04  ravindra
19015
19016         * ThemeWin32Classic.cs:
19017                 - Added DrawListView method and ListViewDefaultSize property.
19018                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
19019                 - Changed DOS style CRLF to Unix format (dos2unix).
19020
19021 2004-10-05 03:03  ravindra
19022
19023         * Theme.cs:
19024                 - Added DrawListView method and ListViewDefaultSize property.
19025
19026 2004-10-05 02:42  ravindra
19027
19028         * ToolBarButton.cs: Added an internal member dd_pressed to handle
19029           clicks on DropDown arrow.
19030
19031 2004-10-04 22:56  jackson
19032
19033         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
19034           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
19035           Control handle the buffers, derived classes should not have to
19036           CreateBuffers themselves.
19037
19038 2004-10-04 21:20  jackson
19039
19040         * StatusBar.cs: The control handles resizing the buffers now.
19041
19042 2004-10-04 21:18  jackson
19043
19044         * Control.cs: When resizing the buffers should be invalidated. This
19045           should be handled in Control not in derived classes.
19046
19047 2004-10-04 14:45  jackson
19048
19049         * TabPage.cs: oops
19050
19051 2004-10-04 02:14  pbartok
19052
19053         * LeftRightAlignment.cs:
19054           - Initial check-in
19055
19056 2004-10-04 01:09  jordi
19057
19058         * ThemeWin32Classic.cs: fixes right button position causing right
19059           button not showing on horizontal scrollbars
19060
19061 2004-10-02 13:12  pbartok
19062
19063         * XplatUIX11.cs:
19064           - Simplified the Invalidate method by using an X call instead of
19065             generating the expose ourselves
19066           - Added an expose when the window background is changed
19067           - Implemented ClientToScreen method
19068
19069 2004-10-02 13:08  pbartok
19070
19071         * XplatUIWin32.cs:
19072           - Added Win32EnableWindow method (test for implementing modal
19073           dialogs)
19074           - Added ClientToScreen method and imports
19075
19076 2004-10-02 13:07  pbartok
19077
19078         * XplatUI.cs, XplatUIDriver.cs:
19079           - Added ClientToScreen coordinate translation method
19080
19081 2004-10-02 13:06  pbartok
19082
19083         * KeyPressEventArgs.cs:
19084           - Fixed access level for constructor
19085
19086 2004-10-02 13:06  pbartok
19087
19088         * NativeWindow.cs:
19089           - Changed access level for the window_collection hash table
19090
19091 2004-10-02 13:05  pbartok
19092
19093         * Form.cs:
19094           - Added KeyPreview property
19095           - Added Menu property (still incomplete, pending Jordi's menu work)
19096           - Implemented ProcessCmdKey
19097           - Implemented ProcessDialogKey
19098           - Implemented ProcessKeyPreview
19099
19100 2004-10-02 13:02  pbartok
19101
19102         * Control.cs:
19103           - Added private method to get the Control object from the window
19104           handle
19105           - Implemented ContextMenu property
19106           - Implemented PointToScreen
19107           - Implemented PreProcessMessage
19108           - Implemented IsInputChar
19109           - Implemented IsInputKey
19110           - Implemented ProcessCmdKey
19111           - Completed ProcessKeyEventArgs
19112           - Fixed message loop to call the proper chain of functions on key
19113           events
19114           - Implemented ProcessDialogChar
19115           - Implemented ProcessDialogKey
19116           - Implemented ProcessKeyMessage
19117           - Implemented ProcessKeyPreview
19118           - Added RaiseDragEvent stub (MS internal method)
19119           - Added RaiseKeyEvent stub (MS internal method)
19120           - Added RaiseMouseEvent stub (MS Internal method)
19121           - Added RaisePaintEvent stub (MS Internal method)
19122           - Added ResetMouseEventArgs stub (MS Internal method)
19123           - Implemented RtlTranslateAlignment
19124           - Implemented RtlTranslateContent
19125           - Implemented RtlTranslateHorizontal
19126           - Implemented RtlTranslateLeftRight
19127           - Added generation of KeyPress event
19128
19129 2004-10-02 05:57  ravindra
19130
19131         * ListViewItem.cs: Added attributes.
19132
19133 2004-10-02 05:32  ravindra
19134
19135         * ListView.cs: Added attributes.
19136
19137 2004-10-01 11:53  jackson
19138
19139         * Form.cs: Implement the Close method so work on MessageBox can
19140           continue.
19141
19142 2004-09-30 14:06  pbartok
19143
19144         * XplatUIX11.cs:
19145           - Bug fixes
19146
19147 2004-09-30 11:34  jackson
19148
19149         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
19150
19151 2004-09-30 07:26  ravindra
19152
19153         * ListViewItemConverter.cs: Converter for ListViewItem.
19154
19155 2004-09-30 07:26  ravindra
19156
19157         * SortOrder.cs: Enum for ListView control.
19158
19159 2004-09-30 07:25  ravindra
19160
19161         * ColumnHeader.cs: Supporting class for ListView control.
19162
19163 2004-09-30 07:24  ravindra
19164
19165         * ListView.cs, ListViewItem.cs: Initial implementation.
19166
19167 2004-09-30 07:20  ravindra
19168
19169         * ItemActivation.cs: Enum for ListView Control.
19170
19171 2004-09-29 20:29  pbartok
19172
19173         * XplatUIX11.cs:
19174           - Added lookup of pixel value for background color; tries to get a
19175             color 'close' to the requested color, it avoids having to create a
19176             colormap.  Depending on the display this could mean the used color
19177             is slightly off the desired color. Might have to change it to a more
19178             resource intensive colormap approach, but it will work as a
19179           workaround to avoid red screens.
19180
19181 2004-09-29 14:27  jackson
19182
19183         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
19184
19185 2004-09-28 12:44  pbartok
19186
19187         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
19188           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
19189           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
19190           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
19191           TrackBar.cs, VScrollBar.cs:
19192           - Streamlined Theme interfaces:
19193             * Each DrawXXX method for a control now is passed the object for
19194               the control to be drawn in order to allow accessing any state the
19195               theme might require
19196
19197             * ControlPaint methods for the theme now have a CP prefix to avoid
19198               name clashes with the Draw methods for controls
19199
19200             * Every control now retrieves it's DefaultSize from the current
19201             theme
19202
19203 2004-09-28 12:17  jackson
19204
19205         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
19206           drawing
19207
19208 2004-09-24 14:57  jackson
19209
19210         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
19211           Gives us a nice little performance boost.
19212
19213 2004-09-24 12:02  jackson
19214
19215         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
19216           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
19217           Control and supporting classes. Initial checkin
19218
19219 2004-09-23 13:08  jackson
19220
19221         * Form.cs: Temp build fixage
19222
19223 2004-09-23 01:39  ravindra
19224
19225         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
19226           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
19227           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
19228           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
19229           EventHandlers needed by ListView Control.
19230
19231 2004-09-22 14:12  pbartok
19232
19233         * ScrollableControl.cs:
19234           - Implemented DockPadding property
19235           - Implemented AutoScroll property
19236           - Implemented AutoScrollMargin property
19237           - Implemented AutoScrollMinSize property
19238           - Implemented AutoScrollPosition property
19239           - Implemented DisplayRectangle property (still incomplete)
19240           - Implemented CreateParams property
19241           - Implemented HScroll property
19242           - Implemented VScroll property
19243           - Implemented OnVisibleChanged property
19244
19245 2004-09-22 14:09  pbartok
19246
19247         * Form.cs:
19248           - Added Form.ControllCollection class
19249           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
19250             RemoveOwnedForm (still incomplete, missing on-top and common
19251             minimize/maximize behaviour)
19252           - Added StartPosition property (still incomplete, does not use when
19253             creating the form)
19254           - Added ShowDialog() methods (still incomplete, missing forcing the
19255             dialog modal)
19256
19257 2004-09-22 14:05  pbartok
19258
19259         * Application.cs:
19260           - Added message loop for modal dialogs
19261
19262 2004-09-22 14:02  pbartok
19263
19264         * GroupBox.cs:
19265           - Fixed wrong types for events
19266
19267 2004-09-22 14:00  pbartok
19268
19269         * Shortcut.cs, FormWindowState.cs:
19270           - Fixed wrong values
19271
19272 2004-09-22 12:01  jackson
19273
19274         * Control.cs: Text is never null
19275
19276 2004-09-20 22:14  pbartok
19277
19278         * XplatUIWin32.cs:
19279           - Fixed accessibility level for Idle handler
19280
19281 2004-09-20 18:54  jackson
19282
19283         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19284           XplatUIX11.cs: New message loop that uses poll so we don't get a
19285           busy loop
19286
19287 2004-09-17 10:43  pbartok
19288
19289         * ScrollBar.cs:
19290           - Fixed behaviour of arrow buttons. Now properly behaves like
19291             Buttons (and like Microsoft's scrollbar arrow buttons)
19292
19293 2004-09-17 10:14  pbartok
19294
19295         * ScrollBar.cs:
19296           - Added missing release of keyboard/mouse capture
19297
19298 2004-09-17 06:18  jordi
19299
19300         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
19301           Theme.cs: Very early menu support
19302
19303 2004-09-16 17:45  pbartok
19304
19305         * XplatUIWin32.cs:
19306           - Fixed sending a window to the front
19307           - Added overload for SetWindowPos to avoid casting
19308
19309 2004-09-16 17:44  pbartok
19310
19311         * Control.cs:
19312           - Added SendToBack and BringToFront methods
19313
19314 2004-09-16 07:00  ravindra
19315
19316         * Copyright: Added Novell URL.
19317
19318 2004-09-16 07:00  ravindra
19319
19320         * ToolBar.cs: Invalidate should be done before redrawing.
19321
19322 2004-09-15 21:19  ravindra
19323
19324         * ColumnHeaderStyle.cs: Enum for ListView Control.
19325
19326 2004-09-15 21:18  ravindra
19327
19328         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
19329           ListView Control.
19330
19331 2004-09-13 18:26  jackson
19332
19333         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
19334           properly
19335
19336 2004-09-13 18:13  jackson
19337
19338         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
19339           a second thread and post messages into the main threads message
19340           queue. This makes timing much more consistent. Both win2K and XP
19341           have a minimum timer value of 15 milliseconds, so we now do this
19342           too.
19343
19344 2004-09-13 15:18  pbartok
19345
19346         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19347           XplatUIX11.cs:
19348           - Added Z-Ordering methods
19349
19350 2004-09-13 10:56  pbartok
19351
19352         * Form.cs:
19353           - Fixed #region names
19354           - Moved properties and methods into their proper #regions
19355
19356 2004-09-13 10:51  pbartok
19357
19358         * Form.cs:
19359           - Added Accept and CancelButton properties
19360           - Added ProcessDialogKey() method
19361
19362 2004-09-13 08:18  pbartok
19363
19364         * IWindowTarget.cs:
19365           - Initial check-in
19366
19367 2004-09-10 21:50  pbartok
19368
19369         * Control.cs:
19370           - Added DoDragDrop() [incomplete]
19371           - Properly implemented 'Visible' handling
19372           - Added SetVisibleCore()
19373           - Implemented FindChildAtPoint()
19374           - Implemented GetContainerControl()
19375           - Implemented Hide()
19376
19377 2004-09-10 19:28  pbartok
19378
19379         * Control.cs:
19380           - Moved methods into their appropriate #regions
19381           - Reordered methods within regions alphabetically
19382
19383 2004-09-10 18:57  pbartok
19384
19385         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19386           - Added method to retrieve text from window
19387
19388 2004-09-10 18:56  pbartok
19389
19390         * Control.cs:
19391           - Moved some internal functions into the internal region
19392           - Implemented FontHeight
19393           - Implemented RenderRightToLeft
19394           - Implemented ResizeRedraw
19395           - Implemented ShowFocusCues
19396           - Implemented ShowKeyboardCues
19397           - Implemented FromChildHandle
19398           - Implemented FromHandle
19399           - Implemented IsMnemonic
19400           - Implemented ReflectMessage
19401           - All public and protected Static Methods are now complete
19402
19403 2004-09-10 16:54  pbartok
19404
19405         * Control.cs:
19406           - Implemented remaining missing public instance properties
19407           - Alphabetized some out of order properties
19408
19409 2004-09-10 05:51  ravindra
19410
19411         * PictureBox.cs: Added a check for null image.
19412
19413 2004-09-10 00:59  jordi
19414
19415         * GroupBox.cs: remove cvs tag
19416
19417 2004-09-09 05:25  ravindra
19418
19419         * ToolBar.cs: Make redraw accessible from ToolBarButton.
19420
19421 2004-09-09 05:23  ravindra
19422
19423         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
19424           parent redraw.
19425
19426 2004-09-09 02:28  pbartok
19427
19428         * ThemeWin32Classic.cs:
19429           - Improve disabled string look
19430
19431 2004-09-09 01:15  jordi
19432
19433         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
19434           args and handler
19435
19436 2004-09-08 23:56  ravindra
19437
19438         * ItemBoundsPortion.cs: It's enum, not a class!
19439
19440 2004-09-08 23:47  ravindra
19441
19442         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
19443           Enums for Form.
19444
19445 2004-09-08 21:13  ravindra
19446
19447         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
19448           ListView control.
19449
19450 2004-09-08 21:03  ravindra
19451
19452         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
19453           avoid crash.
19454
19455 2004-09-08 21:01  ravindra
19456
19457         * ScrollableControl.cs: Removed unreachable code.
19458
19459 2004-09-08 06:45  jordi
19460
19461         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
19462
19463 2004-09-08 01:00  jackson
19464
19465         * XplatUIX11.cs: Only run the timers when updating the message
19466           queue. This effectively gives X messages a higher priority then
19467           timer messages. Timers still need love though
19468
19469 2004-09-07 14:01  jackson
19470
19471         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
19472           this for us and the handle is no longer valid.
19473
19474 2004-09-07 13:59  jackson
19475
19476         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
19477           loop that manages to not crash. TODO: Add poll and cleanup timers
19478
19479 2004-09-07 11:12  jordi
19480
19481         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
19482
19483 2004-09-07 03:40  jordi
19484
19485         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
19486           fixes, methods, multiple links
19487
19488 2004-09-06 06:55  jordi
19489
19490         * Control.cs: Caches ClientRectangle rectangle value
19491
19492 2004-09-05 02:03  jordi
19493
19494         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
19495           certain situations
19496
19497 2004-09-04 11:10  jordi
19498
19499         * Label.cs: Refresh when font changed
19500
19501 2004-09-02 16:24  pbartok
19502
19503         * Control.cs:
19504           - Added sanity check to creation of double buffer bitmap
19505
19506 2004-09-02 16:24  pbartok
19507
19508         * ButtonBase.cs:
19509           - Fixed selection of text color
19510           - Fixed handling of resize event; now properly recreates double
19511             buffering bitmap
19512           - Added missing assignment of TextAlignment
19513           - Added proper default for TextAlignment
19514
19515 2004-09-02 14:26  pbartok
19516
19517         * RadioButton.cs:
19518           - Added missing RadioButton.RadioButtonAccessibleObject class
19519
19520 2004-09-02 14:26  pbartok
19521
19522         * Control.cs:
19523           - Added missing Control.ControlAccessibleObject class
19524           - Started to implement Select()ion mechanisms, still very incomplete
19525
19526 2004-09-02 14:25  pbartok
19527
19528         * AccessibleObject.cs:
19529           - Added missing methods
19530
19531 2004-09-02 14:23  pbartok
19532
19533         * AccessibleNavigation.cs, AccessibleSelection.cs:
19534           - Initial check-in
19535
19536 2004-09-02 10:32  jordi
19537
19538         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
19539           pool for pens, brushes, and hatchbruses
19540
19541 2004-09-01 15:30  jackson
19542
19543         * StatusBar.cs: Fix typo
19544
19545 2004-09-01 14:44  pbartok
19546
19547         * RadioButton.cs:
19548           - Fixed state
19549
19550 2004-09-01 14:39  pbartok
19551
19552         * Button.cs, RadioButton.cs:
19553           - Functional initial check-in
19554
19555 2004-09-01 14:01  pbartok
19556
19557         * CheckBox.cs:
19558           - Added missing default
19559           - Added missing region mark
19560
19561 2004-09-01 09:10  jordi
19562
19563         * Label.cs: fixes method signatures, new methods, events, fixes
19564           autosize
19565
19566 2004-09-01 07:19  jordi
19567
19568         * Control.cs: Init string variables with an empty object
19569
19570 2004-09-01 04:20  jordi
19571
19572         * Control.cs: fires OnFontChanged event
19573
19574 2004-08-31 20:07  pbartok
19575
19576         * ButtonBase.cs:
19577           - Enabled display of strings
19578
19579 2004-08-31 20:05  pbartok
19580
19581         * Form.cs:
19582           - Added (partial) implementation of DialogResult; rest needs to be
19583             implemented when the modal loop code is done
19584
19585 2004-08-31 19:55  pbartok
19586
19587         * CheckBox.cs:
19588           - Fixed to match the removal of the needs_redraw concept
19589
19590 2004-08-31 19:55  pbartok
19591
19592         * ButtonBase.cs:
19593           - Removed the rather odd split between 'needs redraw' and redrawing
19594           - Now handles the events that require regeneration (ambient
19595             properties and size)
19596
19597 2004-08-31 19:41  pbartok
19598
19599         * Control.cs:
19600           - Added firing of BackColorChanged event
19601           - Added TopLevelControl property
19602           - Fixed handling of WM_ERASEBKGRND message
19603
19604 2004-08-31 12:49  pbartok
19605
19606         * ButtonBase.cs:
19607           - Removed debug
19608           - Minor fixes
19609
19610 2004-08-31 12:48  pbartok
19611
19612         * CheckBox.cs:
19613           - Finished (famous last words)
19614
19615 2004-08-31 04:35  jordi
19616
19617         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
19618           scrolling bugs, adds new methods
19619
19620 2004-08-30 14:42  pbartok
19621
19622         * CheckBox.cs:
19623           - Implemented CheckBox drawing code
19624
19625 2004-08-30 14:42  pbartok
19626
19627         * ButtonBase.cs:
19628           - Made Redraw() and CheckRedraw() virtual
19629           - Improved mouse up/down/move logic to properly track buttons
19630
19631 2004-08-30 09:44  pbartok
19632
19633         * CheckBox.cs:
19634           - Updated to fix broken build. Not complete yet.
19635
19636 2004-08-30 09:28  pbartok
19637
19638         * CheckState.cs:
19639           - Initial checkin
19640
19641 2004-08-30 09:17  pbartok
19642
19643         * Appearance.cs:
19644           - Initial check-in
19645
19646 2004-08-27 16:12  ravindra
19647
19648         * ToolBarButton.cs: Added TypeConverter attribute.
19649
19650 2004-08-27 16:07  ravindra
19651
19652         * ImageIndexConverter.cs: Implemented.
19653
19654 2004-08-27 14:17  pbartok
19655
19656         * Control.cs:
19657           - Removed unneeded stack vars
19658           - First attempt to fix sizing issues when layout is suspended
19659
19660 2004-08-25 15:35  jordi
19661
19662         * ScrollBar.cs: more fixes to scrollbar
19663
19664 2004-08-25 14:04  ravindra
19665
19666         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
19667           Added the missing divider code and grip for ToolBar Control.
19668
19669 2004-08-25 13:20  pbartok
19670
19671         * Control.cs:
19672           - Control now properly passes the ambient background color to child
19673             controls
19674
19675 2004-08-25 13:20  jordi
19676
19677         * ScrollBar.cs: small bug fix regarding bar position
19678
19679 2004-08-25 12:33  pbartok
19680
19681         * Timer.cs:
19682           - Now only calls SetTimer or KillTimer if the enabled state has
19683           changed
19684
19685 2004-08-25 12:33  pbartok
19686
19687         * XplatUIWin32.cs:
19688           - Fixed timer handling, now seems to work
19689           - Improved error message for window creation
19690
19691 2004-08-25 12:32  pbartok
19692
19693         * Control.cs:
19694           - Fixed generation of MouseUp message
19695
19696 2004-08-25 12:29  jordi
19697
19698         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
19699           and fixes for progressbar
19700
19701 2004-08-24 18:43  ravindra
19702
19703         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
19704           in ToolBar control.
19705
19706 2004-08-24 17:15  pbartok
19707
19708         * Panel.cs:
19709           - Added #region
19710           - Added missing events
19711           - Alphabetized
19712
19713 2004-08-24 17:14  pbartok
19714
19715         * StatusBar.cs, PictureBox.cs:
19716           - Now uses Control's CreateParams
19717
19718 2004-08-24 16:36  pbartok
19719
19720         * XplatUIX11.cs:
19721           - Fixed background color handling
19722           - Fixed sending of enter/leave events on a grab
19723
19724 2004-08-24 16:35  pbartok
19725
19726         * X11Structs.cs:
19727           - Refined definitions for CrossingEvent
19728
19729 2004-08-24 12:37  jordi
19730
19731         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
19732           formmating, methods signature, and adds missing events
19733
19734 2004-08-24 12:24  jordi
19735
19736         * Control.cs: fire OnEnabledChanged event
19737
19738 2004-08-24 11:17  pbartok
19739
19740         * XplatUIWin32.cs:
19741           - Implemented SetTimer() and KillTimer()
19742
19743 2004-08-24 11:16  pbartok
19744
19745         * XplatUIX11.cs:
19746           - Now uses Remove instead of Add to kill the timer
19747
19748 2004-08-24 10:16  jackson
19749
19750         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
19751           picture boxes in the theme now. Draw picture box borders and obey
19752           sizing modes
19753
19754 2004-08-24 05:49  jackson
19755
19756         * Timer.cs: Remove top secret debugging code
19757
19758 2004-08-24 05:34  jackson
19759
19760         * PictureBox.cs: Temp hack to make picture boxes draw their full
19761           image
19762
19763 2004-08-24 05:29  jackson
19764
19765         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19766           XplatUIX11.cs: Move timers to the driver level. On X they are
19767           queued by the driver and checked on idle.
19768
19769 2004-08-24 01:07  jackson
19770
19771         * XplatUIX11.cs: Use a queue for async messages instead of passing
19772           them as ClientMessages since that was totally broken. Also simply
19773           check for events and return an idle message if none are found. This
19774           gives us an idle handler, and prevents deadlocking when no messages
19775           are in the queue.
19776
19777 2004-08-23 18:19  ravindra
19778
19779         * XplatUIWin32.cs: Removed the unwanted destructor.
19780
19781 2004-08-23 17:27  pbartok
19782
19783         * ButtonBase.cs:
19784           - Finishing touches. Works now, just needs some optimizations.
19785
19786 2004-08-23 16:53  jordi
19787
19788         * ScrollBar.cs: small fix
19789
19790 2004-08-23 16:45  pbartok
19791
19792         * Application.cs:
19793           - Removed debug output
19794           - Simplifications
19795
19796 2004-08-23 16:43  jordi
19797
19798         * ScrollBar.cs: [no log message]
19799
19800 2004-08-23 16:10  pbartok
19801
19802         * Form.cs:
19803           - Fixed handling of WM_CLOSE message
19804           - Removed debug output
19805
19806 2004-08-23 16:09  pbartok
19807
19808         * Application.cs:
19809           - Added handling of Idle event
19810           - Added handling of form closing
19811           - Fixed reporting of MessageLoop property
19812           - Removed some unneeded code, should provide a bit of a speedup
19813
19814 2004-08-23 15:22  pbartok
19815
19816         * Control.cs:
19817           - Added InitLayout() method
19818           - Added code to properly perform layout when Anchor or Dock property
19819             is changed
19820           - Changed 'interpretation' of ResumeLayout. MS seems to have a
19821             LAMESPEC, tried to do it in a way that makes sense
19822
19823 2004-08-23 14:10  jordi
19824
19825         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
19826           properties and methods
19827
19828 2004-08-23 13:55  pbartok
19829
19830         * Control.cs:
19831           - Properly fixed Jordi's last fix
19832           - Now uses Cursor's Position property instead of calling XplatUI
19833           directly
19834
19835 2004-08-23 13:44  jordi
19836
19837         * PaintEventHandler.cs: Adding missing attribute
19838
19839 2004-08-23 13:39  pbartok
19840
19841         * Cursor.cs:
19842           - Implemented Position property
19843
19844 2004-08-23 13:39  pbartok
19845
19846         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19847           - Added method to move mouse cursor
19848
19849 2004-08-23 13:39  pbartok
19850
19851         * XplatUIX11.cs:
19852           - Fixed setting of background color
19853           - Added method to move mouse cursor
19854
19855 2004-08-23 13:16  jordi
19856
19857         * Control.cs: avoids null exception
19858
19859 2004-08-22 17:46  jackson
19860
19861         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
19862           PictureBox
19863
19864 2004-08-22 17:40  jackson
19865
19866         * XplatUIX11.cs: Add some missing locks
19867
19868 2004-08-22 15:10  pbartok
19869
19870         * Control.cs, Form.cs:
19871           - Removed OverlappedWindow style from Control, instead it's default
19872             now is child
19873           - Made form windows OverlappedWindow by default
19874
19875 2004-08-22 13:34  jackson
19876
19877         * ScrollBar.cs: Update the position through the Value property so
19878           the OnValueChanged event is raised.
19879
19880 2004-08-22 12:04  pbartok
19881
19882         * SWF.csproj:
19883           - Added Cursor.cs and UserControl.cs
19884
19885 2004-08-22 12:03  pbartok
19886
19887         * Cursor.cs:
19888           - Started implementation, not usable yet
19889
19890 2004-08-22 12:00  pbartok
19891
19892         * UserControl.cs:
19893           - Implemented UserControl (complete)
19894
19895 2004-08-21 19:20  ravindra
19896
19897         * ToolBar.cs: Correcting the formatting mess of VS.NET.
19898
19899 2004-08-21 18:49  ravindra
19900
19901         * ToolBar.cs: Probably this completes the missing attributes in
19902           toolbar control.
19903
19904 2004-08-21 18:03  ravindra
19905
19906         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
19907           Fixed toolbar control signatures.
19908
19909 2004-08-21 16:32  pbartok
19910
19911         * LinkLabel.cs:
19912           - Signature Fixes
19913
19914 2004-08-21 16:30  pbartok
19915
19916         * Label.cs:
19917           - Signature fixes
19918
19919 2004-08-21 16:19  pbartok
19920
19921         * Control.cs, Label.cs:
19922           - Signature fixes
19923
19924 2004-08-21 15:57  pbartok
19925
19926         * ButtonBase.cs:
19927           - Added loads of debug output for development
19928           - Fixed typo in method name
19929
19930 2004-08-21 15:52  pbartok
19931
19932         * ToolBarButtonClickEventArgs.cs:
19933           - Added missing base class
19934
19935 2004-08-21 14:53  pbartok
19936
19937         * Control.cs:
19938           - Updated to match new GrabWindow signature
19939
19940 2004-08-21 14:51  pbartok
19941
19942         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19943           - Added method to get default display size
19944
19945 2004-08-21 14:23  pbartok
19946
19947         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19948           - Added method to query current grab state
19949           - Added argument to allow confining a grab to a window
19950
19951 2004-08-21 14:22  pbartok
19952
19953         * Keys.cs:
19954           - Added [Flags] attribute so that modifiers can be used in bitwise
19955           ops
19956
19957 2004-08-21 14:21  pbartok
19958
19959         * TrackBar.cs, ScrollBar.cs:
19960           - Replaced direct XplatUI calls with their Control counterpart
19961
19962 2004-08-21 13:32  pbartok
19963
19964         * Control.cs:
19965           - Implemented Created property
19966
19967 2004-08-21 13:28  pbartok
19968
19969         * Control.cs:
19970           - Implemented ContainsFocus
19971
19972 2004-08-21 13:26  pbartok
19973
19974         * Control.cs:
19975           - Implemented CausesValidation
19976
19977 2004-08-21 13:21  pbartok
19978
19979         * Control.cs:
19980           - Implemented CanFocus
19981           - Implemented CanSelect
19982           - Implemented Capture
19983
19984 2004-08-21 12:35  pbartok
19985
19986         * XplatUIWin32.cs:
19987           - Fixed bug with Async message handling
19988           - Implemented getting the ModifierKeys
19989
19990 2004-08-21 12:32  jackson
19991
19992         * AsyncMethodResult.cs: Make sure we have the mutex before we
19993           release it. Fixes BeginInvoke on windows
19994
19995 2004-08-21 11:31  pbartok
19996
19997         * XplatUIWin32.cs, XplatUIX11.cs:
19998           - Drivers now return proper mouse state
19999
20000 2004-08-21 10:54  jackson
20001
20002         * Control.cs: Implement EndInvoke
20003
20004 2004-08-21 10:48  jackson
20005
20006         * Timer.cs: Remove unneeded finalizer
20007
20008 2004-08-20 19:52  ravindra
20009
20010         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
20011           in mouse event handling in the ToolBar control.
20012
20013 2004-08-20 19:50  ravindra
20014
20015         * ImageList.cs: Changed draw method to use the arguments passed in
20016           to draw the image.
20017
20018 2004-08-20 18:58  pbartok
20019
20020         * XplatUIStructs.cs:
20021           - Added private message for async communication
20022
20023 2004-08-20 17:38  ravindra
20024
20025         * Control.cs: Made RightToLeft property virtual and removed a
20026           Console.WriteLine.
20027
20028 2004-08-20 14:39  jordi
20029
20030         * ThemeGtk.cs: use style_attach
20031
20032 2004-08-20 14:39  pbartok
20033
20034         * XplatUIWin32.cs:
20035           - Added jackson's Async code from X11 to Win32
20036
20037 2004-08-20 14:09  pbartok
20038
20039         * SWF.csproj:
20040           - Added all new files
20041
20042 2004-08-20 14:09  pbartok
20043
20044         * Control.cs:
20045           - Added call to set window background color
20046
20047 2004-08-20 14:03  pbartok
20048
20049         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20050           - Added method for setting the window background
20051
20052 2004-08-20 14:02  pbartok
20053
20054         * XplatUIWin32.cs:
20055           - Added method for setting the background color
20056           - Added handling for erasing the window background
20057
20058 2004-08-20 13:45  jordi
20059
20060         * TrackBar.cs: fixes timer, new properties and methods
20061
20062 2004-08-20 13:34  jackson
20063
20064         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
20065           correct thread
20066
20067 2004-08-20 13:22  jackson
20068
20069         * Timer.cs: Timer Tick events are now handed through Controls Async
20070           mechanism so the callbacks are executed in the same thread as X
20071
20072 2004-08-20 13:19  jackson
20073
20074         * XplatUIDriver.cs: Expose functionality to send async messages
20075           through the driver
20076
20077 2004-08-20 13:18  jackson
20078
20079         * Control.cs: Implement Begininvoke
20080
20081 2004-08-20 13:14  jackson
20082
20083         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
20084           messages through the driver
20085
20086 2004-08-20 13:12  jackson
20087
20088         * XplatUIX11.cs: Lock before all X operations. Also added Async
20089           method functionality through XSendEvent
20090
20091 2004-08-20 13:11  jackson
20092
20093         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
20094           This will screw up on 64 bit systems)
20095
20096 2004-08-20 13:10  jackson
20097
20098         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
20099           Async messages through X/Win32
20100
20101 2004-08-19 19:39  pbartok
20102
20103         * XplatUIX11.cs:
20104           - Updated code to match new HandleData.DeviceContext type
20105
20106 2004-08-19 19:38  pbartok
20107
20108         * HandleData.cs:
20109           - Made DeviceContext a generic object to allow usage from various
20110           drivers
20111           - Added support for queueing Windows messages
20112
20113 2004-08-19 19:37  pbartok
20114
20115         * XplatUIWin32.cs:
20116           - Added generation of MouseEnter, MouseLeave and MouseHover events
20117           - Added cleanup on EndPaint
20118
20119 2004-08-19 19:17  pbartok
20120
20121         * Control.cs:
20122           - Added handling of WM_MOUSEHOVER
20123           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
20124           code
20125
20126 2004-08-19 18:55  jordi
20127
20128         * ThemeGtk.cs: fixes button order
20129
20130 2004-08-19 18:12  jordi
20131
20132         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
20133
20134 2004-08-19 17:09  pbartok
20135
20136         * Control.cs:
20137           - Added Right property
20138           - Added RightToLeft property
20139
20140 2004-08-19 16:27  jordi
20141
20142         * ThemeGtk.cs: experimental GTK theme support
20143
20144 2004-08-19 16:26  jordi
20145
20146         * ITheme.cs, Theme.cs: move themes from an interface to a class
20147
20148 2004-08-19 16:25  jordi
20149
20150         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
20151           theme enhancaments
20152
20153 2004-08-19 16:04  pbartok
20154
20155         * XplatUIX11.cs:
20156           - Added colormap basics
20157           - Added a way to re-initialize with a different display handle
20158           - Fixed setting of the window background color
20159           - Added various X11 imports related to colors and colormaps
20160
20161 2004-08-19 15:51  pbartok
20162
20163         * X11Structs.cs:
20164           - Removed packing hints (Paolo suggested this a while back)
20165           - fixed colormap type
20166           - Added default Atom types
20167           - Added Screen and color structs and enums
20168
20169 2004-08-19 15:39  pbartok
20170
20171         * ImageList.cs:
20172           - Added missing Draw() method
20173           - Added missing RecreateHandle event
20174
20175 2004-08-19 15:30  pbartok
20176
20177         * Form.cs:
20178           - Added handling of WM_CLOSE
20179
20180 2004-08-18 13:16  jordi
20181
20182         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
20183           a table
20184
20185 2004-08-18 09:56  jordi
20186
20187         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
20188
20189 2004-08-17 15:31  ravindra
20190
20191         * SWF.csproj: Updated project.
20192
20193 2004-08-17 15:25  pbartok
20194
20195         * Control.cs:
20196           - Drawing improvement; don't call UpdateBounds if we are not visible
20197             (or have been minimized)
20198
20199 2004-08-17 15:24  pbartok
20200
20201         * XplatUIWin32.cs:
20202           - Finished IsVisible
20203           - Added Win32GetWindowPlacement
20204
20205 2004-08-17 15:08  jackson
20206
20207         * Panel.cs: Initial checkin of the Panel
20208
20209 2004-08-17 14:25  pbartok
20210
20211         * Control.cs:
20212           - Fixed broken handling of default window sizes
20213
20214 2004-08-17 13:29  jackson
20215
20216         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
20217           has a large startup time.
20218
20219 2004-08-17 10:25  jackson
20220
20221         * HandleData.cs: union areas properly
20222
20223 2004-08-17 10:12  jackson
20224
20225         * HandleData.cs: union areas properly
20226
20227 2004-08-16 20:00  ravindra
20228
20229         * ToolBar.cs, ToolBarButton.cs: Added attributes.
20230
20231 2004-08-16 18:48  ravindra
20232
20233         * ToolBar.cs: Added attributes.
20234
20235 2004-08-16 17:17  ravindra
20236
20237         * SWF.csproj: Updated project.
20238
20239 2004-08-16 17:16  jackson
20240
20241         * XplatUIX11.cs: Check for more expose events before sending a
20242           WM_PAINT so they can all be grouped together. This makes dragging a
20243           window across another window redraw in a sane way.
20244
20245 2004-08-16 15:47  pbartok
20246
20247         * Control.cs:
20248           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
20249             support OnMouseEnter/Leave()
20250           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
20251             exposure handling
20252
20253 2004-08-16 15:46  pbartok
20254
20255         * XplatUIStructs.cs, XplatUIX11.cs:
20256           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
20257           OnMouseEnter/Leave()
20258
20259 2004-08-16 15:34  jackson
20260
20261         * XplatUIX11.cs: Group multiple expose events in HandleData, make
20262           sure messages get the message field set to WM_NULL if they are not
20263           handled.
20264
20265 2004-08-16 15:24  jackson
20266
20267         * HandleData.cs: HandleData is used for storing message information
20268           for window handles
20269
20270 2004-08-15 17:23  ravindra
20271
20272         * ColorDepth.cs: Added attribute.
20273
20274 2004-08-15 17:23  ravindra
20275
20276         * SWF.csproj: Updated project for ToolBar Control.
20277
20278 2004-08-15 17:20  ravindra
20279
20280         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
20281           control and also dos2unix format.
20282
20283 2004-08-15 17:13  ravindra
20284
20285         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
20286           ToolBarButtonClickEventArgs.cs,
20287           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
20288           ToolBarTextAlign.cs: First Implementation of ToolBar control.
20289
20290 2004-08-15 15:31  pbartok
20291
20292         * ButtonBase.cs:
20293           - First (mostly) working version
20294
20295 2004-08-13 16:15  pbartok
20296
20297         * Control.cs:
20298           - Fixed Anchor default
20299
20300 2004-08-13 15:43  pbartok
20301
20302         * Control.cs:
20303           - Changed GetCursorPos signature
20304
20305 2004-08-13 15:42  pbartok
20306
20307         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20308           - Changed signature for GetCursorPos
20309
20310 2004-08-13 15:25  pbartok
20311
20312         * XplatUIX11.cs:
20313           - Cleanup
20314           - Fixed resizing/exposure handling
20315
20316 2004-08-13 15:22  jordi
20317
20318         * ThemeWin32Classic.cs: removes redundant code and fixes issues
20319           with tickposition
20320
20321 2004-08-13 14:55  jordi
20322
20323         * TrackBar.cs: change from wndproc to events
20324
20325 2004-08-13 13:00  jordi
20326
20327         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20328           XplatUIX11.cs: implements PointToClient (ScreenToClient)
20329
20330 2004-08-13 12:53  pbartok
20331
20332         * XplatUIWin32.cs:
20333           - Changed GetWindowPos to also provide client area size
20334           - Fixed broken prototypes for several win32 functions
20335
20336 2004-08-13 12:53  pbartok
20337
20338         * XplatUI.cs, XplatUIDriver.cs:
20339           - Changed GetWindowPos to also provide client area size
20340
20341 2004-08-13 12:52  pbartok
20342
20343         * XplatUIX11.cs:
20344           - Added generation of WM_POSCHANGED
20345           - Changed GetWindowPos to also provide client area size
20346
20347 2004-08-13 12:52  pbartok
20348
20349         * Control.cs:
20350           - Added Dispose() and destructor
20351           - Fixed resizing and bounds calculation
20352           - Fixed Layout
20353           - Added memory savings for invisible windows
20354
20355 2004-08-13 12:46  jordi
20356
20357         * TrackBar.cs: adds timer and grap window
20358
20359 2004-08-13 10:25  jackson
20360
20361         * Timer.cs: SWF Timer
20362
20363 2004-08-12 16:59  pbartok
20364
20365         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20366           - Implemented method to get current mouse position
20367
20368 2004-08-12 14:29  jordi
20369
20370         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
20371           enhancement, fix mouse problems, highli thumb, etc
20372
20373 2004-08-12 13:31  pbartok
20374
20375         * Control.cs:
20376           - Fixed Anchoring bugs
20377
20378 2004-08-12 13:01  jackson
20379
20380         * StatusBar.cs: Don't forget things
20381
20382 2004-08-12 12:54  jackson
20383
20384         * ThemeWin32Classic.cs: Handle owner draw status bars
20385
20386 2004-08-12 12:54  jackson
20387
20388         * StatusBar.cs: Implement missing properties, events, and methods.
20389           Handle mouse clicking
20390
20391 2004-08-12 10:19  jackson
20392
20393         * StatusBarPanelClickEventArgs.cs,
20394           StatusBarPanelClickEventHandler.cs: Classes for handling status
20395           bar panel click events
20396
20397 2004-08-12 10:10  jackson
20398
20399         * Control.cs: Add missing properties
20400
20401 2004-08-12 09:46  pbartok
20402
20403         * BindingsManagerBase.cs:
20404           - Name changed to BindingManagerBase.cs
20405
20406 2004-08-12 09:25  jordi
20407
20408         * ScrollableControl.cs: calls ctrlbase instead of exeception
20409
20410 2004-08-11 16:28  pbartok
20411
20412         * InputLanguageChangingEventArgs.cs:
20413           - Never check in before compiling. Fixes the last check-in
20414
20415 2004-08-11 16:26  pbartok
20416
20417         * InputLanguageChangingEventArgs.cs:
20418           - More signature fixes
20419
20420 2004-08-11 16:20  pbartok
20421
20422         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
20423           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
20424           ImageListStreamer.cs, InputLanguage.cs,
20425           InputLanguageChangedEventArgs.cs,
20426           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
20427           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
20428           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
20429           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20430           - Signature fixes
20431
20432 2004-08-11 16:16  pbartok
20433
20434         * Application.cs:
20435           - Fixed Signature
20436           - Added .Net 1.1 method
20437
20438 2004-08-11 15:25  pbartok
20439
20440         * SWF.csproj:
20441           - Fixed BindingManagerBase.cs filename
20442
20443 2004-08-11 15:22  pbartok
20444
20445         * BindingManagerBase.cs:
20446           - Was checked in with wrong filename
20447
20448 2004-08-11 14:50  pbartok
20449
20450         * SWF.csproj:
20451           - Updated
20452
20453 2004-08-11 13:41  jordi
20454
20455         * XplatUIWin32.cs: Fixes ClientRect
20456
20457 2004-08-11 13:19  pbartok
20458
20459         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20460           XplatUIX11.cs:
20461           - We had SetWindowPos and MoveWindow to set window positions and
20462             size, removed MoveWindow. We have GetWindowPos, so it made sense to
20463             keep SetWindowPos as matching counterpart
20464           - Added some X11 sanity checking
20465
20466 2004-08-11 12:59  pbartok
20467
20468         * Control.cs:
20469           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
20470             (It seems that SetBounds is just a front for SetBoundsCore and
20471              SetBoundsCore updates the underlying window system and
20472              UpdateBounds is responsible for updating the variables associated
20473              with the Control and sending the events)
20474           - Major cleanup of Size handling; we now have two sizes, client_size
20475             and bounds. Bounds defines the window with decorations, client_size
20476             without them.
20477
20478 2004-08-11 12:55  pbartok
20479
20480         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20481           - Added method to calculate difference between decorated window and
20482             raw client area
20483
20484 2004-08-11 12:54  pbartok
20485
20486         * Label.cs:
20487           - Forcing redraw on resize
20488
20489 2004-08-11 11:43  pbartok
20490
20491         * ImageList.cs:
20492           - Removed disposing of the actual images when the list is disposed
20493
20494 2004-08-11 09:13  pbartok
20495
20496         * Control.cs:
20497           - Now properly reparents windows
20498
20499 2004-08-11 08:37  pbartok
20500
20501         * Control.cs:
20502           - Duh!
20503
20504 2004-08-11 07:47  pbartok
20505
20506         * Control.cs:
20507           - Rewrote the collection stuff. Might not be as fast now, not
20508             keeping the number of children around and accessible directly, but
20509             it's more straightforward
20510
20511 2004-08-11 07:44  pbartok
20512
20513         * AccessibleObject.cs:
20514           - Fixed to match ControlCollection rewrite
20515
20516 2004-08-11 07:43  pbartok
20517
20518         * ImageList.cs:
20519           - Added missing creation of the collection list
20520
20521 2004-08-10 20:08  jackson
20522
20523         * StatusBar.cs: Get the paint message from WndProc
20524
20525 2004-08-10 19:31  jackson
20526
20527         * ThemeWin32Classic.cs: Create Brushes as little as possible
20528
20529 2004-08-10 19:20  jackson
20530
20531         * UICues.cs: Add Flags attribute
20532
20533 2004-08-10 19:19  jackson
20534
20535         * StatusBarPanel.cs: Signature cleanup
20536
20537 2004-08-10 19:10  jackson
20538
20539         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
20540           Initial implementation of status bar item drawing
20541
20542 2004-08-10 17:27  jordi
20543
20544         * TrackBar.cs: add missing methods, properties, and restructure to
20545           hide extra ones
20546
20547 2004-08-10 16:24  jackson
20548
20549         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
20550           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
20551           attribute
20552
20553 2004-08-10 13:21  jordi
20554
20555         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
20556           enhancements and standarize on win colors defaults
20557
20558 2004-08-10 12:52  jackson
20559
20560         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
20561           ThemeWin32Classic.cs: Implement DrawItem functionality
20562
20563 2004-08-10 12:47  jordi
20564
20565         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
20566
20567 2004-08-10 12:32  jordi
20568
20569         * Control.cs: throw ontextchange event
20570
20571 2004-08-10 11:43  pbartok
20572
20573         * Control.cs:
20574           - Added more to the still unfinished Dock/Anchor layout code
20575
20576 2004-08-10 11:39  pbartok
20577
20578         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20579           - Added GetWindowPos method
20580
20581 2004-08-10 11:36  pbartok
20582
20583         * XplatUIWin32.cs:
20584           - Implemented several methods
20585
20586 2004-08-10 09:47  jackson
20587
20588         * TrackBar.cs: Allow control to handle buffering
20589
20590 2004-08-10 09:41  jackson
20591
20592         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
20593
20594 2004-08-10 09:24  jackson
20595
20596         * Label.cs, LinkLabel.cs: Let Control handle buffering.
20597
20598 2004-08-10 09:09  jackson
20599
20600         * StatusBar.cs: Let Control handle all the buffering.
20601
20602 2004-08-10 09:08  jackson
20603
20604         * Control.cs: Control will now handle the buffering code, so each
20605           control does not have to implement this.
20606
20607 2004-08-10 08:34  jackson
20608
20609         * XplatUIDriver.cs: Use default colors from the theme
20610
20611 2004-08-09 17:12  pbartok
20612
20613         * ImageList.cs:
20614           - Fixed several bugs Ravindra pointed out
20615
20616 2004-08-09 16:11  pbartok
20617
20618         * Control.cs:
20619           - Added incomplete dock layout code
20620           - Added support for mouse wheel
20621
20622 2004-08-09 16:09  pbartok
20623
20624         * XplatUIX11.cs:
20625           - Added handling for middle and right mousebutton
20626           - Added handling for mouse wheel
20627           - Added handling for key state and mouse state and position
20628           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
20629           messages
20630
20631 2004-08-09 15:40  jackson
20632
20633         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
20634           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
20635           checkin
20636
20637 2004-08-09 15:37  jackson
20638
20639         * StatusBar.cs: Initial implementation of StatusBar
20640
20641 2004-08-09 15:36  jackson
20642
20643         * ITheme.cs: Add support for drawing status bar and getting status
20644           bar item sizes
20645
20646 2004-08-09 15:35  pbartok
20647
20648         * MouseButtons.cs:
20649           - Fixed values
20650
20651 2004-08-09 15:34  jackson
20652
20653         * ThemeWin32Classic.cs: Add support for drawing status bar and get
20654           status bar item sizes
20655
20656 2004-08-09 15:21  jackson
20657
20658         * ThemeWin32Classic.cs: Use known colors for default control
20659           colours
20660
20661 2004-08-09 15:12  jackson
20662
20663         * ThemeWin32Classic.cs: Make the default font static, it is static
20664           in control so this doesn't change functionality and creating fonts
20665           is sloooooow.
20666
20667 2004-08-09 14:56  pbartok
20668
20669         * X11Structs.cs:
20670           - Added GrabMode enum
20671
20672 2004-08-09 14:55  pbartok
20673
20674         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20675           - Removed Run method, was only required for initial development
20676
20677 2004-08-09 14:51  pbartok
20678
20679         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20680           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
20681           capture
20682
20683 2004-08-09 13:48  pbartok
20684
20685         * XplatUIX11.cs:
20686           - Fixed default sizing for child windows
20687
20688 2004-08-09 12:56  pbartok
20689
20690         * XplatUIX11.cs:
20691           - Added generation of WM_DESTROY message
20692           - Added handling of window manager induced shutdown
20693
20694 2004-08-09 11:31  jackson
20695
20696         * ThemeWin32Classic.cs: New names for control properties
20697
20698 2004-08-09 11:25  jackson
20699
20700         * Control.cs: Use new color names
20701
20702 2004-08-09 11:02  jackson
20703
20704         * XplatUI.cs: Get default window properties from the theme
20705
20706 2004-08-09 11:01  jackson
20707
20708         * ITheme.cs: The theme engine now controls default window
20709           properties
20710
20711 2004-08-09 11:00  jackson
20712
20713         * ThemeWin32Classic.cs: Add default window color properties
20714
20715 2004-08-09 10:17  jackson
20716
20717         * ThemeWin32Classic.cs: Use correct default back color
20718
20719 2004-08-09 10:05  jackson
20720
20721         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
20722           the theme now.
20723
20724 2004-08-09 09:56  jackson
20725
20726         * XplatUI.cs: Remove defaults, these are handled by the theme now.
20727
20728 2004-08-09 09:54  jackson
20729
20730         * Control.cs: Get default properties from the theme.
20731
20732 2004-08-09 09:53  jackson
20733
20734         * ITheme.cs: Themes now handle default control properties
20735
20736 2004-08-09 09:53  jackson
20737
20738         * ThemeWin32Classic.cs: Themes now handle default control
20739           properties so coloring will be consistent
20740
20741 2004-08-08 16:54  jordi
20742
20743         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
20744
20745 2004-08-08 15:08  jordi
20746
20747         * XplatUIX11.cs: fixes keyboard crash
20748
20749 2004-08-08 13:47  jordi
20750
20751         * Label.cs: add cvs header info
20752
20753 2004-08-08 12:09  jackson
20754
20755         * ThemeWin32Classic.cs: Add pen_buttonface
20756
20757 2004-08-08 11:52  jordi
20758
20759         * Label.cs, LinkLabel.cs: [no log message]
20760
20761 2004-08-08 11:34  jordi
20762
20763         * ThemeWin32Classic.cs: Use Windows Standard Colours
20764
20765 2004-08-07 17:32  jordi
20766
20767         * TrackBar.cs: throw exceptions of invalid enums values
20768
20769 2004-08-07 17:31  jordi
20770
20771         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
20772           draw method name
20773
20774 2004-08-07 16:56  jackson
20775
20776         * HorizontalAlignment.cs: Initial checkin
20777
20778 2004-08-07 13:16  jordi
20779
20780         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
20781           methods
20782
20783 2004-08-07 13:05  jordi
20784
20785         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
20786           GetSysColor defines
20787
20788 2004-08-06 18:01  pbartok
20789
20790         * ThemeWin32Classic.cs:
20791           - Fixed some rounding issues with float/int
20792
20793 2004-08-06 18:00  jackson
20794
20795         * DockStyle.cs, AnchorStyles.cs:
20796
20797                   Add flags and serializable attributes.
20798
20799 2004-08-06 17:46  pbartok
20800
20801         * XplatUIX11.cs:
20802           - Implemented GetParent
20803
20804 2004-08-06 17:18  pbartok
20805
20806         * TrackBar.cs:
20807           - Fixed some rounding issues with float/int
20808
20809 2004-08-06 17:17  pbartok
20810
20811         * X11Structs.cs, XplatUIX11.cs:
20812           - Fixed Refresh and Invalidate
20813
20814 2004-08-06 15:30  pbartok
20815
20816         * Control.cs, X11Structs.cs, XplatUIX11.cs:
20817           - Fixed recursive loop when resizing
20818           - Improved/fixed redrawing on expose messages
20819
20820 2004-08-06 09:53  jordi
20821
20822         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
20823           keyboard navigation
20824
20825 2004-08-06 08:02  pbartok
20826
20827         * X11Structs.cs, XplatUIX11.cs:
20828           - Fixed reparenting
20829           - Fixed window border creation
20830
20831 2004-08-05 15:38  pbartok
20832
20833         * XplatUIX11.cs:
20834           - Attempted fix for reparenting problems
20835
20836 2004-08-04 15:14  pbartok
20837
20838         * Control.cs:
20839           - Fixed Invalidation bug (calculated wrong client area)
20840           - Added ClientSize setter
20841
20842 2004-08-04 15:13  pbartok
20843
20844         * Form.cs:
20845           - Added AutoScale properties
20846
20847 2004-08-04 15:13  pbartok
20848
20849         * SWF.csproj:
20850           - Added latest files
20851
20852 2004-08-04 14:11  pbartok
20853
20854         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20855           XplatUIX11.cs:
20856           - Added Invalidate handling
20857
20858 2004-08-03 17:09  jordi
20859
20860         * XplatUIDriver.cs: fixes spelling mistake
20861
20862 2004-07-27 09:53  jordi
20863
20864         * TrackBar.cs: fixes trackbar events, def classname, methods
20865           signature
20866
20867 2004-07-27 09:29  jordi
20868
20869         * ScrollBar.cs: fixes scrollbar events
20870
20871 2004-07-27 04:38  jordi
20872
20873         * Control.cs: changes to be able to run winforms samples
20874
20875 2004-07-26 11:42  jordi
20876
20877         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
20878           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
20879
20880 2004-07-26 05:41  jordi
20881
20882         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
20883           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
20884           implementation
20885
20886 2004-07-22 09:22  jordi
20887
20888         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
20889           check link overlapping, implement events, and fixes
20890
20891 2004-07-21 10:28  jordi
20892
20893         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
20894
20895 2004-07-21 10:19  jordi
20896
20897         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
20898           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
20899           LinkLabelLinkClickedEventArgs.cs,
20900           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
20901           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
20902           implementation
20903
20904 2004-07-19 13:09  jordi
20905
20906         * Control.cs, Label.cs: label control re-written: added missing
20907           functionlity, events, and properties
20908
20909 2004-07-19 10:49  jordi
20910
20911         * Control.cs: fixes SetBounds logic
20912
20913 2004-07-19 01:29  jordi
20914
20915         * Control.cs: Call RefreshWindow only if the window has created
20916
20917 2004-07-15 14:05  pbartok
20918
20919         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
20920           - Implemented ImageList and ImageList.ImageCollection classes
20921           - Added ColorDepth enumeration
20922           - Updated SWF VS.Net project
20923
20924 2004-07-15 11:06  jordi
20925
20926         * XplatUIStructs.cs: added MsgButons enum
20927
20928 2004-07-15 11:03  jordi
20929
20930         * Control.cs: added basic mouse handeling events
20931
20932 2004-07-15 03:38  jordi
20933
20934         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
20935           Vertical TrackBar control implementation
20936
20937 2004-07-13 09:33  jordi
20938
20939         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
20940
20941 2004-07-13 09:31  jordi
20942
20943         * Control.cs, Form.cs: commit: new properties and fixes form size
20944           problems
20945
20946 2004-07-09 14:13  miguel
20947
20948         * ProgressBar.cs: Spelling
20949
20950 2004-07-09 11:25  pbartok
20951
20952         * ProgressBar.cs:
20953           - Removed usage of Rectangle for drawing. Miguel pointed out it's
20954           faster
20955
20956 2004-07-09 11:17  miguel
20957
20958         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
20959
20960                 * ProgressBar.cs: Fixed spelling for `block'
20961
20962                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
20963                 style guidelines.
20964
20965                 Avoid using the += on rect.X, that exposed a bug in the compiler.
20966
20967 2004-07-08 23:21  pbartok
20968
20969         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
20970           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
20971           BaseCollection.cs, Binding.cs, BindingContext.cs,
20972           BindingMemberInfo.cs, BindingsCollection.cs,
20973           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
20974           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
20975           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
20976           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
20977           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
20978           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
20979           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
20980           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
20981           FrameStyle.cs, GiveFeedbackEventArgs.cs,
20982           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
20983           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
20984           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
20985           InputLanguageChangedEventArgs.cs,
20986           InputLanguageChangedEventHandler.cs,
20987           InputLanguageChangingEventArgs.cs,
20988           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
20989           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
20990           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
20991           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
20992           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
20993           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
20994           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
20995           QueryAccessibilityHelpEventArgs.cs,
20996           QueryAccessibilityHelpEventHandler.cs,
20997           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
20998           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
20999           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
21000           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
21001           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
21002           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
21003           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
21004           XplatUIX11.cs, lang.cs:
21005           - Initial check-in
21006