Fix drowp down arrow borders
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2         
3         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4
5 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
6
7         * Toolbar.cs: Change default value of DropDownArrows to true, the 
8         signature still using false to make it compatible with MS but the 
9         initial value is true. Fixes #79855.
10
11 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
12
13         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
14           only available on Linux.
15
16 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
17
18         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
19         reduce number of calls to redraw method during toolbar creation.
20
21 2006-11-09  Mike Kestner  <mkestner@novell.com>
22
23         * ListView.cs : raise SelectedIndexChanged when an item is selected
24         programmatically via the Item.Selected property.  Gert's nice 
25         ListViewSelectedIndexChanged test fixture now runs clean.
26
27 2006-11-09  Mike Kestner  <mkestner@novell.com>
28
29         * ListView.cs : raise SelectedIndexChanged when a selected item is
30         removed from the item collection using Remove or RemoveAt.
31
32 2006-11-09  Mike Kestner  <mkestner@novell.com>
33
34         * ListView.cs : raise SelectedIndexChanged once per selected item
35         for compat with MS.  Fixes #79849+.
36
37 2006-11-09  Chris Toshok  <toshok@ximian.com>
38
39         * TabControl.cs: initialize row_count to 0, and set it to 1 when
40         we need to (if we have any tab pages).  Fixes unit test.
41
42 2006-11-09  Chris Toshok  <toshok@ximian.com>
43
44         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
45         width is 0, not 3.  Fixes a unit test.
46
47 2006-11-09  Mike Kestner  <mkestner@novell.com>
48
49         * ListView.cs : use Implicit scrollbars so that focus isn't 
50         stolen from the listview when they are clicked. Fixes #79850.
51
52 2006-11-09  Chris Toshok  <toshok@ximian.com>
53
54         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
55         have a root item.  Fixes #79879.
56
57 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
58
59         * FileDialog.cs:
60           - Fix ToString ()
61           - An ArgumentException is now thrown if a wrong filter
62             is applied (matches ms). The previous filter doesn't change
63             anymore if an exception is thrown.
64           - Changing the FileName property also affects FileNames
65         * ColorDialog.cs: The length of the CustomColors array is always
66           16. It doesn't matter if we use a smaller array or null to update
67           or change the custom colors property.
68         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
69           for RootFolder if we get a undefined value.
70
71 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
72
73         * StatusBarPanel.cs: 
74         - Width is set to MinWidth if Width is smaller than
75         MinWidth. Fixes #79842.
76         - MinWidth now always overrides Width (MSDN says MinWidth
77         is set to Width when AutoSize = None, but they do not 
78         behave like that).
79         - Style has now the the correct default value.
80         
81 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
82  
83         * TrackBar.cs: 
84         - The control is completely invalidated on 
85         Got/LostFocus to draw the focus rectangle correctly.
86         - When AutoSize then height is always 45 (width for 
87         vertical controls).
88         
89         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
90         on the mouse when moved and it doesn't move when grabbed
91         until the mouse moves as well. Also fixed some wrong 
92         calculations when clicking on the thumb (control thought
93         click was outside of thumb and didn't grab it).
94         Fixes some of the issues in #79718.
95
96 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
97
98         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
99
100 2006-11-08  Chris Toshok  <toshok@ximian.com>
101
102         * PropertyGridView.cs: only call ToggleValue if the item is not
103         readonly.
104
105 2006-11-08  Jackson Harper  <jackson@ximian.com>
106
107         * TextBoxBase.cs: The RichTextBox and textbox have very different
108         word selection methods.  Implement the textbox's simple word
109         selection here, and let the RichTextBox override and provide it's
110         own.
111         - Don't do extra selection on mouseup
112         * RichTextBox.cs: Use the documents word selection algorithm, I
113         think ideally, this function will be pulled into the
114         RichTextBox.cs code someday.
115
116 2006-11-08  Chris Toshok  <toshok@ximian.com>
117
118         * RootGridEntry.cs: new class to represent GridItemType.Root.
119
120         * CategoryGridEntry.cs: reformat, and add boilerplate.
121         
122         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
123         returns the UI parent anyway, and we need special handling to
124         implement the GetTarget method in the face of it.  Also, implement
125         Select().
126
127         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
128         a root grid item, and use that instead of PropertyGrid.grid_items.
129         Also, make use of TypeConverters (and add limitted support for
130         ICustomTypeDescriptors) when initially populating the grid.
131         Arrays now show up more or less properly.
132
133 2006-11-08  Chris Toshok  <toshok@ximian.com>
134
135         * Application.cs: set the modal dialog to non modal after we close
136         it.  Fixes bug #79866.
137
138 2006-11-08  Jackson Harper  <jackson@ximian.com>
139
140         * TextControl.cs: When combining lines carry over the line end
141         style from the end line.
142         - Invalidate the selected area when setting it, if it is visible.
143         * TextBoxBase.cs: Only rich text box can do full line selects.
144         - Make sure to set the cursor position when there is a click,
145         otherwise two clicks in separate areas could cause a large chunk
146         to be selected.
147
148 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
149
150         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
151         Fixes #79863.
152
153 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
154
155         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
156         time. Remove tooltips when ToolButton click events.  Fixes #79856.
157
158 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
159
160         * MenuAPI.cs: Ignore right click for menu actions and fixes
161         menu border when clicked.  Fixes #79846.
162
163 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
164
165         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
166         MouseState after create wParam for message, this fixes mouse button 
167         equal none in mouse up events.
168         
169 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
170
171         * Control.cs : Focus() now calls Select to set the Container's
172         Active Control and to give it focus. To avoid infinite recursion
173         (because ActiveControl also calls Focus at one point), a check 
174         is made in Focus with the help of a new internal variable
175         is_focusing.
176
177 2006-11-07  Mike Kestner  <mkestner@novell.com>
178
179         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
180         if there's a selection.  Fixes #79849.
181
182 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
183
184         * PropertyGrid.cs: Avoid fixed height of help description label.
185         Fixes part of bug #79829.
186
187 2006-11-07  Chris Toshok  <toshok@ximian.com>
188
189         * XplatUIX11.cs: fix #79790 again, by using the
190         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
191
192 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
193
194         * ToolBar.cs: Fix left click checking.
195
196 2006-11-07  Chris Toshok  <toshok@ximian.com>
197
198         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
199
200 2006-11-07  Chris Toshok  <toshok@ximian.com>
201
202         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
203         PropertyManager unit tests.
204
205         * PropertyManager.cs: make property_name internal.
206
207 2006-11-07  Chris Toshok  <toshok@ximian.com>
208
209         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
210         pass a unit test.  Also, don't set image_index to anything in
211         response to setting the ImageList property.
212
213 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
214
215         * ToolBar.cs: Ignore click events when mouse button is not a
216         left button, only accepts other button for dropdown menus.  
217         Fixes #79854.
218
219 2006-11-07  Chris Toshok  <toshok@ximian.com>
220
221         * DataGrid.cs: make the back and parent row buttons a little less
222         ugly.
223
224 2006-11-07  Jackson Harper  <jackson@ximian.com>
225
226         * TextBoxBase.cs: When converting to Text don't put line breaks in
227         for soft line breaks.
228         * TextControl.cs: There is an initial "fake" line in the document,
229         this is now a soft break line, so that an extra line feed doesn't
230         get added to the end of documents.
231
232 2006-11-07  Chris Toshok  <toshok@ximian.com>
233
234         [ fix bug #79778 ]
235         
236         * CurrencyManager.cs: if the list is readonly, don't bother
237         checking if IBindingList.AllowNew is true.
238
239         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
240         for non-DataRowView datasources..  or rather, make it not crash.
241         (DataGridPaintRelationRow): make sure we limit the row painting to
242         the area not covered by the row header, and make our cell width at
243         least large enough to cover the relation area.  This allows grids
244         that have relations but no rows to render correctly.
245         (DataGridPaintRowContents): same type of changes here.
246         (SetDataSource): move back to always calling
247         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
248         navigating back through relations.
249         (HitTest): handle the case where we have no cells but have
250         relations.  Right now we generate a hit in cell 0 of whatever the
251         row is, not sure if this is strictly correct, but it works for our
252         purposes.
253         
254         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
255         bother doing anything.
256
257 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
258
259         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
260         early version of StatusStrip.  Not responsible for eaten
261         application or firstborn children.
262
263 2006-11-06  Chris Toshok  <toshok@ximian.com>
264
265         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
266         call GetTabRect with a -1 index.  Fixes #79847.
267
268 2006-11-06  Jackson Harper  <jackson@ximian.com>
269
270         * TreeNodeCollection.cs: Update scrollbars after clearing.
271
272 2006-11-06  Chris Toshok  <toshok@ximian.com>
273
274         * NumericUpDown.cs: fix the ToString method for some unit test
275         love.
276
277 2006-11-06  Chris Toshok  <toshok@ximian.com>
278
279         * PropertyGrid.cs:
280         - set the initial SelectedGridItem if we can.
281
282         - Exclude non-mergable properties only if we're merging > 1
283         object.  Merging 1 object isn't really merging, obviously.
284
285         - Handle PropertySort.NoSort just like Alphabetical, which is
286         wrong of course, but at least gets things on the screen.
287         
288         * PropertyGridView.cs:
289         - Add method "FindFirstItem" which finds the first property grid
290         item, so we can select it by default.
291
292         - make use of GridEntry.CanResetValue.
293
294         - Don't call RedrawBelowItemOnExpansion here anymore, the
295         individual GridEntry's will do that.
296
297         - Remove the ITypeDescriptorContextImpl internal class.
298         
299         * GridEntry.cs:
300         - this class needs to implement ITypeDescriptorContext, as it's
301         what MS's PropertyDescriptorGridEntry does, which means we can
302         remove the ITypeDescriptorContextImpl internal class from
303         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
304
305         - keep a reference to our PropertyGridView, and move the call to
306         RedrawBelowItemOnExpansion here from PGV.  This means
307         programmaticly setting Expanded actually does something visible.
308
309         - add a CanResetValue() function which takes into account our
310         possibly multiple "selected_objects" in the merged case.  Shifting
311         PropertyGridView to use this method fixes another unreported
312         crasher found running the test for #79829.
313
314         - when Top or Bounds is updated, make sure the PropertyGridTextBox
315         is updated to reflect this.
316
317         * CategoryGridEntry.cs: the ctor takes the PGV now.
318         
319 2006-11-06  Jackson Harper  <jackson@ximian.com>
320
321         * TextControl.cs: These are 1 based.
322         * TextBoxBase.cs: When setting the selected text, don't change the
323         selected text tags, this is done by ReplaceText, just position the
324         cursor at the end of the new text.
325
326 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
327
328         * ListView.cs: Allow label edit only when, when LabelEdit is
329           set to true.
330
331 2006-11-06  Jackson Harper  <jackson@ximian.com>
332
333         * TextControl.cs: If a suitable wrapping position isn't found,
334         just wrap right in the middle of a word.
335
336 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
337
338         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
339           bug #79820.
340
341 2006-11-06  Jackson Harper  <jackson@ximian.com>
342
343         * TreeView.cs: Can't use the VisibleCount property when setting
344         scrollbar heights, because this doesn't take into account whether
345         or not the horz scrollbar just came visible.
346
347 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
348
349         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
350         activated.  Fixes #79369, #79832.
351
352 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
353
354         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
355           had to remove support for links that point to a directory. FileInfo
356           returns no usefull information (means, the directory they point to)
357           for such links. Replaced some empty string ("") with String.Empty.
358
359 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
360
361         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
362         NullReferenceException when attempting to remove node that is not in
363         collection. Throw NullReferenceException when null is passed to 
364         Remove. Allow first element of the collection to be removed. Fixes
365         bug #79831.  In GetEnumerator ().Current return null if positioned 
366         before the first element of the collection. In GetEnumerator ().Reset,
367         position before first element of the collection.
368
369 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
370
371         * PropertyGrid.cs: To match MS, remove default title and description
372         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
373         buttons.
374
375 2006-11-04  Chris Toshok  <toshok@ximian.com>
376
377         * Theme.cs: add a Clamp method, just for kicks.
378
379         * ThemeWin32Classic.cs: clamp all color components to [0..255].
380
381 2006-11-04  Chris Toshok  <toshok@ximian.com>
382
383         * Form.cs: if the form isn't visible, Close() does nothing.
384
385 2006-11-03  Chris Toshok  <toshok@ximian.com>
386
387         * Form.cs (Close): if the form is modal, don't Dispose of it, only
388         Hide it.
389         (WndProc): don't Dispose after handling the WM_CLOSE message.
390
391         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
392         them as such, instead of using casts from Control to Form.  Also,
393         don't Dispose of the modal dialog when we fall out of the loop -
394         Close() it instead.
395
396         fixes bug #79813.
397
398 2006-11-03  Chris Toshok  <toshok@ximian.com>
399
400         * Control.cs (Dispose): only go through the dispose thing if we're
401         @disposing, and we haven't already been disposed.  Fixes bug
402         #79814.
403
404         * Form.cs: no reason to call "base.Dispose()" here instead of
405         "Dispose()".
406
407 2006-11-03  Mike Kestner  <mkestner@novell.com>
408
409         * ComboBox.cs : use ToString instead of casts in AddItem for
410         sorting functionality.  Fixes #79812.
411
412 2006-11-03  Chris Toshok  <toshok@ximian.com>
413
414         * Application.cs: pave the way for actually using the thread
415         exception dialog.  it's ifdefed out at the moment.
416
417 2006-11-03  Chris Toshok  <toshok@ximian.com>
418
419         * ThreadExceptionDialog.cs: until we get a better layout, actually
420         hide the details textbox and label when we shouldn't see them.
421
422 2006-11-03  Jackson Harper  <jackson@ximian.com>
423
424         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
425         multiline textboxes anymore.  This method also determines the
426         width/height of a textboxes canvas area.
427         - Sorta a revert of the last patch.  For multiline just position
428         the controls, then bail.  This way the scrollbar width won't be
429         altered.
430
431 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
432
433         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
434         it dont need.  Fixes #79537.
435
436 2006-11-02  Jackson Harper  <jackson@ximian.com>
437
438         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
439         send the status after firing the DndOver event.
440
441 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
442
443         * TrackBar.cs: Now orientation only switches height / width if
444         the control's handle is created (Win32 does it like this). Also 
445         fixed a typo in ToString() for a test to pass, changed the 
446         exception thrown in set_LargeChange and set_SmallChange to 
447         match Win32 behaviour, and added TrackBar tests to the unit 
448         tests.
449
450 2006-11-02  Chris Toshok  <toshok@ximian.com>
451
452         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
453         not _NET_WM_STATE_NO_TASKBAR.
454
455 2006-11-02  Jackson Harper  <jackson@ximian.com>
456
457         * TextControl.cs: Increment count by one, since in the update view
458         count - 1 is used.
459
460 2006-11-02  Jackson Harper  <jackson@ximian.com>
461
462         * TextBoxBase.cs: Use client rectangle not bounds for checking if
463         the mouse is in the client rectangle (duh).
464
465 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
466         
467         * TrackBar.cs: Fixed trackbar jumping around when clicking
468         on it - the trackbar was not detecting correctly at which
469         side of the thumb the click was done. (fixes #79718)
470
471 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
472
473         * ListBox.cs: scroll visible area when change SelectedIndex to
474         a non visible area.  Fixes #79481.
475
476 2006-11-01  Jackson Harper  <jackson@ximian.com>
477
478         * TextControl.cs: When replacing the selection move the selection
479         start/end/anchor to the end of the new text.
480
481 2006-11-01  Jackson Harper  <jackson@ximian.com>
482
483         * XplatUIWin32.cs: When setting the parent change the controls
484         visibility to it's visibility flag, not to it's old parents
485         visibility (.Visible walks the parent chain).
486
487 2006-11-01  Chris Toshok  <toshok@ximian.com>
488
489         * XplatUIX11.cs: revert the #79790 fix, as the simple.
490         XSetTransientForHint fix breaks paint .net's tool windows.  more
491         work needed for that one.
492
493 2006-11-01  Chris Toshok  <toshok@ximian.com>
494
495         * ScrollBar.cs: throw ArgumentException instead of Exception in
496         LargeChange/SmallChange setters.  fixes unit tests.
497
498 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
499
500         * ContainerControl.cs: reverted rev.67183 (which was itself
501         a reversion of rev.66853... eh).
502         
503         * Control.cs: Fixes Reflector hang by changing Focus() call
504         to what it was before rev.66643 (calling Select() here sets 
505         ActiveControl, which in some situations calls back Focus and 
506         eventually does a stack overflow). Temp fix.    
507         Changes to GetNextControl() to not look for children to select when
508         parent cannot be selectable (so it looks for siblings instead)  
509         
510 2006-10-31  Mike Kestner  <mkestner@novell.com>
511
512         * CheckedListBox.cs : off by one error in returned index from
513         ObjectCollection.Add.  Fixes #79758.
514
515 2006-10-31  Chris Toshok  <toshok@ximian.com>
516
517         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
518         calls for the textbox/spinner, to keep from recursing to the point
519         where we crash.  Fixes #79760.
520
521 2006-10-31  Chris Toshok  <toshok@ximian.com>
522
523         * ListControl.cs (set_SelectedValue): don't throw exceptions on
524         null/"" value, just return.  matches ms's behavior and fixes some
525         failing tests.
526
527 2006-10-31  Chris Toshok  <toshok@ximian.com>
528
529         * Control.cs (set_Capture): make a logic a little easier to
530         follow.
531
532         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
533         if it's being destroyed.  A necessary fix surely, but a bandaid
534         also, to fix the stuck capture problem in bug #78413.
535
536 2006-10-31  Chris Toshok  <toshok@ximian.com>
537
538         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
539         convention of clearing hwnd.ClientRect when we set the
540         width/height (so it'll be recalculated by Hwnd).
541
542 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
543
544         * ContainerControl.cs: reversed Contains check from
545         ActiveControl due to hanging problems. This fix
546         partly regresses #79667 (button does not have
547         initial focus), so this might be a symptom for 
548         a larger parenting problem (set_ActiveControl
549         is being called but the child control does
550         not have the parent set yet?)   
551         
552 2006-10-31  Mike Kestner  <mkestner@novell.com>
553
554         * MenuAPI.cs : fix keynav when menu is click activated.
555
556 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
557
558         * ToolStrip*: Version 0.2.
559
560         * MenuStrip.cs: Version 0.1.
561
562         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
563
564 2006-10-30  Chris Toshok  <toshok@ximian.com>
565
566         [ fixes the oversized notify icon issue in bug #79745 ]
567         
568         * NotifyIcon.cs: scale the icon down to the size we're given by
569         the XplatUI layer (this would be faster if we did it once instead
570         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
571         since it's never invoked.
572
573         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
574         pixels high by default, so let's hardcode our systray icon to that
575         size.  The SYSTEM_TRAY protocol should really have a way for
576         client apps to query for the correct icon size.. but oh well.  A
577         couple of patches to deal with the screwy client_window ==
578         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
579         instance, and also make sure we don't XSelectInput twice).
580
581 2006-10-30  Chris Toshok  <toshok@ximian.com>
582
583         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
584         recreating forms.  Control recreation is the bane of my existence.
585         Fix it in a way that keeps everyone happy.
586
587 2006-10-30  Chris Toshok  <toshok@ximian.com>
588
589         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
590         just non-CHILD ones.  otherwise sometimes scrollbars end up with
591         client_windows not being resized to the proper size (ReportBuilder
592         shows this extremely well).
593
594 2006-10-30  Chris Toshok  <toshok@ximian.com>
595
596         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
597         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
598         showing up in the gnome taskbar.  Fixes bug #79790.
599
600 2006-10-30  Chris Toshok  <toshok@ximian.com>
601
602         * ApplicationContext.cs: guard against a NRE.
603
604         * Application.cs: null out the old MainForm for the context, so we
605         don't try to use it again once it's disposed.  Fixes bug #79783.
606
607 2006-10-30  Chris Toshok  <toshok@ximian.com>
608
609         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
610         BindingContext, set the data source directly, otherwise do the
611         lazy approach - the actual ListManager will be created when we get
612         a BindingContext. Fixes bug #79700.
613
614 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
615
616         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
617           XplatUIX11.cs: Remove old 2 parameter SetVisible.
618
619         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
620
621 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
622
623         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
624         of SetVisible that allows a window to be shown, but not activated.
625         This is needed on Windows for MenuStrip, and can probably be used
626         with MainMenu and ComboBox to fix the focus stealing issues on
627         Windows.
628
629         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
630
631 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
632
633         * PictureBox.cs: Fix the output of the ToString method.
634
635 2006-10-29  Chris Toshok  <toshok@ximian.com>
636
637         * Control.cs (get_TopLevelControl): fix bug #79781.
638
639 2006-10-29  Chris Toshok  <toshok@ximian.com>
640
641         * ListControl.cs (set_DataSource): throw Exception here, not
642         ArgumentException, to match MS behavior.
643
644 2006-10-29  Chris Toshok  <toshok@ximian.com>
645
646         * Form.cs: remove the try-catch's around calls to GetWindowState.
647         We can just check the return value.
648
649         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
650         Instead return -1.
651
652         * XplatUI.cs: Add note about additional return value for
653         GetWindowState.
654
655 2006-10-29  Chris Toshok  <toshok@ximian.com>
656
657         * Control.cs (CreateHandle): when we create our handle, we also
658         create the handles of our child controls.  Fixes one of the
659         Control unit tests (CH11).
660
661 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
662
663         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
664
665 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
666
667         * ThemeClearlooks.cs: A little speedup.
668
669 2006-10-27  Chris Toshok  <toshok@ximian.com>
670
671         * Control.cs: implement Control.FromChildHandle in a way that
672         matches the docs (and fixes the failed test.)
673
674 2006-10-27  Chris Toshok  <toshok@ximian.com>
675
676         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
677         comments).
678
679         * DataGrid.cs: implement ResetForeColor such that the tests
680         succeed.
681         
682 2006-10-27  Chris Toshok  <toshok@ximian.com>
683
684         * ToolBarButton.cs: setting text/tooltiptext to null results in it
685         being set to "".  Fixes bug #79759.
686
687 2006-10-27  Jackson Harper  <jackson@ximian.com>
688
689         * TextControl.cs: We need to clear the entire selection area when
690         setting the start, otherwise multiline selections are still
691         visible.
692
693 2006-10-26  Chris Toshok  <toshok@ximian.com>
694
695         * PropertyGridView.cs: 
696
697         - ifdef all the code specific to the double
698         buffer case, and provide some alternatives in the non-doublebuffer
699         code, which makes heavy use of XplatUI.ScrollWindow to move things
700         around without having to invalidate (and cause flicker).  There
701         are still some drawing problems in the non-doublebuffered case, so
702         DOUBLEBUFFER is defined by default.
703
704         - Fix the way dropdowns are handled.  now we explicitly watch for
705         the events which might cause the dropdown to close, and break out
706         of the nested event loop there.  This gets rid of all Capture
707         code, at the expense of the Msg special casing.  Seems to work,
708         though, and fixes bug #79743.
709
710 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
711         * Control.cs: SetIsRecreating now recreates implicitly added
712         child controls as well. Finally fixes #79629. The flag passed to 
713         SetIsRecreating has also been removed since it wasn't used.
714         
715 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
716
717         * PageSetupDialog.cs: Clean some code, fix some bits, 
718         add some checks, and add a printer sub-dialog.
719
720 2006-10-26  Chris Toshok  <toshok@ximian.com>
721
722         * PropertyGrid.cs: make set_SelectedObject call
723         set_SelectedObjects, and move the duplicate logic to the
724         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
725
726         * PropertyGridView.cs: hide the textbox when we get a
727         SelectedObjectsChanged event.
728
729         Fixes bug #79748.
730
731 2006-10-26  Chris Toshok  <toshok@ximian.com>
732
733         * PropertyGridView.cs: deal with the type converter not supporting
734         GetStandardValues() or GetStandardValues() returning null, which
735         is does in the default case.  Fixes #79742.
736
737 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
738
739         * CheckedListBox.cs: nunit no longer crashes when selecting 
740         Project/Edit menu option
741         
742 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
743
744         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
745         is no menu selected. fixes #79739
746
747 2006-10-25  Chris Toshok  <toshok@ximian.com>
748
749         * PropertyGridView.cs: factor out the splitter invalidation code
750         into the SplitterPercent setter, and for kicks implement the
751         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
752         amount in either direction.
753
754 2006-10-25  Chris Toshok  <toshok@ximian.com>
755
756         * PropertyGridView.cs: do some cleanup of the brush used to draw
757         text - read only fields should be grayed out.  not sure how to do
758         this with the textbox, though.  but the textbox's should also be
759         readonly now at least.  Also, hide/show the textbox when resizing
760         the control.
761         
762         * CursorConverter.cs: use System.Reflection when getting the
763         properties of Cursors, as TypeDescriptor.GetProperties isn't
764         returning static properties.
765
766 2006-10-25  Chris Toshok  <toshok@ximian.com>
767
768         * PropertyGridView.cs: factor out the up/down handling, and reuse
769         it for page up/down.  also add End/Home support.
770
771 2006-10-25  Chris Toshok  <toshok@ximian.com>
772
773         * PropertyGridView.cs:
774
775         - ensure the selected grid item is visible in the scrolled area,
776         fixes bug #79572.
777
778         - fix Keys.Down handling when you're on the last item in the
779         propertygrid.
780
781 2006-10-25  Mike Kestner  <mkestner@novell.com>
782
783         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
784         clicks too.  Fixes #79725.
785
786 2006-10-24  Chris Toshok  <toshok@ximian.com>
787
788         * PropertyGrid.cs: use property.Converter instead of
789         TypeDescriptor.GetConverter(property.PropertyType), so we catch
790         TypeConverters declared on the property as well as on the
791         PropertyType.  Fixes bug #79678.
792
793 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
794
795         * MimeIcon.cs, Mime.cs:
796           Fallback to the default platform handler if no shared mime info
797           stuff exists (fixes #79693).
798
799 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
800         * ContainerControl.cs: Incorrect contains check in ActiveControl 
801         from previous fix (duh).
802
803 2006-10-20  Chris Toshok  <toshok@ximian.com>
804
805         * PropertyGridView.cs: the dropdown should be MIN(number of items
806         in list, 15).  Fixes #79551.
807
808 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
809         Fixes #79384, #79394, #79652, #79667
810         * Application.cs: 
811         
812         - Modal windows are now destroyed in the proper order for windows
813         
814         * ContainerControl.cs:
815         
816         - ActiveControl setter has more conditions on when to return:
817                 - if we're reselecting the active control, but it actually
818                 didn't have focus (window hidden or some such), it runs
819                 - if the active control being selected doesn't actually 
820                 exist in the container, it returns
821         
822         * Form.cs
823         
824         - The ShowDialog now gets the current form as the owner when
825         invoking without parameters, and correctly activates the owner 
826         when returning
827         
828         * MessageBox.cs
829         
830         - MessageBox now catches the Escape key to exit
831
832 2006-10-20  Chris Toshok  <toshok@ximian.com>
833
834         * PropertyGridView.cs: fix a number of issues (bug #78565, and
835         most of bug #79676):
836
837         - you can navigate around the property grid with the arrow keys.
838
839         - the dropdown is sized properly when the pg has a vertical
840         scrollbar.
841
842         - fix the indentation for subentries, and properly select the
843         entire label rect.
844
845         - fix the gray bar's drawing (only draw it to the last element,
846         not for the height of the control.  Also make sure we draw that
847         last horizontal grid line.
848
849         - use the same mechanism the datagrid uses wrt the editing textbox
850         when scrolling/resizing/etc.  Namely, we hide it first, do the
851         operation, then show it again (if it's still visible).
852         
853         - aggressively remove a lot of unnecessary refreshes (and also
854         calls to Invalidate(). call more limited variants, and only redraw
855         what we need.)
856         
857         * PropertyGrid.cs:
858
859         - when we're populating the merged collection, fill in the UI
860         parent with either the passed in item, or the category item we
861         create.
862
863         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
864
865         * GridItem.cs: drop some fully qualified names.
866         
867         * GridEntry.cs: add a "UIParent", which is basically the parent
868         treenode.
869
870         * GridItemCollection.cs: add an IndexOf method.
871
872 2006-10-20  Mike Kestner  <mkestner@novell.com>
873
874         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
875         a working win32 NC invalidation mechanism, we can't invalidate
876         menus.  [Fixes #79705]
877
878 2006-10-20  Mike Kestner  <mkestner@novell.com>
879
880         * ListBox.cs : don't update the VScrollbar if the list is empty,
881         just hide it.  [Fixes #79692]
882
883 2006-10-20  Jackson Harper  <jackson@ximian.com>
884
885         * RichTextBox.cs: Handle some special chars better, and don't skip
886         the entire group when we encounter a special char that we don't
887         handle correctly.
888
889 2006-10-18  Chris Toshok  <toshok@ximian.com>
890
891         * PropertyGridView.cs: address a number of issues from bug #79676,
892         mostly of the cosmetic variety.
893
894         - The highlight rectangle for indented items not extends all the
895         way to the left.
896
897         - Indented items aren't indented so much.
898
899         - the dropdown is properly sized width-wise if the pg has a
900         vertical scrollbar.
901
902 2006-10-18  Chris Toshok  <toshok@ximian.com>
903
904         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
905         systray stuff is rather convoluted to begin with.
906
907         systray icons are a single window for some reason (that I haven't
908         figured out yet), and for them, client_window == whole_window.
909         Given the way the tests are structured elsewhere to determine
910         which paints are pending (client vs. nc), that situation will
911         always yield PAINT, not NCPAINT.  So, if we have a pending
912         nc_expose and no pending expose, remove the hwnd from the paint
913         queue, and also set nc_expose_pending to false, to keep us from
914         blocking further expose's adding the hwnd to the paint queue.
915
916         phew.  like i said, a rather convoluted change.  Fixes the
917         notifyicon repaint issues in bug #79645.
918
919 2006-10-18  Chris Toshok  <toshok@ximian.com>
920
921         * Form.cs: when getting the backcolor of the form, don't get
922         base.BackColor, as this allows parents to influence the background
923         color.  This breaks mdi forms.  Instead, if the background_color
924         is empty, return the default.
925
926 2006-10-18  Chris Toshok  <toshok@ximian.com>
927
928         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
929         to being private instead of internal static.
930
931         * Control.cs: remove all the stupid ParentWaitingOnRecreation
932         crap, it wasn't working for more deeply nested controls anyway,
933         and we already have the is_recreating flag - use that instead.
934         Before calling DestroyHandle in RecreateHandle, recurse through
935         the control tree setting it to true.  this returns the recreate
936         code to much of its original simplicity, while now guaranteeing we
937         actually recreate everything we're supposed to.  This change gets
938         fyireporting actually showing mdi children.
939
940 2006-10-17  Chris Toshok  <toshok@ximian.com>
941
942         * Form.cs: remove some debug spew, and collapse some duplicate
943         code at the end of SetClientSizeCore.
944
945         * XplatUIX11.cs: 
946         - add some more debug spew here too wrt Destroy handling.
947         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
948         in Control's handling of WM_DESTROY.
949         - Remove the handling of zombie window DestroyNotifies from the
950         event loop - we don't need it.  Now the only DestroyNotifies we
951         actually handle are ones generated by X.
952         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
953         match gtk's (functioning) handling of this. This keep metacity
954         from leaving droppings in the form of wm borders with no window
955         contents all over the place.
956
957         * Control.cs:
958         - add a bunch of debug spew wrt control recreation.
959         - fix a bug where we weren't tracking Visible properly on
960         recreated hwnds.
961         - fixed the WM_PAINT double buffer handling to support re-entrant
962         calls (yes, i know it's gross, but it's happening to us).
963
964 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
965         * ThemeWin32Classic.cs: changed drawing of selected days
966         to make them look better.
967
968 2006-10-16  Chris Toshok  <toshok@ximian.com>
969
970         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
971         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
972
973         * XplatUIX11.cs: move away from using hwnd.client_dc and
974         hwnd.non_client_dc and on to a stack of dc's (and in window's
975         case, PAINTSTRUCT's), so we can deal with nested Paint calls
976         without puking or not disposing of Graphics objects.
977
978         * XplatUIOSX.cs: same.
979
980         * XplatUIWin32.cs: same.
981
982 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
983
984         * FileDialog.cs: Don't call on_directory_changed inside
985           OnSelectedIndexChanged (it changes the SelectedIndex too).
986           Instead move it to OnSelectionChangeCommitted.
987
988 2006-10-13  Chris Toshok  <toshok@ximian.com>
989
990         * XplatUIX11.cs: more Destroy work.  the current code does the
991         following things, in order:
992
993         1. Enumerates all handles of all controls at or below the one
994         being destroyed, in pre-order.  As it is doing this, it marks the
995         handles as zombie and clears all references to them.
996         
997         2. calls XDestroyWindow on the window passed in.
998
999         3. SendMessage's WM_DESTROY to all he handles in the accumulated
1000         list.
1001
1002 2006-10-13  Chris Toshok  <toshok@ximian.com>
1003
1004         * XplatUIX11.cs: set hwnd.zombie to true before calling
1005         SendMessage (WM_DESTROY).  this keeps us from marking the new
1006         window a zombie, and also keeps us from calling sendmessage at
1007         all.
1008
1009 2006-10-13  Jackson Harper  <jackson@ximian.com>
1010
1011         * TextControl.cs: Do not show the caret and selection at the same
1012         time.  Reduces ugliness by 35%.
1013
1014 2006-10-13  Chris Toshok  <toshok@ximian.com>
1015
1016         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
1017         zombie after we do the recursive call, so we actually do call
1018         SendMessage on the children controls.
1019         (GetMessage): if we find a pending paint event for a zombie hwnd,
1020         remove the hwnd from the paint queue, or else it will always be
1021         there (and we'll effectively loop infinitely)
1022
1023 2006-10-13  Mike Kestner  <mkestner@novell.com>
1024
1025         * MenuItem.cs : add Selected format under keynav too.
1026         Fixes #79528.
1027
1028 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
1029
1030         * PropertyGrid.cs: Fixed some NRE's and small difference between our
1031         implementation and that of MS.
1032
1033 2006-10-13  Chris Toshok  <toshok@ximian.com>
1034
1035         * Control.cs (OnInvalidated) only futz with the invalid_region if
1036         the control is double buffered.  this fixes the apparent hang in
1037         the ListView unit tests.  Someone needs to make the
1038         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
1039
1040 2006-10-13  Chris Toshok  <toshok@ximian.com>
1041
1042         * PropertyGridView.cs:
1043
1044         - do a little refactoring so that only one place calls
1045         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
1046         else call that.  Also make it Refresh, since there are redraw bugs
1047         otherwise (we should take a look at that...)
1048
1049         - do a little more refactoring work to share the body of code
1050         involved with the drop down.  it was duplicated in the code
1051         dealing with the listbox handling and in the code dealing with the
1052         UITypeEditors.
1053
1054         - add a Capture to the dropdown form's control once it's
1055         displayed, and add a MouseDown handler that checks to make sure
1056         the position is inside the control.  If it's not, close the
1057         dropdown.  This fixes #78190.
1058
1059         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
1060         if the value is different than the initial value.
1061         
1062 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
1063
1064         * Control.cs: see #78650
1065         - Fixed GetNextControl for several cases:
1066                 - Changed FindFlatForward to return 
1067                 correct sibling control when more than one
1068                 control has same TabIndex as the currently 
1069                 focused one.
1070                 - Changed FindFlatBackward to loop children
1071                 from last to first and apply same logic as in
1072                 FindFlatForward
1073                 - Changed FindControlForward to search for
1074                 children when control is not a container
1075                 but has children, or search for siblings if
1076                 control is a container...
1077                 - Changed FindControlBackward   to continue
1078                 searching for child controls when hitting 
1079                 Panel-like parents
1080                 
1081         - Fixed Focus method to update ActiveControl
1082         (FocusTest.FocusSetsActive failure)
1083         
1084         * TabControl.cs:
1085         - Focus rectangle now refreshes when gaining
1086         or losing focus
1087         - Removed grab for Tab key on IsInputKey that 
1088         was keeping tab navigation from working (#78650)
1089
1090 2006-10-13  Chris Toshok  <toshok@ximian.com>
1091
1092         * PropertyGridView.cs:
1093         - Rewrite SetPropertyValue to loop over SelectedGridItem's
1094         SelectedObjects.
1095
1096         - Deal with GridItem.Value == null a few places.
1097
1098         * PropertyGrid.cs: 
1099         - replace the PopulateGridItemCollection with a pair of methods
1100         which compute the intersection of all the properties in the
1101         SelectedObjects array.  Fixes #79615.
1102
1103         - Throw ArgumentException from set_SelectedObjects if there's a
1104         null in the array.
1105
1106         - Add GetTarget method which can be used to traverse up the
1107         GridItem.Parent chain.  It depends on the assumption that
1108         selected_objects for different GridEntries are always in the same
1109         order (a safe assumption).  Use this method and loop over all the
1110         selected objects in the entry when calling RemoveValueChanged and
1111         AddValueChanged.
1112         
1113         * GridEntry.cs: Make this handle multiple selected objects.
1114         .Value returns null if not all the selected objects share the same
1115         value.
1116
1117 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
1118         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
1119           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
1120           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
1121           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
1122           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
1123         add additional functionality.
1124
1125 2006-10-12  Mike Kestner  <mkestner@novell.com>
1126
1127         * ErrorProvider.cs : new ToolTipWindow ctor sig.
1128         * HelpProvider.cs : new ToolTipWindow ctor sig.
1129         * ToolTip.cs : remove ToolTip param from Window sig since it is
1130         not used.
1131         * ToolBar.cs : add tooltip support.  Fixes #79565.
1132
1133 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1134
1135         * ComboBox.cs: move the events in set_SelectedIndex to 
1136         after the call to HighlightIndex in order to avoid 
1137         possible recursion and subsequent problems with the call
1138         to HighlightIndex and include a range check in 
1139         set_HighlightIndex. Fixes #79588
1140         
1141 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1142
1143         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
1144         to ui thread's settings instead of sunday. 
1145         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
1146
1147 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
1148
1149         * DateTimePicker.cs
1150         * MonthCalendar.cs
1151         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
1152         and implement missing functionality (selecting different parts 
1153         of the date and edit them individually with the keyboard).
1154         
1155 2006-10-11  Chris Toshok  <toshok@ximian.com>
1156
1157         * Control.cs (OnInvalidated): fix NRE relating to last change.
1158
1159 2006-10-11  Chris Toshok  <toshok@ximian.com>
1160
1161         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
1162         atoms in _NET_WM_STATE here if the window is maximized.  We need
1163         to do this because we're *replacing* the existing _NET_WM_STATE
1164         property, so those atoms will be lost otherwise, and any further
1165         call to GetWindowState will return Normal for a window which is
1166         actually maximized.  Fixes #79338.
1167
1168 2006-10-11  Jackson Harper  <jackson@ximian.com>
1169
1170         * TextControl.cs: Special case for setting selection end to
1171         selection start, we basically kill the anchor.
1172         - some todo comments.
1173
1174 2006-10-11  Chris Toshok  <toshok@ximian.com>
1175
1176         * Control.cs: switch to using an "invalid_region" to track which
1177         parts of the image buffer need updating.  This is more code than
1178         the simple fix from r66532.  That version just attempted to always
1179         fill the entire buffer on redraw, which turns out to be
1180         inefficient when invalidating small rectangles.  This version
1181         simply adds the invalid rectangle to the invalid region.  When we
1182         get any WM_PAINT message we see if it can be filled using the
1183         image buffer, and if it can't (if the paint event's clip rectangle
1184         is visible in the invalid region) we first fill the image buffer.
1185         So, the image buffer is still a cache, we just fill it lazily.
1186
1187         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
1188         need it any longer.
1189
1190 2006-10-11  Chris Toshok  <toshok@ximian.com>
1191
1192         * XplatUIX11.cs (SetWindowPos): we need to update both position as
1193         well as size after calling XMoveResizeWindow.  This keeps us from
1194         ignoring future SetWindowPos calls.  Fixes the disappearing
1195         DateTimePicker in the ToolBarDockExample from bug #72499.
1196
1197 2006-10-11  Chris Toshok  <toshok@ximian.com>
1198
1199         * TextBoxBase.cs: reorder things a bit when it comes to
1200         resizing-causing-recalculation.  we were recalculating the
1201         document when our position was changed, which shouldn't happen.
1202         We only care about size changes.  Clear up some more redundant
1203         recalculation calls while I'm at it.  This makes the toolbar dock
1204         example snappy when you're just dragging toolbars around (since it
1205         causes a relayout whenever you move one.)
1206
1207 2006-10-11  Chris Toshok  <toshok@ximian.com>
1208
1209         * ToolBarButton.cs (get_Rectangle): this only returns
1210         Rectangle.Empty if Visible == false, or Parent == null.
1211         Parent.Visible doesn't matter.
1212
1213 2006-10-10  Chris Toshok  <toshok@ximian.com>
1214
1215         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
1216         by .net 1.1, so switch to an internal method instead.
1217
1218 2006-10-10  Chris Toshok  <toshok@ximian.com>
1219
1220         * Control.cs (WM_PAINT): when a control is double buffered we draw
1221         initially to the ImageBuffer and then copy from there.  But when a
1222         parent control which has child controls is double buffered, the
1223         initial drawing doesn't encompass the entire ClientRectangle of
1224         the parent control, so we end up with uninitialized bits (this is
1225         easily seen by dragging the top toolbar in
1226         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
1227         manually set the ClipRectangle of the paint_event (only the one we
1228         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
1229         of the nastiness in bug #72499.
1230
1231         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
1232         which we use in Control.cs's WM_PAINT handling.
1233
1234 2006-10-10  Jackson Harper  <jackson@ximian.com>
1235
1236         * TextBoxBase.cs: Finish off the autoscrolling stuff.
1237
1238 2006-10-10  Chris Toshok  <toshok@ximian.com>
1239
1240         * Cursor.cs: Apply a slightly different patch to the one suggested
1241         in #79609.
1242
1243 2006-10-10  Jackson Harper  <jackson@ximian.com>
1244
1245         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
1246         not the parent form.
1247         * TextControl.cs: use difference in old line count vs new count to
1248         calculate how many lines were added, this takes into account soft
1249         line breaks properly.
1250
1251 2006-10-10  Chris Toshok  <toshok@ximian.com>
1252
1253         * LinkLabel.cs: don't call MeasureCharacterRanges against a
1254         rectangle located at 0,0 and the size of the text.  Use
1255         ClientRectangle instead.  This fixes rendering of non-left aligned
1256         link labels.
1257
1258 2006-10-10  Jackson Harper  <jackson@ximian.com>
1259
1260         * TextBoxBase.cs: When we set the selection start position the
1261         caret.
1262         * TextControl.cs: Need to update the caret when we decrement it to
1263         zero.
1264         - Make sure that the selection_visible flag gets reset to false if
1265         the selection isn't visible.  Before this you could get it set to
1266         visible by changing the selection start, then changing the end to
1267         equal the start.
1268
1269 2006-10-09  Jackson Harper  <jackson@ximian.com>
1270
1271         * TreeView.cs: Don't update scrollbars when we aren't visible.
1272         * TreeNodeCollection.cs: Only need to update scrollbars if being
1273         added to an expanded visible node or the root node.
1274
1275 2006-10-09  Chris Toshok  <toshok@ximian.com>
1276
1277         * XplatUIX11.cs (SendMessage): fix NRE.
1278
1279 2006-10-09  Jackson Harper  <jackson@ximian.com>
1280
1281         * TextBoxBase.cs: Implement horizontal autoscrolling.
1282         * TextControl.cs: Add a movement types that allows moving forward
1283         and backwards without wrapping.
1284
1285 2006-10-09  Mike Kestner  <mkestner@novell.com>
1286
1287         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
1288         with focus "expansion" of labels.  Fixes #79532 and then some.
1289         * ThemeWin32Classic.cs : add LineLimit to ListView label format
1290         when wrapping.
1291
1292 2006-10-09  Jackson Harper  <jackson@ximian.com>
1293
1294         * TextBoxBase.cs: Set the default max values to MaxValue since
1295         we use the scrollbar for autoscrolling and the default value is
1296         100.  If we don't do this the caret won't keep up with typing
1297         after about 18 characters.
1298         * TextControl.cs: Make sure the selection is offset by the
1299         viewport x.  This fixes selection when using auto scrolling.
1300
1301 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
1302         
1303         * Form.cs: The active control should be selected after the 
1304         OnLoad so that any child control initialization that affects
1305         the selection is done. Fixes #79406
1306
1307 2006-10-06  Chris Toshok  <toshok@ximian.com>
1308
1309         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
1310         to have no evil effects.
1311
1312         - Stop selecting StructureNotifyMask on non-toplevel windows.
1313
1314           The only way children should be resized is by using the SWF api,
1315           and we already send WM_WINDOWPOSCHANGED messages in those cases.
1316           Toplevel windows can be interacted with via the window manager,
1317           and so we keep the input mask there.
1318
1319           The other event StructureNotifyMask gives us (that we care
1320           about) is DestroyNotify.  The code is already structured such
1321           that it assumes we won't be getting a DestroyNotify event for
1322           the window we pass to XDestroyWindow (which is what
1323           StructureNotifyMask is supposed to guarantee.)  So, that code
1324           shouldn't be affected by this either.
1325
1326         - Stop selecting VisibilityChangeMask altogether.
1327
1328           We weren't doing anything with the resulting events anyway.
1329         
1330         This vastly reduces the number of X requests and events we see
1331         when resizing/laying out a large ui.
1332
1333 2006-10-06  Chris Toshok  <toshok@ximian.com>
1334
1335         * ScrollableControl.cs (DisplayRectangle): we need to take into
1336         account the DockPadding regardless of whether or not auto_scroll
1337         == true.  rework this slightly to this effect, and fix bug #79606,
1338         and part of #72499 (you can now see the drag handles and drag
1339         toolbars around).
1340
1341 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
1342
1343         * ListViewItem.cs: Collections of selected and checked items are now
1344         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
1345         we mark the collection "dirty".
1346         * ListView.cs: Marked collections readonly. Modified UpdateSelection
1347         to only clear SelectedItems when a new item is selected and MultiSelect
1348         is enabled. CheckedItems and SelectedItems now subscribe to Changed
1349         event of ListViewItemCollection, and mark its list dirty whenever
1350         that event is fire. This allows us to return selected/checked items 
1351         in the same order as they are in the Items collection. This matches
1352         the MS behavior.
1353
1354 2006-10-06  Chris Toshok  <toshok@ximian.com>
1355
1356         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
1357         right mouse clicks.  Fixes bug #79593.
1358
1359 2006-10-06  Chris Toshok  <toshok@ximian.com>
1360
1361         * Splitter.cs: doh, fix splitters that don't want to cancel the
1362         movement when you drag them.  Also, impose the limits on the
1363         values we send to the SplitterMovingEvent.  Fixes #79598.
1364
1365 2006-10-06  Jackson Harper  <jackson@ximian.com>
1366
1367         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
1368         since we use this for auto scrolling also.
1369
1370 2006-10-05  Chris Toshok  <toshok@ximian.com>
1371
1372         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
1373         beginning to think that most datagrid column types don't need this
1374         method.  Fixes bug #79392.
1375
1376 2006-10-05  Chris Toshok  <toshok@ximian.com>
1377
1378         * DataGrid.cs: move back to a more lazy scheme for creating the
1379         CurrencyManager, so we aren't updating it every time you set
1380         either DataSource or DataMember.  Also, don't call
1381         RecreateDataGridRows if the currency manager hasn't changed.
1382
1383 2006-10-05  Chris Toshok  <toshok@ximian.com>
1384
1385         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
1386         emitted, SelectedIndex should already be updated.  Fixes bug
1387         #78929.
1388
1389 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
1390
1391         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
1392           ToolStripTextBox.cs: Initial commit.
1393         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
1394
1395 2006-10-05  Jackson Harper  <jackson@ximian.com>
1396
1397         * TabControl.cs: We need to invalidate the tab control area when
1398         new ones are added (duh).
1399
1400 2006-10-03  Chris Toshok  <toshok@ximian.com>
1401
1402         * Form.cs (ProcessDialogKey): if the focused control is in this
1403         form and is a button, call its PerformClick method here.  Fixes
1404         #79534.
1405
1406 2006-10-04  Jackson Harper  <jackson@ximian.com>
1407
1408         * TabPage.cs: Ignore setting of Visible, and add an internal
1409         method for setting the controls visibility.  TabPage's Visible
1410         property is a little strange on MS, this seems to make us
1411         compatible, and fixes cases where people set all the tab pages to
1412         visible.
1413         * TabControl.cs: Use the new internal setting on tab pages
1414         visibility.
1415
1416 2006-10-03  Mike Kestner  <mkestner@novell.com>
1417
1418         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
1419
1420 2006-10-03  Mike Kestner  <mkestner@novell.com>
1421
1422         * ListView.cs : use is_visible instead of Visible to check if 
1423         scrollbars should be placed/sized.  Also some max_wrap_width
1424         love for LargeIcon view.  [Fixes #79533]
1425
1426 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1427
1428         * TextControl.cs :
1429           Make set_TextAlign() do actually update the align. Fixed #78403.
1430
1431 2006-10-03  Chris Toshok  <toshok@ximian.com>
1432
1433         * DataGrid.cs: fix a crash when switching datasources if the
1434         vertical scrollbar is at someplace other than Value = 0.  Also,
1435         reduce the number of recalculation passes we do in SetDataSource
1436         from 2 to 1.
1437
1438 2006-10-03  Jackson Harper  <jackson@ximian.com>
1439
1440         * TextBoxBase.cs: Move the if value the same bail check up, we
1441         don't want to empty the document if it is already empty, this
1442         seems to severly mess up the caret.  TODO: I should probably fix
1443         the empty statement to update teh caret somehow.
1444
1445 2006-10-03  Chris Toshok  <toshok@ximian.com>
1446
1447         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
1448         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
1449         reflection, an internal row type, properties on said type, etc.)
1450         will work with our datagrid.  Fixes #79531.
1451
1452 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
1453
1454         * FileDialog.cs: Don't crash if a path is not accessible
1455           (System.UnauthorizedAccessException). Fixes #79569.
1456         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
1457           a ':' too. Return unknown icon for those paths/files.
1458
1459 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
1460
1461         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
1462         GetContainerControl returns null.
1463
1464 2006-10-02  Chris Toshok  <toshok@ximian.com>
1465
1466         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
1467         call to XGetWindowAttributes instead of "handle".  fixes an X
1468         error using notifyicon after the NotifyIconWindow to Form base
1469         class switch.
1470
1471 2006-10-02  Chris Toshok  <toshok@ximian.com>
1472
1473         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
1474         server grab and looping we need to do to get down to the most
1475         deeply nested child window.
1476         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
1477         QueryPointer again after the WarpPointer so we can generate a
1478         proper (fake) MotionNotify event to be enqueued in the destination
1479         window's queue.
1480         (GetCursorPos): call QueryPointer.
1481
1482         Fixes #79556.
1483
1484 2006-10-02  Jackson Harper  <jackson@ximian.com>
1485
1486         * NotifyIcon.cs: Derive the notify icon from a form, so things
1487         like FindForm work on it.
1488         - Swallow the WM_CONTEXTMENU message, since that is generated on
1489         mouse down, and context menu is a mouse up kinda guy.  I believe
1490         the correct fix here is probably to make the notify icon entirely
1491         NC area, but this seems to work fine for anyone not manipulating
1492         WndProc.
1493
1494 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
1495
1496         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
1497           ToolStripItemCollection.cs, ToolStripLabel.cs,
1498           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
1499           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
1500           Initial implementation.
1501         * TextRenderer.cs: Provide padding to MeasureText.
1502
1503 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
1504
1505         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
1506         of ButtonBaseAccessibleObject. Fix bug #79552.
1507
1508 2006-10-02  Jackson Harper  <jackson@ximian.com>
1509
1510         * MdiWindowManager.cs: When maximizing use the containers client
1511         rect, not it's bounds, so nc area is accounted correctly.
1512         - Use the parent form's size for the menu position, since the
1513         client isn't always the full form size.
1514
1515 2006-10-01  Chris Toshok  <toshok@ximian.com>
1516
1517         * ScrollableControl.cs: make sure neither right_edge or
1518         bottom_edge are < 0, since they're used as LargeChange for the
1519         horiz/vert scrollbars respectively.  Fixes #79539.
1520
1521 2006-10-01  Chris Toshok  <toshok@ximian.com>
1522
1523         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
1524         the xplatuix11 code can cause us to destroy/recreate our handle.
1525
1526         * XplatUIX11.cs
1527         (SystrayAdd):
1528         - this code can be invoked many times for the same Hwnd.  Make
1529           sure we only destroy the client window once (the first time this
1530           method is called).  This fixes bug #79544.
1531         - Remove the call to the improperly bound XSync.  why we had two
1532           bindings to this, I will never know, but this call resulted in
1533           events being discarded from the queue(!).
1534         - correct a misunderstanding of _XEMBED_INFO - the second atom is
1535           not our current state but the state we wish to be in.  So, 0 if
1536           we don't want to be mapped.  Change it to 1.
1537         (SystrayRemove): The XEMBED spec makes mention of the fact that
1538         gtk doesn't support the reparent of client windows away from the
1539         embedder.  Looking at gtksocket-x11.c seems to agree with this.
1540         The only avenue we have for removing systray icons is to destroy
1541         them.  We don't want the handle to go away for good, though, so
1542         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
1543         #79545.
1544         
1545 2006-10-01  Chris Toshok  <toshok@ximian.com>
1546
1547         * Form.cs (WndProc): inline the native_enabled variable usage into
1548         the cases in which it's used.  Fixes #79536.
1549
1550 2006-09-29  Mike Kestner  <mkestner@novell.com>
1551
1552         * ListView.cs : toggle the selection state for ctrl clicks in 
1553         multiselect mode. [Fixes #79417]
1554
1555 2006-09-29  Mike Kestner  <mkestner@novell.com>
1556
1557         * ListView.cs : kill CanMultiSelect and refactor the selection
1558         code to support multiselection in the absence of mod keys. Steal
1559         arrow/home/end keys by overriding InternalPreProcessMessage to
1560         restore regressed keynav behavior.
1561         [Fixes #79416]
1562
1563 2006-09-29  Jackson Harper  <jackson@ximian.com>
1564
1565         * MdiClient.cs: Repaint the titlebars when the active window is
1566         changed.
1567
1568 2006-09-29  Chris Toshok  <toshok@ximian.com>
1569
1570         * Application.cs: when entering a runloop with a modal, make sure
1571         the hwnd is enabled.  Fixes #79480.
1572
1573 2006-09-29  Chris Toshok  <toshok@ximian.com>
1574
1575         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
1576         when ListManager.CanAddRows == false, bump us back one.
1577
1578         * DataGridColumnStyle.cs (ParentReadOnly): remove the
1579         listmanager.CanAddRows check.  This makes ArrayLists uneditable
1580         using a datagrid, which is not right.
1581         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
1582         is an IEditable, but call property_descriptor.SetValue regardless.
1583         fixes #79435.
1584
1585 2006-09-29  Chris Toshok  <toshok@ximian.com>
1586
1587         * DataGridBoolColumn.cs: we need to test equality in the face of
1588         possible null values (as is the case with the default NullValue).
1589         This patch keeps us from crashing in that case.
1590
1591 2006-09-29  Jackson Harper  <jackson@ximian.com>
1592
1593         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
1594         here, since it will get called for every node collection in the
1595         tree. This is now done in the treeview once the sorting is
1596         finished.
1597         * TreeView.cs: Recalculate the visible order, and update the
1598         scrollbars after sorting, set the top nope to the root so that the
1599         recalc actually works.
1600
1601 2006-09-29  Chris Toshok  <toshok@ximian.com>
1602
1603         * LinkLabel.cs: more handling of the default link collection in
1604         the face of LinkArea manipulation.  The default link collection
1605         contains 1 element (start=0,length=-1).  If the user sets LinkArea
1606         to anything and the links collection is the default, clear it.
1607         Then only add the link if its nonempty.  Fixes #79518.
1608
1609 2006-09-29  Chris Toshok  <toshok@ximian.com>
1610
1611         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
1612         piece correctly when we hit a '\n'.  Fixes #79517.
1613
1614 2006-09-29  Chris Toshok  <toshok@ximian.com>
1615
1616         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
1617         change the binding of gdk_init_check to take two IntPtr's, and
1618         pass IntPtr.Zero for both of them.  Fixes #79520.
1619
1620 2006-09-29  Mike Kestner  <mkestner@novell.com>
1621
1622         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
1623         [Fixes #78779]
1624
1625 2006-09-28  Jackson Harper  <jackson@ximian.com>
1626
1627         * XplatUIX11.cs: When translating NC messages make sure we go from
1628         whole window to screen, not client window to screen.
1629         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
1630         method doesn't exist
1631         - Skip over controls that aren't forms when arranging.
1632
1633 2006-09-28  Jackson Harper  <jackson@ximian.com>
1634
1635         * XplatUIWin32.cs: Clip the rect to the parent window.
1636         * XplatUIStructs.cs: Add clipping modes struct.
1637         * InternalWindowManager.cs: New private method that factors title
1638         bar heights in when calculating the pos of an NC mouse message.
1639         - Use SendMessage to force a paint when the form's size is changed
1640         instead of painting the decorations immediately.
1641         - Don't let the NC button click messages get to DefWndProc,
1642         because they will attempt to handle windowing themself, and this
1643         messes up z-order (it will put them in front of the scrollbars).
1644         * XplatUIX11.cs: Make sure that we don't reset window managers if
1645         we already have one (ie the window is an MDI window).
1646
1647 2006-09-28  Chris Toshok  <toshok@ximian.com>
1648
1649         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
1650         menu code really needs going over.
1651
1652 2006-09-27  Chris Toshok  <toshok@ximian.com>
1653
1654         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
1655         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
1656         window is maximizable.  So, we need to make sure that even if we
1657         clear the border/wm frame of those functions, they're still
1658         available (basically, we remove the decoration without removing
1659         the function).  Half the fix for #79338.
1660
1661 2006-09-27  Chris Toshok  <toshok@ximian.com>
1662
1663         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
1664         Fixes bug #79515.
1665
1666 2006-09-27  Chris Toshok  <toshok@ximian.com>
1667
1668         * Splitter.cs: reorder things a bit so that we don't actually
1669         draw/move the splitter until after calling OnSplitterMoving.  This
1670         lets users cancel/disallow the movement by explicitly setting
1671         event.SplitX/SplitY.  Fixes #79372.
1672
1673 2006-09-27  Jackson Harper  <jackson@ximian.com>
1674
1675         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
1676         because it is most likely on a window being destroyed, and that
1677         will give us an X11 error.
1678
1679 2006-09-27  Chris Toshok  <toshok@ximian.com>
1680
1681         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
1682         the dropdown button now toggles between showing and hiding the
1683         dropdown.  Also, get rid of dropdown_form_showing and just use
1684         dropdown_form.Visible.  We still don't do a grab, but I'll leave
1685         that part to someone who has handled Capture-fu before.
1686
1687 2006-09-27  Chris Toshok  <toshok@ximian.com>
1688
1689         * DataGrid.cs: return false if alt isn't pressed when '0' is
1690         pressed.  this keeps the '0' key from being swallowed, and fixes
1691         bug #79350.
1692
1693 2006-09-27  Chris Toshok  <toshok@ximian.com>
1694
1695         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
1696         Calling Refresh (in response to a scrollbar event) screws up the
1697         scrollbar painting.  Fixes bug #78923.
1698
1699 2006-09-27  Chris Toshok  <toshok@ximian.com>
1700
1701         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
1702         then insert into hashtable" blocks threadsafe.
1703
1704 2006-09-27  Chris Toshok  <toshok@ximian.com>
1705
1706         * MessageBox.cs (CreateParams): the styles should be |'ed with our
1707         baseclass's, since otherwise the
1708         ControlBox/MinimizeBox/MaximizeBox assignments above have no
1709         effect.  This gets the close button back in messageboxes.
1710
1711 2006-09-27  Chris Toshok  <toshok@ximian.com>
1712
1713         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
1714         flag, not just != 0.  this makes flags that are actually multiple
1715         bits (like WS_CAPTION) work.  fixes bug #79508.
1716
1717 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
1718
1719         * PageSetupDialog.cs: add support for getting and settings the 
1720         paper size, source and orientation.
1721
1722 2006-09-26  Chris Toshok  <toshok@ximian.com>
1723
1724         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
1725         and caption == "", we need to remove the resize handles as well as
1726         the title bar.
1727
1728         * Control.cs (set_Text): turns out that setting Text on a form
1729         should change the WM styles on the window, since if ControlBox ==
1730         false, the only way to get a window border is to have a non-""
1731         Text property.  check winforms/forms/text.cs for an example.  so,
1732         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
1733         update both window styles and title.  This fixes a lot of dialogs
1734         (including the preferences dialog in MonoCalendar.)
1735
1736 2006-09-26  Chris Toshok  <toshok@ximian.com>
1737
1738         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
1739         control isn't a Form), call Win32ShowWindow to hide the window,
1740         but don't update the control Visible property.  When we reparent
1741         back to a parent control, call SetVisible in order for the
1742         window's visibility to be reinstated.
1743
1744         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
1745         the FosterParent.
1746
1747         * Control.cs (ControlCollection.Remove): remove that value.Hide()
1748         call for good, since it breaks MonoCalendar (and other things I'm
1749         sure.) Also, set all_controls to null *after* the owner calls,
1750         which end up regenerating it.
1751         (ChangeParent): allow new_parent to be == null, passing
1752         IntPtr.Zero down to XplatUI.
1753
1754         this fixes #79294 the right way.
1755
1756 2006-09-26  Mike Kestner  <mkestner@novell.com>
1757
1758         * GridEntry.cs : internal SetParent method.
1759         * PropertyGrid.cs : attach to property changed on the proper
1760         target if we have a hierarchical grid with subobjects. Setup
1761         GridItem.Parent for hierarchical items.
1762         * PropertyGridView.cs : Set value on the correct target for
1763         hierarchical grids. [Fixes #78903]
1764
1765 2006-09-26  Chris Toshok  <toshok@ximian.com>
1766
1767         * Control.cs (ChildNeedsRecreating): this should return true if
1768         either we're being recreated and the child is in our list, or our
1769         parent is waiting for our recreation.
1770
1771 2006-09-26  Chris Toshok  <toshok@ximian.com>
1772
1773         * Control.cs (ControlCollection.Remove): reinstate the
1774         value.Hide() call as suggested in bug #79294.
1775
1776 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
1777
1778         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
1779         coordinates (versus a relative move).
1780
1781 2006-09-26  Chris Toshok  <toshok@ximian.com>
1782
1783         * Control.cs: rework child recreation a little bit.  It turns out
1784         that we race between the DestroyNotify the WM_DESTROY message.  If
1785         the parent gets its DestroyNotify before the child gets the
1786         WM_DESTROY message, the child ends up not recreating (since the
1787         parent finishes its recreation on DestroyNotify, and the child
1788         checks ParentIsRecreating.)
1789
1790         So, instead we store off a list of all the child controls which
1791         need to be recreated when the parent control starts to recreate
1792         itself.  Then, when child controls get their WM_DESTROY message we
1793         check to see if they're in the parent's pending recreation list,
1794         and if so, we recreate.  This removes all dependency on ordering
1795         from the code and fixes the initial MonoCalendar upgrade dialog.
1796         
1797 2006-09-26  Jackson Harper  <jackson@ximian.com>
1798
1799         * TextControl.cs: Use the Line to get the length of the line,
1800         since soft line breaks can change the end line.
1801
1802 2006-09-26  Chris Toshok  <toshok@ximian.com>
1803
1804         * Control.cs (ControlCollection.AddImplicit): don't add the
1805         control again if it's already in one of our lists.  This keeps us
1806         from adding controls over and over again for comboboxes when their
1807         handle gets recreated (as the combobox adds implicit controls in
1808         OnHandleCreated).  Fixes the X11 errors in bug #79480.
1809
1810 2006-09-26  Jackson Harper  <jackson@ximian.com>
1811
1812         * TextControl.cs: When deleting characters make sure that any
1813         orphaned zero lengthed tags get deleted.
1814         - Fix ToString for zero lengthed tags.
1815
1816 2006-09-25  Jackson Harper  <jackson@ximian.com>
1817
1818         * TextControl.cs: When getting a tag at the location there can be
1819         multiple tags at the same spot, these are 0-lengthed tags that
1820         appear when extra formatting has been stuck in a location.  We
1821         need to pull out the last of these 0 lengthed tags.
1822
1823 2006-09-25  Jackson Harper  <jackson@ximian.com>
1824
1825         * TextControl.cs: Fix print out in debug method.
1826         * TextBoxBase.cs: When text is set bail if we are setting to the
1827         previous value.
1828         
1829 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
1830
1831         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
1832           It is now possible to change the selected index in a FontXXXListBox
1833           with the up and down arrow keys from the FontXXXTextBoxes.
1834           Also, send the FontXXXTextBox mouse wheel event to the corresponding
1835           FontXXXListBoxes to match ms.
1836
1837 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
1838
1839         * SystemInformation.cs: Return a clone of the theme's MenuFont because
1840         anyone can dispose it, anytime. All other properties returns enums, 
1841         structs or basic types so they don't need such tricks.
1842
1843 2006-09-22  Jackson Harper  <jackson@ximian.com>
1844
1845         * XplatUI.cs:
1846         * XplatUIWin32.cs:
1847         * Clipboard.cs:
1848         * DataFormats.cs:
1849         * XplatUIOSX.cs:
1850         * XplatUIDriver.cs: Update interface to add a primary selection
1851         flag, so the driver can use the primary selection buffer if
1852         needed.
1853         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
1854
1855         * RichTextBox.cs: We need to supply the data object to paste now
1856         (so we can choose to supply CLIPBOARD or PRIMARY).
1857         * TextBoxBase.cs: Supply data object to paste (see above).
1858         - Middle click uses the primary selection data object.
1859         
1860 2006-09-21  Chris Toshok  <toshok@ximian.com>
1861
1862         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
1863         of SetWMStyles.  It's still a rat's nest and is largely
1864         order-dependent which I dislike immensely.  This also fixes the X
1865         button disappearing from toplevel forms.
1866
1867 2006-09-21  Mike Kestner <mkestner@novell.com>
1868
1869         * ListBox.cs: move Jordi's click/dblclick raising code to the
1870         mouse up handler.
1871
1872 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
1873
1874         * ListBox.cs: Fixes 79450
1875
1876 2006-09-21  Mike Kestner <mkestner@novell.com>
1877
1878         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
1879         to deal with people updating the TreeNodeCollection after the tree
1880         is disposed.  "Fixes" 79330.
1881
1882 2006-09-20  Jackson Harper <jackson@ximian.com>
1883
1884         * TextControl.cs: Push the cursor record onto the undo stack
1885         before the delete action. This fixes 78651.
1886
1887 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
1888
1889         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
1890         CreateParams. Fixes 79329.
1891
1892 2006-09-19  Chris Toshok  <toshok@ximian.com>
1893
1894         * XplatUIX11.cs: a couple of blanket code massage passes to clean
1895         things up a bit.  First, get rid of the NetAtoms array (and the NA
1896         enum), and just embed the atoms as static fields.  Also, add a
1897         couple of functions (StyleSet and ExStyleSet) to clean up all the
1898         bitmask testing of styles.
1899
1900         * X11Structs.cs: remove the NA enum, not needed anymore.
1901         
1902 2006-09-19  Chris Toshok  <toshok@ximian.com>
1903
1904         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
1905         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
1906         added cleanup to get MessageBox titles appearing again, which were
1907         broken by my earlier fix for caption-less/ControlBox-less windows.
1908
1909 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
1910
1911         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
1912           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
1913           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
1914           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
1915           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
1916           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
1917           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
1918           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
1919           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
1920           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
1921           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
1922             Inital import.
1923         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
1924           ToolStripButton.cs: Stubs needed for above.
1925         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
1926
1927 2006-09-15  Chris Toshok  <toshok@ximian.com>
1928
1929         * XplatUIX11.cs:
1930         - make the MessageQueues hashtable Synchronized.
1931         
1932         - SendMessage: if the Hwnd is owned by a different thread, use the
1933         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
1934         thread.  Fixes bug #79201.
1935
1936 2006-09-15  Chris Toshok  <toshok@ximian.com>
1937
1938         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
1939         ControlBox == false, we disallow maximize/minimize/close.  If the
1940         form Caption is "" we also disallow move (and get rid of the Title
1941         decoration).  Unfortunately, regardless of how things are set,
1942         we're stuck with the Title and WM menu.
1943
1944 2006-09-15  Chris Toshok  <toshok@ximian.com>
1945
1946         * Application.cs: add locking around the static message_filters
1947         ArrayList, part of #79196.
1948
1949 2006-09-15  Chris Toshok  <toshok@ximian.com>
1950
1951         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
1952         Form.ControlBox == false, the window has no titlebar nor resize
1953         handles.  fixes bug #79368.
1954
1955 2006-09-15  Chris Toshok  <toshok@ximian.com>
1956
1957         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
1958         >= 0.  Fixes bug #79370.
1959
1960 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
1961         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
1962         * Control.cs:
1963             Add properties: LayoutEngine, Margin, DefaultMargin.
1964             Add method: GetPreferredSize.
1965             Move layout logic from PerformLayout to layout engines. 
1966
1967 2006-09-13  Chris Toshok  <toshok@ximian.com>
1968
1969         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
1970         fix for #79326 broke #78718, so this change addresses that.
1971
1972         - in SendWMDestroyMessages remove the call to
1973         CleanupCachedWindows, since we might be recreating the control and
1974         need to maintain the references to right Hwnd handles.  Also, set
1975         the zombie flag to true for each of the children in the hierarchy
1976         instead of calling hwnd.Dispose.  This will cause GetMessage to
1977         ignore all events for the window except for DestroyNotify.
1978
1979         - In GetMessage, ignore messages except for DestroyNotify for
1980         zombie hwnds.
1981         
1982         * Control.cs: revert the is_recreating fix from the last
1983         ChangeLog.  It's definitely "right", but it breaks switching from
1984         an MDI form to a non-MDI form.  Will need to revisit that.
1985
1986         * Hwnd.cs: add a zombie flag, which means "the
1987         client_window/whole_window handles are invalid, but we're waiting
1988         for the DestroyNotify event to come in for them".  Set the flag to
1989         false explicitly if setting WholeWindow/ClientWindow, and also
1990         when Disposing.
1991         
1992 2006-09-13  Chris Toshok  <toshok@ximian.com>
1993
1994         * XplatUIX11.cs: rework window destruction slightly.
1995
1996         - when destroying the windows associated with a control, we don't
1997         need 2 separate XDestroyWindow calls.  Just the one for the
1998         whole_window (or for client_window if whole_window is somehow
1999         IntPtr.Zero -- can this happen?) is enough.
2000
2001         - reworked SendWMDestroyMessages slightly, so we always dispose
2002         the child control hwnd's after sending the messages.
2003         
2004         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
2005         the two places it was used (one was even using hwnd.Handle and the
2006         other hwnd.client_window.  ugh), adding another call in
2007         SendWMDestroyMessages.  We need this new call because now the
2008         DestroyNotify events in the queue will be ignored for the child
2009         controls (as their hwnd's were disposed, and the window id's
2010         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
2011
2012         - this fixes bug #79326.
2013
2014 2006-09-13  Chris Toshok  <toshok@ximian.com>
2015
2016         * Control.cs: don't always set is_recreating to false at the end
2017         of RecreateHandle, since sometimes we're not done (and won't be
2018         until WndProc handles the WM_DESTROY message).  Also, set
2019         is_recreating to false in the WM_DESTROY handling code.  Part of
2020         the fix for bug #79326.
2021
2022 2006-09-13  Miguel de Icaza  <miguel@novell.com>
2023
2024         * X11DesktopColors.cs: Start the droppage of debugging messages.
2025
2026         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
2027
2028 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
2029
2030         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
2031
2032 2006-09-12  Chris Toshok  <toshok@ximian.com>
2033
2034         * DataGrid.cs (get_ListManager): if the list_manager is null, try
2035         to create it using SetDataSource.  Fixes bug #79151.
2036
2037 2006-09-11  Chris Toshok  <toshok@ximian.com>
2038
2039         * XEventQueue.cs: add a DispatchIdle property.
2040
2041         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
2042         either the queue is null, or the queue has DispatchIdle set to
2043         true.
2044         (DoEvents): set queue.DispatchIdle to false around the
2045         peek/translate/dispatch message loop in this method.  This keeps
2046         Application.Doevents from emitting idle events.  Part of the fix
2047         for #78823.
2048
2049 2006-09-11  Chris Toshok  <toshok@ximian.com>
2050
2051         * DataGrid.cs (set_DataSource): make this work for both the
2052         winforms/datagrid test and ReportBuilder.  It seems as though when
2053         we've created a ListManager (or maybe it's if we have a
2054         BindingContext?), when we set the DataSource it clears the
2055         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
2056         #79333.
2057
2058 2006-09-11  Chris Toshok  <toshok@ximian.com>
2059
2060         * XplatUIX11.cs: deal with queue being null, which happens in all
2061         the Clipboard functions.  Fixes one of the two problems mentioned
2062         in #78612.
2063
2064 2006-09-11  Chris Toshok  <toshok@ximian.com>
2065
2066         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
2067         button on various spots (including outside the menu) works closer
2068         to MS, and doesn't crash.  Fixes #79343.
2069
2070 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
2071
2072         * ListView.cs: Do not initialize item_sorter in init. To match MS,
2073         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
2074         and the internal comparer is set. When a new ListViewItemSorter is set,
2075         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
2076         was specified. No further processing is necessary if SortOrder is set
2077         to it's current value. If Sorting is modified to None, and View is
2078         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
2079         (either custom or our internal ItemComparer) to null, on 1.0 profile
2080         only set item_sorter to null if its our internal IComparer. If Sorting
2081         is modified to Ascending or Descending, then use our internal IComparer
2082         if none is set, and if the current IComparer is our internal one then:
2083         on 2.0 profile always replace it with one for new Sorting, and on 1.0
2084         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
2085         Enum.IsDefined to verify whether a valid View value is specified in
2086         its setter. Automatically sort listview items when listview is
2087         created. In Sort, do nothing if ListView is not yet created, or if
2088         no item_sorter is set (no Sorting was set, Sorting was explicitly set
2089         to None or ListViewItemSorter was set to null). Added Sort overload
2090         taking a bool to indicate whether the ListView should be redrawn when
2091         items are sorted (we use this in ListViewItemCollection to avoid double
2092         redraws). Modified our internal IComparer to take the sort order into
2093         account. In Add and AddRange methods of ListViewItemCollection, also
2094         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
2095         view), but use overload with noredraw option to avoid double redraw.
2096         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
2097         true when View is Tile, and do the same when attempting to set View to
2098         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
2099         for selected/checked indices, as it involves overhead when sorting is
2100         done while these collections are not used all that often. Instead
2101         we'll build the indices on demand. Modified IList implementation of
2102         CheckedIndexCollection to use public methods if object is int.
2103         Modified CheckedListViewItemCollection to hide checked items if
2104         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
2105         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
2106         IList implementation in SelectedIndexCollection to use public methods
2107         if object is int. Modified SelectedListViewItemCollection to hide
2108         selected items if listview is not yet created.
2109         * ListViewItem.cs: CheckedIndices list no longer needs to be
2110         maintained separately (see ListView changes). Also clone font, fixes
2111         test failure.
2112
2113 2006-09-11  Mike Kestner  <mkestner@novell.com>
2114
2115         * ComboBox.cs: if we are updating the contents of the currently
2116         selected index, refresh the control or the textbox selection.
2117         [Fixes #79066]
2118
2119 2006-09-11  Mike Kestner  <mkestner@novell.com>
2120
2121         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
2122         the 'specified' logic has been moved there.  This seems like a bug 
2123         in Control.cs, since our current SetBoundsCore completely ignores 
2124         the specified parameter.  Peter's commit seems to indicate that is 
2125         the way the MS control implementation works.  [Fixes #79325]
2126
2127 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
2128
2129         * XplatUI.cs: Set default_class_name to be composed
2130         of current domain id. This allows MWF to be loaded in multiple
2131         domains on Win32.
2132
2133 2006-09-09  Miguel de Icaza  <miguel@novell.com>
2134
2135         * X11Keyboard.cs: If we are unable to obtain the input method, do
2136         not call CreateXic to create the input context.   Should fix
2137         #78944/79276.
2138
2139 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
2140
2141         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
2142           Simplified gnome support by adding more pinvokes to get the
2143           icon for a file or mime type.
2144
2145 2006-09-08  Jackson Harper  <jackson@ximian.com>
2146
2147         * MenuAPI.cs: Deslect popup context menu items before closing the
2148         window, so that you don't see the previously selected item
2149         selected when you reopen the menu.
2150         * TextControl.cs: Update the cursor position even if we don't have
2151         focus.  This fixes typing in things like the ComboBox.  I'm not
2152         totally sure we should always set the visibility if we don't have
2153         focus, but couldn't find any corner cases where the cursor showed
2154         up when it shouldn't.
2155
2156 2006-09-08  Chris Toshok  <toshok@ximian.com>
2157
2158         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
2159         our arrays are length 256.  & 0xff before indexing.  Fixes the
2160         crash in bug #78077.
2161         
2162 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2163
2164         * ThemeWin32Classic.cs: 
2165         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
2166         is true. Handle that check box too.
2167
2168 2006-09-07  Chris Toshok  <toshok@ximian.com>
2169
2170         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
2171         79244.
2172
2173 2006-09-07  Chris Toshok  <toshok@ximian.com>
2174
2175         * Control.cs: in set_BackColor only do the work if
2176         background_color != value.
2177
2178         * XplatUIX11.cs: move the clearing of invalid areas (both client
2179         and nc) to the same block of code where we set (nc_)expose_pending
2180         to false.  That is, move it from PaintEventEnd to PaintEventStart,
2181         so things that cause invalidates from within OnPaint will trigger
2182         another call to OnPaint.  Fixes bug #79262.
2183
2184 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
2185
2186         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
2187         * FileDialog.cs: Fix typo
2188
2189 2006-09-07  Jackson Harper  <jackson@ximian.com>
2190
2191         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
2192         for tab pages if they have any.
2193
2194 2006-09-06  Mike Kestner  <mkestner@novell.com>
2195
2196         * Splitter.cs: use the "current" rect when finishing drag handle
2197         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
2198
2199 2006-09-06  Mike Kestner  <mkestner@novell.com>
2200
2201         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
2202         support offset splitters. [Fixes #79298]
2203
2204 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
2205
2206         * Mime.cs: Fixed a bug that could override the global mime type
2207           result.
2208
2209 2006-09-05  Jackson Harper  <jackson@ximian.com>
2210
2211         * TabControl.cs: Better calculation method for setting the slider
2212         pos. Prevents crashes on really wide tabs.
2213         - Draw Image on tab pages if an image list is used.
2214
2215 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2216
2217         * MonthCalendar.cs: When Font changes, the Size should be
2218         updated to fit the new font's space requirements.
2219
2220 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
2221
2222         * ListBox.cs: If the items are cleared with Items.Clear set
2223           top_index to 0.
2224
2225 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2226
2227         * MonthCalendar.cs: Handle arrow keys as input keys. Also
2228         fire DateChanged event instead of DateSelected event when
2229         the date was changed by keyboard interaction.
2230
2231 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2232
2233         * DateTimePicker.cs: Handle DateChanged for the associated
2234         month_calendar control, and set month_calendar.Font from 
2235         OnFontChanged method, as well as resize the height of the
2236         control when needed. Make PreferredHeight proportional.
2237
2238 2006-09-01  Chris Toshok  <toshok@ximian.com>
2239
2240         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
2241         properties.
2242
2243         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
2244
2245 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
2246
2247         * FileDialog.cs: Set ClientSize instead of window size, to allow space
2248           for decorations (Fixes #79219)
2249
2250 2006-09-01  Mike Kestner  <mkestner@novell.com>
2251
2252         * ComboBox.cs: first stab at sorting plus some selection handling
2253         fixes to bring us more in line with MS behavior.  Also switches back
2254         to index based selection.  Alternative patches for index-based 
2255         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
2256         and latency@gmx.de on bug 78848.  I assume they were similar to this
2257         code I've had simmering in my tree forever.
2258         [Fixes #78848]
2259
2260 2006-09-01  Chris Toshok  <toshok@ximian.com>
2261
2262         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
2263         when setting list position guard against ending up with a -1 index
2264         (the other part of the fix for #78812).  Should probably make sure
2265         we don't need the analogous fix in the ItemDeleted case.
2266
2267         * DataGrid.cs:
2268         - in SetDataSource, work around the fact that the way
2269         OnBindingContextChanged is invoked will cause us to re-enter this
2270         method.  I'll remove the hack once I investigate
2271         OnBindingContextChanged.
2272
2273         - fix the logic in set_DataSource and set_DataMember (basically
2274         what to do if the other of the two is null.)
2275         
2276         - in OnListManagerItemChanged, we need to take into account the
2277         edit row when deciding whether or not to call RecreateDataGridRows
2278         (part of the fix for #78812).
2279
2280 2006-09-01  Jackson Harper  <jackson@ximian.com>
2281
2282         * Splitter.cs: Don't do anything if there is no control to affect
2283         (prevents us from crashing in weird tet cases).
2284         * TreeView.cs: Bounding box for the mouse movement reverting
2285         focus/selection back to previously selected node.  This matches
2286         MS, and makes the tree a lot more useable.
2287         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
2288         use clipping so they are not drawn.  This fixes when the control
2289         is set to have a transparent background, or if it was over an
2290         image.
2291
2292 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
2293
2294         * MimeIcon.cs: Improved handling for reading default icons when
2295           using gnome (2.16 made it necessary). Check and read svg icons
2296           first, then 48x48 and then 32x32 icons.
2297
2298 2006-08-31  Chris Toshok  <toshok@ximian.com>
2299
2300         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
2301         visible.
2302
2303         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
2304         ProcessKeyPreview.  Fixes part of #77806.
2305
2306         * DataGrid.cs: big patch.
2307
2308         - revert the queueing up of DataSource/DataMember if inside
2309         BeginInit/EndInit calls.  That's not the way the datagrid achieves
2310         its delayed databinding.  Instead, call SetDataSource in
2311         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
2312         #78811.
2313
2314         - Also, it wasn't mentioned in #78811, but the test case exhibits
2315         behavior that was lacking in our datagrid implementation - Columns
2316         that have mapping names that don't exist in the datasource's
2317         properties aren't shown.  Yuck.  To fix this I added the bound
2318         field to the column style, and basically any calculation to figure
2319         out anything about columns uses a loop to find the bound columns.
2320         still need to investigate if I can cache an array of the bound
2321         columns or if the indices must be the same.
2322
2323         - When setting CurrentCell, we no longer abort if the cell being
2324         edited was in the add row.  This fixes the other part of #77806.
2325
2326         - The new code also fixes #78807.
2327         
2328         * ThemeWin32Classic.cs: perpetrate the same disgusting
2329         column.bound field hack, and only render bound fields.
2330
2331 2006-08-31  Chris Toshok  <toshok@ximian.com>
2332
2333         * DataGridColumnStyle.cs: add bound field.  this field is true if
2334         the datasource has a property corresponding to the mapping name.
2335
2336         * DataGridTableStyle.cs: set the bound field on the column styles
2337         depending on whether or not we have a column for that property.
2338
2339 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
2340
2341         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
2342           splitter control (fixes #79228)
2343
2344 2006-08-31  Chris Toshok  <toshok@ximian.com>
2345
2346         * DataGridColumnStyle.cs: we need to delay the assignment of
2347         property descriptor until the last possible moment due to the lazy
2348         databinding stuff in the datagrid.  Also, fix the exceptions
2349         thrown by CheckValidDataSource to match MS.
2350
2351 2006-08-31  Jackson Harper  <jackson@ximian.com>
2352
2353         * Form.cs: When activated select the active control, if there is
2354         no active control, we select the first control.
2355         * XplatUIX11.cs: If there is no focus control when we get a
2356         FocusIn event, find the toplevel form and activate it.  This
2357         occurs when you popup a window, it becomes the focus window, then
2358         you close that window, giving focus back to the main window.
2359
2360 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2361
2362         * MonthCalendar.cs: 
2363         * ThemeWin32Classic.cs: Cache Font in bold style, as well
2364         as StringFormat with Center alignments in MonthCalendar,
2365         instead of creating new ones when drawing the control. 
2366         Also, draw the month name in bold style.
2367
2368 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
2369
2370         * Control.cs:
2371           - PerformLayout(): It would seem MS performs the fill even if the 
2372             control is not visible (part of #79218 fix)
2373           - ResetBackColor(): Use the setter to reset the color, to allow
2374             overriders to catch the change.
2375         * Form.cs:
2376           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
2377           - CreateHandle(): dito (part of $79218 fix)
2378           - Don't set an icon if we have a dialog
2379         * ScrollableControl.cs:
2380           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
2381           - ScrollIntoView(): No need to scroll if control is already visible
2382             (resolves fixme and fixes #79218)
2383
2384 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2385
2386         * MonthCalendar.cs: Change proportions in SingleMonthSize
2387         to match the aspect of the original control.
2388
2389 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
2390
2391         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
2392           get updated when they get maximized.
2393
2394 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
2395
2396         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
2397
2398 2006-08-29  Chris Toshok  <toshok@ximian.com>
2399
2400         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
2401
2402 2006-08-29  Jackson Harper  <jackson@ximian.com>
2403
2404         * TreeView.cs: Need to track selected node and highlighted node,
2405         they aren't always the same thing, when the mouse is down on a
2406         node it is hilighted, but not selected yet.
2407         - Do the HideSelection stuff right
2408         - Need to focus on rbutton mouse down. And redraw selection when
2409         right click is mouse upped.
2410
2411 2006-08-29  Mike Kestner  <mkestner@novell.com>
2412
2413         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
2414         when SubItems.Count < Columns.Count.  [Fixes #79167]
2415
2416 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
2417
2418         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
2419
2420 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
2421
2422         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
2423           from X. Only send based on ConfigureNotify if we don't have the
2424           correct location in hwnd (if the window manager moved us)
2425
2426 2006-08-28  Mike Kestner  <mkestner@novell.com>
2427
2428         * ListView.cs: remove a TODO. 
2429         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
2430         [Fixes ListView part of #79166]
2431
2432 2006-08-28  Mike Kestner  <mkestner@novell.com>
2433
2434         * ListView.cs: move wheel handler to parent since it is focused
2435         instead of the item_control now.  [Fixes #79177]
2436
2437 2006-08-28  Mike Kestner  <mkestner@novell.com>
2438
2439         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
2440         when the control is focused. [Fixes #79171]
2441
2442 2006-08-28  Mike Kestner  <mkestner@novell.com>
2443
2444         * ListView.cs: size the item and header controls for empty and
2445         unscrollable views.
2446         * ThemeWin32Classic.cs: draw disabled backgrounds.
2447         [Fixes #79187]
2448
2449 2006-08-28  Chris Toshok  <toshok@ximian.com>
2450
2451         * Form.cs: remove unused "active_form" static field.
2452
2453         * Hwnd.cs: lock around accesses to static windows collection.
2454
2455         * Application.cs: lock threads in Exit ().
2456
2457 2006-08-28  Chris Toshok  <toshok@ximian.com>
2458
2459         * NativeWindow.cs: lock around accesses to window_collection.
2460         
2461 2006-08-28  Chris Toshok  <toshok@ximian.com>
2462
2463         * Control.cs: err, fix this the right way, by locking on controls
2464         when using it.  not by making it synchronized.
2465
2466 2006-08-28  Chris Toshok  <toshok@ximian.com>
2467
2468         * Control.cs: make the static "controls" field synchronized, as it
2469         gets updated from multiple threads.
2470
2471 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2472
2473         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
2474           Prevent other threads from exiting when calling thread sets quit state.
2475         * XEventQueue.cs: Added PostQuitState property
2476
2477 2006-08-27  Chris Toshok  <toshok@ximian.com>
2478
2479         * AsyncMethodData.cs: add a slot for the window handle.
2480
2481         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
2482         window (the destination control's window, not the foster window).
2483
2484         * Control.cs (BeginInvokeInternal): store the window's handle in
2485         the AsyncMethodData.
2486         
2487
2488 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
2489
2490         * XplatUIX11.cs:
2491           - PostQuitMessage: Removed resetting S.D display handle, we might have
2492             another loop started after calling PostQuitMessage (Fixes #79119)
2493           - Created destructor to reset S.D handle
2494
2495 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
2496
2497         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
2498
2499 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2500
2501         * TextControl.cs (Insert): Update the caret position even if we don't
2502           have a handle yet, just don't call the driver in that case.
2503         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
2504           to the end of the new selection text (Fixes #79184)
2505
2506 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2507
2508         * Form.cs (Activate): Only activate if the handle is created)
2509         * Control.c:
2510           - Mark window as invisible when it's disposed
2511           - Check if window handle is created when setting window visible, 
2512             instead of relying just on the is_created variable
2513           - Check if object is disposed when creating the control (Fixes #79155)
2514
2515 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2516
2517         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
2518           when allowing layout again. Otherwise we re-generate the anchoring 
2519           distance to the border again and actually alter what the user wanted
2520           This is ugly, it'd be better if we used DisplayRectangle instead of
2521           ClientRectangle for Control.UpdateDistances, but that causes us to
2522           have other problems (initial anchoring positons would be wrong)
2523           (Fixes #78835)
2524
2525 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2526
2527         * Control.cs:
2528           - The size and location setters shouldn't go directly to 
2529             SetBoundsCore, but to SetBounds, which triggers layout on the
2530             parent, then calls SetBoundsCore. (Related to fix for #78835)
2531           - SetBounds: Moved actual location update code into this function
2532             from SetBoundsCore, to match MS. Added call to PerformLayout if
2533             we have a parent (to trigger resizing of anchored parents if the 
2534             child size has changed (see testcase for #78835) 
2535         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
2536           new control code
2537         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
2538
2539 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2540
2541         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
2542           System.Drawing when a toplevel window gets closed; there might
2543           be other toplevel windows belonging to the same app (Fixes #78052)
2544
2545 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
2546
2547         * FileDialog.cs: After reading FileDialog settings from mwf_config
2548           use Desktop prefix only if a real folder doesn't exist anymore.
2549         * FontDialog.cs: Added char sets.
2550           It is now possible to select the font, size or style with the
2551           textboxes.
2552
2553 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
2554
2555         * PrintPreviewDialog.cs: Use assembly name constants.
2556
2557 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2558
2559         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
2560           scrollbar from whacking it's buttons)
2561
2562 2006-08-24  Chris Toshok  <toshok@ximian.com>
2563
2564         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
2565         in this patch (aggregating setting Left/Top/Width/Height to
2566         setting Bounds on the scrollbars), but the crux of the fix is in
2567         Recalculate, where we scroll by the remaining scroll_position if
2568         we're hiding a scrollbar.  The 2*$5 reward in the comment is
2569         serious.
2570
2571 2006-08-24  Jackson Harper  <jackson@ximian.com>
2572
2573         * MdiClient.cs:
2574         * MdiWindowManager.cs: If the form is made a non-mdi window we
2575         need to remove the form closed event so that closing forms works
2576         correctly.
2577
2578 2006-08-24  Jackson Harper  <jackson@ximian.com>
2579
2580         * Control.cs: Make IsRecreating internal so that the driver can
2581         check it
2582         - Temporarily remove the Hide when controls are removed, its
2583         making a whole bunch of things not work because visibility isn't
2584         getting reset elsewhere correctly
2585         * Form.cs: Need to do a full handle recreation when the mdi parent
2586         is set.
2587         * XplatUIX11.cs: If we are recreating handles don't dispose the
2588         HWNDs.  What was happening is the handles were being recreated in
2589         SendWMDestroyMessages, but then flow continued on in that method
2590         and destroyed the new handles.
2591
2592 2006-08-23  Jackson Harper  <jackson@ximian.com>
2593
2594         * Form.cs: MdiClient is always at the back of the bus
2595         * Control.cs: When the order of items in the collection is changed
2596         we need to reset the all_controls array
2597         - do the same sorta setup thats done when adding a control when a
2598         control is set on the collection.
2599
2600 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
2601
2602         * TextBoxBase.cs (get_Text): Return an empty array if our document
2603           is empty (fixes #79052)
2604
2605 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2606
2607         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
2608           on WM_SYSCHAR messages (fixes #79053)
2609
2610 2006-08-23  Chris Toshok  <toshok@ximian.com>
2611
2612         * DataGrid.cs: fix flickering when scrolling vertically.
2613
2614 2006-08-23  Chris Toshok  <toshok@ximian.com>
2615
2616         * DataGrid.cs (EndEdit): only invalidate the row header when we
2617         need to.
2618
2619 2006-08-23  Chris Toshok  <toshok@ximian.com>
2620
2621         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
2622         methods.  fixes the flicker when scrolling around.
2623
2624 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2625
2626         * FileDialog.cs: Making sure the control is created before we get a 
2627           chance to use it with BeginInvoke (Fixes #79096)
2628
2629 2006-08-23  Chris Toshok  <toshok@ximian.com>
2630
2631         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
2632         width to use when painting the rows.
2633
2634 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
2635
2636         * TextBoxBase.cs:
2637           - Throw ArgumentException if a negative value is passed to SelectionLength
2638           - Update the selection end if start is moved. end needs to be always
2639             after start. (Fixes #79095)
2640           - Track selection length; MS keeps the selection length even if start
2641             is changed; reset on all other operations affection selection
2642
2643 2006-08-22  Jackson Harper  <jackson@ximian.com>
2644
2645         * TreeView.cs: Make sure both scrollbars get displayed and sized
2646         correctly when the other bar is visible.
2647         - Use the original clip rectangle for checking if the area between
2648         the two scrollbars is visible, not the viewport adjusted clipping
2649         rectangle.
2650
2651 2006-08-22  Jackson Harper  <jackson@ximian.com>
2652
2653         * Binding.cs: We don't use IsBinding because it requires the
2654         control to be created, which really shouldn't be necessary just to
2655         set a property on the control.
2656
2657 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2658
2659         * ComboBox.cs: Some CB.ObjectCollection methods must throw
2660         ArgumentNullReferenceException when the argument is null.
2661
2662 2006-08-21  Jackson Harper  <jackson@ximian.com>
2663
2664         * Timer.cs: Track the thread that the timer is started in (NOT
2665         CREATED), this way messages for it will only be triggered on its
2666         queue.
2667         * XEventQueue.cs: Track the timers here, this makes timers per
2668         thread, like MS.
2669         * XplatUIX11.cs: The timers are moved to the XEventQueue.
2670
2671 2006-08-19  Chris Toshok  <toshok@ximian.com>
2672
2673         * XplatUIX11.cs: after further communication with pdb, we get the
2674         best of both worlds.  SetZOrder working for un-Mapped windows, and
2675         no X errors for un-mapped windows.
2676
2677 2006-08-19  Chris Toshok  <toshok@ximian.com>
2678
2679         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
2680         as it was causing pdn toolbars to not have the correct stacking.
2681
2682 2006-08-18  Mike Kestner  <mkestner@novell.com> 
2683
2684         * ListView.cs : guard against negative ClientArea.Width in scrollbar
2685         calculation.  Not sure why control should ever be setting a negative
2686         width though.  Fixes #78931.
2687
2688 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2689
2690         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
2691         null items in ObjectCollection class.
2692         * ListBox.cs.: Likewise.
2693
2694 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
2695
2696         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
2697           as the base method in ThemeWin32Classic should work fine.
2698           Fixed bug #78607.
2699
2700 2006-08-18  Jackson Harper  <jackson@ximian.com>
2701
2702         * Binding.cs: When validating if the value entered doesn't convert
2703         properly reset to the old value.
2704         * RadioButton.cs: Don't fire click when we get focus.
2705
2706 2006-08-18  Jackson Harper  <jackson@ximian.com>
2707
2708         * FileDialog.cs: Paint the selection on the directory combobox the
2709         same way as on MS. 
2710
2711 2006-08-17  Jackson Harper  <jackson@ximian.com>
2712
2713         * ErrorProvider.cs: Don't allow the error control to be selected.
2714         * Control.cs: Don't send the SetFocus messages, the control
2715         activation will do this, and if we do it blindly here validation
2716         does not work.
2717
2718 2006-08-17  Jackson Harper  <jackson@ximian.com>
2719
2720         * Control.cs:
2721         * ContainerControl.cs: Make validation events fire in the correct
2722         order.  TODO: For some reason the first validation event is not
2723         getting fired.
2724
2725 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2726
2727         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
2728
2729 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2730
2731         * ComboBox.cs : implement scroll wheel support for popped-down
2732         state. Fixes #78945. 
2733
2734 2006-08-17  Jackson Harper  <jackson@ximian.com>
2735
2736         * TreeView.cs: Specify treeview actions (old patch that didn't get
2737         committed for some reason).
2738         - Don't let the mouse wheel scroll us too far.  Just want to make
2739         the bottom node visible, not scroll it all the ways to the top.
2740
2741 2006-08-17  Jackson Harper  <jackson@ximian.com>
2742
2743         * XplatUIX11.cs: Mouse wheel events go to the focused window.
2744
2745 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2746
2747         * ComboBox.cs : don't do mouseover selection in simple mode.
2748
2749 2006-08-16  Jackson Harper  <jackson@ximian.com>
2750
2751         * Form.cs: Fire the closing events for all the mdi child windows
2752         when a window is closed.  If the cancel args are set to true, the
2753         main window still gets the event fired, but it doesn't not close.
2754         * MdiWindowManager.cs: Do this closing cleanup in a Closed
2755         handler, instead of when the button is clicked, so cancelling the
2756         close works correctly.
2757         * ComboBox.cs: Send the mouse down to the scrollbar.
2758
2759 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2760
2761         * ListBox.cs: When passing 'null' to SelectedItem,
2762         set SelectedIndex to -1, to unselect items. This is the
2763         observed behaviour in .Net.
2764
2765 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
2766
2767         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
2768           MS flags saying there won't be any. (fixes #78800)
2769         * Control.cs (HandleClick): Made virtual
2770
2771 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
2772
2773         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
2774           cultures. Fixed bug #78399.
2775
2776 2006-08-16  Jackson Harper  <jackson@ximian.com>
2777
2778         * Form.cs: Use the MdiClients MdiChildren property to access
2779         MdiChildren instead of creating the array from the child controls.
2780         * MdiClient.cs: Maintain a separate array of the mdi children, so
2781         that insertion order is maintained when the Z-order is changed.
2782
2783 2006-08-16  Mike Kestner  <mkestner@novell.com> 
2784
2785         * ListView.cs : add an ItemComparer and default to it for sorting.
2786         Fixes #79076, but sorting needs a complete overhaul to be compat with
2787         MS.
2788
2789 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2790
2791         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
2792
2793 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2794
2795         * Hwnd.cs (Mapped): Properly traverse the tree
2796
2797 2006-08-15  Chris Toshok  <toshok@ximian.com>
2798
2799         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
2800         pass manager.Current.GetType() to ParseData.  It has to be the
2801         property type.  So, hold off doing the ParseData until we're in
2802         SetPropertyValue where we know the type.  This fixes the crash in
2803         #78821 but the textbox is still empty.
2804
2805 2006-08-15  Chris Toshok  <toshok@ximian.com>
2806
2807         * DataGrid.cs:
2808         - when we're scrolling, only call Edit() again if the
2809         current cell is still unobscured. Fixes bug #78927.
2810         - when handling mousedown on a cell, ensure the cell is visible
2811         before calling Edit.
2812         - remove the properties from DataGridRow, and remove the
2813         DataGridParentRow class altogether.
2814         
2815
2816 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2817
2818         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
2819           fire OnTextChanged by ourselves. There's no point calling base,
2820           we don't set the base value anywhere else. Fixes #78773.
2821
2822 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2823
2824         * ListBox.cs: Call CollectionChanged when modifying
2825         an item from Items indexer, to update the actual items
2826         in the list box.
2827
2828 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2829
2830         * PrintDialog.cs: Small fixes for focus and a pair of checks,
2831         to match .Net behaviour.
2832
2833 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2834
2835         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
2836
2837 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2838
2839         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
2840
2841 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2842
2843         * MessageBox.cs: Prevent potential NRE exception.
2844         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
2845
2846 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2847
2848         * MessageBox.cs: Calculate the owner of a messagebox, also make
2849           it topmost. Fixes #78753
2850
2851 2006-08-14  Chris Toshok  <toshok@ximian.com>
2852
2853         * XplatUIX11.cs: A couple of fixes so that metacity will let us
2854         programmatically move windows.  first, set the PPosition hint as
2855         well as the USPosition hint.  Second include some code from pdb
2856         that sets the window type to NORMAL when we set the transient for
2857         hint.  This is because, in the absence of a window type, metacity
2858         thinks any window with TransientFor set is a dialog, and refuses
2859         to let us move it programmatically.  fascists.
2860
2861 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2862
2863         * XplatUIX11.cs: When setting normal hints, take into consideration
2864           an different hints previously set so we don't delete them (fixes #78866)
2865
2866 2006-08-12  Chris Toshok  <toshok@ximian.com>
2867
2868         * ToolBarButton.cs: make Layout return a boolean, if something to
2869         do with the button's layout changed.
2870
2871         * ToolBar.cs:
2872         - add another parameter to Redraw, @force, which all existing
2873           calls set to true.
2874         - make the Layout function return a boolean which is true if the
2875           layout has actually changed.  Redraw now uses this (and @force)
2876           to determine when to invalidate.  At present the only place
2877           where @force can be false is the call from OnResize, when
2878           background_image == null.  So, resizing a toolbar when the
2879           layout doesn't change results in no drawing.
2880
2881 2006-08-12  Chris Toshok  <toshok@ximian.com>
2882
2883         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
2884         the VScrollBar and HScrollbar reversed.  oops.
2885
2886         * DataGrid.cs: fix the logic that assigns sizes to the implicit
2887         scrollbars.  we were assigning them twice (once in
2888         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
2889         therefore causing two scrollbar resizes (and redraws?) to happen
2890         per grid resize.
2891
2892 2006-08-12  Chris Toshok  <toshok@ximian.com>
2893
2894         * ToolBarButton.cs: redraw the entire button if the theme tells us
2895         to.
2896
2897         * Theme.cs: add ToolBarInvalidateEntireButton.
2898
2899         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
2900         buttons, just the border.
2901
2902         * ThemeNice.cs: redraw the entire toolbar button since we need to
2903         draw the highlight image.
2904
2905         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
2906         we need to redraw the entire button (not just the border).
2907
2908 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
2909
2910         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
2911           for vertical bars. Fixes the mismatches shown by #78513
2912
2913 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
2914
2915         * FileDialog.cs: If a saved/remembered path doesn't exist
2916           anymore, fall back to "Desktop".
2917
2918 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
2919
2920         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
2921           parent. It's apparently legal to not have one
2922         * XplatUIX11.cs:
2923           - SetZOrder: Don't try to set Z-Order on an unmapped window
2924           - CreateWindow: 0,0 are legal coordinates for a window. don't move
2925             it unless the coordinates are negative
2926
2927 2006-08-10  Mike Kestner  <mkestner@novell.com>
2928
2929         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
2930         when setting to null per msdn docs.  Fixes #78854.
2931
2932 2006-08-10  Chris Toshok  <toshok@ximian.com>
2933
2934         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
2935         flickering by setting a clip rectangle on the Graphics when we
2936         need to redraw just a particular menuitem.  Also, rename "OnClick"
2937         to "OnMouseDown" to reflect what it actually is.
2938         
2939         * Form.cs: track the OnMouseDown change.
2940
2941 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
2942
2943         * CommonDialog.cs: Properly inherit the CreateParams from the form
2944           and only change what we need. Fixes #78865
2945
2946 2006-08-10  Chris Toshok  <toshok@ximian.com>
2947
2948         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
2949         flickering in flat mode (and most of the flickering in general) by
2950         only invalidating the button border (and not the entire rectangle)
2951         when the state changes.  A couple of cases still flicker:
2952         ToggleButtons, and the dropdown arrow case when the user mouse
2953         ups.
2954
2955 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
2956
2957         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
2958           for german keyboards. Numlock state shouldn't affect the behaviour
2959           of the Del key. Fixes bug #78291.
2960
2961 2006-08-10  Chris Toshok  <toshok@ximian.com>
2962
2963         * ListControl.cs: remove the items.Clear line from BindDataItems,
2964         as this is the first thing done by both subclasses in their
2965         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
2966         passed -1, refresh the list.  This gets databinding working when
2967         the datasource is set on the list before the datasource is
2968         populated (as in wf-apps/ReportBuilder.)
2969
2970         * ComboBox.cs: remove the argument to BindDataItems.  This call
2971         should really go away, and be initiated by the ListControl code.
2972
2973         * ListBox.cs: same.
2974
2975 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2976
2977         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
2978           if no data is in the document when the control is displayed
2979
2980 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
2981
2982         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
2983           yes (fixes #78806)
2984         * TextControl.cs: 
2985           - PositionCaret: Allow positioning of caret but don't call methods 
2986             requiring a handle if the window isn't created yet
2987           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
2988           - owner_HandleCreated: Don't position the caret, just update it's 
2989             location. User might have already set a different position
2990
2991 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2992
2993         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
2994           windows. Screws up the returned coordinates for child windows. 
2995           Fixes #78825. I'm hoping this doesn't break something, since the
2996           code was explicitly put in 8 months ago, but no bug was attached.
2997           Menus still seem to work properly.
2998
2999 2006-08-08  Chris Toshok  <toshok@ximian.com>
3000
3001         * DataGrid.cs: make BeginInit/EndInit actually do what they're
3002         supposed to do - delay data binding until the EndInit call.  Also,
3003         make the table style collection's CollectionChangeAction.Refresh
3004         work properly.
3005
3006         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
3007         (with action = Refresh) when a consituent table's MappingName is
3008         changed.
3009
3010 2006-08-08  Chris Toshok  <toshok@ximian.com>
3011
3012         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
3013         Invalidate, since changing the text can change the size of the all
3014         toolbar buttons.
3015
3016 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3017
3018         * Form.cs (AddOwnedForm): Still need to add the form to our listif
3019           we don't have it yet
3020
3021 2006-08-08  Chris Toshok  <toshok@ximian.com>
3022
3023         * PrintControllerWithStatusDialog.cs: don't .Close() the status
3024         dialog, as this causes X errors later on, since we actually
3025         destroy the window.  Instead, .Hide() it.
3026
3027 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
3028
3029         * ComboBox.cs: Added focus reflection for popup window
3030         * XplatUIX11.cs: 
3031           - Removed transient setting for non-app windows for now, not sure it
3032             was needed
3033           - Fixed logic checking if we have captions when deciding 
3034             override_redirect, WS_CAPTION is two bits and a 0 check was not
3035             sufficient
3036           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
3037             complicated
3038         * Form.cs: 
3039           - AddOwnedForm: Don't just add the form to the list, call the property
3040             to ensure the driver is informed about the ownership as well
3041           - CreateHandle: Set the TopMost status in the driver if we have an owner
3042         * XplatUI.cs: Fixed debug statement
3043
3044 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
3045         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3046           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
3047           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
3048           TrackBarRenderer.cs: Make constructor private.
3049         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
3050         * ProfessionalColorTable.cs: Make properties virtual.
3051
3052 2006-08-06  Duncan Mak  <duncan@novell.com>
3053
3054         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
3055         is not changing.
3056
3057 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3058         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
3059           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
3060           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
3061           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
3062           Initial import of new 2.0 classes.
3063
3064 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3065         * Application.cs: Add 2.0 VisualStyles properties.
3066
3067 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
3068         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
3069           XplatUIX11.cs: Create property to allow access to existing private
3070           variable "themes_enabled"
3071
3072 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3073
3074         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
3075         file size, as otherwise our class libraries fail using windows. Fixes
3076         bug #78759.
3077
3078 2006-08-04  Jackson Harper  <jackson@ximian.com>
3079
3080         * Form.cs:
3081         * XplatUIX11.cs: Move the toolwindow window manager creation into
3082         the X11 driver, this way on win32 we can let windows create/handle
3083         the toolwindows.
3084
3085 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3086
3087         * PrintDialog.cs: Remove some redundant checks, add some others,
3088         clean some code, and move the focus to the text boxes when the
3089         values are incorrect.
3090
3091 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
3092
3093         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
3094
3095 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3096
3097         * NumericUpDown.cs: Setting the Minimum and Maximum is now
3098           handled correctly. Fixes bug #79001.
3099
3100 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3101
3102         * PrintDialog.cs: The "Copies" numeric up down must have
3103         set the Minimum property to 1; only if the value is bigger
3104         than 1, activate "Collate" check box. This is the behaviour of .Net.
3105         Also modify the Document elements only if it is not null.
3106
3107 2006-08-03  Jackson Harper  <jackson@ximian.com>
3108
3109         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
3110         length. (We have a larger array then actual node count).
3111                 
3112 2006-08-03  Jackson Harper  <jackson@ximian.com>
3113
3114         * ComboBox.cs: Don't show selection by default.
3115         - The SelectAll isn't needed here, since the focus code should do
3116         that
3117         - DDL style lists to manual selection drawing, so when they
3118         get/lose focus they have to invalidate.
3119
3120 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
3121
3122         * TextBoxBase.cs: Don't always show all selections by default.
3123
3124 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
3125         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
3126           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
3127           Fixed various typos.
3128
3129 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
3130
3131         * Control.cs: Removing the controls in a ControlCollection with
3132           Clear now hides the controls as expected. Fixes bug #78804. 
3133
3134 2006-08-03  Jackson Harper  <jackson@ximian.com>
3135
3136         * Control.cs: Revert previous focus patch, it breaks reflector.
3137
3138 2006-08-03  Jackson Harper  <jackson@ximian.com>
3139
3140         * ComboBox.cs: Cleanup selection and focus with the combobox.
3141         This also eliminates some duplicated keyboard code, since now
3142         everything is handled by the main class.
3143         - Make list selection work on mouse up instead of down, to match
3144         MS.
3145
3146 2006-08-02  Jackson Harper  <jackson@ximian.com>
3147
3148         * Control.cs: Setting focus needs to go through the whole
3149         selection mechanism.
3150
3151 2006-08-02  Chris Toshok  <toshok@ximian.com>
3152
3153         * PrintPreviewDialog.cs: change MinimumSize to use
3154         base.MinimumSize so it works.
3155
3156 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
3157
3158         * TextControl.cs:
3159           - UpdateCaret: Added sanity check in case caret isn't defined yet
3160           - Line.Delete: Now updating selection and caret markers if we're
3161             transfering a node (Properly fixes #78323)
3162           - SetSelectionEnd: Added sanity check
3163         * TextBoxBase.cs: Removed broken attempt to fix #78323
3164
3165 2006-08-01  Chris Toshok  <toshok@ximian.com>
3166
3167         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
3168         Close() call is handled in Form, not here.
3169
3170 2006-08-01  Chris Toshok  <toshok@ximian.com>
3171
3172         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
3173         layout/rendering.
3174
3175         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
3176         for sizes < 100% zoom.  The code now aggressively attempts to keep
3177         from calling document.Print (), and tries not to use the scaling
3178         g.DrawImage whenever possible (it still does if you scale to >
3179         100%, since usually that involves huge images).
3180
3181         * PrintPreviewControl.cs: hook up the close button.
3182
3183 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
3184         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
3185           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
3186           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
3187           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
3188           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
3189           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
3190           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
3191           Removed [Serializable] for 2.0 Event Handlers.
3192
3193 2006-07-31  Jackson Harper  <jackson@ximian.com>
3194
3195         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
3196         * TextControl.cs: Uncomment out the body of this method.
3197
3198 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
3199
3200         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
3201           standard cursors.
3202
3203 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3204
3205         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
3206           that embed TextBox and need selections visible even if textbox is not
3207           focused to enforce that behaviour.
3208         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
3209           selection drawing
3210
3211 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3212
3213         * TextControl.cs:
3214           - Added new SetSelectionStart/SetSelectionEnd overloads
3215           - Fixed viewport width assignment to be accurate
3216           - Adjusted alignment line shift calculations to allow cursor on right
3217             aligned lines to be always visible at the right border (like MS)
3218         * TextBoxBase.cs:
3219           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
3220           - TextBoxBase_SizeChanged: recalculating canvas on size changes
3221           - CalculateScrollBars: Use ViewPort size instead of window size, to
3222             properly consider space occupied by the border and scrollbars 
3223             (Fixes #78661)
3224           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
3225             calculations; no longer leaves artifacts
3226           - CaretMoved: Adjusted window scrolling to match MS and fixed several
3227             calculation bugs (Still missing right/center align calculations)
3228
3229 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
3230
3231         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
3232           use of both scroll rect and clip rect, as they do the same.
3233
3234 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
3235
3236         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
3237           in the event handler (fixes #78912)
3238
3239 2006-07-31  Chris Toshok  <toshok@ximian.com>
3240
3241         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
3242         grid.ListManager.Count, since grid.ListManager might be null.
3243         This of course begs the question "why are we drawing rows for a
3244         grid with no list manager (and therefor no rows)?"  Fixes the
3245         crash in bug #78929.
3246
3247 2006-07-31  Chris Toshok  <toshok@ximian.com>
3248
3249         * RelatedPropertyManager.cs: Don't always chain up to the parent
3250         ctor.  instead, call SetDataSource if the parent's position is !=
3251         -1.  Fixes the crash in #78822.
3252
3253 2006-07-31  Chris Toshok  <toshok@ximian.com>
3254
3255         * DataGrid.cs (get_ListManager): use field instead of property
3256         accessors for datasource and datamember.
3257         (RowsCount): make internal again.
3258         (OnMouseDown): end edits before resizing columns/rows.
3259         (OnMouseUp): restart edits after resizing columns/rows.
3260
3261 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
3262
3263         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
3264           This fixes the situation where the last set cursor is displayed
3265           whenever the mouse is over scrollbars.
3266
3267 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3268
3269         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
3270         Document properties, as well as initial values.
3271
3272 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
3273
3274         * XplatUIWin32.cs (SetBorderStyle): Setting both border
3275           and ClientEdge results in a 3-pixel border, which is
3276           wrong.
3277
3278 2006-07-28  Jackson Harper  <jackson@ximian.com>
3279
3280         * TreeNodeCollection.cs: Fix the clear method.
3281         - Fix the Shrink also
3282
3283 2006-07-27  Jackson Harper  <jackson@ximian.com>
3284
3285         * TreeView.cs: Make sure the visible order is computed when we
3286         attempt to size the scrollbars (for trees that mess with the
3287         scrolling when they shouldn't.
3288         - Make sure to give the scrollbars valid values.
3289
3290 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3291
3292         * XplatUIX11.cs: Move motion compression code to where it
3293           has less performance impact
3294
3295 2006-07-26  Jackson Harper  <jackson@ximian.com>
3296
3297         * UpDownBase.cs: When the control is selected make the child
3298         controls non selectable, so that a click on them won't do a
3299         focus/unfocus cycle.
3300         - Don't give focus to the text box when the spinner is selected.
3301         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
3302
3303 2006-07-26  Chris Toshok  <toshok@ximian.com>
3304
3305         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
3306         satisfied with this solution.  If the bitmaps are small, we should
3307         just cache them in the PrintPreviewDialog and draw them here.
3308         Also, the layout is broken for the 2-up and 3-up cases.
3309
3310         * Theme.cs: add PrintPReviewControlPaint.
3311
3312         * PrintPreviewDialog.cs: first pass implementation.
3313
3314         * PrintPreviewControl.cs: first pass implementation.  No
3315         scrollbars yet.
3316
3317         * PrintDialog.cs: only validate fields if that particular portion
3318         of the UI is enabled.  Also, set the document's controller to a
3319         PrintControllerWithStatusDialog wrapping the document's print
3320         controller.
3321
3322         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
3323         bring up a SaveFileDialog (i hope we don't want to match the
3324         behavior of the crappy windows file entry) and set the
3325         PrinterSettings.PrintFileName accordingly.
3326
3327 2006-07-26  Jackson Harper  <jackson@ximian.com>
3328
3329         * ContainerControl.cs: Add a field that disables auto selecting
3330         the next control in a container when the container is activated.
3331         * UpDownBase.cs: Don't select the text box when the up down is
3332         selected.
3333
3334 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
3335
3336         * XEventQueue.cs: Added methods for peeking (used for compression
3337           of successive events)
3338         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
3339           mouse move events (fixes #78732)
3340
3341 2006-07-25  Jackson Harper  <jackson@ximian.com>
3342
3343         * UpDownBase.cs: Use an internal class for the textbox so that we
3344         can control focus.  the updown control should always have focus,
3345         if either the text area or the buttons are clicked.
3346         - Send the key messages to the textbox, since it never actually
3347         has focus
3348         - Activate and decativate the textbox caret.
3349
3350 2006-07-24  Jackson Harper  <jackson@ximian.com>
3351
3352         * Control.cs: Use the directed select when selecting a control,
3353         this way the container controls override will get called and the
3354         whole ActiveControl chain will get triggered.  TODO: probably need
3355         to make sure this gets done everywhere instead of the old
3356         Select(Control).
3357         * ContainerControl.cs: Implement the directed Select method to
3358         find and activate the correct child control.    
3359         
3360 2006-07-22  Mike Kestner  <mkestner@novell.com>
3361
3362         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
3363         menu handling code so that clicks without a grab work too.
3364         [Fixes #78914]
3365
3366 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
3367
3368         * FileDialog.cs: Enable the BackButton when dirstack has one element.
3369           Added some small optimizations.
3370
3371 2006-07-21  Matt Hargett  <matt@use.net>
3372
3373         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
3374
3375 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
3376
3377         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
3378           tests pass and match MS in some strange border cases.
3379
3380 2006-07-21  Chris Toshok  <toshok@ximian.com>
3381
3382         * ThemeWin32Classic.cs: handle drawing of the relation links and
3383         parent row buttons.
3384
3385         * Theme.cs: change args to DataGridPaintParentRow.
3386
3387         * DataGrid.cs: Don't use controls for the relation links and
3388         parent buttons, so we have to handle all their interactions in
3389         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
3390         when we're navigating through child tables, so we can reinstate
3391         selection, expanded state, current cell, etc.
3392
3393 2006-07-20  Chris Toshok  <toshok@ximian.com>
3394
3395         * ToolBar.cs: When we redraw a button, for whatever reason,
3396         there's no reason to redraw the entire toolbar.  Also, don't call
3397         Control.Refresh from within Redraw, as it's much heavier than
3398         Invalidate (which is really what we want).
3399
3400 2006-07-20  Chris Toshok  <toshok@ximian.com>
3401
3402         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
3403         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
3404         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
3405         traces from within a debug IBindingList datasource
3406         (in mono/winforms/datagrid) for *days*, I've finally gotten things
3407         to work in a similar fashion.
3408
3409 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3410
3411         * ListBox.cs: Don't call Sort () when setting 
3412         the Sorted property to false (avoid an unnecessary sort).
3413
3414 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3415
3416         * ListControl.cs: DataSource should throw an ArgumentException
3417         instead of a normal exception when the argument is not of the 
3418         correct type.
3419
3420 2006-07-20  Mike Kestner  <mkestner@novell.com>
3421
3422         * Control.cs: add InternalPreProcessMessage to allow us to steal
3423         key events before MWF gets its paws on them.  Adapted from a
3424         suggestion by eno.
3425         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
3426         up/down/left/right navigation. Override the new internal control
3427         method to steal the events since they never make it to WndProc.
3428         * ToolBarButton.cs: don't worry about pushed when setting hilight
3429         since the drawing code prefers pushed to hilight. Invalidate on 
3430         Hilight changes. Fixes #78547 and #78525.
3431
3432 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3433
3434         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
3435           the canvas size. Fixes #78868
3436
3437 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
3438
3439         * Splitter.cs: Track requested split position until first layout
3440           is performed. Fixes #78871
3441
3442 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
3443
3444         * Application.cs: Removed code that forces 1.x for the version
3445           number if the version started with 0. Not sure why that code was
3446           there and I couldn't find any bugs that indicated we needed it.
3447           Fixes #78869
3448
3449 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
3450
3451         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
3452           ResetDefaults(), just write some output to the console until it's
3453           implemented. Fixes bug #78907 for now. Eliminated two warnings.
3454
3455 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
3456
3457         * PropertyGridView.cs: set StartPosition of drop down forms
3458         so they appear in correct initial spot.  Fixes #78190.
3459
3460 2006-07-19  Mike Kestner  <mkestner@novell.com>
3461
3462         * ThemeWin32Classic.cs: use parent background color when drawing
3463         flat toolbars.  Restructure the conditionals to make sure non-flat
3464         non-Divider toolbars are filled too.  Fixes #78837.
3465
3466 2006-07-19  Mike Kestner  <mkestner@novell.com>
3467
3468         * ListBox.cs: Sort on collection changes even if the handle
3469         isn't created yet.  Fixes #78813.
3470
3471 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3472
3473         * ListControl.cs: DisplayMember should never be null,
3474         and now we assign String.Empty when null is passed to it (this
3475         is the .Net way).
3476
3477 2006-07-17  Mike Kestner  <mkestner@novell.com>
3478
3479         * ListViewItem.cs: restructure Font and subitem Font handling 
3480         to hold a specific font and refer back to owner on null.
3481         Fixes #78761.
3482
3483 2006-07-17  Mike Kestner  <mkestner@novell.com>
3484
3485         * ToolBar.cs: bandaid for side-effect of previous patch which was
3486         discarding explicit heights for non-AutoSize toolbars.  Need to
3487         extend my format tester to deal with AutoSize=false. Fixes #78864.
3488
3489 2006-07-15  Jackson Harper  <jackson@ximian.com>
3490
3491         * LabelEditTextBox.cs:
3492         * TreeView.cs: Use a new LabelEdit class for node editing, this
3493         class automatically 'closes' itself when it gets the enter key or
3494         loses focus.
3495         - Use the client rectangle when setting the trees scrollbars, so
3496         border style is taken into account.
3497         
3498 2006-07-14  Jackson Harper  <jackson@ximian.com>
3499
3500         * TreeNode.cs:
3501         * TreeView.cs: Make the editing work similar to MSs, firing the
3502         events correctly and ending edits correctly.
3503
3504 2006-07-14  Mike Kestner  <mkestner@novell.com>
3505
3506         * ToolBarButton.cs:
3507         * ToolBar.cs: layout restructuring and redraw enhancements to support
3508         formatting changes gracefully, like setting TextAlign, ImageList, 
3509         ButtonSize, and Appearance.  Handles explicit button sizing quirks
3510         of the MS controls.  Things like flat toolbars ignoring button size
3511         but becoming constant sized at the largest button's size.  Normal
3512         toolbars with an image set cannot be shrunk smaller than the image,
3513         but text can be clipped/ignored.
3514         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
3515         is zero.  Seems like DrawString should be smart enough to not put
3516         anything on screen though. Also trim labels and ellipsize at the char
3517         boundary, not word.
3518         Fixes #78711 and #78483.
3519
3520 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3521
3522         * FolderBrowserDialog.cs: Disable "New Folder" button and
3523           "New Folder" contextmenu menuitem if a folder like "My Computer"
3524           is selected.
3525
3526 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3527
3528         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
3529         * FolderBrowserDialog.cs:
3530           - Use MWFConfig to store and read size and position settings
3531           - Added code to create a new folder (button or context menu).
3532             Use TreeView labeledit to change the name of the new folder.
3533
3534 2006-07-14  Jackson Harper  <jackson@ximian.com>
3535
3536         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
3537         when the tree is scrolled we end editing.
3538
3539 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
3540
3541         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
3542           Down arrows
3543
3544 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
3545
3546         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
3547         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
3548         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
3549         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
3550         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
3551         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
3552         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
3553         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
3554         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
3555         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
3556         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
3557         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
3558         ListViewItemSelectionChangedEventHandler.cs,
3559         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
3560         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
3561         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
3562         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
3563         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
3564         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
3565         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
3566         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
3567         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
3568         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
3569         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
3570         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
3571         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
3572         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
3573         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
3574         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
3575         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
3576         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
3577         WebBrowserNavigatingEventHandler.cs, 
3578         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
3579
3580 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
3581
3582         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
3583         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
3584         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
3585         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
3586         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
3587         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
3588         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
3589         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
3590         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
3591         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
3592         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
3593         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
3594         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
3595         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
3596         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
3597         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
3598         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
3599         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
3600         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
3601         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
3602         ListViewItemStates.cs, MaskFormat.cs: Added
3603
3604 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
3605
3606         * PropertyGridView.cs: Fix keyboard navigation of drop down.
3607         Patch from eno for bug 78558.
3608         
3609 2006-07-13  Jackson Harper  <jackson@ximian.com>
3610
3611         * TreeView.cs: When an edit is finished make sure that the
3612         selected node is visible.
3613         - When setting the top/bottom use the scrollbars is_visible, so
3614         everything will be set correctly even if the tree isn't visible
3615         yet.
3616
3617 2006-07-13  Jackson Harper  <jackson@ximian.com>
3618
3619         * ComboBox.cs: Revert the item->index part of my previous patch.
3620         * TreeView.cs: Use LostFocus instead of Leave for detecting when
3621         the edit box has lost focus (duh).
3622         - Just make the edit box not visible when we get return, that will
3623         take the focus, which will call EndEdit
3624         * TreeNode.cs When we start editing, notify the treeview.
3625
3626 2006-07-12  Jackson Harper  <jackson@ximian.com>
3627
3628         * ComboBox.cs: Clear out old items before setting the item list.
3629         This prevents databound controls from having their items added
3630         twice.
3631         - Switch the combobox to use indices whereever possible instead of
3632         using Item's.  This allows usto navigate through lists that have
3633         more then one item with the same string value (ie a, b, b, a).
3634         - Scroll the listboxes scrollbar when a non visible item is
3635         highlighted
3636         - Allow keypress to cycle through all the possible values. For
3637         example if you have b1, b2, b3 and hold down the B key all the
3638         values will be cycled through.
3639         
3640 2006-07-12  Jackson Harper  <jackson@ximian.com>
3641
3642         * TextBoxBase.cs:
3643         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
3644         this using the internal methods.
3645         * Control.cs: Add OnGotFocusInternal.  A new method that allows
3646         controls to "override" OnGotFocus and change focus behavior if
3647         needed.
3648         - Same thing for LostFocus
3649         * ComboBox.cs: Pass off focus to the text control properly.
3650
3651 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
3652
3653         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
3654         * FolderBrowserDialog.cs: Almost a complete rewrite.
3655           - Better support for Environment.Specialfolders
3656           - Added support for MWFVFS
3657           - Made setting SelectedPath work
3658
3659 2006-07-12  Jackson Harper  <jackson@ximian.com>
3660
3661         * Control.cs: Optimze getting all the controls.
3662
3663 2006-07-11  Jackson Harper  <jackson@ximian.com>
3664
3665         * ContainerControl.cs: Override SETFOCUS in the container control,
3666         so that it is not selected on mouse click.
3667
3668 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
3669
3670         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
3671           Hopefully we will have a better way once all of focus is complete.
3672
3673 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
3674
3675         * ThemeWin32Classic.cs: Commented out some debug code and fixed
3676           a compile error with csc.
3677
3678 2006-07-11  Jackson Harper  <jackson@ximian.com>
3679
3680         * Control.cs: When hiding a control only select the next control
3681         if the current control was focused.
3682         - Don't handle enter/leave when setting/killing focus, this is
3683         done by the container control.
3684         - Remove is_selected, it's not needed anymore.
3685         - Add utility methods for selecting a child control, and for
3686         firing the Enter/Leave events.
3687         * ContainerControl.cs: When a control is activated fire the
3688         enter/leave events.
3689         - Don't wrap when processing the tab key, so that focus can be
3690         moved outside of the container.
3691         - Use the correct active control
3692
3693 2006-07-11  Jackson Harper  <jackson@ximian.com>
3694
3695         * ComboBox.cs: Remove some debug code that was blinding me.
3696         * UpDownBase.cs: These controls actually aren't implicit, they are
3697         visible to the user.
3698
3699 2006-07-10  Chris Toshok  <toshok@ximian.com>
3700
3701         * DataGrid.cs: move back to the is_adding boolean field.  god i
3702         hate this is_editing/is_adding/is_changing stuff.
3703
3704 2006-07-10  Chris Toshok  <toshok@ximian.com>
3705
3706         * DataGridTableStyle.cs: just check if the property type is bool.
3707         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
3708         Don't use CanRenderType.
3709
3710         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
3711         if our text == NullText.  Remove CanRenderType.
3712
3713         * DataGridBoolColumn.cs: nuke CanRenderType.
3714
3715         * DataGrid.cs: reenable some code to end the current edit inside
3716         of set_CurrentCell.  This fixes the other 1.1.16 regression.
3717         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
3718         Also, remove the visible_row_count arg from CalcRowHeaders, since
3719         we don't need to worry about the actual height of the area.
3720
3721 2006-07-10  Chris Toshok  <toshok@ximian.com>
3722
3723         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
3724         mode, just return.
3725
3726         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
3727         the real sense of the IsInEditOrNavigateMode property (true =
3728         navigate, false = edit).  Also, update OnKeyPress to reflect this.
3729
3730         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
3731         column style exists, we still need to set its property descriptor
3732         to match up with our list manager.
3733
3734 2006-07-10  Chris Toshok  <toshok@ximian.com>
3735
3736         * ThemeWin32Classic.cs: implement the new row/header painting
3737         approach.  The parent row painting will likely go away and
3738         replaced with label controls, but the rest seems to work ok (and
3739         efficiently).
3740
3741         * Theme.cs: change the way we draw datagrid rows.  we don't draw
3742         the row headers as a block now.  Instead we draw them in the
3743         normal draw-row loop.  Add some calls for drawing parent rows and
3744         relation rows.
3745
3746         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
3747         a default table style.  Set the defaults from ThemeEngine.Current,
3748         not SystemColors.  Fix lots of misc issues with property setters.
3749
3750         * DataGrid.cs: move loads of style information out of this class
3751         as it's being duplicated with DataGridTableStyle.  keep track of a
3752         special DataGridTableStyle for the properties we used to mirror
3753         here.  Switch all the style properties to access this table style
3754         instead of instance fields of this class.  Also add a internal
3755         class to represent parent rows (more needs to be stored here, like
3756         the selection state from the parent table, as well as the
3757         expansion state.)  Also, for datasources with relations, do the
3758         right thing for collapse/expand, and add support for the
3759         navigation/parent row buttons.
3760
3761         Lastly, fix the crash in the 1.1.16 build.
3762
3763         * GridTableStylesCollection.cs: make the explicit interface
3764         implementations call the class's methods as opposed to duplicating
3765         them.
3766
3767         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
3768         0 so the text doesn't jump around when we move the cursor.
3769
3770 2006-07-10  Jackson Harper  <jackson@ximian.com>
3771
3772         * TextBoxBase.cs:
3773         * ListBox.cs: Match MS's ToString (this makes debugging focus
3774         stuff infinitely easier).
3775
3776 2006-07-10  Jackson Harper  <jackson@ximian.com>
3777
3778         * Control.cs (SelectNextControl): When checking the control's
3779         parent use this instead of ctrl.parent so that null can be passed
3780         to SelectNextControl. (I have unit tests for this).
3781         - Remove unused var.
3782
3783 2006-07-10  Chris Toshok  <toshok@ximian.com>
3784
3785         * CurrencyManager.cs: correct one regression, the removal of the
3786         finalType field.  Also, add a MonoTODO on CanAddRows, implement
3787         Refresh() correctly, and fix some event emission in
3788         ListChangedHandler.
3789
3790 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3791
3792         * FileDialog.cs: Don't use brackets for new folders if they exist
3793           under *nix. Instead use -(number of existing folders +1).
3794
3795 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3796
3797         * FileDialog.cs:
3798           - Fixed really nasty bug #78771
3799           - Don't block the whole GUI when reading directories with a lot of
3800             entries. Use an other thread instead and call BeginInvoke to
3801             update the ListView in MWFFileView
3802
3803 2006-07-07  Chris Toshok  <toshok@ximian.com>
3804
3805         * Control.cs (Dispose): release any Capture when disposing.
3806
3807 2006-07-07  Chris Toshok  <toshok@ximian.com>
3808
3809         * LinkLabel.cs (Select): if we chain up to the parent, set
3810         focused_index to -1 so we'll search for the first available link
3811         the next time the user tabs into us.  Also, if the direction is
3812         backward and focused_index == -1, start the search from the last
3813         element.
3814
3815 2006-07-07  Chris Toshok  <toshok@ximian.com>
3816
3817         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
3818         is beyond the end of the text, don't do anything.
3819         (CreateLinkPieces): set our ControlStyles.Selectable based on
3820         whether or not we have any links.
3821         (Link.Invalidate): use a loop instead of foreach.
3822         (Link.set_Start): null out owner.sorted_links so it'll be
3823         recreated by CreateLinkPieces.
3824
3825 2006-07-06  Chris Toshok  <toshok@ximian.com>
3826
3827         * LinkLabel.cs: revert the SetStyle change.
3828
3829 2006-07-06  Chris Toshok  <toshok@ximian.com>
3830
3831         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
3832         (OnEnableChanged): s/Refresh/Invalidate
3833         (OnGotFocus): if we have a focused index already, refocus it (so
3834         if we mouse out/in to the window it'll focus the right link).
3835         (OnKeyDown): move the tab handling out of here.
3836         (OnLostFocus): don't set focused_index to -1, so we can refocus it
3837         when we lose focus.
3838         (OnMouseDown): don't Capture here - Control handles it.  Also,
3839         focus the active link.
3840         (OnMouseUp): don't deal with Capture.
3841         (OnPaintBackgroundInternal): remove.
3842         (OnTextAlignChanged): CreateLinkPieces before calling the
3843         superclass's method.
3844         (OnTextChanged): call CreateLinkPieces before calling superclass's
3845         method.
3846         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
3847         move around.
3848         (Select): implement this, moving the selection between different
3849         links, and call parent.SelectNextControl if we don't have another
3850         link to focus in the given direction.
3851         (CreateLinkPieces): call Invalidate instead of Refresh.
3852         
3853 2006-07-06  Chris Toshok  <toshok@ximian.com>
3854
3855         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
3856         new LinkLabel internals.
3857
3858         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
3859         over pieces looking for active/focused/etc links.  also, deal with
3860         runs of text (and links) with embedded \n's in them, and use
3861         MeasureCharacterRanges instead of MeasureString to figure out the
3862         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
3863         two-step.
3864
3865 2006-07-04  Jackson Harper  <jackson@ximian.com>
3866
3867         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
3868         XKB or key auto repeat, do it manually.  Without key auto repeat,
3869         when a key is held down we get key press, key release, key press,
3870         key release, ... with auto repeat we get key press, key press, key
3871         press ..., and then a release when the key is actually released.
3872
3873 2006-07-03  Jackson Harper  <jackson@ximian.com>
3874
3875         * TabControl.cs:
3876         * ThemeWin32Classic.cs: Tabs do not obey normal background color
3877         rules, they are always control color regardless of the background
3878         color.
3879
3880 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
3881
3882         * FileDialog.cs: Added internal class MWFConfig.
3883           Removed Registry support and replaced it with support for the new
3884           MWFConfig class. See MWFConfig comments for more information.
3885
3886 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
3887
3888         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
3889           rectangle. Added some patches from eno from bug #78490 and fixed
3890           the arrow position for small up and down CPDrawScrollButtons.
3891
3892 2006-06-30  Jackson Harper  <jackson@ximian.com>
3893
3894         * InternalWindowManager.cs: Remove some debug code.
3895         * Form.cs: When an MdiParent is set to null, the window is
3896         "detatched" and becomes a normal window.
3897         * MdiClient.cs: Don't bring the new child form to the front until
3898         it is activated (setting it as active does this), this makes the
3899         previously active forms titlebar get redrawn as inactive.
3900
3901 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
3902
3903         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
3904           with later controls
3905
3906 2006-06-29  Mike Kestner  <mkestner@novell.com>
3907
3908         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
3909         arrow in keynav state.  Fixes #78682.
3910
3911 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
3912
3913         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
3914           order (fixes #78393)
3915
3916 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
3917
3918         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
3919           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
3920           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
3921           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
3922           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
3923           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
3924           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
3925           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
3926           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
3927           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
3928           enumerations (FlagsAttribute, SerializableAttribute, added/removed
3929           values)
3930
3931 2006-06-28  Mike Kestner  <mkestner@novell.com>
3932
3933         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
3934
3935 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
3936
3937         * PropertyGrid.cs,
3938           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
3939           item lines from other area (It also makes BackColor consistent and
3940           compatible with .NET). Fixed bug #78564.
3941
3942 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
3943
3944         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
3945         Patch from Eno for #78555.
3946
3947 2006-06-27  Chris Toshok  <toshok@ximian.com>
3948
3949         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
3950
3951         * DataGridColumnStyle.cs: same.
3952
3953         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
3954         
3955         * DataGridDrawingLogic.cs: nuke.
3956
3957 2006-06-27  Chris Toshok  <toshok@ximian.com>
3958
3959         * DataGridTableStyle.cs: clean up the constructors, and build the
3960         list of child relations for this table.  I have no idea if this is
3961         where we should be doing it (it probably isn't), but since we're
3962         already iterating over the properties..
3963
3964         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
3965         struct and array for keeping track of row information, similar to
3966         what's shown in a hack on
3967         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
3968
3969         * Theme.cs: be consistent about the naming of DataGrid methods,
3970         prefering ColumnWidths and RowHeights over columnsWidths and
3971         RowsHeights.
3972
3973         * ThemeWin32Classic.cs: same, and also add support for variable
3974         sized rows (and the +/- expansion icons for related rows).
3975
3976 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3977
3978         * TextBoxBase.cs: Applied Eno's patch from #78660
3979
3980 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3981
3982         * Form.cs (ScaleCore): We don't want to scale our form if it's
3983           state is minimized or maximized, but we still need to scale our
3984           child windows. Also, added try/finally block to ensure layout
3985           gets reset (Fixes #78697)
3986
3987 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3988
3989         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
3990
3991 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3992
3993         * Form.cs: Fixed c+p error and added check to resize form if minimum
3994           size is bigger than current size (Fixes #78709)
3995
3996 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
3997
3998         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
3999
4000 2006-06-26  Mike Kestner  <mkestner@novell.com>
4001
4002         * ComboBox.cs: only do Keypress handling in the combo when there  
4003         are items in the collection. Fixes #78710.
4004
4005 2006-06-26  Chris Toshok  <toshok@ximian.com>
4006
4007         * Binding.cs: make this work bi-directionally.  also, clear up
4008         other mixups between Push/Pull Data (e.g. we're supposed to pull
4009         data when validating).
4010
4011         * BindingManagerBase.cs: trim some fully qualified collection
4012         types.
4013
4014         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
4015
4016 2006-06-23  Chris Toshok  <toshok@ximian.com>
4017
4018         * PropertyManager.cs: It appears (according to the unit tests)
4019         that PropertyManager doesn't use
4020         PropertyDescriptor.AddValueChanged to track propery value changes
4021         in its datasource, but uses the same scheme as Binding, where it
4022         looks for a <Property>Changed event and binds to it.
4023
4024         Also, according to the docs, IsSuspended always returns false for
4025         a property manager with a non-null datasource.
4026
4027 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
4028
4029         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
4030           need to update the actual DialogResult. (Fixes #78613)
4031
4032 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
4033
4034         * Form.cs (ShowDialog): Release any captures before running the
4035           new message pump (fixes #78680)
4036
4037 2006-06-22  Mike Kestner  <mkestner@novell.com>
4038
4039         * ListView.cs: Layout column widths properly in details mode even 
4040         if HeaderStyle.None is set.  Fixes #78691.
4041
4042 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
4043
4044         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
4045
4046 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
4047
4048         * Control.cs (ContainsFocus): Using new driver method to get focused
4049           window, instead of trying to use internal tracking var, which can
4050           recursion issues (Fixes #78685)
4051         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
4052           XplatUIWin32.cs: Added GetFocus method to return focused window
4053
4054 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4055
4056         * ColorDialog.cs: when the mouse button is pressed inside the color
4057         matrix, don't let the cursor move out of it until the button is
4058         released, which is the behavior on windows. Changed 'colours' by
4059         'colors' to use the same word consistently.
4060
4061 2006-06-21  Chris Toshok  <toshok@ximian.com>
4062
4063         * DataGrid.cs: add in some basic navigation stuff (navigating to a
4064         child relation and back, using a stack).  Also, remove
4065         GetDataSource and the code that calls it - it's not needed.  Also,
4066         track CurrencyManager.ListName's removal.
4067
4068 2006-06-21  Chris Toshok  <toshok@ximian.com>
4069
4070         * CurrencyManager.cs: push some of the original type checking from
4071         BindingContext.CreateBindingManager to here, and remove some of
4072         the finalType stuff.  Need more tests to make sure I've got the
4073         ListName part right, and we might need more in SetDataSource.
4074
4075         * PropertyManager.cs: add a ctor that takes just the datasource,
4076         and no property name.  Make SetDataSource work with a null
4077         property_name, and make Current return the data_source if the
4078         property descriptor is null.  this makes 'string foo = "hi";
4079         BindingContext[foo].Current' return "hi" as it should.
4080
4081         * RelatedCurrencyManager.cs: make this code more generic - there's
4082         no reason the parent manager has to be CurrencyManager, and
4083         there's no reason to pass the DataRelation.  It suffices to use a
4084         BindingManagerBase and PropetyDescriptor.
4085
4086         * RelatedPropertyManager.cs: make a similar change here.
4087         
4088         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
4089         flower I knew it could be.
4090
4091 2006-06-20  Chris Toshok  <toshok@ximian.com>
4092
4093         * PropertyManager.cs: the PropertyChangedHandler is invoked when
4094         data in the source has changed and we need to update the control,
4095         so s/PullData/PushData.
4096
4097         * CurrencyManager.cs: Refresh is meant to update the control from
4098         data in the datasource.  So, s/PullData/PushData.
4099
4100         * BindingContext.cs: add more ugliness (we weren't handling the
4101         case where data_source = DataTable and data_member = column_name).
4102
4103         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
4104         from the perspective of the datasource.  PullData pulls from the
4105         control, PushData pushes to the control.
4106
4107 2006-06-20  Chris Toshok  <toshok@ximian.com>
4108
4109         * BindingContext.cs: rewrite the CreateBindingManager code to
4110         handle navigation paths more or less properly.  This could
4111         definitely stand some more work, in particular to push the
4112         recursion up to the toplevel.  But that relies on fixes in other
4113         places (System.Data comes to mind).
4114
4115         Also, move to a flat hashtable (and encode the twolevel nature of
4116         the dictionary into the hash key).  This lets us implement the
4117         IEnumerable.GetEnumerator method.
4118
4119         * RelatedCurrencyManager.cs: new class.  Update our view based on
4120         our relation and our parent CurrencyManager's position.
4121
4122         * CurrencyManager.cs: split out some logic from the ctor into
4123         SetView, so it can be called from the new RelatedCurrencyManager
4124         subclass.
4125
4126         * RelatedPropertyManager.cs: new class.  Update our datasource
4127         based on the position of our parent CurrencyManager.
4128
4129         * PropertyManager.cs: split out some logic from the ctor into
4130         SetDataSource, so it can be called from the new RelatedDataSource
4131         subclass.  Also, make the Current getter return the value
4132         of the PropertyDescriptor, not the data_source.
4133
4134         * Binding.cs: no need to duplicate the string splitting code here.
4135
4136 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4137
4138         * Control.cs:
4139           - set_Enabled: OnEnabledChanged is not called if the inherited state 
4140             of the control is not altered, even though  we might be changing the
4141             internal state of the control (#78458)
4142           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
4143             OnEnabledChanged, to allow easy altering of any child window state
4144           - OnEnabledChanged: Added code to enable/disable driver window state
4145           - OnParentEnabledChanged: Instead of firing the event, call 
4146             OnEnabledChanged, which will fire the event and also a) set driver
4147             window state and pass the enabled state to any grandchildren (#78458)
4148
4149 2006-06-19  Jackson Harper  <jackson@ximian.com>
4150
4151         * InternalWindowManager.cs: We don't set the cursor explicitly
4152         thats done via the response to NCHITTESTs.
4153         - Don't need to adjust for titlebar heights anymore, the
4154         coordinates are coming in the correct coordinates now (see peters
4155         last patch).
4156
4157
4158 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
4159
4160         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
4161           being translated relative to whole window, instead of client window.
4162           That caused broken offsets on mouseclick (and caused gas for our
4163           InternalWindowManager)
4164
4165 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4166
4167         * TextControl.cs:
4168           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
4169           - Undo(): Added replay of cursor move on DeleteChars action; added
4170             calling Undo() again if a recorded cursor move is invalid (to
4171             ensure that some action is performed on Undo)
4172         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
4173
4174 2006-06-16  Jackson Harper  <jackson@ximian.com>
4175
4176         * MdiClient.cs: Instead of just sizing maximized windows when
4177         there is a resize we also have to adjust the Y of minimized
4178         windows, so they stay pinned to the bottom of the mdi container.
4179         - Eliminate separate tracking of the active control, we can just
4180         get this from the controls collection.
4181         - Paint the decorations for the newly activated titlebar so we get
4182         a pretty blue bar.
4183         * InternalWindowManager.cs:
4184         * ThemeWin32Classic.cs: Minimized windows get all three buttons
4185         even if they are a tool window.
4186         
4187 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
4188
4189         * TextControl.cs (Undo): Handle non-existent cursor locations in the
4190           undo buffer, these can happen when text was deleted and the cursor
4191           was recorded first. Since we will also have a recorded cursor
4192           after the delete this is not an issue. (Fixes #78651)
4193
4194 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
4195
4196         * AccessibleObject.cs: Remove dependence on Control.is_selected;
4197           instead properly track control states internally (allows us to
4198           remove is_selected from Control)
4199
4200 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4201
4202         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
4203         whose width is not a multiple of 8.
4204
4205 2006-06-13  Jackson Harper  <jackson@ximian.com>
4206
4207         * MdiClient.cs:  Only maximize the next child if the current one
4208         is maximized.
4209
4210 2006-06-13  Chris Toshok  <toshok@ximian.com>
4211
4212         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
4213         modified.  Also, guard against grid or grid_drawing being null in
4214         Invalidate.
4215
4216         * DataGrid.cs: Reformat tons of getters/setters.  In the
4217         DataMember setter, just call SetNewDataSource instead of
4218         duplicating some of its functionality.  In SetNewDataSource, don't
4219         check ListManager for null, since the property getter creates the
4220         object if needed.
4221
4222         * DataGridTableStyle.cs: don't set TableStyle or call
4223         SetDataGridInternal on the column here, it's done in
4224         GridColumnStylesCollection.Add.
4225
4226         * GridColumnStylesCollection.cs: fix all the explicit interface
4227         implementations to just call our methods.  Nuke AddInternal() and
4228         move the body of it to Add().  Also, add a call to
4229         column.SetDataGridInternal to Add().
4230
4231         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
4232         base()+duplicate code.  Also, use the Format property instead of
4233         format to generate an Invalidate ala MS.  Lastly, create the
4234         textbox here, unconditionally.
4235         (set_Format): call Invalidate.
4236         (get_TextBox): no need to call EnsureTextBox.
4237         (Commit): remove the message box.
4238         (Edit) remove the call to EnsureTextBox.
4239         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
4240         (EnterNullValue): no need to check textbox for null.
4241         (HideEditBox): no need to check textbox for null.
4242         (SetDataGridInColumn): add the textbox to the grid's controls.
4243         (EnsureTextBox): nuke.
4244         
4245 2006-06-13  Jackson Harper  <jackson@ximian.com>
4246
4247         * MdiWindowManager.cs: Hook up to the maximized menus paint event
4248         and redraw the buttons when needed. Unhook when the window is
4249         unmaximized.
4250         * MainMenu.cs: Add an internal Paint event, the mdi window manager
4251         needs this so that it can redraw its buttons when the menu is
4252         repainted.
4253         * InternalWindowManager.cs:
4254         * Form.cs: The method order has changed for DrawMaximizedButtons,
4255         so that it can be a PaintEventHandler.
4256         
4257 2006-06-13  Jackson Harper  <jackson@ximian.com>
4258
4259         * MdiClient.cs: When we close a maximized mdi window, the next mdi
4260         window is activated and maximized, even if it wasn't before.
4261         - When  a new window is activated repaint the decorations of the
4262         old one, so that it no longer has the Active "look" (the blue
4263         titlebar).
4264         * InternalWindowManager.cs: Open up CreateButtons to base classes
4265         so they can recreate the buttons on state changes.
4266         - If a window is maximized give it all three buttons
4267         * MdiWindowManager.cs: Create the titlebar buttons when the state
4268         is changed, this is needed because a toolwindow will not have all
4269         three buttons until it is maximized.
4270
4271 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
4272
4273         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
4274           Fixed bug #78609.
4275
4276 2006-06-12  Jackson Harper  <jackson@ximian.com>
4277
4278         * KeysConverter.cs: Make sure we handle the Ctrl special case
4279         if its the only key.
4280         
4281 2006-06-12  Jackson Harper  <jackson@ximian.com>
4282
4283         * Theme.cs: Add a method to get the size of a managed window
4284         toolbar button.
4285         * InternalWindowManager.cs: Remove the ButtonSize property, this
4286         should be retrieved from the theme.
4287         * MdiWindowManager.cs: Get the button size from the theme
4288         * ThemeWin32Classic.cs: Make the method to get the managed window
4289         titlebar button size public.
4290         - Handle the different button sizes of maximized toolwindows
4291         (should match any maximized window).
4292         - Get the titlebar height from the theme, not the WM (which gets
4293         it from the theme).
4294
4295 2006-06-12  Jackson Harper  <jackson@ximian.com>
4296
4297         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
4298         event down to the mdi window manager.
4299         - Expose some extra stuff to base classes
4300         - Make sure to end the Capture on an NC Mouse up, so that we can
4301         get double clicks properly, and the sizing doens't stick.
4302         - When doing PointToClient contain it in the workable desktop
4303         area, this prevents windows from changing size when the cursor is
4304         pulled outside of the working area while sizing.
4305         * MdiWindowManager.cs: When we get a double click maximize the
4306         window.
4307         - Reset the cursor after handling mode changes.
4308
4309 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
4310
4311         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
4312           current desktop, instead of just assuming a 0, 0 origin. This
4313           is needed for our internal window manager, to know the top
4314           margin of the desktop
4315
4316 2006-06-12  Chris Toshok  <toshok@ximian.com>
4317
4318         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
4319         we need this to get rid of the selected background in the bool
4320         column.
4321         (CancelEditing): move the ConcedeFocus call to above the Abort
4322         call.  Also, set is_changing to false and invalidate the row
4323         header if we were changing before.
4324         (ProcessKeyPreviewInternal): remove, since noone outside this
4325         class calls it anymore.  Roll the code into ProcessKeyPreview.
4326         (EndEdit): remove the internal version.
4327         (InvalidateCurrentRowHeader): make private.
4328
4329         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
4330         Keys.Escape handling (and with it the last call to
4331         DataGrid.EndEdit from outside the class.)
4332
4333
4334 2006-06-12  Chris Toshok  <toshok@ximian.com>
4335
4336         * DataGridTextBox.cs (.ctor): isedit defaults to false.
4337         (OnKeyPress): set isedit to true.
4338         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
4339         already handled by the grid.
4340
4341         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
4342         right.  ugh.
4343         (set_DataSource): SetDataSource always returns true, so stop
4344         putting it in an if statement.
4345         (EndEdit): get rid of some {}'s
4346         (ProcessGridKey): return true in case Keys.Escape.
4347         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
4348         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
4349         PositionChanged, stopped connecting to CurrentChanged.
4350         (GetDataSource): simplify this a bunch.
4351         (SetDataSource): change return type from bool to void.
4352         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
4353         to this, and make sure we don't set ListManager.Position inside
4354         set_CurrentCell.
4355         (OnListManagerItemChanged): if we're passed an actual index,
4356         redraw that row.
4357
4358         * CurrencyManager.cs (set_Position): don't call PullData here.
4359
4360 2006-06-09  Jackson Harper  <jackson@ximian.com>
4361
4362         * TreeNode.cs:  Recalculate the visible order before doing the
4363         Expand/Collapse Below calls, because those calls generate an
4364         expose.
4365         - Reduce calls to the TreeView property, which is mildly expensive
4366         by using a local var.
4367         * Form.cs: Layout the MDI child windows when creating the parent
4368         form.
4369         - Don't use the internal constructor anymore
4370         * MdiClient.cs: use the parent form width/height (if available)
4371         when laying out the child windows, we do this because the
4372         mdiclient isn't docked yet when the initial layout is done.
4373         - Don't need an internal constructor anymore.
4374
4375 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4376
4377         * FileDialog.cs: handle access errors when trying to create a folder
4378         or changing to a directory. No need to initialize out parameters.
4379
4380 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4381
4382         * FileDialog.cs: Append a number when creating a new folder if the
4383           folder already exists (use parenthesis instead of square brackets)
4384
4385 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4386
4387         * FileDialog.cs:
4388           - Disabled registry support for windows and added better registry
4389             error checking for other systems (need to investigate why it
4390             works perfectly on my system)
4391           - If a folder already exist show an error MessageBox instead of
4392             trying to create an indexed name.
4393           - Fixed a non intentional typo.
4394
4395 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4396
4397         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
4398
4399 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4400
4401         * FileDialog.cs: When creating a new folder don't crash if the
4402           folder already exists.
4403
4404 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4405
4406         * FileDialog.cs: Allmost a complete rewrite.
4407           - added a "virtual" file system that handles the differences
4408             between unix and windows file systems (especially the directory
4409             structure). Moved most of the directory and file handling code
4410             into the vfs.
4411             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
4412             UnixFileSystem and FSEntry.
4413           - Recently used folder/directory, size, location and used file names
4414             (file name ComboBox) are now stored in the registry and get read
4415             before the dialog shows up (fixes part 6 of bug #78446).
4416           - Creation of new folders/directories is now possible (context menu
4417             or ToolBar). Added TextEntryDialog for this that fills in the gap
4418             until ListView.LabelEdit works.
4419           - Fixed cursor handling (bug #78527) and focus handling for
4420             PopupButtonPanel
4421           - Various "Search in" ComboBox enhancements. The content of the
4422             dropdown listbox now almost matches ms.
4423           - Changed the behaviour when the user switches to SpecialFolder
4424             Recent to show the ListView in View.Details.
4425           - Beside using the ToolBar to change the View property of the
4426             file ListView it is now possible to use the context menu too.
4427
4428 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
4429
4430         * ComboBox.cs: Don't create a new ObjectCollection when an item
4431           gets inserted. Just insert the item in the existing object_items
4432           ArrayList.
4433
4434 2006-06-08  Jackson Harper  <jackson@ximian.com>
4435
4436         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
4437         that the treeview and root node checks are done also, this fixes a
4438         regression i caused in the unit tests.
4439
4440 2006-06-07  Wade Berrier <wberrier@novell.com> 
4441
4442         * RichTextBox.cs: More ISO8859-1 -> unicode
4443
4444 2006-06-07  Mike Kestner  <mkestner@novell.com>
4445
4446         * ComboBox.cs : use items to hold highlight/selection so that
4447         collection insertions don't require synchronization.
4448
4449 2006-06-07  Jackson Harper  <jackson@ximian.com>
4450
4451         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
4452         routine.  We now always keep the sized edge at the cursor instead
4453         of computing movement and adjusting rects.  There is one buglet
4454         with this method though when the cursor is moved over area that
4455         the window can not expand too (such as the toolbars on the desktop).
4456
4457 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4458
4459         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
4460         here. Fixes crash on startup in AlbumSurfer.
4461
4462 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
4463
4464         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
4465           values
4466
4467 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4468
4469         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
4470         statement to avoid calling XNextEvent which will block if another thread
4471         took the event that we were expecting. Fixes bug #78605.
4472
4473 2006-06-07  Mike Kestner  <mkestner@novell.com>
4474
4475         * ListView.cs : isolated checkbox clicking from the selection logic.
4476         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
4477
4478 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4479
4480         * Form.cs: Check that the value passed to Form.DialogResult
4481         is a valid enum value.
4482
4483 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4484
4485         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
4486         Computer'. Clicking it in the network view goes to 'My Computer'.
4487         Added CIFS filesystem type. Display the mount point of filesystems.
4488         Avoid duplicate mount points (happens for me with CIFS);
4489
4490 2006-06-06  Jackson Harper  <jackson@ximian.com>
4491
4492         * InternalWindowManager.cs: Draw the maximized windows buttons
4493         when resizing.
4494
4495 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4496
4497         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
4498         all other dialogs. Fixes bug #78585.
4499
4500 2006-06-06  Mike Kestner  <mkestner@novell.com>
4501
4502         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
4503         Only invalidate checkbox on checkstate changes to avoid flicker.
4504         * ListBox.cs : avoid unselect/select when clicking selected item.
4505         avoid reselection flicker for already multiselected items.
4506         Fixes #78382.
4507
4508 2006-06-06  Jackson Harper  <jackson@ximian.com>
4509
4510         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
4511         the parent form so that the menu is removed if needed.
4512
4513 2006-06-06  Mike Kestner  <mkestner@novell.com>
4514
4515         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
4516         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
4517
4518 2006-06-06  Mike Kestner  <mkestner@novell.com>
4519
4520         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
4521
4522
4523 2006-06-06  Jackson Harper  <jackson@ximian.com>
4524
4525         * Control.cs: Use the property (instead of the field) to get the
4526         default cursor so it is instantiated correctly.
4527         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
4528         resizes so we need to manually repaint the window decorations here.
4529         - Set the titlebar button locations as soon as they are created,
4530         otherwise they are not set correctly on win32.
4531         
4532 2006-06-06  Chris Toshok  <toshok@ximian.com>
4533
4534         * CurrencyManager.cs (set_Position): call PullData before
4535         OnCurrentChanged.
4536         (AddNew): after calling IBindingList.AddNew, update our
4537         listposition, and call OnCurrentChanged/OnPositionChanged (without
4538         calling PullData).
4539         (OnCurrentChanged): remove the call to PullData from here.
4540         (OnItemChanged): remove the call to PushData from here.
4541         (OnPositionChanged): change the test from == null to != null to
4542         match the other methods.
4543         (ListChangedHandler): the grossest part of the patch.  Implement
4544         this such that it passes the unit tests in CurrencyManagerTest and
4545         the output more or less matches that of MS's implementation.
4546  
4547 2006-06-06  Mike Kestner  <mkestner@novell.com>
4548
4549         * ListView.cs : only update check state on single click.
4550         * ThemeWin32Classic.cs : fix focus drawing for details view without
4551         fullrowselect.  Fixes #78454.
4552         * XplatUIX11.cs : fix for double click emission.
4553
4554 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4555
4556         * PropertyGridView.cs : Applied Atsushi's patch to fix
4557         font dialog bug  (#78197).
4558
4559 2006-06-05  Jackson Harper  <jackson@ximian.com>
4560
4561         * TreeNode.cs: Compute the next node for expanding/collapsing
4562         correctly. We now factor in nodes without a NextNode
4563         correctly. (Fixes somes cases in nunit-gui).
4564         * InternalWindowManager.cs: Set the bounds when updating the
4565         virtual position of a tool window.
4566         
4567 2006-06-05  Chris Toshok  <toshok@ximian.com>
4568
4569         * DataGrid.cs: rename cached_currencymgr to list_manager.
4570         (set_CurrentCell): move SetCurrentCell code here, and clean it up
4571         some.
4572         (CurrentRow, CurrentColumn): single accessors so we can make the
4573         cursor movement code a lot easier to understand.
4574         (CurrentRowIndex): implement this in terms of CurrentRow.
4575         (BeginEdit): clean this up a bit.
4576         (CancelEditing): sort out the is_editing/is_changing/is_adding
4577         stuff a little.
4578         (EndEdit): minor changes.
4579         (OnKeyDown): add a comment about a (most likely) unnecessary
4580         check.
4581         (OnMouseDown): cancel editing when we click on a row header.  And
4582         use the CurrentRow setter, not CurrentCell.
4583         (ProcessDialogKey): directly call ProcessGridKey.
4584         (UpdateSelectionAfterCursorMove): factor out this common block of
4585         code (it's used everywhere that we move the cursor by updating row
4586         or column).
4587         (ProcessGridKey): pretty substantial overhaul.  Use the
4588         CurrentRow/CurrentColumn properties to make the code a lot more
4589         readable.  Only use the CurrentCell property when we have to
4590         modify both row and column at once.  Tab behavior is still broken,
4591         and Delete is untested.
4592         (Select): if we have no selected rows, set selection_start to
4593         @row.
4594         (EditCurrentCell): rename EditCell this.  It was only ever invoked
4595         with CurrentCell as the arg, so drop the arg and rename it.
4596
4597         * DataGridColumnStyle.cs: clean up the constructors a little, and
4598         drop CommonConstructor().
4599
4600         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
4601         actually get notified when the user hits it.
4602         (ProcessKeyMessage): *substantially* simplify this method.
4603         There's no reason (that I can see) for the textbox to be making
4604         calls into the datagrid at all.  Remove all of them but the ones
4605         for Enter handling.  those will take some more work.
4606
4607         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
4608         calling HideEditBox.
4609         (HideEditBox): if we have an active textbox, render it invisible
4610         without causing a re-layout of the datagrid.
4611
4612 2006-06-05  Mike Kestner  <mkestner@novell.com>
4613
4614         * ListView.cs : fix NRE crasher when focuseditem is cleared by
4615         collection changes by resetting it to Items[0].  Fixes #78587.
4616
4617 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4618
4619         * MessageBox.cs: if the height of the text is larger than the icon_size,
4620         use that. Fixes bug #78575.
4621
4622 2006-06-05  Jackson Harper  <jackson@ximian.com>
4623
4624         * TreeView.cs: Fix line drawing when scrolling.  To do this each
4625         node is basically responsible for drawing its entire horizontal
4626         area.  When drawing a node it draws its parent node lines if
4627         needed.
4628         - Adjust the clip area to the viewport rectangle
4629         - Fix Left/Right key handling to match MS. (It expand/collapses
4630         and moves to parents/first child but does not move selection to
4631         sibling nodes).
4632         - Fix SetTop to work with new bound calculation code
4633         - When scrollbars are no longer needed we need to reset scrolling
4634         vars and recalculate the visible order so the redraw is correct
4635         * TreeNode.cs: We can't expand/collapse nodes with no children.
4636
4637 2006-06-03  John Luke  <john.luke@gmail.com> 
4638
4639         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
4640         so the colors work without dev packages
4641         
4642 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
4643
4644         * Control.cs 
4645           - Select: Implemented to just use activate. Seems to match MS 
4646             behaviour closest. Documented to only do actual control walking 
4647             based on it's parameters if in a container control so I moved 
4648             the code there.
4649           - Removed selection check logic from our internal Select() method
4650         * ContainerControl.cs:
4651           - Select: Moved selection logic from Control here, since MS documents
4652             that containers obey the bool arguments. No longer calling base
4653
4654 2006-06-02  Jackson Harper  <jackson@ximian.com>
4655
4656         * TreeView.cs: If the selected node isn't changed when we get
4657         focus update the previously selected node so that we see the
4658         selection box.
4659
4660 2006-06-02  Mike Kestner  <mkestner@novell.com>
4661
4662         * ComboBox.cs: restructure grab and general mouse event handling.
4663         Make the composite control raise mouse events like it was a single
4664         control for leaves/enters/motion/up/down events.  fix dropdown list
4665         coordinate mangling and refactor it into the scrollbar subclass to
4666         reduce code duplication.  Fixes #78282 #78361 and #78457.
4667
4668 2006-06-02  Mike Kestner  <mkestner@novell.com>
4669
4670         * ScrollBar.cs: remove Capture setting/clearing, as it happens
4671         automatically in the Control.WndProc.
4672
4673 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4674
4675         * FileDialog.cs: fix crash when running SharpChess, which sets the
4676         FilterIndex to 2 with only one Filter.
4677
4678 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4679
4680         * ToolBar.cs: add SizeSpecified property.
4681         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
4682         try to figure out our real size, otherwise fallback to what the
4683         container says.
4684
4685 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4686
4687         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
4688         * Control.cs (WndProc): MS always calls the DefWndProc to pass
4689           up the event
4690
4691 2006-06-01  Mike Kestner  <mkestner@novell.com>
4692
4693         * ListView.cs: revamp the focus management in ListView.  It still
4694         causes churn of LostFocus/GotFocus emissions on clicks, but it's
4695         better than not handling focus at all.  Will revisit when pdb feels
4696         the general focus handling is solid.  Fixes #78526.
4697
4698 2006-06-01  Jackson Harper  <jackson@ximian.com>
4699
4700         * TreeView.cs: Set the default border style in the constructor.
4701         - Move painting to use OnPaintInternal instead of capturing
4702         WM_PAINT, this is the correct way of doing things
4703         - UpdateBelow shouldn't invalidate the scrollbar area
4704         - Cap the top on update below in case the node was above the top
4705         of the viewport rectangle.
4706         - ExpandBelow and Collapse below need to obey Begin/End Update.
4707         * TreeNode.cs: Make is_expanded internal so the treenode
4708         collection can change it without firing the whole event chain.
4709         * TreeNodeCollection.cs: When clearing all the child nodes make
4710         sure to recalc the visible order.
4711         - Improve algo for remove the top node
4712
4713 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4714
4715         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
4716           SendMessage directly calling window procedures, which in turn might
4717           call SetFocus()
4718
4719 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
4720
4721         * Control.cs: Don't handle WM_SETFOCUS if the same window already
4722           has focus (works around X11 sending a FocusIn after our SetFocus)
4723         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
4724
4725 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
4726
4727         * Mime.cs: Fix for the NET_2_0 build.
4728           NameValueCollection needs StringComparer now.
4729
4730 2006-05-31  Chris Toshok  <toshok@ximian.com>
4731
4732         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
4733         return (via an out parameter) the starting X of the column.
4734         (UpdateVisibleColumn): track change to FromPixelToColumn.
4735         (HitTest): add a ColumnResize case here.
4736         (DrawResizeLine): new function, probably poorly named.
4737
4738         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
4739         only need to keep one reference.
4740         (set_ListManager): same.
4741         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
4742         Also, add support for HitTestType.ColumnResize.
4743         (OnMouseMove): add column resize behavior here, and change the
4744         cursor to the correct one as we move around the datagrid.
4745         (OnMouseUp): terminate the column resize if we're resizing.
4746         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
4747         for the current cell.
4748         (ConnectListManagerEvents): use cached_currencymgr.
4749         (DisconnectListManagerEvents): fill this in, using
4750         cached_currencymgr.
4751         (SetCurrentCell): remove cached_currencymgr_events handling.
4752         (SetDataMember): only call DisconnectListManagerEvents if
4753         cached_currencymgr is != null.
4754         (SetDataSource): same.
4755         (OnListManagerCurrentChanged): cached_currencymgr_events ->
4756         cached_currencymgr.
4757
4758 2006-05-31  Jackson Harper  <jackson@ximian.com>
4759
4760         * BindingManagerBase.cs: Remove somedebug code that creeped into
4761         SVN.
4762         * TreeNode.cs: We get the indent level dynamically right now, so
4763         don't track it as a member.
4764         * TreeNodeCollection.cs: Make sure all nodes added to the list
4765         have parents, treeviews/topnodes setup properly.
4766         - Don't attempt to track indent level.
4767
4768 2006-05-30  Jackson Harper  <jackson@ximian.com>
4769
4770         * BindingContext.cs: Create the currency manager tables here.
4771         This allows us to more easily create null tables (when bad data
4772         members are used), and more easily create related currency
4773         managers.
4774         * CurrencyManager.cs: All the table creation stuff is done by the
4775         binding context now.
4776         - Current should throw an exception if listposition is -1.
4777         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
4778         been bound yet.
4779
4780 2006-05-30  Mike Kestner  <mkestner@novell.com>
4781
4782         * ListView.cs: allow reexpansion of zero-width column headers.
4783         Fixes #78528.
4784
4785 2006-05-28  Chris Toshok  <toshok@ximian.com>
4786
4787         * CurrencyManager.cs (get_Current): after the late binding
4788         listposition = -1 fix, we need to guard against it here and return
4789         null, otherwise we raise an exception (which is swallowed
4790         elsewhere, and breaks datagrid databinding.)
4791
4792 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4793
4794         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
4795           than WM_SYSKEY, don't throw if get something unexpected (#78507)
4796
4797 2006-05-26  Jackson Harper  <jackson@ximian.com>
4798
4799         * ControlPaint.cs:
4800         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
4801         values, it's faster and it's all we care about (we don't care if
4802         the names aren't equal).
4803         * KeyboardLayouts.cs: Eliminate some dead code.
4804         - Lazy init things
4805         * X11Keyboard.cs: Lazy init keyboard detection.
4806         - Cleanup access modifiers a little.
4807
4808 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4809
4810         * XplatUIX11.cs: Once again, attempting to get layout just right.
4811
4812 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
4813
4814         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
4815           the sizes of each link section, that will result in sizes that
4816           match DrawString's layout (Fixes #78391)
4817
4818 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
4819
4820         * FileDialog.cs: If AddExtension property is true autocomplete the
4821           extensions in SaveFileDialog correctly. Fixes bug #78453.
4822           Set MyNetwork and MyComputer to "C:\" for windows. This should
4823           fix part 8 of bug #78446 for now.
4824
4825 2006-05-26  Chris Toshok  <toshok@ximian.com>
4826
4827         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
4828         invalidate the current row header if we need to, but presumably
4829         we'll invalidate the row corrsponding to the bounds or
4830         editingControl.
4831         (GridHScrolled): switch back to this method, as it's part of the
4832         public api.  *sigh*.
4833         (GridVScrolled): same.
4834         (OnMouseWheel): hack up something that more or less works.  Call
4835         GridHScrolled/GridVScrolled directly, instead of duplicating much
4836         of their code here.
4837         (EnsureCellVisibility): reinstate a bunch of this code, since we
4838         can't just set the scrollbar Value and expect to do all the work
4839         in the ValueChanged handler.  Also, Call Update() after scrolling
4840         in one direction so the other XplatX11.ScrollWindow call has the
4841         proper stuff in the proper places.
4842         (EditCell): set is_editing to true before calling .Edit.
4843
4844         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
4845         don't bother comparing first.
4846         (OnKeyPress): call grid.ColumnStartedEditing before calling
4847         base.OnKeyPress.  this will set is_changing and invalidate the row
4848         header if necessary.
4849         (ProcessKeyMessage): for WM_CHAR messages, call
4850         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
4851         and WM_KEYDOWN.
4852         
4853         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
4854         it's done in the DataGrid.
4855         (NextState): call grid.ColumnStartedEditing, which takes care of
4856         invalidating the row header (and setting is_changing).
4857
4858         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
4859         here.  it's done in the DataGrid.
4860
4861 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4862
4863         * Control.cs: allow changing the cursor when the mouse position is
4864         out of bounds but Capture is set.
4865         * LinkLabel.cs: handle the case when the mouse button is pressed on the
4866         linklabel but released somewhere else.
4867
4868 2006-05-25  Jackson Harper  <jackson@ximian.com>
4869
4870         * TreeView.cs: When we get focus if there is no selected node make
4871         it the top node
4872         - Remove some uneeded setup code from Draw.
4873         * TreeNodeCollection.cs: If the tree doesn't have a top node when
4874         a new node is inserted make the new node the top.
4875         * XplatUIX11.cs:
4876         * Timer.cs: Use Utc time so that no local time zone stuff needs to
4877         be used (should be faster).
4878         
4879 2006-05-25  Chris Toshok  <toshok@ximian.com>
4880
4881         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
4882         problem with the last commit.
4883
4884 2006-05-25  Chris Toshok  <toshok@ximian.com>
4885
4886         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
4887         need the invalidate call here, while scrolling right-to-left via
4888         the left arrow key (i.e. moving the editing cell while scrolling).
4889
4890         * DataGrid.cs (.ctor): remove the initialization of
4891         ctrl_pressed/shift_pressed.  We no longer track them using key
4892         up/down handlers, but by using Control.ModifierKeys.  Also, switch
4893         to using ValueChanged handlers on the scrollbars instead of
4894         Scrolled event handlers.  This simplifies a bunch of the scrolling
4895         code.
4896         (GridHValueChanged): rename from GridHScrolled, and change it to
4897         work with the new event args.
4898         (GridVValueChanged): same.
4899         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
4900         (OnMouseWheel): actually scroll the datagrid.  Don't change the
4901         selected cell.
4902         (ProcessGridKey): correct all the keyboard navigation stuff I
4903         could find.  Ctrl up/down/left/right/home/end work now.
4904         (EnsureCellVisibility): correct method name spelling.  Also,
4905         simplify this a touch by not explicitly calling the
4906         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
4907         scrollbar value.
4908         (OnKeyUpDG): no need for this method now.
4909         
4910 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4911
4912         * LinkLabel.cs: display the OverrideCursor when hovering the label.
4913         Fixes bug #78392.
4914
4915 2006-05-25  Chris Toshok  <toshok@ximian.com>
4916
4917         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
4918         r61019.
4919
4920 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
4921
4922         * Application.cs: Moved setting of is_modal and closing to before
4923           we create the control, to allow the event handlers called as a
4924           result of creation affect closing. Also removed Gonzalo's previous
4925           change to setting DialogResult, the behaviour has been moved to 
4926           Form.ShowDialog()
4927         * Form.cs: 
4928           - ShowDialog(): Removed explicit creation of the form, let RunLoop
4929             handle it instead
4930           - ShowDialog(): If no dialog result is set, we need to return Cancel
4931           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
4932             the close is cancelled
4933
4934 2006-05-25  Jackson Harper  <jackson@ximian.com>
4935
4936         * StatusBar.cs: We only need to update the sizes of the other
4937         panels when we have auto size contents.  Also we are only updating
4938         the contents of the panel, not the borders, so compensate for the
4939         border width (TODO: get this width from the theme somehow).
4940         * TreeView.cs: Scrollable is true by default
4941         - Use invalidate instead of refresh where needed
4942         - Factor the scrollable value into scrollbar updating
4943         - Update the scrollbars if the Scrollable property is altered
4944         - Update the selected node if its ImageIndex is changed
4945         - Handle null nodes in UpdateNode (mainly so we don't have to
4946         check if selected is null when updating it
4947         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
4948         are factored into the visible count
4949         - Use VisibleCount for clarity in the code
4950         - When the font is changed we need to recurse through all the
4951         nodes and invalidate their sizes
4952         
4953 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4954
4955         * Application.cs: set the DialogResult to fixed when the main form is
4956         hidden or destroyed while being modal.
4957
4958 2006-05-25  Miguel de Icaza  <miguel@novell.com>
4959
4960         * Theme.cs: Use Tangoified messagebox icons. 
4961
4962         (GetSizedResourceImage): Also cope with width = 0 and do not
4963         trigger a warning in that case (0 means "give me your icon from
4964         the resouce, no special size needed).
4965
4966 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
4967
4968         * Application.cs: Leave runloop if the the main modal form is 
4969           hidden (fixes #78484)
4970
4971 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4972
4973         * BindingContext.cs : reject null datasource in Contains() and
4974           Item[].
4975         * CurrencyManager.cs : check data_member validity when data_source
4976           is dataset. When it is late binding, the initial position is -1.
4977
4978 2006-05-24  Jackson Harper  <jackson@ximian.com>
4979
4980         * TreeNodeCollection.cs: Dont't recalculate the visible order on
4981         inserted nodes that aren't visible.  This changes the
4982         max_visible_order which confuses scrollbar settings.
4983         - Use the enumerator to get the prev node instead of duplicating
4984         code.
4985         * TreeView.cs: Use new method for setting scrollbar values
4986         - Don't set the bounds every time the scrollbar is updated
4987         - When updating below the root node use an invalidate instead of a
4988         refresh to prevent the child controls (scrollbars) from being
4989         refreshed. (UpdateBelow still needs to be reworked anyways).
4990         - Reenable SetBottom now that visible orders are set correctly,
4991         added some debug code incase we ever get bad values there again.
4992         - Set the scrollbar max to 2 less then the max value, this
4993         compensates for the max value being one above the node count, and
4994         for scrollbars adding one extra "notch".
4995         - When drawing image nodes if there is an imagelist we draw the
4996         first image in the list if the supplied image index is out of the
4997         image list's bounds.
4998         
4999 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5000
5001         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
5002           we receive a size change from the WM (Fixes #78503)
5003
5004 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
5005
5006         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
5007           rectangle (Fixes #78501)
5008
5009 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
5010
5011         * ButtonBase.cs: 
5012           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
5013             as a bitfield.
5014           - Fixed MouseMove to no longer switch pressed state unless the left
5015             mouse button is pressed. Atsushi provided the original patch (#78485)
5016           
5017 2006-05-24  Jackson Harper  <jackson@ximian.com>
5018
5019         * ScrollBar.cs: New internal methods that allow us to change a
5020         couple values on the scrollbar (the most common case is maximum
5021         and large change) without getting multiple invalidates.
5022
5023 2006-05-24  Chris Toshok  <toshok@ximian.com>
5024
5025         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
5026         (Edit): save off the original state in oldState, and set
5027         grid.is_editing to true.
5028         (OnKeyDown): abort editing if escape is pressed.  also, call
5029         NextState if space is pressed.
5030         (OnMouseDown): call NextState.
5031         (NextState): factor out shared code from OnKeyDown and OnMouseDown
5032         here.  Also, only invalidate the row header once (on the initial
5033         is_changing switch) to save on redraws.
5034
5035 2006-05-24  Chris Toshok  <toshok@ximian.com>
5036
5037         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
5038         if the value in the cell is different than it was before.  This
5039         keeps us from triggering a layout when we move around a datarid
5040         with a highlighted cell.
5041         (Edit): suspend layout when creating/positining the text box, and
5042         resume passing false so we don't ever actually re-layout.
5043         (ReleaseHostedControl): same.
5044         (EnsureTextBox): reformat slightly, and set WordWrap to false.
5045
5046         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
5047         control-key sequences should go to the datagrid - remove that
5048         lock.  Also, modify the conditions under which we move between
5049         cells when moving the cursor within a cell, and remove the "this"
5050         and "base" from field accesses.  We weren't even consistent, given
5051         they all were in the base class.
5052
5053 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
5054
5055         * Binding.cs : (.ctor)
5056           An obvious NRE fix for BindingTest.CtorNullTest().
5057
5058 2006-05-23  Chris Toshok  <toshok@ximian.com>
5059
5060         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
5061         them between lines.  This fixes some quirks editing cells in the
5062         datagrid.
5063
5064 2006-05-23  Jackson Harper  <jackson@ximian.com>
5065
5066         * TreeView.cs: Use begin/end update when doing expand/collapse all
5067         so that we don't get flicker on the scrollbar.
5068
5069 2006-05-23  Jackson Harper  <jackson@ximian.com>
5070
5071         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
5072         treenode calculations to be independant of the painting code. To
5073         do this nodes track a visible order which is calculated by the
5074         treeview.
5075         - Call new methods for expanding/collapsing nodes.  These methods
5076         use scrollwindow so we don't have to update everything below the
5077         node.
5078         * TreeView.cs: Refactored drawing and scrolling code.  We don't
5079         need to update nodes when drawing anymore or calculate scrollbar
5080         stuff.
5081         - Added new methods for expanding/collapsing nodes. These methods
5082         use ScrollWindow so as to not have to redraw all the nodes below.
5083         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
5084         we add/remove nodes or sort.
5085         - Handle removing the selected and the top node properly.
5086
5087 2006-05-23  Chris Toshok  <toshok@ximian.com>
5088
5089         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
5090         maybe this should actually happen in the datagrid code?
5091         (EndEdit): no need to invalidate anything, given that
5092         ReleaseHostedControl causes the datagrid to relayout, which
5093         invalidates everything anyway.
5094
5095         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
5096         in SetCurrentCell).
5097         (set_SelectionBackColor): call InvalidateSelection instead of
5098         Refresh.
5099         (set_SelectionForeColor): same.
5100         (BeginEdit): Flesh this out a bit.
5101         (CancelEditing): only do any of this if we're editing/adding.
5102         (EndEdit): same.
5103         (OnMouseDown): there's no need to cancel editing here, it's done
5104         in SetCurrentCell.
5105         (SetCurrentCell): only invalidate the current row header if it's a
5106         different row than the new one.
5107         (ShiftSelection): fix this to work like MS does.
5108         (ResetSelection): factor out the invalidation of selected_rows to
5109         InvalidateSelection.
5110         (SetDataSource): cancel any editing that's going on.
5111
5112         * DataGridColumnStyle.cs
5113         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
5114         call the non-interface version.
5115
5116         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
5117         header rectangle with the clip rectangle so we don't redraw the
5118         entire header for just a small area.  Gets rid of the last flicker
5119         when horizontally scrolling.
5120         (DataGridPaintRow): same.
5121
5122 2006-05-23  Mike Kestner  <mkestner@novell.com>
5123
5124         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
5125         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
5126         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
5127         Critical bug report.
5128
5129 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5130
5131         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
5132           and this fixes #78493
5133
5134 2006-05-23  Miguel de Icaza  <miguel@novell.com>
5135
5136         * Theme.cs (GetSizedResourceImage): Scale images if the proper
5137         size is not found.  
5138         
5139         * FileDialog.cs: Do not change the background for the side bar as
5140         it wont work nicely with the theme, and also reduces the artifacts
5141         in rendering the icons (which I want to fix too).
5142
5143         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
5144         resources, not resgen resources. 
5145
5146         (PlatformDefaultHandler): Pull images using the new API.
5147
5148 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
5149
5150         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
5151           a reference to the hwnd and will not remove it unless there are
5152           no pending exposures (fixes #78341)
5153         * XplatUI.cs: Improved debug
5154
5155 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
5156
5157         * MenuAPI.cs : don't handle OnClick event when it was not the left
5158           button. Fixed bug #78487.
5159
5160 2006-05-23  Mike Kestner  <mkestner@novell.com>
5161
5162         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
5163         prefer submenus to the top menu for item lookup, to avoid popping down
5164         top-row items.
5165
5166 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
5167
5168         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
5169           Graphics.FillRectangle as the visual results are really bad (even
5170           on win). We now draw perfect arrows (and perfect shadows when the
5171           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
5172           Pen.DashPattern to draw the dots of each line.
5173
5174 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
5175
5176         * FileDialog.cs: Update the filename combobox when navigating through
5177           the ListView with the cursor keys. Fixes part 7 of bug #78446.
5178
5179 2006-05-22  Mike Kestner  <mkestner@novell.com>
5180
5181         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
5182         Fixes #78463.
5183
5184 2006-05-22  Mike Kestner  <mkestner@novell.com>
5185
5186         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
5187         requests. Fix a misspelled parameter and a copy paste exception error
5188         in Select.
5189
5190 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
5191
5192         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
5193           to get the same width/height (5/13) on X11 as the default font has on
5194           win32. This means that our DefaultFont emSize is smaller than the 
5195           the MS SWF equivalent (even thought the width/height stays the same)
5196
5197 2006-05-20  Jackson Harper  <jackson@ximian.com>
5198
5199         * MdiClient.cs:
5200         * MdiWindowManager.cs:
5201         * InternalWindowManager.cs: Make sure to use the border width from
5202         the theme.
5203
5204 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
5205
5206         * PrintDialog.cs: Implements printer details
5207
5208 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
5209
5210         * FileDialog.cs: Added focus handling for PopupButtonPanel.
5211           Fixes part 1 and 2 of bug #78446
5212
5213 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
5214
5215         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
5216           instead of sticking to the first ever calculated value
5217
5218 2006-05-19  Mike Kestner  <mkestner@novell.com>
5219
5220         * ComboBox.cs: fix mouse motion selection to use MousePosition and
5221         PointToClient, since Capture is set. Fixes #78344.
5222
5223 2006-05-19  Mike Kestner  <mkestner@novell.com>
5224
5225         * ListView.cs: match MS behavior in Details view where items are not
5226         drawn if Columns.Count == 0. 
5227         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
5228         Use a separate pen to draw the check, since changing the width affects
5229         the box as well.  Fixes #78454.
5230
5231 2006-05-18  Miguel de Icaza  <miguel@novell.com>
5232
5233         * ListView.cs: ArgumentOutOfRangeException, single versions of the
5234         exception should throw the name of the invalid argument.
5235
5236         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
5237         there are no files listed. 
5238
5239 2006-05-18  Jackson Harper  <jackson@ximian.com>
5240
5241         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
5242         up.
5243
5244 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5245
5246         * Control.cs: Brought back our old UpdateZOrder method as a private
5247           function and switched our calls from UpdateZOrder to the new one.
5248           This fixes the Paint.Net canvas disappearing bug.
5249
5250 2006-05-18  Jackson Harper  <jackson@ximian.com>
5251
5252         * Theme.cs:
5253         * ThemeWin32Classic.cs:
5254         * InternalWindowManager.cs: Move the drawing into the theme,
5255         expose everything the theme should need from the window manager.
5256
5257 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5258
5259         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
5260           from the call to NativeWindow to avoid walking up the parent chain
5261           further than needed (speeds up setting cursors and avoids setting
5262           the wrong cursor if a parent has another cursor defined)
5263         * Cursor.cs: When loading an icon as cursor, MS uses the center of
5264           the icon as hotspot, not what's contained as hotspot in the icon
5265           file. This fixes the perceived drawing offset seen with Paint.Net
5266         
5267 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
5268
5269         * XplatUIX11.cs: 
5270           - Store the calculated rectangle in Hwnd object and use it when 
5271             setting the client size
5272           - Force Toolwindows to always be type Dock, to ensure they're on top
5273
5274 2006-05-18  Mike Kestner  <mkestner@novell.com>
5275
5276         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
5277         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
5278         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
5279         Substantial refactoring to remove confusing nested classes. Coding
5280         standard and Get+Set->property refactorings.  Shift to index based
5281         highlighting in ComboListBox instead of constantly using IndexOf and
5282         Items[]. Add invalidations on resize for DropDownList to fix ugliness
5283         in FileDialog growth.  Draw borders manually since Simple mode needs
5284         to look like two independent controls.  Make listbox border
5285         conditional to DropDownStyle.  Improved OwnerDraw support.
5286
5287 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
5288
5289         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
5290         Don't set the disposed graphics to null, so we can throw the "right"
5291         exception if the graphics is reused later (added a flag to avoid 
5292         double disposing). Some behaviours are different under 2.0 and are
5293         filled under bug #78448.
5294
5295 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
5296
5297         * Control.cs: When double-buffering is enabled, we need to reset
5298           our graphics context between paint calls. Otherwise, any 
5299           transformations and other alterations on the context will 
5300           become cumulative (#77734)
5301
5302 2006-05-18  Mike Kestner  <mkestner@novell.com>
5303
5304         * ListView.cs: do focused item selection like MS on clicks. 
5305         Rework focus handling for ItemControl so LostFocus invalidates as
5306         well.
5307         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
5308         the ListView ItemControl has focus.
5309
5310 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
5311
5312         * XplatUIX11.cs: If client_window ends up being width or height zero
5313           due to border settings, move it off window inside whole_window (#78433)
5314
5315 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5316
5317         * Mime.cs: Shrink the mime file cache correctly.
5318
5319 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
5320
5321         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
5322
5323 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5324
5325         * XplatUIX11.cs (AddExpose): More sanity checks
5326
5327 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5328
5329         * XplatUIX11.cs:
5330           - AddExpose: Don't add expose ranges outside the size of our
5331             window
5332           - Cast opacity values to Int32 to avoid crashes with certain
5333             values
5334           - Added disabled code paths that protect against illegal cross-
5335             thread painting (Developers.exe)
5336
5337 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5338
5339         * ProgressBar.cs: Invalidate the control when it's resized
5340           since block size is based on control size. (#78388)
5341
5342 2006-05-16  Miguel de Icaza  <miguel@novell.com>
5343
5344         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
5345         of setting the incoming argument to the "reset" value, we set the
5346         this.datamember to string.empty (before we were invalidating the
5347         incoming data).   
5348
5349         Fixes 78420
5350
5351 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5352
5353         * Form.cs: Only apply transparency settings after the form
5354           is created. (Fixes #77800)
5355
5356 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
5357
5358         * ApplicationContext.cs: Grab the HandleDestroyed event so
5359           we know when to fire OnMainFormClosed 
5360
5361 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5362
5363         * Application.cs: Introduced sub-class to allow tracking of
5364           threads and centralized triggering of the event mess for
5365           ThreadExit, AppExit, etc..  (#76156)
5366
5367 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
5368
5369         * MimeIcon.cs:
5370           - Do not return a null icon index value for a mime subclass.
5371             Instead try the main mime type class too.
5372           - Seems that some newer distributions don't have a link to some
5373             gnome default icons anymore. So check the default gnome dir too.
5374           
5375
5376 2006-05-16  Jackson Harper  <jackson@ximian.com>
5377
5378         * MdiClient.cs: Don't paint the parent background image if we have
5379         our own background image.
5380
5381 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
5382
5383         * Control.cs:
5384           - PerformLayout: Do not shrink space filled by DockStyle.Fill
5385             controls, all filled controls are supposed to overlap (#78080)
5386           - UpdateZOrder is supposed to update the control's z-order in the
5387             parent's z-order chain. Fixed to behave like that
5388           - BringToFront: Removed obsolete code
5389           - SendToBack: Simplyfied
5390           - SetChildIndex: Trigger layout calculations when Z-order changes
5391             since layout is done by z-order
5392
5393 2006-05-16  Chris Toshok  <toshok@ximian.com>
5394
5395         [ fixes bug #78410 ]
5396         * DataGrid.cs (set_AlternatingBackColor): use
5397         grid_drawing.InvalidateCells instead of Refresh().
5398         (set_BackColor): call grid_drawing.InvalidateCells.
5399         (set_BackgroundColor): use Invalidate instead of Refresh.
5400
5401         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
5402         invalidate the cell area.
5403
5404 2006-05-15  Chris Toshok  <toshok@ximian.com>
5405
5406         [ fixes bug #78011 ]
5407         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
5408         on to DataGridPaintRow.
5409         (DataGridPaintRow): take a clip argument, and only draw the cells
5410         which intersect it.  same with the not_usedarea.
5411
5412         * Theme.cs (DataGridPaintRow) add @clip parameter.
5413
5414         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
5415         XplatUI.ScrollWindow.
5416         (ScrollToRow): same.
5417
5418         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
5419         with last column which was causing a gray swath to appear with the
5420         XplatUI.ScrollWindow code.
5421
5422 2006-05-15  Chris Toshok  <toshok@ximian.com>
5423
5424         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
5425         use XplatUI.ScrollWindow.
5426         (VerticalScrollEvent): use XplatUI.ScrollWindow.
5427
5428 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
5429
5430         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
5431
5432 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5433
5434         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
5435           file since there are no equivalent X11 cursors
5436
5437 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5438
5439         * MonthCalendar.cs : DateTimePicker should reflect selected date
5440           on mouse*up*, not mouse*down*. Fixed originally reported part of
5441           bug #76474.
5442
5443 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5444
5445         * TabControl.cs : When argument index is equal or more than tab
5446           count, just ignore. Fixed bug #78395.
5447
5448 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
5449
5450         * Control.cs: Dispose all child controls when control is diposed (#78394)
5451
5452 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5453
5454         * ColorDialog.cs: Finally it is possible to select the color with
5455           the text boxes
5456
5457 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5458
5459         * PrintDialog.cs: Fix typo
5460
5461 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
5462
5463         * PrintDialog.cs: PrintDialog is not resizable
5464         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
5465           color. Made some ToolBar drawing methods protected virtual.
5466
5467 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
5468
5469         * PrintDialog.cs: Implementation of the PrintDialog
5470
5471 2006-05-12  Chris Toshok  <toshok@ximian.com>
5472
5473         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
5474         thumb, instead use MoveThumb.  This has the side effect of making
5475         most of the other thumb moving machinery use MoveThumb as well.
5476         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
5477         need to actually invalidate the rectangle where the new thumb will
5478         go.
5479         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
5480         We force an Update() after, so it's not as fast as it could be,
5481         but at least there's zero flicker and no droppings.
5482         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
5483         (UpdateThumbPos): add another argument (dirty), which says whether
5484         or not to calculate/add dirty regions which we later invalidate.
5485         For cases where we know we're going to use MoveThumb, we pass
5486         false for this.  Otherwise, pass true.
5487
5488 2006-05-12  Jackson Harper  <jackson@ximian.com>
5489
5490         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
5491         the status bar.
5492         
5493 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
5494
5495         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
5496           and GetClipRegion methods and UserClipWontExposeParent property.
5497         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
5498           overriding UserClipWontExposeParent property, setting to false, since
5499           Win32 handles the required expose messages to draw our clipped parent
5500           areas internally
5501         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
5502           PaintEventStart to set the user clip region if set.
5503         * Control.cs: 
5504           - Now internally tracking the Region for the control since we need to
5505             store it if the handle is not yet created and only set it when it
5506             becomes created. Before setting the region forced handle creation
5507           - Added code to draw the parents underneath a user-clipped region
5508         * Hwnd.cs: Added UserClip property
5509
5510 2006-05-12  Chris Toshok  <toshok@ximian.com>
5511
5512         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
5513         (set_Maximum): same.
5514         (set_Minimum): same.
5515         (set_SmallChange): same.
5516         (OnMouseUpSB): remove the call to refresh when releasing the
5517         thumb.  We shouldn't need it.
5518         
5519 2006-05-12  Miguel de Icaza  <miguel@novell.com>
5520
5521         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
5522         AutoSize set to None, we do not need to relayout everything, we
5523         just need to invalidate the current region.
5524
5525         (Draw): Do not draw the entire ClientArea, just redraw the
5526         clip area being passed.
5527
5528         * MdiClient.cs: Make MdiClient constructor with the Form argument
5529         internal. 
5530
5531 2006-05-12  Jackson Harper  <jackson@ximian.com>
5532
5533         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
5534         parents background image,  but strangely not their own.
5535         - (DrawStatusBarPanel): Take into account horizontal alignment
5536         when drawing the strings and icons.
5537
5538 2006-05-12  Mike Kestner  <mkestner@novell.com>
5539
5540         * ListBox.cs: avoid invalidations for focus when the collection is
5541         empty. 
5542
5543 2006-05-12  Chris Toshok  <toshok@ximian.com>
5544
5545         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
5546         invalidate the entire thumb area.  Call InvalidateDirty which
5547         limits the redraw to the thumb itself and surrounding pixels.
5548
5549         * XplatUIX11.cs (ScrollWindow): optimize copying.
5550         
5551 2006-05-12  Chris Toshok  <toshok@ximian.com>
5552
5553         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
5554         Figure out the positioning/layout in a single pass instead of
5555         multiple recursive invocations.  Speeds up the initial display of
5556         the data grid.  Also, make many things private that were
5557         originally public but unused outside this class.
5558
5559 2006-05-11  Jackson Harper  <jackson@ximian.com>
5560
5561         * MdiClient.cs: Improved layout code.
5562
5563 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
5564
5565         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
5566           not SelectedObject.
5567
5568 2006-05-11  Chris Toshok  <toshok@ximian.com>
5569
5570         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
5571         union of that will always be {0,0,width,height}.
5572
5573 2006-05-11  Jackson Harper  <jackson@ximian.com>
5574
5575         * Form.cs: Match MS's DefaultSize for forms (they must have
5576         changed the size in sp2).
5577
5578 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
5579
5580         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
5581
5582 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
5583
5584         * TextControl.cs : Fixed bug #78109. This incorrect position
5585           comparison caused crash on automatic line split.
5586         * TextBoxBase.cs : reduce duplicate code.
5587
5588 2006-05-10  Jackson Harper  <jackson@ximian.com>
5589
5590         * MdiClient.cs: Active form is only sent to the back when using
5591         the Next form functionality, when a form is clicked the current
5592         active shouldn't be sent to the back.
5593         - Layout the mdi windows when the container is first made visible.
5594         * Form.cs: Give the MdiClient a ref to the containing form when we
5595         create it.
5596         
5597 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
5598
5599         * LinkLabel.cs : link_font could be uninitialized, so populate one
5600           before actual use. Fixed bug #78340.
5601
5602 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
5603
5604         * XplatUIX11.cs : clipboard format native value is IntPtr.
5605           Fixed bug #78283.
5606
5607 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5608
5609         * Control.cs: 
5610           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
5611             which is passed up the parent chain by DefWndProc
5612           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
5613             to DefWndProc (#77956)
5614         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
5615
5616 2006-05-10  Jackson Harper  <jackson@ximian.com>
5617
5618         * MdiClient.cs: We need to remove the controls from the mdi
5619         collection, when we close the window.
5620         * MdiWindowManager.cs: Special handling of closing mdi windows.
5621         * InternalWindowManager.cs: Make the close method virtual so the
5622         mdi window manager can handle it specially.
5623
5624 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
5625
5626         * DataGrid.cs:
5627           - Recalculate grid when the data source has changed
5628           - Matches styles provided by user from all data sources types
5629         * DataGridTableStyle.cs: For columns that provided by the user set the
5630         with the preferred value is there was unassigned.
5631         * CurrencyManager.cs: throw OnItemChanged event
5632
5633 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
5634
5635         * PictureBox.cs: Don't animate until handle is created. Start animation
5636           when handle is created.
5637
5638 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5639
5640         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
5641           current codebase.
5642         * XEventQueue.cs: We don't need to provide the extra info
5643
5644 2006-05-10  Jackson Harper  <jackson@ximian.com>
5645
5646         * MdiClient.cs: If the mdi clients parent form has a background
5647         image set, we draw that background image for the mdi area's
5648         background.
5649
5650 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
5651
5652         * TextBoxBase.cs: Set IBeam cursor (#78347)
5653
5654 2006-05-10  Mike Kestner  <mkestner@novell.com>
5655
5656         * ToolBar.cs: fix some text padding issues with ButtonSize
5657         calculation. Update the default size to match MS documentation.
5658         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
5659         button size. Fixes #78296.
5660
5661 2006-05-10  Mike Kestner  <mkestner@novell.com>
5662
5663         * ListBox.cs: use is_visible for scrollbar positioning in case the
5664         control isn't on screen yet.  Fix off by one with Right vs Width
5665         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
5666         
5667 2006-05-10  Jackson Harper  <jackson@ximian.com>
5668
5669         * X11Dnd.cs: Drop to a control with another control on top of it.
5670         * ToolBar.cs: Work on a copy of the buttons list, so that it can
5671         be modified in click handlers. TODO: Look for similar problems in
5672         other controls.
5673
5674 2006-05-09  Jackson Harper  <jackson@ximian.com>
5675
5676         * Form.cs: Window managers need the old window state when setting
5677         window state now.
5678         * InternalWindowManager.cs: Allow the base mdi window manager to
5679         handle more of the MDI only stuff (like maximize buttons).
5680         * MdiWindowManager.cs: Fix some snafus in changing the window
5681         state.  Add all the menu functionality, for both popup and
5682         maximized menus.
5683         * MdiClient.cs: When a new form is selected the currently
5684         activated form is sent to the back, this matches MS.
5685         - Implement a new method to activate the next mdi child window.
5686
5687 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
5688
5689         * Control.cs: 
5690           - Added new InternalCapture method to allow controls to prevent
5691             the capture behaviour on the click handlers
5692           - Switched to use InternalCapture
5693         * ComboBox.cs:
5694           - Using InternalCapture to prevent mouse captures from being released
5695             on mouse button release (Fixes #78100)
5696         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
5697           returns Form borders if a caption is present. (Fixes #78310)
5698
5699 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
5700
5701         * TreeNode.cs: Changed serialization .ctor to not require every field
5702           to be present. (#78265)
5703         * OwnerDrawPropertyBag.cs: Added serialization .ctor
5704
5705 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
5706
5707         * MimeIcon.cs: for is faster than foreach for strings.
5708
5709 2006-05-05  Mike Kestner  <mkestner@novell.com>
5710
5711         * CheckedListBox.cs: update check handling code to not use selected.
5712         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
5713         behavior for visual feedback, motion response, shift/ctrl handling,
5714         and properly deal with all 4 selection modes. Updates to bounds
5715         handling logic.  Add scroll wheel support. [Fixes #77842]
5716
5717 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5718
5719         * ListView.cs:
5720           - Moved adding of Implicit controls into .ctor. That way, subsequent
5721             creation of the controls will not cause them to think they are 
5722             toplevel windows (fixes #78200 header problem)
5723           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
5724           - Switched visibility setting of header control to use internal field
5725             to avoid triggering handle creation
5726           - Now checking if handle is created before causing a refresh when items
5727             are added (This makes us now match handle creation time with MS)
5728         * Splitter.cs: Removed loading of private splitter cursor, switched to
5729           Cursors version now that that is loading the right ones
5730         * Cursors.cs: Load proper splitter cursors from resources
5731         * Cursor.cs: Added second method of loading resource cursors for the 
5732           VS.Net users amongst us
5733
5734 2006-05-05  Mike Kestner  <mkestner@novell.com>
5735
5736         * ListView.cs: give header_control a minimum size based on the
5737         ListView size.
5738
5739 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5740
5741         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
5742           window seems to do that with metacity, so set that type. (#78120)
5743
5744 2006-05-05  Mike Kestner  <mkestner@novell.com>
5745
5746         * ListViewItem.cs: fix Details mode checkbox layout bug.
5747         * ThemeWin32Classic.cs: draw a ListView column header for unused space
5748         at the end of the header, if it exists. [Fixes for #78200]
5749
5750 2006-05-04  Jackson Harper  <jackson@ximian.com>
5751
5752         * MdiClient.cs: Add a helper property to get the container form.
5753         * MdiWindowManager.cs: We have to make sure to use the menu origin
5754         when drawing the icons and buttons, this fixes maximized window
5755         icons/buttons on win32.
5756         * InternalWindowManager.cs: Reset the restore captions when a
5757         window goes from Maximized to Minimized and vice versa. Move the
5758         DrawMaximizedButtons into the MdiWindowManager source, tool
5759         windows can't be maximized. NOTE: This could use a little
5760         refactoring if time ever permits.
5761         
5762 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5763
5764         * TextBox.cs: Add MWFCategoryAttributes
5765         * TextBoxBase.cs: Add MWFCategoryAttributes
5766         * Form.cs: Add MWFCategoryAttributes
5767
5768 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5769
5770         * Control.cs: Add MWFCategoryAttributes
5771         * ScrollableControl.cs: Add MWFCategoryAttributes
5772
5773 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
5774
5775         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
5776           Divider is true. Fix a little glitch in PropertyToolBar
5777           drawing code
5778
5779 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
5780
5781         * Control.cs:
5782           - Dispose: Call base.Dispose, this causes the disposed event
5783             to be fired (and probably other, more important stuff)
5784           - SetVisibleCore: Set is_visible to true after creating the
5785             window so that the window still gets created invisible (if
5786             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
5787             to generate a WM_ACTIVE message
5788         * Form.cs: Call Dispose when we want to destroy the window, instead of
5789           just destroying the handle (Dispose will do that for us)
5790         * XplatUIX11.cs:
5791           - RootWindow also needs a queue, so we can properly process the
5792             property change events from RootWindow (like Activate)
5793           - Generatic synthetic WM_ACTIVE message when the active window is
5794             being destroyed
5795
5796 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5797
5798         * LinkLabel.cs: Trigger a recalc of our label dimensions when
5799           bounds are changed
5800
5801 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
5802
5803         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
5804           for determining width and height (image might not be assigned if
5805           we're drawing an imagelist)
5806
5807 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5808
5809         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
5810         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
5811           height from system
5812         * Theme.cs: No longer returns hardcoded menu height, instead calls
5813           new driver method
5814         * Form.cs (OnLoad): Scaling happens before triggering Load events 
5815           on MS (# 78257)
5816
5817 2006-05-01  Mike Kestner  <mkestner@novell.com>
5818
5819         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
5820
5821 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
5822
5823         * TextBoxBase.cs: Removed Fixme
5824         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
5825
5826 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
5827
5828         * XplatUIX11.cs:
5829           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
5830             the rectangle relative to the parent, considering borders. We
5831             don't really want that.
5832           - ScrollWindow: Fixed warning to be more understandable
5833         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
5834           scrollbars and scroll only the visible area
5835         * RichTextBox.cs: Removed debug output
5836
5837 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5838
5839         * NumericUpDown.cs (Text): Just use base
5840         * UpDownBase.cs: Ensure txtView is created before using it
5841
5842 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5843
5844         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
5845           casting to IntPtr to avoid 64bit overflow errors
5846
5847 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5848
5849         * Control.cs:
5850           - AllowDrop: Don't force handle creation.
5851           - CreateHandle: Added call to tell driver if we're allowed to drop
5852
5853 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5854
5855         * FileDialog.cs: Remember the last directory not only for the
5856           current instance but also for new FileDialog instances.
5857
5858 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5859         
5860         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
5861           broke sending async messages
5862
5863 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5864
5865         * XplatUIX11.cs:
5866           - ScrollWindow: Fixed method. We finally generate expose events again
5867             for scrolled areas. This was causing 'garbage' when scrolling
5868             textbox and other controls that used ScrollWindow
5869           - Switched from using the regular queue for paint events to the MS 
5870             model of 'generating' paint events when the queue is empty.
5871             We use the new XQueueEvent.Paint subclass to store which windows
5872             need painting.
5873           - AddExpose now takes the x/y/width/height of the exposed area
5874             and inserts the window into the paint queue if not already there
5875           - InvalidateWholeWindow: Switched to use new AddExpose method
5876           - UpdateMessageQueue: Added which queue to monitor for paint events
5877           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
5878             the unlikely case nothing above handles it. We reset the expose
5879             pending states to get them off the queue.
5880           - GetMessage: Now pulls a paint event if no other events are in the
5881             queue
5882           - Invalidate: Switched to new AddExpose method
5883           - PeekMessage: Updated to understand pending paint events
5884           - UpdateWindow: Fixed logic bug. We were only updating if the window
5885             didn't need updating. Also switched to sending WM_PAINT directly,
5886             like MS does.
5887         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
5888           and random access Remove(). The random access is needed to handle
5889           UpdateWindow() where a WM_PAINT is sent directly without accessing
5890           the queue.
5891         * ScrollBar.cs: Added Update() calls to cause immediate updates to
5892           allow for better feedback when scrolling. Scrollbars are small and
5893           the immediate update should make it 'feel' more responsive without
5894           slowing things down. ScrollBar still needs it's invaliate logic
5895           updated to not always invalidate the whole bar on certain changes.
5896
5897 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5898
5899         * Control.cs:
5900         (BackColor): if the control does not support a transparent background,
5901         return the default backcolor when the parent backcolor is transparent.
5902
5903 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
5904
5905         * Application.cs: Updated to new StartLoop/GetMessage API
5906         * RichTextBox.cs: Provide some output on RTF parsing errors
5907         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
5908           new queue_id argument to GetMessage and PeekMessage to allow faster
5909           handling of per-thread queues in drivers.
5910         * Hwnd.cs: Added Queue tracking and property
5911         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
5912         * XEventQueue.cs: Added thread trackingA
5913         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
5914         * XplatUIX11.cs:
5915           - Implemented new per-thread queue
5916           - GetMessage: Fixed return/break behaviour on several cases. We were
5917             returning stale messages in some cases, instead of just processing
5918             the next message
5919
5920 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
5921
5922         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
5923
5924 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
5925
5926         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
5927           fixed off-by-one comparisons between Width/Height and Right/Bottom.
5928
5929 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
5930
5931         * PropertyGridView.cs: Fix drop down width.
5932
5933 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5934
5935         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
5936           a mess in DrawToolBar, so I removed one of them.
5937
5938 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5939
5940         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
5941           needed (clip). Otherwise we get artifacts.
5942
5943 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5944
5945         * FixedSizeTextBox.cs: Added constructor to allow specifying which
5946           dimension is fixed
5947         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
5948           and switched FixedSizeTextBox to only be fixed vertical (#78116)
5949         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
5950           if it matches the scale base font (avoids unneeded scaling)
5951
5952 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5953
5954         * X11DesktopColors.cs: One gtk_init_check should be enough
5955
5956 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
5957
5958         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
5959           match MS behaviour
5960
5961 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5962
5963         * TextBoxBase.cs: 
5964           - Generate OnTextChanged for Backspace even if we're only deleting
5965             the current selection
5966           - When setting the Text property, only select all text if the
5967             control does not have focus when it is being set. Otherwise
5968             just place the cursor at the beginning of the control
5969
5970 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5971
5972         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
5973           Added a little helper to draw PropertyGrid ToolBar with a different
5974           border and a different BackColor.
5975         * PropertyGrid.cs: Some background parts didn't get painted with the
5976           correct background color. Added a class that helps us to draw the
5977           correct border for PropertyGridView and a class that helps us to
5978           draw ToolBars with a different backcolor
5979         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
5980
5981 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
5982
5983         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
5984         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
5985
5986 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5987
5988         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
5989           into the palette entries. Also, since we're working on a copy
5990           we needed to copy the palette back onto the bitmap.
5991         * Cursor.cs: Same fix as XplatUIWin32.cs.
5992
5993 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
5994
5995         * ImageListStreamer.cs: Need to read the var (or we're off)
5996
5997 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5998
5999         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
6000           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
6001           TextBoxBase.cs: Unused var fixes
6002         * AxHost.cs: Small 2.0 fix
6003         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
6004           as it seems that is what at least Metacity expects. This will make
6005           icons show up on 64bit platforms. We still have some 64bit size
6006           issues, though, since the startup app window size still won't match.
6007
6008 2006-04-25  Mike Kestner  <mkestner@novell.com>
6009
6010         * *.cs: cleanup newly reported exception var unused warnings.
6011
6012 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6013
6014         * ThemeWin32Classic.cs: Button image alignment now matches exactly
6015           ms
6016
6017 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6018
6019         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
6020           image. The image position is always the same, no matter if the
6021           button is pressed or not.
6022
6023 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
6024
6025         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
6026           selection and set the correct filename for SaveFileDialog.
6027           Patch by Emery Conrad.
6028
6029 2006-04-24  Mike Kestner  <mkestner@novell.com>
6030
6031         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
6032         check for item.X outside the ClientRect instead of item.Y. Fixes
6033         #78151.
6034
6035 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6036
6037         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
6038         trust that value blindly and do some sanity check. Fixes bug #77814.
6039
6040 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6041
6042         * ImageListStreamer.cs: save the mask as a 1bpp image.
6043
6044 2006-04-21  Mike Kestner  <mkestner@novell.com>
6045
6046         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
6047         pass Checked and Indeterminate to the Theme Engine. Improve
6048         encapsulation with ListBox.
6049         * ListBox.cs: Keep a StringFormat instead of calculating it every item
6050         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
6051         nested types.  Move all CheckState functionality to CheckedListBox.
6052         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
6053         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
6054         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
6055         single base list. Fix scrollbar sizing and placement to mirror MS.
6056         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
6057         used.
6058         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
6059         for CheckedListBox by using new DrawItemState info.  Center the
6060         checkboxes on the items. Use new StringFormat property.
6061
6062 2006-04-18  Jackson Harper  <jackson@ximian.com>
6063
6064         * Form.cs: MdiChildren don't do default locations the same way as
6065         regular forms.  This prevents a crash when trying to position the
6066         mdi windows.
6067
6068 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
6069
6070         * PropertyGridTextBox.cs: Formatting, copyright
6071         * PropertiesTab.cs: Formatting
6072         * PropertyGrid.cs: Formatting
6073         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
6074           click toggling of values
6075           
6076 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
6077
6078         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
6079         * Control.cs (.ctor): verify_thread_handle is static, don't reset
6080           every time a control is created
6081         * Application.cs: Removed obsolete EnableRTLMirroring method
6082
6083 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
6084
6085         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
6086         SelectedIndex to -1. Fixes bug #78121.
6087
6088 2006-04-17  Jackson Harper  <jackson@ximian.com>
6089
6090         * Binding.cs: Handle null values for Current and BindingContext.
6091         This occurs when binding is a little delayed.
6092         * CurrencyManager.cs: return null for Current when there are no
6093         items in the list.
6094         - Hookup to the listchanged event on the DataView and update
6095         bindings when the list is changed.  This fixes late binding of
6096         controls.
6097
6098 2006-04-17  Jackson Harper  <jackson@ximian.com>
6099
6100         * X11Dnd.cs:
6101         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
6102         Ringenbach.
6103
6104 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
6105
6106         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
6107           place
6108         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
6109           with the correct ButtonState
6110
6111 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
6112
6113         * XplatUIX11.cs: Improved distinguishing between window types to
6114           tell the WM a type closer to what the app wants (Fixes #78107)
6115
6116 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6117
6118         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
6119           GrabHandle
6120
6121 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
6122
6123         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
6124           drawing code to reflect the size grip changes
6125
6126 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6127
6128         * ImageListStreamer.cs: fix handling of the mask that follows the main
6129         bitmap when deserializing and serialize it properly. The generated mask
6130         should better be a 1bpp image, but I'll do that later.
6131
6132 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6133
6134         * FileDialog.cs: Show something in the DirComboBox on *nix if the
6135           path doesn't fit into some of our Current.Places
6136
6137 2006-04-13  Jackson Harper  <jackson@ximian.com>
6138
6139         * ComboBox.cs: Use borders instead of drawing our own decorations,
6140         try to obey correct rules for heights.
6141         * Theme.cs:
6142         * ThemeNice.cs:
6143         * ThemeClearLooks.cs:
6144         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
6145         this is now handled by borders.
6146         - Remove unused DrawListBoxDecorationSize method.
6147         
6148 2006-04-13  Mike Kestner  <mkestner@novell.com>
6149
6150         * MenuAPI.cs: null guarding for the disbled click check fixes crash
6151         reported by Alex.
6152
6153 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
6154
6155         * ThemeWin32Classic.cs: 
6156           - Fixed CPDrawStringDisabled
6157           - Corrected drawing of disabled menu items
6158           - Fixed drawing of disabled radio buttons (bug #78095)
6159           - Draw check in a disabled CheckBox with color ControlDark 
6160
6161 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6162
6163         * Form.cs: Use the provided width when calculating the menu size;
6164           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
6165           and ClientSize.Width won't be updated yet
6166         * Application.cs: Use Visible instead of Show() to make form visible,
6167           this way we create the handle later and menusize is considered
6168
6169 2006-04-12  Mike Kestner  <mkestner@novell.com>
6170
6171         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
6172         reporting.
6173
6174 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6175
6176         * TextBox.cs: Implemented context menu
6177
6178 2006-04-12  Mike Kestner  <mkestner@novell.com>
6179
6180         * ListView.cs: implement box selection. fixes #77838.
6181         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
6182
6183 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6184
6185         * XplatUIX11.cs: Added setting of window type when transient window
6186           is created (metacity would move it otherwise)
6187         * X11Structs.cs: Added WINDOW_TYPE atoms
6188         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
6189           background (the control is Opaque but still wants transparent
6190           backgrounds)
6191
6192 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6193
6194         * Control.cs: Added OnPaintBackgroundInternal to allow controls
6195           that set Opaque but don't mean it (like all ButtonBase-derived
6196           controls) to still draw their background
6197         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
6198           the background
6199
6200 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
6201
6202         * Control.cs (PaintControlBackground): Set the graphics object
6203           on our PaintEvent to null to prevent it from being disposed
6204           when the PaintEvent gets disposed
6205
6206 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
6207
6208         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
6209         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
6210
6211 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
6212
6213         * Control.cs: 
6214           - Added transparency check to BackColor property. Transparent
6215             backgrounds are only allowed if the control styles permit it
6216           - Added recursive painting of parent control background and
6217             foreground if a control with a transparent backcolor is drawn
6218             (Thanks to Tim Ringenback for providing his 'hack' as a base
6219              for this patch) Fixes #77985 and #78026.
6220           - Added Opaque style check before calling OnPaintBackground, no
6221             need to draw the background if the control is opaque
6222           - Removed ControlAccessibleObject owner variable (inherited from
6223             base, no need to define again)
6224           - Added some documentation links explaining the drawing events
6225             and styles
6226
6227 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6228
6229         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
6230           that the affected control is the located at the left border of our
6231           parent (Fixes #77936)
6232
6233 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6234
6235         * TextBoxBase.cs: When rendering disabled or readonly controls,
6236           draw the background with 'Control' instead of 'Window' color as
6237           long as the user hasn't specifically set a color
6238
6239 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
6240
6241         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
6242           since that won't be updated if the user types text (only if it's
6243           programatically set)
6244
6245 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6246
6247         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
6248           layout changes do to app-triggered resizes will have the proper
6249           display rectangle for layout
6250
6251 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
6252
6253         * ThemeWin32Classic.cs:
6254           - Make use of the SystemBrushes and SystemPens wherever possible
6255           - Corrected some highlight colors
6256           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
6257             drawing
6258         * Theme.cs: Added Empty field to CPColor struct
6259
6260 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
6261
6262         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
6263           is displayed when calculating the display rectangle. Thanks to Mike
6264           for teaching me the err of my ways.
6265
6266 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
6267
6268         * ScrollableControl.cs:
6269           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
6270             (instead of 0,0) and we now return the real width/height instead of
6271             just the clientrectangle, adjusted for padding. The rectangle is
6272             now cached and created by the new CalculateDisplayRectangle method.
6273           - Created new CalculateDisplayRectange method, which basically does
6274             what get_DisplayRectangle() did originally, but now using the 
6275             right edge instead of DisplayRectangle to determine the size of
6276             our scrollbars
6277           - get_Canvas(): Fixed it to properly calculate canvas for 
6278             right/bottom controls which seem to be placed to the right/bottom
6279             of any controls that have a fixed location
6280           - Removed TODO that's taken care of
6281           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
6282             and SetDisplayRectLocation according to new MSDN2 docs
6283           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
6284             event when that is called, this is added for compatibility
6285           - ScrollControlIntoView(): Implemented.
6286           - Switched scrollbars to be implicit, they shouldn't be selectable
6287         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
6288           call it when the active control is set/changed
6289         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
6290         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
6291           implicit_control variable (used for native Win32 message generation)
6292         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
6293           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
6294         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
6295         * XplatUIStructs.cs: Added ScrollBarCommands enum
6296
6297 2006-04-10  Jackson Harper  <jackson@ximian.com>
6298
6299         * ButtonBase.cs:
6300         * CheckedListBox.cs:
6301         * ComboBox.cs:
6302         * DataGrid.cs:
6303         * DataGridView.cs:
6304         * Form.cs:
6305         * GroupBox.cs:
6306         * ListBox.cs:
6307         * PrintPreviewControl.cs:
6308         * ProgressBar.cs:
6309         * PropertyGrid.cs:
6310         * Splitter.cs:
6311         * StatusBar.cs:
6312         * TrackBar.cs:
6313         * UpDownBase.cs: Fixup base event overrides.
6314         
6315 2006-04-06  Mike Kestner  <mkestner@novell.com>
6316
6317         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
6318         all user-initiated value changes to min <= value <= max-thumbsz+1.
6319         (set_Value): check for vert/horiz when calculating new thumb position.
6320         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
6321         like MS does.
6322         (OnMouseMoveSB): refactor the thumb dragging code and refine
6323         invalidation logic to reduce flicker.
6324         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
6325         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
6326         (UpdateThumbPosition): small code readability cleanup
6327
6328 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
6329
6330         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
6331           different
6332
6333 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6334
6335         * ThemeNice.cs: Use a better graphics effect when a button is pressed
6336
6337 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
6338
6339         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
6340         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
6341           This dramatically reduces the number of Pen.Dispose calls. 
6342           Where possible call ResPool methods only once instead of calling it
6343           over and over again (for example for the same color).
6344
6345 2006-04-06  Mike Kestner  <mkestner@novell.com>
6346
6347         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
6348         Also remove an unused private field on the collection. Fixes #77972.
6349
6350 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6351
6352         * ThemeNice.cs: Added ToolBar drawing code
6353
6354 2006-04-06  Mike Kestner  <mkestner@novell.com>
6355
6356         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
6357         I'm assuming that means we need to look up the toplevel for the
6358         provided control. Fixes the crash trace in #77911 but exposes another
6359         crash in some strange reflection usage in NDocGui.
6360
6361 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
6362
6363         * ThemeNice.cs: Gave it a little silver touch and added Images
6364           method
6365         * FontDialog.cs: FontDialog is not resizable
6366         * FileDialg.cs: Added SizeGripStyle.Show
6367
6368 2006-04-05  Jackson Harper  <jackson@ximian.com>
6369
6370         * KeyboardLayouts.cs: Remove warning.
6371
6372 2006-04-05  Jackson Harper  <jackson@ximian.com>
6373
6374         * Control.cs: Enable OnPaintInternal so we can use it for drawing
6375         all of our controls instead of Paint +=.
6376         * ListBox.cs:
6377         * ListView.cs:
6378         * MenuAPI.cs:
6379         * MessageBox.cs:
6380         * NotifyIcon.cs:
6381         * ProgressBar.cs:
6382         * ScrollBar.cs:
6383         * Splitter.cs:
6384         * StatusBar.cs:
6385         * TabControl.cs:
6386         * TextBoxBase.cs:
6387         * ToolBar.cs:
6388         * TrackBar.cs:
6389         * UpDownBase.cs:
6390         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
6391         use OnPaintInternal. Remove Width/Height and Visible checks in
6392         paint handler, this is done at a higher level now.
6393         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
6394         * PaintEventArgs.cs: Add a handled flag so controls that don't
6395         want anymore painting after OnPaintInternal can make sure OnPaint
6396         isn't called.
6397
6398 2006-04-05  Mike Kestner  <mkestner@novell.com>
6399
6400         * Form.cs: fix the menu WndProc hacks to respect the native enabled
6401         state of the form, so that we don't process events when Modal dialogs
6402         are up. Fixes #77922.
6403
6404 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
6405
6406         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
6407           checking is done.
6408
6409 2006-04-05  Mike Kestner  <mkestner@novell.com>
6410
6411         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
6412
6413 2006-04-05  Mike Kestner  <mkestner@novell.com>
6414
6415         * ListView.cs (HeaderMouseMove): null guarding for the over column
6416         when setting up the drag_to_index.  Fixes #78015.
6417
6418 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
6419
6420         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
6421           in the taskbar. Transient windows seem to accomplish that.
6422
6423 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
6424
6425         * Form.cs:
6426           - Re-enabled CreateParams.X/Y code for FormStartPosition
6427           - Added code for manual placement when creating the Control
6428           - Incomplete patch to treat MDI forms differently when
6429             setting the ClientSizeCore. (Still need to figure out handling
6430             x/y coords there)
6431         * XplatUIX11.cs:
6432           - When we're explicitly setting the X/Y position of a non-Child
6433             window, let the WM know. Metacity really wants this.
6434
6435 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6436
6437         * ThemeNice.cs: Added CPDrawButton
6438
6439 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6440
6441         * ThemeNice.cs: Changed the color for focused buttons and activated
6442           the arrows for small scroll buttons.
6443
6444 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
6445
6446         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
6447           anymore. Changed some method modifiers to protected (virtual)
6448         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
6449           changes
6450         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
6451           Updated drawing of menus, buttons and progressbars; added
6452           CPDrawBorder3D 
6453
6454 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6455
6456         * ImageListStreamer.cs: implemented serialization/deserialization
6457         of the images.
6458
6459 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
6460
6461         * ThemeWin32Classic.cs:
6462           - Removed all the DrawFrameControl stuff; CPDrawButton,
6463             CPDrawCheckBox and CPDrawRadioButton are now handled directly
6464             inside the methods
6465           - Updated and corrected the drawing code of CPDrawButton,
6466             CPDrawCheckBox and CPDrawRadioButton to better match ms
6467           - Updated theme checkbox and radiobutton code to use the CP*
6468             methods
6469
6470 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6471
6472         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
6473           bug is fixed
6474
6475 2006-03-31  Jackson Harper  <jackson@ximian.com>
6476
6477         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
6478         sometimes.
6479         * UpDownBase.cs: Don't CreateGraphics manually, use a
6480         Refresh. Ideally we would invalidate the correct areas here.
6481
6482 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
6483
6484         * XplatUIX11.cs: 
6485           - We now track the mapping state of windows. If a window (or 
6486             one of it's parents) is not mapped we no longer permit
6487             WM_PAINT messages to be generated since we'd otherwise get 
6488             lots of BadMatch X errors. Jackson did all the work figuring
6489             out the problem.
6490           - Destroying the caret if the window it's contained in is 
6491             destroyed. Can't use regular DestroyCaret method since it
6492             might fall into a drawing function (trying to remove the
6493             caret) and with that generate new BadMatch errors. Again,
6494             Jackson tracked this down.
6495           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
6496             make sure we send the messages to all windows. (The old code
6497             would send the WM_DESTROY to the window, and then all child
6498             windows would be 'gone' because the WM_DESTROY handle lookup
6499             would no longer find the destroyed window)
6500         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
6501         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
6502
6503 2006-03-31  Jackson Harper  <jackson@ximian.com>
6504
6505         * ScrollableControl.cs: Dont recalc if we are not visible.
6506
6507 2006-03-31  Mike Kestner  <mkestner@novell.com>
6508
6509         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
6510         the visibility branch.
6511
6512 2006-03-31  Jackson Harper  <jackson@ximian.com>
6513
6514         * ScrollBar.cs: Cap values when incrementing/decrementing.
6515
6516 2006-03-31  Mike Kestner  <mkestner@novell.com>
6517
6518         * MenuAPI.cs: setup menu.tracker for popup/context menus.
6519         * ToolTip.cs: guard against timer expirations with no active control.
6520         Not sure why it happened.
6521
6522 2006-03-31  Mike Kestner  <mkestner@novell.com>
6523
6524         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
6525         text.
6526         * ToolTip.cs: Position the tooltip based on where the cursor is at
6527         popup time, not at MouseEnter time.  Add a Down state so that we don't
6528         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
6529         positioning offset. Lookup DisplaySize at positioning time, since it
6530         can theoretically change during invocation.
6531         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
6532         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
6533
6534 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6535
6536         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
6537           Fixes behaviour when the Text property of the box is String.Empty
6538
6539 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
6540
6541         * XplatUIX11.cs: Only send mouseleave for our client windows, not
6542           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
6543           a window)
6544
6545 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6546
6547         * FileDialog.cs: Visual enhancement for the popup buttons in 
6548           PopupButtonPanel
6549
6550 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
6551
6552         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
6553           code
6554
6555 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
6556
6557         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
6558           highlighted menu items to match ms
6559
6560 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
6561
6562         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
6563
6564 2006-03-30  Mike Kestner  <mkestner@novell.com>
6565
6566         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
6567         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
6568         go active to account for HotLight to Selected transition.
6569         * MenuItem.cs: add internal Selected prop. Fill out the Status
6570         property by calculating it from item info. Add HotLight,
6571         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
6572
6573 2006-03-30  Mike Kestner  <mkestner@novell.com>
6574
6575         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
6576
6577 2006-03-29  Jackson Harper  <jackson@ximian.com>
6578
6579         * Form.cs: Implement TODO.
6580
6581 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
6582
6583         * PrintPreviewDialog.cs: Implemented missing methods and events; still
6584           missing proper dialog setup in the constructor
6585
6586 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
6587
6588         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
6589         * Control.cs:
6590           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
6591           - Fixed ResetBindings and removed TODO
6592           - Added check for cross-thread calls to get_Handle()
6593           - Added Marshaller attribute for set_Font to satisfy class status
6594         * FontDialog.cs: Removed TODOs that seemed implemented
6595         * UpDownBase.cs: Removed unneeded TODO and Fixme
6596         * MessageBox.cs: Implemented support for Default button and removed TODO
6597         * FileDialog.cs: Removed obsolete TODO
6598         * DomainUpDown.cs: Removed obsolete TODO
6599         * ButtonBase.cs: Removed obsolete TODO
6600         * XplatUIWin32.cs: Removed obsolete TODO
6601         * Form.cs:
6602           - Removed obsolete TODO
6603           - Calling CheckAcceptButton when the acceptbutton is changed to allow
6604             internal status updates
6605           - Making sure the active control is selected when the control is created
6606         * CurrencyManager.cs: Removed obsolete TODO
6607
6608 2006-03-29  Mike Kestner  <mkestner@novell.com>
6609
6610         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
6611         of PrintPreviewDialog and RichTextBox.
6612
6613 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
6614
6615         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
6616           DarkDark, Light and LightLight colors for a specific color
6617         * ThemeWin32Classic.cs:
6618           - Use Button drawing code to draw RadioButtons and CheckBoxes with
6619             Appearance = Button 
6620           - Make use of the new ResPool helper CPColor
6621           - Draw ProgressBar and StatusBar with correct 3D borders
6622
6623 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
6624
6625         * ColorDialog.cs: Return selected color. Fixes bug #77940.
6626
6627 2006-03-28  Mike Kestner  <mkestner@novell.com>
6628
6629         * ListView.cs: fix Icon layout to plan for scrollbar widths when
6630         calculating col/row counts.
6631
6632 2006-03-28  Mike Kestner  <mkestner@novell.com>
6633
6634         * ColumnHeader.cs:
6635         * ListView.cs:
6636         * ListViewItem.cs:
6637         * Menu.cs: 
6638         switch to explicit interface method implementation for some methods
6639         corcompare identifies as inconsistent with MS.
6640
6641 2006-03-28  Mike Kestner  <mkestner@novell.com>
6642
6643         * MainMenu.cs: 
6644         * Menu.cs:
6645         add a few missing methods from the class status output.
6646
6647 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
6648
6649         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
6650           correct.
6651
6652 2006-03-28  Mike Kestner  <mkestner@novell.com>
6653
6654         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
6655
6656 2006-03-27  Mike Kestner  <mkestner@novell.com>
6657
6658         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
6659         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
6660
6661 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
6662
6663         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
6664
6665 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6666
6667         * ThemeWin32Classic.cs:
6668           - GroupBox: Inserted a little gap between the text and the lines
6669             on the right side
6670           - Made the code in CPDrawBorder3D more readable
6671           - Corrected the drawing location of the up and down arrows in 
6672             CPDrawScrollButton
6673
6674 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6675
6676         * ControlPaint.cs: Corrected line widths in DrawBorder for
6677           ButtonBorderStyle Inset and Outset
6678
6679 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6680
6681         * ThemeWin32Classic.cs:
6682           - Rewrote the totally broken CPDrawBorder3D method. That was
6683             one of the main problems for the terrific ThemeWin32Classic
6684             look
6685           - Updated and corrected Button drawing
6686           - Correct the dimensions of the SizeGrip to match ms ones
6687           - Removed a small drawing glitch in DrawComboBoxEditDecorations
6688         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
6689           Border3DStyle.Sunken to match ms.
6690
6691 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6692
6693         * ThemeWin32Classic.cs: First small part of the "de-uglify
6694           ThemeWin32Classic" effort, SizeGrip
6695
6696 2006-03-24  Jackson Harper  <jackson@ximian.com>
6697
6698         * XplatUIX11.cs: Give a max idle time of one second, this matches
6699         MS and forces an Idle event every second when there are no other
6700         events in the queue.
6701
6702 2006-03-24  Mike Kestner  <mkestner@novell.com>
6703
6704         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
6705         * ListView.Item.cs: fix layout issues with null image lists and images
6706         smaller than checkbox size.
6707         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
6708         mode like MS does.  It's weird, but consistent.  ;-)
6709         Fixes #77890.
6710
6711 2006-03-24  Mike Kestner  <mkestner@novell.com>
6712
6713         * ListView.cs: Scroll wheel support for the item control.  Fixes
6714         #77839.
6715
6716 2006-03-23  Jackson Harper  <jackson@ximian.com>
6717
6718         * ScrollableControl.cs: Special case negative sized areas, not
6719         zero.
6720         * MonthCalendar.cs: Save the rect of the clicked date so we can
6721         use it for invalidation.
6722         - Try to cut down on the number of invalidates
6723         - Invalidate the rect the mouse is over and was over when moving
6724         the mouse, so we get the focus box following the cursor.
6725
6726 2006-03-23  Mike Kestner  <mkestner@novell.com>
6727
6728         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
6729         focus rectangle drawing. Fixes #77835.
6730
6731 2006-03-23  Mike Kestner  <mkestner@novell.com>
6732
6733         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
6734         the if and else if and reverting back to the original == check on the
6735         None conditional.
6736
6737 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6738
6739         * FontDialog.cs: Update the example panel if the selected index of
6740           the fontListBox changes.
6741
6742 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6743
6744         * FileDialog.cs: Make FileDialog remember which directory it was in
6745           last in the same execution.
6746
6747 2006-03-22  Mike Kestner  <mkestner@novell.com>
6748
6749         * FileDialog.cs: make the DropDownMenu on the toolbar display
6750         RadioChecks since they are mutually exclusive and that's what MS does.
6751
6752 2006-03-22  Mike Kestner  <mkestner@novell.com>
6753
6754         * Theme.cs: add Color param to CPDrawMenuGlyph.
6755         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
6756         checks and radio marks and arrows are visible on highlighted items.
6757         * ControlPaint.cs: update to use new Theme signature.
6758
6759 2006-03-22  Mike Kestner  <mkestner@novell.com>
6760
6761         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
6762         is active. Fixes #77870.
6763
6764 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6765
6766         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
6767           to be focused/selected after startup
6768
6769 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6770
6771         * ColorDialog.cs: 
6772           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
6773             CustomColors and ShowHelp properties
6774           - Some internal rewrites to get better results when using the
6775             ColorMatrix
6776
6777 2006-03-22  Mike Kestner  <mkestner@novell.com>
6778
6779         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
6780         HoverSelection.  Fixes #77836.
6781
6782 2006-03-22  Mike Kestner  <mkestner@novell.com>
6783
6784         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
6785         ToggleButtons.  (De)Sensitize the Back button around a stack count of
6786         1, not 0.  Update ButtonSize based on a pixel count of the win32
6787         control.  Adjust the toolbar size/location for new button size.
6788
6789 2006-03-22  Jackson Harper  <jackson@ximian.com>
6790
6791         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
6792         true.
6793         * ScrollBar.cs: When doing increments and decrements we need to
6794         set the Value property so that ValueChanged gets raised. A
6795         possible optimization here would be to make an internal SetValue
6796         that doesn't invalidate immediately.
6797         * ToolTip.cs: Tooltips get added to their container (when
6798         supplied) so they get disposed when the container is disposed.
6799         - Don't create tooltips for String.Empty. This prevents all these
6800         little 2-3 pixel windows from showing up when running nunit-gui
6801         and driving me mad.
6802         * Form.cs: Don't set topmost when setting the owner if the handles
6803         haven't been created yet.  The topmost set will happen when the
6804         handles are created.
6805
6806 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
6807
6808         * XplatUIX11.cs:
6809           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
6810           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
6811             visible (to allow them to recalculate their sizes)
6812
6813 2006-03-21  Mike Kestner  <mkestner@novell.com>
6814
6815         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
6816         methods. Removed a ton of redundant code.  Still not really happy with
6817         the border rendering, but I think that's mainly because of the
6818         ControlDarkDark being black instead of a dark grey. Depending on how 
6819         close we want to be, we might want to revisit those color choices.
6820         Among the new features added during the refactor were DropDownArrow
6821         pressed rendering, Disabled image rendering.  Proper flat appearance
6822         boundary rendering.  Removed the Divider and Wrapping dividers since I
6823         can't figure out any combination of themes and conditions to make the
6824         MS control draw a horizontal line on a toolbar despite what the
6825         Divider property docs indicate.
6826         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
6827         conditions and incorrect layout.  Updated to coding standard.
6828         * ToolBarButton.cs: refactored layout and positioning code from
6829         ToolBar to here.  Invalidate wherever possible instead of forcing
6830         redraws of the whole toolbar. 
6831         (Known remaining issues: explicit ButtonSize smaller than provided
6832         images.)
6833
6834 2006-03-21  Mike Kestner  <mkestner@novell.com>
6835
6836         * ContextMenu.cs (Show): use the position parameter instead of just
6837         showing at the MousePosition.
6838
6839 2006-03-21  Jackson Harper  <jackson@ximian.com>
6840
6841         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
6842         control handle this.
6843         * TreeNodeCollection.cs: If we are clearing the root node we need
6844         to reset top_node so calcs can still happen.
6845         * ThemeWin32Classic.cs: This is a Flags so we need to check
6846         properly.
6847         
6848 2006-03-21  Jackson Harper  <jackson@ximian.com>
6849
6850         * DataGrid.cs: Create columns when the binding context has been
6851         changed.
6852         * X11Structs.cs: Keysyms are uints.
6853         - Add size to fix build.
6854
6855 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
6856
6857         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6858           XplatUIOSX.cs: 
6859           - Added ResetMouseHover method to allow controls to retrigger
6860             hovering if they need it more than once
6861           - Implemented MouseHoverTime and MouseHoverSize properties
6862         * Timer.cs: Start() must reset the interval
6863         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
6864           properties
6865
6866 2006-03-21  Jackson Harper  <jackson@ximian.com>
6867
6868         * X11Keyboard.cs: improved layout detection. Move the nonchar
6869         tables into this file.
6870         * KeyboardLayouts.cs: Move the tables into resource files.
6871
6872 2006-03-21  Mike Kestner  <mkestner@novell.com>
6873
6874         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
6875
6876 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
6877
6878         * Mime.cs: Various speed optimizations. Looking up mime types
6879           is now 2 times faster than before
6880
6881 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
6882
6883         * CreateParams.cs: Added internal menu field
6884         * Control.cs: 
6885           - Switched call order for UpdateBounds; now we always call
6886             the one that also takes ClientSize, and we're calculating the 
6887             client size via driver method in the others. The previous
6888             method of tracking client size by difference wasn't working
6889             for forms where even the starting client size wouldn't match
6890             the overall form size (due to borders) (Part of fix for #77729)
6891           - CreateParams(): Do not use parent.Handle unless the handle is
6892             already created. Causes havoc with Nexxia and throws off our
6893             creation of controls
6894         * XplatUIX11.cs:
6895           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
6896           - Switched handling of ConfigureNotify over to new PerformNCCalc 
6897             method (consolidates code)
6898           - Changed RequestNCRecalc to use new PerformNCCalc method
6899           - Added calls to RequestNCRecalc when menus and borders are changed
6900             to allow app to set NC size. (Part of fix for #77729) This matches
6901             when MS send a WM_NCRECALC on Win32 windows.
6902           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
6903             (Part of fix for #77729). This matches what MS does, they also
6904             send that message when the form is made visible.
6905           - XException.GetMessage: Improved usability of X errors by including
6906             a translation of the window into Hwnd and Control class
6907           - Improved debug info for window creation, reparenting and destruction
6908           - Created helper method WindowIsMapped() [Currently not used]
6909         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
6910         * Form.cs:
6911           - CreateParams: Now setting our menu on the new internal menu field
6912           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
6913             avoid calculating the same property twice
6914         * Hwnd.cs:
6915           - Improved usability of ToString() for debugging purposes
6916           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
6917             determine the height of the menu, instead of just the font. This
6918             required to also create a graphics context and to keep a bmp 
6919             around (for performance reasons)
6920
6921 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
6922
6923         * MenuAPI.cs: Added OnMouseUp method
6924         * Form.cs:
6925           - Now remembering the requested client size, avoids size errors
6926           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
6927             instead of base if the menu is active. This is required due to
6928             control now capturing and releasing on down/up and it would
6929             prematurely release our menu capture
6930
6931 2006-03-17  Jackson Harper  <jackson@ximian.com>
6932
6933         * KeyboardLayouts.cs: Add the czech layouts.
6934
6935 2006-03-16  Jackson Harper  <jackson@ximian.com>
6936
6937         * Control.cs: Use the viewport space when sizing not the controls
6938         client size, so things like ScrollableControl that effect the
6939         viewport size (when scrollbars are added) are computed correctly.
6940         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
6941         of ManagerEntrys.
6942         - Handle creating BindingManagers for null data sources.
6943         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
6944         source, otherwise when rows are added they are added to the 'fake'
6945         datasource and we will crash when trying to set the position in
6946         those rows.
6947         - Use Implicit scrollbars on the datagrid so they arent
6948         selectable.
6949         
6950 2006-03-16  Jackson Harper  <jackson@ximian.com>
6951
6952         * Binding.cs:
6953         * InternalWindowManager.cs:
6954         * MdiWindowManager.cs:
6955         * X11Keyboard.cs: I really want Mike to love me again (fix
6956         compiler warnings).
6957
6958 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
6959
6960         * DataGrid.cs:
6961           - OnMouseDown: Switch to editing mode when clicking on the cell
6962                          even if we're clicking on the cell that's currently 
6963                          selected
6964           - ProcessGridKey: Left/Right now wrap like MS.Net does
6965           - ProcessGridKey: Tab now knows to add a new row when tab is
6966                             pressed in the cell of the last column of the 
6967                             last row
6968           - ProcessGridKey: Enter now adds another row  if pressed in the last
6969                             row and selectes the new row, same column cell
6970           - ProcessGridKey: Home/End navigate columns, not rows, like 
6971                             originally implemented
6972           - Broke ProcessKeyPreview code out into an extra Internal method
6973             so it can be called from the edit code
6974         * DataGridTextBox.cs (ProcessKeyMessage):
6975           - Switched to accept Tab keypresses
6976           - Added F2 handling to allow jumping to the end of the edited cell
6977           - Added logic to allow moving caret left/right inside edited cell
6978             and making the edited cell jump when the caret hits cell borders
6979           - Tab and Enter are now passed to the datagrid after being handled
6980         * TextBoxBase.cs:
6981           - Removed capture code now that Control handles it
6982           - set_SelectionStart now ensures caret is visible
6983
6984 2006-03-16  Jackson Harper  <jackson@ximian.com>
6985
6986         * TrackBar.cs: Debackwards the increment/decrement for handling
6987         mouse clicks on the bar with vertical trackbars.
6988         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
6989         bottom to match MS.
6990
6991 2006-03-16  Mike Kestner  <mkestner@novell.com>
6992
6993         * ListView.cs: make shift/ctrl keyboard and mouse selection 
6994         consistent with the MS control. Fix a bug in
6995         SelectedListViewItemCollection.Clear that was pissing me off for the
6996         better part of a day because the collection was being altered
6997         underneath us as we walked the list.
6998
6999 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
7000
7001         * Control.cs: Not sure how we could miss this so long, but it seems
7002           that MS.Net has Capture set all the way from before calling 
7003           OnMouseDown through sending the mouse events until after
7004           OnMouseUp. This will fix DataGrid's selection being set to end
7005           at the location of the MouseUp.
7006
7007 2006-03-15  Jackson Harper  <jackson@ximian.com>
7008
7009         * BindingContext.cs: Check the binding after its added so that it
7010           can initialize the binding managers and hookup to events.
7011         * Binding.cs: Data members seem to sometimes include rows/cols in
7012           the format Row.Column we now take this into account.
7013           - Hookup to the position changed event so we can update the
7014           control when the position has changed in the data set.
7015         * CurrencyManager.cs: Take into account the row/col naming
7016           convention when creating dataset tables.
7017         * BindingContext.cs: Using a newer better way of storing
7018           datasource/datamember pairs.  Hopefully this better matches MS for
7019           looking up binding managers.
7020
7021
7022 2006-03-15  Jackson Harper  <jackson@ximian.com>
7023
7024         * BindingContext.cs: The currency manager needs the data member
7025         name, if the member is a data set we use the name to find the
7026         correct table.
7027         * CurrencyManager.cs: When creating the list prefer an IList over
7028         an IListSource.
7029         - Attempt to create a DataTable from a DataSet (TODO: might need
7030         some better error checking here, although MS doesn't seem to have much)
7031         - If we have a DataTable create a view and use it as our list.
7032
7033 2006-03-15  Mike Kestner  <mkestner@novell.com>
7034
7035         * ListView.cs: keep a matrix of the icon mode layout to facilitate
7036         keyboard navigation. Support Up/Down/Left/Right selection correctly
7037         for all 4 View modes.
7038         * ListViewItem.cs: add internal row/col fields for icon layouts.
7039
7040 2006-03-15  Jackson Harper  <jackson@ximian.com>
7041
7042         * TabControl.cs: Redraw the tabs when we resize so their newly
7043         calculated sizes are drawn on screen.
7044         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
7045         composite characters.
7046         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
7047         - filter events so that composite characters can be created
7048         patches by peter
7049         * X11Structs.cs: Add XIMProperties enum.
7050
7051 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7052
7053         * Control.cs (BringToFront, SendToBack): Don't use window or handle
7054           unless it's created
7055
7056 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7057
7058         * Control.cs (PerformLayout): We don't need to consider visiblity
7059           for anchoring, only for docking. This fixes 'whacky' alignment
7060           in listbox and other controls that use implicit scrollbars after
7061           the previous PerformLayout patch
7062         * ListBox.cs: Switched to use implicit scrollbars
7063           
7064 2006-03-14  Mike Kestner  <mkestner@novell.com>
7065
7066         * ToolBar.cs: 
7067         * VScrollBar.cs:
7068         - chain up the "new event" overrides to base and use
7069         OnEvent to raise them.  Part of fix for bug #76509.
7070
7071 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
7072
7073         * FileDialog.cs: Do not select an item in the parent directory
7074           on backspace
7075
7076 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
7077
7078         * Control.cs (PerformLayout): It would seem that we considered
7079           invisible windows for our layout. Not quite the right thing
7080           to do. Now we don't any longer, thereby fixing bug #76889.
7081
7082 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
7083
7084         * Control.cs (CanFocus): I goofed. A control can have focus 
7085           even though it's not selectable. Made it match MS docs.
7086
7087 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7088
7089         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
7090           center by default (fixes #76895)
7091         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
7092           all uses of Border3DSides.All with the explicit ORd together
7093           Left|Right|Top|Bottom because I assume that nobody was aware 
7094           that All also implies a center fill. Most places I checked had
7095           a fill right above.
7096         * ProgressBarStyle.cs: Added
7097
7098 2006-03-13  Mike Kestner  <mkestner@novell.com>
7099
7100         * ListView.cs: fix breakage in drag shadow header positioning 
7101         from Peter's csc compilation fix.
7102
7103 2006-03-13  Mike Kestner  <mkestner@novell.com>
7104
7105         * ListView.cs: fix NRE produced by backspacing twice in a focused
7106         FileDialog.
7107
7108 2006-03-13  Mike Kestner  <mkestner@novell.com>
7109
7110         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
7111
7112 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7113
7114         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
7115           be changed
7116         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
7117           the allowed size before making programmatic size changes
7118
7119 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
7120
7121         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
7122           set, metacity is broken and will still use the emty sizes in 
7123           the struct. (Fix for #77089)
7124
7125 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
7126
7127         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
7128           WindowExStyles and marked both enums as Flags
7129         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
7130           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
7131           to match WindowStyles split
7132         * XplatUIX11.cs:
7133           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
7134           - Updated to match WindowStyles split
7135         * XplatUIWin32.cs:
7136           - Fixed FosterParent creation, was using ExStyle on the Style field
7137             (This should help with Popup focus issues)
7138           - Updated to match WindowStyles split
7139
7140 2006-03-13  Jackson Harper  <jackson@ximian.com>
7141
7142         * MdiWindowManager.cs: Use the system menu height. Fixes some
7143         strange sizing issues.
7144
7145 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7146
7147         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
7148         * TextBoxBase.cs:
7149           - Scroll to caret after inserting text (#77672)
7150           - Make scroll range one pixel higher, fixes off-by-one error (and
7151             makes underlines visible on the last line)
7152
7153 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
7154
7155         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
7156           the keyboard state from being stuck with keys in 'pressed' state when
7157           focus is switched away via keyboard
7158         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
7159           reset the keyboard if no X11 KeyUp events are expected to come
7160         * X11Structs.cs: Switched type of Visible to bool to match driver
7161
7162 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
7163
7164         * TextControl.cs:
7165           - Switched caret to be just 1 pixel wide, matches MS and looks less
7166             clunky
7167           - Moved caret display 1 pixel down from the top of the control
7168             to improve view
7169           - InsertCharAtCharet: Update the selection start if moving the caret
7170             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
7171           - No longer always creating the caret when the caret methods are
7172             called. Only the actual ShowCaret/HideCaret will do that now
7173           - Only setting caret visible if the owner control has focus
7174           - UpdateView: Added invalidation-shortcut logic for center and right 
7175             aligned text. Previously we'd update all according to the left
7176             logic which caused drawing errors. Also fixed height of invalidated
7177             areas, now properly invalidating the whole area (was off-by-one)
7178           - owner_HandleCreated: Always generate the document when the
7179             handle is created; this ensures that 
7180         * TextBoxBase.cs:
7181           - Fixed situation where caret would disappear under the right
7182             window border, also improved scrolling behaviour on left-
7183             aligned textboxes
7184           - Fixed right-aligned textboxes to have a border to the
7185             right instead of the caret being under the right border
7186         * XplatUIX11.cs:
7187           - Switched from 'nested' to simple visible/not visible tracking 
7188             for caret (part of fix for #77671)
7189           - No longer passing through translated FocusIn/FocusOut messages
7190             since we were notifying too often and the wrong windows. Instead
7191             we just notify our focussed window of receiving or loosing focus
7192         * XplatUIWin32.cs: Switched from 'nested' show/hide 
7193           counting for caret to simple visible yes/no behaviour (part of 
7194           fix for #77671)
7195
7196 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7197
7198         * Mime.cs: Remove debug code...
7199
7200 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
7201
7202         * MimeGenerated.cs: Removed
7203         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
7204           and subclasses) from /usr/(local/)share/mime and
7205           $HOME/.local/share/mime.
7206
7207 2006-03-10  Jackson Harper  <jackson@ximian.com>
7208
7209         * MdiWindowManager.cs: Recalc the NC area when a window is
7210         maximized/restored so that the menu area is drawn on forms that
7211         don't have a menu.
7212
7213 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7214
7215         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7216           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
7217           us to force a WM_NCCALCRESIZE message being sent. This is needed
7218           for MDI maximizing.
7219
7220 2006-03-10  Jackson Harper  <jackson@ximian.com>
7221
7222         * Form.cs: We need to use the ActiveMenu when calculating menu
7223         height.
7224         - Fix nullref when the window manager hasn't been created yet.
7225         * Control.cs: Fix nullref when we try to bring a control to the
7226         front that has no parent.
7227         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
7228         height.
7229         - Add a dummy item to the maximized menu so it always has the
7230         correct height. Otherwise when there are no menus we don't get our
7231         icon and buttons.
7232         
7233
7234 2006-03-10  Jackson Harper  <jackson@ximian.com>
7235
7236         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
7237         stuff.
7238         * Form.cs: Make the window_state internal so the window managers
7239         can track it.
7240         - When an MDI child is maximized let its window manager create the
7241         main menu (so it can add its icon).
7242         - Notify the window managers of state changes
7243         - Let the window manager paint its buttons and handle button
7244         clicks on the menu when it is maximized.
7245         * InternalWindowManager.cs: Move the prev_bounds into the mdi
7246         window manager, since tool windows don't use it, only mdi windows.
7247         - Tell the main form that we don't want it to handle NCPAINT
7248         itself to avoid extra painting.
7249         - Handle clicks on a maximized windows menu.
7250         - Handle window state changes
7251         - Handle minimize/maximize clicks correctly by setting the window state.
7252         * MdiWindowManager.cs: Add an icon menu that (the menu you get
7253         when clicking on the forms icon).
7254         - New method to create a forms maximized menu. This is its normal
7255         menu + an icon.
7256         - Handle window state changes.
7257         - Handle sizing of maximized windows.  Maximized windows are just
7258         drawn bigger then the parent visible area. All controls are still
7259         there, they are just outside the visible area (this matches windows).
7260         * MdiClient.cs: No scrollbars when a child window is maximized.
7261         - Let the children windows figure out how big they should be when
7262         sizing maximized windows.
7263         - Implement a version of ArrangeIconicWindows somewhat similar to
7264         Windows version.  There are some little differences, but I don't
7265         think any app will rely on the layout of minimized mdi windows.
7266
7267 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7268
7269         * Padding.cs: Several fixes to allow compiling with csc 2.0
7270
7271 2006-03-09  Jackson Harper  <jackson@ximian.com>
7272
7273         * Menu.cs:
7274         * MenuItem.cs: Cheap hack so we can add items to the list without
7275         the events being raised.  This allows adding mdi items during
7276         drawing. TODO: Should probably find a better time to add the items.
7277
7278 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7279
7280         * ThemeWin32Classic.cs:
7281           - CheckBox_DrawText: Added logic to not wrap if not enough space
7282             is available (Fix for bug #77727)
7283           - RadioButton_DrawText: Added logic not to wrap if not enough
7284             space is available (Fix for bug #77727). Also removed some
7285             duplicate code, DrawString always drawing the regular text
7286             before hitting the if statement.
7287
7288 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
7289
7290         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
7291
7292 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
7293
7294         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
7295         * ContainerControl.cs: Partial implementation of some 2.0 scaling
7296           methods. Moved the new 2.0 properties into alphabetical order with
7297           other properties and added MonoTODO tags
7298
7299 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7300
7301         * AutoScaleMode.cs: Added. Fix build.
7302
7303 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7304
7305         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
7306           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
7307           and was requiring premature handle creation for calls from above
7308         * Form.cs, Control.cs: Removed handle arguments from calls to
7309           CalculateClientRect()
7310
7311 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7312
7313         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
7314           drag_column.column_rect is MarshalByRef and can't be used that way
7315
7316 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7317
7318         * AxHost.cs: Added deserialization constructor for 
7319           AxHost+State (fixes 77743)
7320
7321 2006-03-09  Mike Kestner  <mkestner@novell.com>
7322
7323         * ListView.cs: 
7324         - Added column drag reordering for details view.
7325         - fixed behavior when mouse is dragged off column and
7326         AllowColumnReorder is false.
7327         * ColumnHeader.cs: clone the format too in Clone.
7328         * Theme.cs: add DrawListViewHeaderDragDetails method.
7329         * ThemeWin32Classic.cs:
7330         - impl new method for drawing drag column shadows and targets.
7331         - support column offset for details mode in DrawListViewItem.
7332
7333 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7334
7335         * TextControl.cs: Reset the char_count when the document is cleared
7336           (Fixes bug reported on mono-winforms mailing list)
7337
7338 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
7339
7340         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
7341           of calling base we simply process the key ourselves, since both
7342           DefWindowProc and the handled method would set m.Result. 
7343           (Fixes #77732)
7344
7345 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
7346
7347         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
7348           method also moves the window; instead implemented a copy of
7349           Control.ScaleCore (Part of fix for #77456)
7350         * TextBoxBase.cs: 
7351           - Created new CreateGraphicsInternal method to allow providing
7352             a graphics context when no handle is created without triggering
7353             handle creation. (Part of fix for #77456)
7354           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7355         * TextControl.cs: 
7356           - Switched Constructor to require TextBoxBase instead of Control (to
7357             allow uncast access to CreateGraphicsInternal)
7358           - Safeguarded use of owner.Handle property. No longer accessing it
7359             unless the handle is already created.
7360           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
7361           - Now triggering a recalc when owning control becomes visible
7362         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
7363           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
7364           premature handle creation (Part of fix for #77456)
7365         * Control.cs:
7366           - We now only destroy our double-buffering buffers when the
7367             control is resized or disposed, but not when visibility
7368             changes. (The code even re-created them twice every time)
7369           - Now requiring a redraw of the buffer on visibility changes
7370             (fixes bug 77654 part 2)
7371           - Not passing OnParentVisibleChanged up unless the control
7372             is visible
7373           - CanFocus: Fixed to match MS documentation
7374           - Focus: Fixed to return actual focus state and to check if
7375             setting focus is legal before setting it
7376
7377 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
7378
7379         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
7380           when to draw focus rectangle by looking at parent focus and
7381           selected state instead. This fixes TabPages on Linux sometimes
7382           having none or multiple focus rectangles.
7383         * XplatUIX11.cs (SetFocus): 
7384           - Don't set the focus if the same window already has focus
7385           - Use SendMessage instead of PostMessage (like it's Win32
7386             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
7387             to match MS behaviour
7388         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
7389           are not selectable.
7390
7391 2006-03-07  Jackson Harper  <jackson@ximian.com>
7392
7393         * PictureBox.cs: Revert line I accidently committed last week.
7394
7395 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
7396
7397         * Control.cs: 
7398           - Added new IsRecreating and ParentIsRecreating properties to
7399             allow testing if RecreateHandle has been called on ourselves
7400             or one of our parents
7401           - WndProc(WM_DESTROY): If our control handle is being recreated
7402             we immediately need to create the handle when receiving the
7403             destroy, that way our child windows find a valid parent handle
7404             when they themselves are being recreated upon WM_DESTROY receipt
7405             (fix for bug #77654 part 1)
7406         * XplatUIX11.cs:
7407           - DestroyWindow: WM_DESTROY must be sent to our own window before
7408             notifying any child windows. MS documents that child windows
7409             are still valid when WM_DESTROY is received. (Control now relies on
7410             this behaviour)
7411           - Added some fine-grain debug options
7412
7413 2006-03-06  Jackson Harper  <jackson@ximian.com>
7414
7415         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
7416         box and base calculations off this.
7417         * MdiChildContext.cs:
7418         * MdiWindowManager.cs: Don't need to ensure scrollbars here
7419         anymore.
7420         
7421 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
7422
7423         * Splitter.cs: In situations where the affected control is added
7424           to the parent's control list after the splitter, we would not
7425           populate affected. Now we try populating it on mousedown, if
7426           it's not already set, and force it to be re-set whenever our
7427           parent changes.
7428
7429 2006-03-03  Matt Hargett  <matt@use.net>
7430
7431         * Control.cs: implement Control.Padding
7432         * Padding.cs: -Padding.All returns -1 when constructing with the
7433         implicit default ctor
7434         -Padding.ToString() matches MS.NET
7435         * ContainerControl.cs: implement
7436         ContainerControl.AutoScaleDimensions
7437         * ListControl.cs: implement ListControl.FormattingEnabled
7438         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
7439         * ButtonBase.cs:
7440         * TabPage.cs: Implement UseVisualStyleBackColor.
7441         * PictureBox.cs: Implement PictureBox.InitialImage.
7442
7443 2006-03-03  Mike Kestner  <mkestner@novell.com>
7444
7445         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
7446         event declarations to proxy to base event.
7447         * ListViewItem.cs: update to use ItemControl.
7448         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
7449         * ThemeWin32Classic.cs: update to new ListView theme API and fix
7450         column header label rendering for 0 width columns.
7451
7452 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
7453
7454         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
7455           that causes the control to be created. Fixes #77476.
7456
7457 2006-03-02  Jackson Harper  <jackson@ximian.com>
7458
7459         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
7460         expose_pending.
7461
7462 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
7463
7464         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
7465           passed in for the EventArgs (fixes #77690)
7466
7467 2006-03-01  Jackson Harper  <jackson@ximian.com>
7468
7469         * ScrollBar.cs: Refresh afterbeing resized.
7470
7471 2006-02-28  Mike Kestner  <mkestner@novell.com>
7472
7473         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
7474         Clean up a tracker compile warning.
7475         * MenuItem.cs: add internal PerformPopup method.
7476         [Fixes #77457]
7477
7478 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7479
7480         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
7481           implicit expose) when the text is set to null
7482
7483 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
7484
7485         * RichTextBox.cs (FlushText): When newline is true, we always
7486           need to split the line, even if no text is on it and we may
7487           never eat newlines. (Fixes #77669)
7488
7489 2006-02-28  Mike Kestner  <mkestner@novell.com>
7490
7491         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
7492         and set Selected instead.
7493         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
7494         collections.
7495
7496 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
7497
7498         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
7499
7500 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
7501
7502         * FontDialog.cs:
7503           - Got rid of the panel. All controls are now directly added to
7504             the dialog form
7505           - It is now possible to set a font with the Font property
7506           - MinSize and MaxSize property do now what they should
7507           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
7508           - Searching and selecting a font with the font textbox works now,
7509             the same applies to the style and size textbox
7510           - Draw the correct 3D border in the example panel
7511           - Fixed a little mem leak (unused fonts didn't get disposed)
7512           - Many other internal updates/rewrites...
7513           - Fix typo
7514
7515 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7516
7517         * TextControl.cs: 
7518           - InsertRTFFromStream: Added 'number of characters inserted' argument
7519           - set_SelectedRTF: Now using the number of characters to calculate
7520             the new location for the selection and cursor (x/y cannot be used
7521             due to potentially already wrapped text)
7522
7523 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
7524
7525         * TextControl.cs: Added property and implemented means to allow 
7526           disabling recalculation of a document (can be used to speed up
7527           multiple inserts and is needed to make RTF inserts predictable, see
7528           bug #77659)
7529         * RichTextBox.cs: Using the new NoRecalc property of Document to
7530           keep x/y insert locations predictable. Also makes it faster inserting
7531           large chunks of RTF
7532
7533 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
7534
7535         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
7536           it's easier for a child control to handle the other messages without
7537           having to duplicate the special functionality
7538         * TextBoxBase.cs
7539           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
7540             code to handle processing the key ourselves, in order to get 
7541             access to the result of KeyEventArgs.Handled. We now only call 
7542             ProcessKey if they key hasn't been handled already. Fixes #77526.
7543           - set_Text: If null or empty string is given, just clear the 
7544             document. Fixes part of #77526
7545
7546 2006-02-27  Jackson Harper  <jackson@ximian.com>
7547
7548         * SizeGrip.cs: Paint the background color before painting the grip
7549         so things look right.
7550         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
7551
7552 2006-02-27  Mike Kestner  <mkestner@novell.com>
7553
7554         * ListView.cs:
7555           - Restructure layout and invalidation model to remove a ton of
7556           flicker from the control and speed up performance in general.
7557           - Add manual column resize, flickers like crazy, but I already have
7558           some ideas on how I'll fix that. (#76822)
7559           - Merge the three Icon-based views into a single layout method.
7560           - Move item selection interaction logic from the item since 
7561           interaction with the collections is more appropriate to the view.
7562           - Deselection on non-item clicks.
7563         * ListViewItem.cs:
7564           - Encapsulate most of the layout. Add some internal props to trigger
7565           layout.  Move to a model where Items invalidate themselves instead
7566           of just invalidating the whole control every time something changes.
7567           - Invalidate on Text/Caption changes.
7568           - switch to an offset based layout model to avoid having to absolute
7569           position every element on item moves.
7570           - correct checkbox layout to conform to MS layout.
7571         * ThemeWin32Classic.cs:
7572           - refactor some column header drawing code.
7573           - fix string justification for column headers (#76821)
7574           - make SmallIcon labels top justified for compat with MS impl.
7575         * ThemeClearlooks.cs:
7576           - adjust to new ListViewItem internal checkbox bounds api.
7577
7578 2006-02-27  Jackson Harper  <jackson@ximian.com>
7579
7580         * Control.cs:  Change where implicit controls fall in the zorder.
7581         They are now on top of all children.
7582         - Synced AddImplicit code with Add
7583         - Removed unused enumerator.
7584         * SizeGrip.cs: Remove the TODO as its been TODONE.
7585
7586 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
7587
7588         * TextControl.cs(Insert): Combine the last lines unless the insertion
7589           string ends with \n\n, otherwise we leave one line too many (Fixes
7590           something I noticed with the testapp for #77526; the bug itself was
7591           already fixed in the previous checkin)
7592
7593 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
7594
7595         * RichTextBox.cs:
7596           - SelectionColor and SelectionFont methods no longer set absolute
7597             styles. Instead, the keep font or color respectively (This 
7598             resolves a long-standing FIXME in the code)
7599           - When flushing RTF text, the insert code now considers text trailing
7600             behind the insertion point (Fixes the bug where when replacing
7601             the selected text via SelectedRTF the remainder of the line behind 
7602             the selection would stay on the first insertion line)
7603         * TextBoxBase.cs:
7604           - AppendText now updates the selection points after inserting text
7605           - AppendText now ensures that the last tag (sometimes 0-length) of
7606             the document is used for the style information (Fixes part of 
7607             bug #77220)
7608         * TextControl.cs:
7609           - Created new FontDefiniton class to allow describing partial style
7610             changes
7611           - StreamLine() now takes a lines argument, to allow it to decide
7612             whether an encountered zero-length tag is the last in the document
7613             (which must be kept to not loose the font/color contained in it,
7614             for later appends)
7615           - Created Combine() and Split() methods for Marker structs, to 
7616             support marker updates due to reformatted documents (soft line
7617             wraps)
7618           - Implemented Document.CaretTag setter
7619           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
7620             of the last line (Not the cause, but also exposed by bug #77220)
7621           - Added LineTag argument to InsertString method, to allow callers
7622             to force a certain tag to be used (required to force use of the
7623             trailing zero-length tag of a document)
7624           - Now updating markers in Combine(), to avoid stale tag markers
7625           - Added some method descriptions to aid maintenance
7626           - Implemented new FormatText concept, allowing additive/subtractive
7627             formatting by only specifying the components that are to be 
7628             changed. This was needed for resolving the RTB.SelectedColor/
7629             RTB.SelectedFont fixmes
7630           - Added Break() support method to allow breaking up linetags (used
7631             for partial formatting)
7632           - Added GenerateTextFormat() method. It is used for partial 
7633             formatting and allows to generate a full font/color from given
7634             attributes and an existing tag.
7635
7636 2006-02-26  Jackson Harper  <jackson@ximian.com>
7637
7638         * XplatUIX11.cs:  Use the correct caption height.
7639         - Translate hittest coordinates to screen coords to match MS.
7640         * XplatUIWin32.cs: When we create MDI windows we need to reset
7641         some of the style flags, so we get a nice blank window, and can
7642         draw all the decorations ourselves.
7643         - Set a clipping rectangle on the non client paint event, the
7644         window manager drawing code needs one.
7645         * Form.cs: The window manager needs to know when the window state
7646         has been updated.
7647         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
7648         don't need to factor in border and title sizes in these
7649         methods. TODO: Remove the args and fix the call points.
7650         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
7651         properly.
7652         - Let the driver set the cursors.
7653         - Improve active window handling
7654         - Correct sizes for title bars and buttons.
7655         - Match MS drawing better
7656         * MdiWindowManager.cs: We don't need to handle border style
7657         updates specially anymore.
7658         - Check for scrollbars when windows are done moving
7659         - Handle Active properly.
7660         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
7661         correctly. I am spewing the exception though, so we don't hide the
7662         bugs.
7663         
7664 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
7665
7666         * DataGridViewRowPostPaintEventArgs.cs,
7667           DataGridViewCellPaintingEventArgs.cs,
7668           DataGridViewRowCollection.cs,
7669           DataGridViewRowPrePaintEventArgs.cs,
7670           DataGridViewCell.cs: Clear a few warnings and implement a few
7671           exceptions that should be thrown.
7672
7673 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
7674
7675         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
7676           'inheriting' our parent's (non-default) cursor. (Part of
7677            the fix for #77479)
7678
7679 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
7680
7681         * XplatUIX11.cs: Fixed cast to make csc happy
7682
7683 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
7684
7685         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
7686           it's for the client area (part of fix for #77479 and needed
7687           for MDI window cursor handling)
7688         * XplatUIX11.cs
7689           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
7690             the appropriate default cursors and also passing the message
7691             up the parent chain 
7692           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
7693             for non-client areas
7694
7695 2006-02-15  Jackson Harper  <jackson@ximian.com>
7696
7697         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
7698         is a real MDI window
7699
7700 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
7701
7702         * X11DesktopColors.cs: Instead of checking the desktop session
7703           string for "KDE" check if it starts with "KDE"
7704
7705 2006-02-10  Jackson Harper  <jackson@ximian.com>
7706
7707         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
7708         systems).
7709
7710 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7711
7712         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
7713           errors
7714         * ColorDialog.cs:
7715           - Got rid of the panel. All controls are now directly added to
7716             the dialog form
7717           - Changed to mono coding style
7718
7719 2006-02-10  Jackson Harper  <jackson@ximian.com>
7720
7721         * InternalWindowManager.cs: We don't need the set visibility to
7722         false hack anymore now that peter has written beautiful shutdown
7723         code.
7724
7725 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
7726
7727         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
7728           where already explicitly destroyed
7729
7730 2006-02-10  Jackson Harper  <jackson@ximian.com>
7731
7732         * MdiClient.cs: Handle the case where windows are too high or to
7733         the left and we need scrollbars.
7734
7735 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7736
7737         * MimeIcon.cs: Added some icons
7738         * FileDialog.cs:
7739           - Fixed bug #77477
7740           - Got rid of the panel. All controls are now directly added to
7741             the dialog form
7742           - Changed to mono coding style
7743           - On Linux "My Computer" and "My Network" will now show some
7744             more usefull information. A new class, MasterMount, gathers
7745             this information from /proc/mount. Updated MWFFileView to make
7746             use of this information
7747           - Fixed a bug that caused FileDialog to crash when
7748             ".recently_used" file had a zero size
7749           - FilterIndex does now what it should
7750           - Some Refactoring
7751         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
7752             FileDialog changes
7753
7754 2006-02-09  Jackson Harper  <jackson@ximian.com>
7755
7756         * ComboBox.cs: Don't touch if null.
7757
7758 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
7759
7760         * Cursor.cs: 64bit safeness fix
7761         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
7762
7763 2006-02-09  Jackson Harper  <jackson@ximian.com>
7764
7765         * Form.cs: If a form is made into an MDI form update the styles so
7766         all the props can get set correctly.
7767         - Kill the mdi_container when we dont need it anymore.
7768         * InternalWindowManager.cs: Add missing NOT
7769
7770 2006-02-08  Jackson Harper  <jackson@ximian.com>
7771
7772         * InternalWindowManager.cs: Respek clipping when drawing MDi
7773         decorations.
7774
7775 2006-02-08  Jackson Harper  <jackson@ximian.com>
7776
7777         * Hwnd.cs: Add bits to track non client expose events.
7778         * XplatUIX11.cs: Track non client expose events on the hwnd. This
7779         gives us a proper invalid rect and will allow for some nice
7780         optimizations with NC client drawing
7781         - MDI windows are children windows, so move their style handling
7782         into the child window block.
7783         * InternalWindowManager.cs: Remove a state reset that was
7784         getting invoked at the wrong time. Fixes managed windows getting
7785         into a 'stuck' captured state.
7786
7787 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7788
7789         * TextControl.cs (Document.ctor): Now initializing 
7790           selection_anchor. Fixes #77493
7791
7792 2006-02-07  Jackson Harper  <jackson@ximian.com>
7793
7794         * TrackBar.cs: The increment/decrements were backwards.
7795
7796 2006-02-07  Mike Kestner  <mkestner@novell.com>
7797
7798         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
7799         to the instance itself.
7800
7801 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7802
7803         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
7804           on ulongs and pointers, the size differs between 32bit and 64bit
7805           systems. 
7806
7807 2006-02-07  Mike Kestner  <mkestner@novell.com>
7808
7809         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
7810         for 64 bit platforms to work around a metacity bug. 
7811
7812 2006-02-07  Jackson Harper  <jackson@ximian.com>
7813
7814         * TrackBar.cs: Process the input keys we need, and hookup to
7815         KeyDown instead of using WndProc, so we get key messages.
7816
7817 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
7818
7819         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
7820           machine we're on. 
7821         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
7822           we need to translate the XdndVersion atoms array before sending it
7823
7824 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
7825
7826         * XplatUIX11.cs: 
7827           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
7828             number of bits for the property, not the number of bytes. The
7829             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
7830             but would not crash since it specified 8 bits instead of 4 bits)
7831           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
7832             defined as XID -> long in the C headers)
7833           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
7834             references since those are now IntPtr to begin with
7835           - Switched all Atom.XXX 'int' casts to IntPtr casts
7836           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
7837           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
7838           - Added XChangeActivePointerGrab DllImport (for X11DnD)
7839         * X11Structs.cs:
7840           - Changed 'int' type for Atoms in XEvent structures to IntPtr
7841           - Changed atom in HoverStruct to be IntPtr
7842         * X11DnD.cs:
7843           - Removed local DllImports, switched code to use those from XplatUIX11
7844           - Removed/fixed casts related to the switch of Atom to be a IntPtr
7845
7846 2006-02-06  Mike Kestner  <mkestner@novell.com>
7847
7848         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
7849         method signatures in the import region.  There may still be some
7850         lingering struct marshaling issues, as I didn't drill down into those.
7851         Yet.
7852
7853 2006-02-06  Jackson Harper  <jackson@ximian.com>
7854
7855         * ComboBox.cs: Dont manually set the top_item, this is computed
7856         when the scrollbar position is set.
7857
7858 2006-02-06  Mike Kestner  <mkestner@novell.com>
7859
7860         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
7861         startup crashes on amd64.  There's other fixes needed.  All pinvoke
7862         usage of Atom needs to be mapped to IntPtr for example.  And there are
7863         likely other int/long issues to be addressed.
7864
7865 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
7866
7867         * FileDialog.cs: One more...
7868
7869 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7870
7871         * FileDialog.cs: Next try
7872
7873 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7874
7875         * FileDialog.cs: First part of fix for #77464
7876
7877 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7878
7879         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
7880           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
7881           AcceptButton border drawing.
7882
7883 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
7884
7885         * Form.cs: Moved positioning of form after auto scaling is applied,
7886           otherwise it would possibly use wrong form size.
7887
7888 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
7889
7890         * Control.cs (RecreateHandle): No need to re-create any child
7891           controls, the child windows will get destroyed automatically by
7892           the windowing system or driver, and re-created when the handle
7893           is being accessed the first time. Fixes #77456
7894         * Form.cs: No longer setting the form to closing if the handle is 
7895           being recreated. This seems like the right thing to do, don't
7896           have a bug or testcase for this, though.
7897
7898 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
7899
7900         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
7901           controls to avoid unwanted side effects
7902
7903 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
7904
7905         * Control.cs: 
7906           - ScaleCore needs to scale the bounds, not the ClientSize of the 
7907             control. Fixes #77416.
7908           - DefaultSize is 0,0 for control
7909         * TextBoxBase.cs: 
7910           - DefaultSize is 100, 20
7911           - SetBoundsCore: Now enforcing the height, no matter if the provided
7912             height is more or less than the preferred one, as long as AutoSize
7913             is on
7914         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
7915
7916 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
7917
7918         * Control.cs:
7919           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
7920             call unless both performLayout is true *and* we have a pending
7921             layout change
7922           - ResumeLayout: MS does not completely nest Suspend and Resume,
7923             they bottom out at 0, fixed our code to match that.
7924           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
7925             SetBoundsCore, we were updating even when we shouldn't. This fixes
7926             swf-anchors mis-anchoring when resizing the app fast and lots.
7927           - UpdateDistances: Now only setting the left and top distance if 
7928             we have a parent and are not suspended, this is based on
7929             a suggestion by Don Edvaldson in bug #77355.
7930           - OnVisibleChanged: Fixed logic when to create the control. We may
7931             not create the control if we have no parent or if it's not visible;
7932             switched to using Visible property instead of is_visible field 
7933             since the property also considers parent states. This fixes a bug
7934             when starting Paint.Net
7935
7936 2006-02-02  Jackson Harper  <jackson@ximian.com>
7937
7938         * Form.cs: If the forms handle hasn't been created yet don't call
7939         into xplatui to make it top most, just set the topmost flag on the
7940         form in CreateParams
7941         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
7942
7943 2006-02-01  Jackson Harper  <jackson@ximian.com>
7944
7945         * ScrollableControl.cs: Refactored the Recalculate method a
7946         little, this wasn't handling all the variants of bottom and right
7947         bars needed to be added and added/removed based on their
7948         counterparts being added/removed (which changes the drawable
7949         size). Also we special case client widths and heights of 0 and
7950         don't add the scrollbar for those.
7951
7952 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
7953
7954         * XplatUIX11.cs: 
7955           - Added method to get AbsoluteGeometry(); currently unused, but might
7956             be used in the future, if we try again to figure out toplevel
7957             coordinates with some more crappy window managers
7958           - Added FrameExtents() method to retrieve the WM set decoration size
7959           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
7960             to deal with at least KDE, FVWM and metacity (Fixes #77092)
7961         * Hwnd.cs: 
7962           - Added whacky_wm tracking var for metacity
7963           - Added logic to have default menu height if the actual menu height
7964             has not yet been calculated (part of fix for #77426)
7965         * Form.cs: Keep track whether client size has been set and re-set 
7966           it if a menu is added/removed afterwards (Fixes #77426)
7967
7968 2006-01-31  Jackson Harper  <jackson@ximian.com>
7969
7970         * Control.cs: When a new Site is set on the component attempt to
7971         pull the AmbientProperties from it.
7972
7973 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
7974
7975         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
7976           in the background of the owning form. Fixes #77332
7977
7978 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7979
7980         * MimeIcon.cs: Fix for #77409
7981
7982 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7983
7984         * XplatUIX11GTK.cs: Initial import
7985
7986 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
7987
7988         * FixedSizeTextBox: fixes class signature
7989
7990 2006-01-30  Jackson Harper  <jackson@ximian.com>
7991
7992         * FixedSizeTextBox.cs: New internal class that represents a
7993         textBox that will not be scaled.
7994         * TreeView.cs:
7995         * ComboBox.cs:
7996         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
7997         standard TextBox.
7998                 
7999 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
8000
8001         * XplatUIX11.cs: Retrieve default screen number instead of
8002           assuming 0. Attempted fix for #77318
8003
8004 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
8005
8006         * XplatUIWin32.cs: 
8007           - GetWindowPos: When a window is parented by FosterParent, use 
8008             the desktop instead of FosterParent as the base to get coordinates
8009           - CreateWindow: Don't make FosterParent the parent window for Popups
8010             if we don't want a taskbar entry, Popups automatically don't get one
8011         * Hwnd.cs: Need to call remove to actually remove the key from the
8012           hash table
8013
8014 2006-01-30  Mike Kestner  <mkestner@novell.com>
8015
8016         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
8017
8018 2006-01-30  Jackson Harper  <jackson@ximian.com>
8019
8020         * TreeView.cs:
8021         * TreeNode.cs: Raise events no matter how the treenode is
8022         checked. Patch by Don Edvalson.
8023
8024 2006-01-30  Jackson Harper  <jackson@ximian.com>
8025
8026         * TreeNode.cs: Signature fix.
8027
8028 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
8029
8030         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
8031
8032 2006-01-20  Mike Kestner  <mkestner@novell.com>
8033
8034         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
8035         event forwarding when menus are active.
8036         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
8037         Most of the patch is pdb's with a little rework.
8038
8039 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8040
8041         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
8042           Removed GetMenuDC and ReleaseMenuDC methods; replaced
8043           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
8044         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
8045         * InternalWindowManager.cs: Added use of PaintEventStart/End to
8046           handling of WM_NCPAINT message, now passing the PaintEventArgs to
8047           the PaintWindowDecorations method
8048         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
8049         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
8050         * MenuAPI.cs: Made tracker window invisible
8051         * XplatUIWin32.cs:
8052           - Removed GetMenuDC and ReleaseMenuDC methods
8053           - Implemented the client=false path for PaintEventStart and
8054             PaintEventEnd
8055
8056 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8057
8058         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
8059         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
8060           styles
8061         * Form.cs: 
8062           - MaximizeBox, MinimizeBox: Recreate the handle when setting
8063             the style
8064           - CreateParams: Reworked the styles to match MS look'n'feel,
8065             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
8066             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
8067
8068 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
8069
8070         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
8071           window is not mapped, since otherwise every form that's being 
8072           created is considered minimized, which is wrong.
8073         * Form.cs: Catching the exception and returning our internal value
8074           instead
8075
8076 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
8077
8078         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
8079           SetWindowMinMax() to have means to tell the driver about the minimum,
8080           maximum and maximized state window sizes. (Part of the fix for #76485)
8081         * Form.cs:
8082           - Implemented tracking of minimum and maximum window size, now calling
8083             new SetWindowMinMax() driver method to tell the driver (Part of the
8084             fix for #76485)
8085           - Finished handling of WM_GETMINMAXINFO method, now setting all values
8086             (Completes fix for #76485)
8087           - Calling new SetWindowMinMax driver method when the handle for a 
8088             form is created, to make sure the driver knows about it even if
8089             the values have been set before the window was created
8090           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
8091             to avoid messing up our anchoring calculations (partial fix
8092             for #77355)
8093         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
8094         * XplatUIX11.cs:
8095           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
8096           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
8097             (and presumably other freedesktop.org compliant WMs). Left the
8098             assumption unmapped=minimized, needed for SetVisible to work.
8099           - Now setting the window state when creating windows
8100           - Fixed SetVisible to consider/set the window state when mapping
8101             a Form. We cannot set the state before it's mapped, and we cannot
8102             use Form.WindowState once it's mapped (since it would ask the
8103             driver and get 'normal'. Therefore, we grab the state before
8104             mapping, map, and then set state.
8105           - Implmemented SetWindowMinMax method; Metacity does not seem to
8106             honor the ZoomHints, though.
8107         * XplatUIWin32.cs:
8108           - Removed MINMAXINFO (moved to XplatUIStructs)
8109           - Added SetWindowMinMax stub (on Win32 the only way to set that
8110             information is in response to the WM_GETMINMAXINFO message, which
8111             is handled in Form.cs)
8112           - Added logic to SetVisible to set the proper window state when a 
8113             form is made visible (fixes #75720)
8114
8115 2006-01-26  Jackson Harper  <jackson@ximian.com>
8116
8117         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
8118         same way we handle them with Invoke.
8119
8120 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
8121
8122         * Form.cs:
8123           - Added tracking of window state so CreateParams can return
8124             the appropriate style
8125           - Moved setting of WS_CAPTION style in CreateParams to allow
8126             styles without caption
8127         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
8128           control if the TextBox property is accessed. Fixes #77345
8129         * Control.cs:
8130           - get_Created: now uses is_disposed and is_created to determine
8131             return value (suggested by Jackson)
8132           - CreateHandle: No longer exits if the handle is being recreated
8133           - RecreateHandle: If the handle is not yet created call the 
8134             appropriate method to create either control or handle. If the
8135             control is already created CreateHandle will simply exit instead
8136             of just creating the handle
8137         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
8138           now SendMessage WM_DESTROY directly to the control when DestroyWindow
8139           is called.
8140         * XplatUIX11.cs: 
8141           - When DestroyWindow is called, instead of waiting for the 
8142             DestroyNotification from X11, we directly post it to the WndProc
8143             and immediately dispose the hwnd object.
8144             Same applies to DestroyChildWindows, and this obsoletes the
8145             expose_pending tracking. Contrary to Win32 behaviour we destroy our
8146             child windows before our own, to avoid X11 errors.
8147           - Removed the direct sending of WM_PAINT on UpdateWindow
8148         * XplatUIWin32.cs:
8149           - Reworked DoEvents and GetMessage to allow access to internal queue
8150             even when trying non-blocking access to the queue.  Fixes #77335. 
8151             Based on a patch suggestion by Don Edvalson. The new private
8152             GetMessage can now also be used as a backend for a PeekMessage
8153             frontend version.
8154         * XplatUI.cs: Improved debug output for CreateWindow
8155
8156 2006-01-25  Jackson Harper  <jackson@ximian.com>
8157
8158         * Help.cs: Allow param to be null. Patch by Don Edvalson.
8159
8160 2006-01-24  Jackson Harper  <jackson@ximian.com>
8161
8162         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
8163         when we have a MaxDropItems lower then the selected index.
8164
8165 2006-01-24  Jackson Harper  <jackson@ximian.com>
8166
8167         * Control.cs: Don't allow selection of non visible controls, allow
8168         selection of controls without parents.
8169
8170 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8171
8172         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
8173         * DataGridDrawingLogic.cs: Add editing row only when is necessary
8174
8175 2006-01-23  Jackson Harper  <jackson@ximian.com>
8176
8177         * UpDownBase.cs: Make the textbox handle all the selection and
8178         tabbing. This fixes tabing to updown controls.
8179
8180 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
8181
8182         * TextBoxBase.cs: fixes exception thown the object was null
8183
8184 2006-01-23  Jackson Harper  <jackson@ximian.com>
8185
8186         * ButtonBase.cs: Just use the base CreateParams. They set
8187         visibility and enabled correctly.
8188         * ComboBox.cs:
8189         * TrackBar.cs:
8190         * MonthCalendar.cs: Lets let the base set as much of the
8191         createparams as possible so we don't have duplicate code all over
8192         the place.
8193
8194 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
8195
8196         * ThemeGtk.cs: Added TrackBar and some experimental code to
8197           get double buffering back
8198
8199 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
8200
8201         * DataGrid.cs: Allows row number set internally higher than the last
8202         when creating a new row. Restores the editing functionality.
8203
8204 2006-01-20  Mike Kestner  <mkestner@novell.com>
8205
8206         * MimeIcon.cs: delay Image creation until the icons are accessed
8207         instead of creating 190 scaled images on GnomeHandler startup.
8208
8209 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
8210
8211         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
8212           first call base before processing the event. Fixes #77279
8213
8214 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
8215
8216         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
8217           that the stride for the GDI bitmap would match the stride of
8218           a DIB or a Cursor.
8219
8220 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
8221
8222         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
8223
8224 2006-01-19  Jackson Harper  <jackson@ximian.com>
8225
8226         * ComboBox.cs: Hookup the text controls keydown event so we get
8227         those when the text control has the focus.
8228
8229 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8230
8231         * Label.cs: Now using the base events instead of defining new ones;
8232           this allows us to just call the base properties without having to
8233           duplicate all base property logic 
8234
8235 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8236
8237         * Label.cs: A label by default is not a tabstop (Fixes one of our
8238           failing nunit tests)
8239
8240 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
8241
8242         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
8243         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
8244
8245 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
8246
8247         * Cursor.cs: Reimplemented creating cursor bitmaps without using
8248           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
8249           This fixes #77218
8250         * XplatUIWin32.cs: 
8251           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
8252             constructor creates images that can't be saved. Part of the fix
8253             for #76103
8254           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
8255           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
8256             bug fix for handling window state in forms properly)
8257
8258 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8259
8260         * ThemeGtk.cs: Simplify ScrollBar drawing
8261
8262 2006-01-18  Jackson Harper  <jackson@ximian.com>
8263
8264         * Splitter.cs: Set the default dock style for the splitter control
8265         in the constructor.
8266
8267 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8268
8269         * ThemeGtk.cs: Corrected StateType and ShadowType for
8270           gtk_paint_box
8271
8272 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8273
8274         * Control.cs: Make use of Theme.DoubleBufferingSupported
8275         * ThemeGtk.cs:
8276           - Added drawing for flat style buttons
8277           - Added ScrollBar drawing
8278
8279 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
8280
8281         * ThemeClearlooks.cs: Removed some unneeded code.
8282         * ThemeGtk.cs: First part of ThemeGtk enhancements.
8283
8284 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8285
8286         * LinkLabel.cs: We need to update the hover drawing when
8287           leaving the control as well.
8288
8289 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
8290
8291         * DataGrid.cs: Clicking on non empty areas in the columns
8292            area was giving an exception
8293
8294 2006-01-17  Jackson Harper  <jackson@ximian.com>
8295
8296         * ThemeWin32Classic.cs:
8297         * ListView.cs: Do not draw/clip the headers when the header style
8298         is None.
8299
8300 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8301
8302         * DataGrid.cs: Fixes 77260
8303         
8304 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
8305
8306         * DataGrid.cs: Clicking on a column on a empty grid was giving
8307           an exception
8308
8309 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
8310
8311         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
8312           or any keypress will crash the grid.
8313
8314 2006-01-17  Mike Kestner  <mkestner@novell.com>
8315
8316         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
8317         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
8318         invisible/previously-visible items.
8319         [Fixes #76909]
8320
8321 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
8322
8323         * ThemeClearlooks.cs:
8324         - Added CL_Draw_Button method; now other theme controls that are 
8325           not derived from button or do not have a button can draw buttons
8326           too
8327         - Updated ComboBox drawing
8328         - Beautified RadioButton drawing
8329         - Corrected drawing of bottom and left tabs
8330         - Beautified DateTimePicker and MonthCalendar
8331         - Added CPDrawButton and CPDrawRadioButton
8332
8333 2006-01-16  Jackson Harper  <jackson@ximian.com>
8334
8335         * ComboBox.cs: Set the initial value of the scrollbar to the
8336         current index. Reduce the numbers of refreshs and IndexOfs called.
8337
8338 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
8339
8340         * FileDialog.cs: When the file listview is focused hitting the
8341           backspace key moves the fileview to the parent directory
8342
8343 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8344
8345         * Form.cs: 
8346           - Added RecreateHandle call when changing taskbar visibility to 
8347             trigger reparenting in Win32 driver (Fixes #75719)
8348           - If a window has minimize or maximize buttons, it cannot have
8349             a help button
8350         * XplatUIWin32.cs:
8351           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
8352             the toplevel form with FosterParent (A toolwindow not on the
8353             taskbar) (Fixes #75719)
8354           - Made FosterParent a toolwindow
8355
8356 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8357
8358         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
8359
8360 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8361
8362         * ToolTip.cs: If SetToolTip is called from a control and the mouse
8363           is currently over that control, make sure that tooltip_window.Text
8364           gets updated
8365
8366 2006-01-13  Mike Kestner  <mkestner@novell.com>
8367
8368         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
8369
8370 2006-01-13  Jackson Harper  <jackson@ximian.com>
8371
8372         * TreeView.cs: On MS GetNodeAt never actually factors in the X
8373         value passed.  Also redraw the selected node when we recieve
8374         focus, so tabbing between trees works correctly.
8375
8376 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
8377
8378         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
8379           ~/.gconf/%gconf-tree.xml, so use
8380           .gconf/desktop/gnome/interface/%gconf.xml
8381
8382 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8383
8384         * TextControl.cs: Draw text in gray if control is disabled
8385
8386 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
8387
8388         * TreeView.cs: Draw the focus rectangle outside the highlight, to
8389           make sure it's always visible. Fixes #76680.
8390
8391 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
8392
8393         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
8394
8395 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
8396
8397         * PageSetupDialog.cs: Added.
8398         * PrintDialog.cs: Attributes.
8399         * PrintPreviewControl.cs: Updates.
8400         * PrintPreviewDialog.cs: Updates.
8401         
8402 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8403
8404         * Control.cs: Undid my selection check fix, since it's not needed
8405         * TextBoxBase.cs:
8406           - Now considering the presence of hscroll/vscroll when sizing
8407             vscroll/hscroll respectively. Fixed bug #77077
8408           - Added Left/Up/Down/Right to IsInputKey list to prevent
8409             ContainerControl from stealing them. This fixes what I broke
8410             with my last checkin.
8411
8412 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
8413
8414         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
8415           I finally understand how the property can be set without a setter :-)
8416
8417 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8418
8419         * Application.cs:
8420           - Switched RunLoop to use static Message.Create to create a 
8421             Message object
8422           - Added PreProcessMessage call in runloop for keyboard events; this
8423             is part of the fix for #77219, I overlooked this originally in the
8424             MSDN doc for PreProcessMessage
8425         * Control.cs:
8426           - Removed call to PreProcessMessage from handling of keyboard 
8427             messages; it's supposed to be done in the message pump
8428           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
8429             per MSDN documentation.
8430           - IsInputChar: All chars are input chars by default; removed the 
8431             parent calling chain, MS does not document that
8432           - PreProcessMessage: If IsInputChar is true, we want to return false
8433             to allow dispatching of the message
8434           - When selecting the next control, now also check that we're not
8435             selecting ourselves again and therefore return a false positive.
8436         * TextBoxBase.cs:
8437           - Tried to match return values for IsInputKey and ProcessDialogKey
8438             to what MS returns; moved processing of our special keys outside
8439             ProcessDialogKey since MS does not seem to return true on those.
8440           - Moved code that previously was in ProcessDialogKey into new private
8441             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
8442           - Reworked handling of WM_CHAR to not have to duplicate code from
8443             Control.cs anymore, instead we simply call down to base.
8444            
8445 2006-01-12  Jackson Harper  <jackson@ximian.com>
8446
8447         * ComboBox.cs: We always need to refresh the text area when
8448         EndUpdate is called. Fixes the combobox in the file dialog.
8449         * Control.cs: Don't create the creator_thread until the controls
8450         handle is created.  Also in InvokeRequired we check if the
8451         creator_thread is null. This gives the effect of InvokeRequired
8452         returning true if the controls handle is not created yet, and
8453         matches MS.
8454
8455 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8456
8457         * XplatUI.cs:
8458           - Added StartLoop() driver method. This is used to allow drivers to
8459             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
8460             loop for a particular thread
8461           - Added EndLoop() driver method. This is called once the message
8462             pump for the thread is shut down
8463           - Added SupportsTransparency method to allow the driver to indicate
8464             opacity support for windows
8465         * Form.cs:
8466           - Removed TODO attribute, completed AllowTransparency property
8467           - Added documented logic to Opacity
8468         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
8469           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
8470           versions of CompatibleTextRendering
8471         * X11Structs.cs: Added opacity atom to our atom enumeration
8472         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
8473           of a form might be set before it's reparented by the WM, and we need
8474           the opacity value without calling up to Form)
8475         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
8476           SupportsTransparency() driver methods
8477         * Application.cs: Now calling StartLoop and EndLoop driver methods
8478         * XplatUIX11.cs:
8479           - Added opacity atom registration
8480           - Added StartLoop()/EndLoop() methods. They're empty right now but
8481             will need to get implemented when we switch to a per-thread queue
8482           - Implemented SupportsTransparency() method
8483           - Implemented SetWindowTransparency() method
8484           - Added support for setting the opacity value when a window is
8485             reparented (since the opacity needs to be set on the WM frame)
8486         * XplatUIOSX.cs, XplatUIWin32.cs:
8487           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
8488
8489 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8490
8491         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
8492
8493 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
8494
8495         * FileDialog.cs: Added ToolTip for MWFFileView
8496         * MimeIcon.cs: Rewrote GnomeHandler.
8497           - Get currently used gnome icon theme from
8498             ($HOME)/.gconf/%gconf-tree.xml
8499           - Make use of inherited icon themes
8500           - Support SVG icon themes like Tango via librsvg
8501
8502 2006-01-12  Miguel de Icaza  <miguel@novell.com>
8503
8504         Revert's Jackson's revert which broke 2.0 builds.   Fix both
8505         builds. 
8506         
8507         * Application.cs: Move the use_compatible_text_rendering outside
8508         the NET_2_0 define.  If we ever need to use the
8509         use_compatible_text_rendering on the individual controls they will
8510         access the variable from the common shared code paths.
8511
8512 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
8513
8514         * XplatUI.cs:
8515           - Added more granular debug options
8516           - Added method to print both window text and id
8517           - Switched debug output to use new Window() debug method
8518           - Added IsEnabled() driver method
8519           - Added EnableWindow() driver method
8520         * Form.cs:
8521           - Removed end_modal; no longer needed, new loop handles termination
8522             via 'closing' variable
8523           - If form is modal, setting DialogResult will now initiate loop
8524             termination via 'closing' variable
8525           - Added support for is_enabled/WS_DISABLED to CreateParams
8526           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
8527             does all the work
8528           - Removed code that's now in RunLoop from ShowDialog()
8529           - Added various documented sanity checks to ShowDialog()
8530           - Added handling of WM_DESTROY message; we set 'closing' on getting
8531             the message to indicate the message pump to terminate
8532           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
8533             send by the Application.ExitThread method. (We send the message
8534             to destroy the window after all other events have been
8535             processed through the queue, instead of destroying the handle 
8536             directly)
8537           - Moved code from Close() method to WM_CLOSE handler; added logic
8538             to only send close-related events if the form is not displayed
8539             modal
8540         * Splitter.cs (..ctor): Fixed typo in resource name
8541         * Control.cs:
8542           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
8543             brush now
8544           - set_Cursor: Now only setting calling into XplatUI if the handle for
8545             the control is already created; this avoids implict handle creation
8546             or crashes if it's not created
8547           - set_Enabled: Now setting the enabled state via the new driver method
8548             instead of just tracking it
8549           - CreateParams: Added logic to set WS_DISABLED based on enabled state
8550           - CreateControl: Reordered event firing and method calls to more
8551             closely fire events in the order MS does. Now setting the
8552             enabled state in the driver when creating the control.
8553           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
8554             match MS order
8555         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
8556           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
8557         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
8558         * Hwnd.cs:
8559           - Added tracking of window enabled state (get_Enabled/set_Enabled)
8560           - Added EnabledHwnd property to easily allow a driver to find the
8561             handle of the first enabled window in the parent chain (this is
8562             used by drivers to pass up input events of disabled windows)
8563         * XplatUIDriver.cs: Added IsEnabled() method
8564         * Application.cs:
8565           - Removed crude and obsolete exiting tracking variable
8566           - Removed internal ModalRun(); replaced by RunLoop()
8567           - Implemented private CloseForms() method to allow closing all 
8568             windows owned by a particular (or all) threads
8569           - Exit() now properly closes all windows without forcing the message
8570             pump to quit
8571           - Removed obsolete InternalExit() method
8572           - Changed Run() methods to use new RunLoop() message pump
8573           - Implemented new RunLoop() method for both modal and non-modal forms
8574         * CommonDialog.cs:
8575           - get_CreateParams: Added setting of WS_DISABLED
8576           - Simplified ShowDialog(); now all the work is done in RunLoop(),
8577             invoked via Form.ShowDialog()
8578         * NativeWindow.cs: We don't remove the window from the collection when
8579           the handle is destroyed; there might still be messages for it in the
8580           queue (mainly the resulting WM_DESTROY); instead it will be removed
8581           when Control calls InvalidateHandle in the WM_DESTROY handler
8582         * XplatUIX11.cs:
8583           - CreateWindow: Added logic to handle the WS_DISABLED window style
8584           - EnableWindow: Implemented based on Hwnd.Enabled
8585           - GetMessage: Reset PostQuitState so the method can be called again
8586           - Implemented support for disabled windows (passing messages to the
8587             first enabled parent) in handling all input messages
8588           - Added optimizations for handling Expose events
8589           - Implemeted new driver method IsEnabled()
8590           - Now always resetting paint pending tracking vars when we start paint
8591           - Re-implemented UpdateWindow via just sending a WM_PAINT message
8592         * XplatUIOSX.cs: Added IsEnabled method stub
8593         * XplatUIWin32.cs: Implemented new IsEnabled() method
8594
8595 2006-01-11  Jackson Harper  <jackson@ximian.com>
8596
8597         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
8598         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
8599         variables a little.
8600         * ColorDialog.cs: Clear out the old form before adding the new
8601         panel.  
8602
8603 2006-01-11  Jackson Harper  <jackson@ximian.com>
8604
8605         * X11Dnd.cs: Make sure to add all the text formats when adding
8606         strings to the data object.
8607         * TreeNodeCollection.cs: When adding to a sorted tree we need to
8608         do some redrawing too.  Also change the UpdateNode to an
8609         UpdateBelow so the newly added node gets painted.
8610         
8611 2006-01-11  Miguel de Icaza  <miguel@novell.com>
8612
8613         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
8614         LinkLabel.cs, PropertyGrid.cs: Implement the
8615         UseCompatibleTextRendering property for 2.x
8616
8617         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
8618
8619 2006-01-11  Jackson Harper  <jackson@ximian.com>
8620
8621         * TreeView.cs: Use the property for setting the selected node so
8622         the correct events get raised.
8623         * TreeNode.cs: Update the tree when the fore/back colours of a
8624         node are set.
8625
8626 2006-01-10  Jackson Harper  <jackson@ximian.com>
8627
8628         * TreeView.cs: Allow setting SelectedNode to null.
8629
8630 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8631
8632         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
8633
8634 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8635
8636         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
8637
8638 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8639
8640         * PrintDialog.cs: Added attributes and set default property values.
8641
8642 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8643
8644         * PrintControllerWithStatusDialog.cs: 
8645         Added PrintControllerWithStatusDialog.
8646
8647 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8648
8649         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8650         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
8651
8652 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
8653
8654         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
8655
8656 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
8657
8658         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
8659         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
8660
8661 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
8662
8663         * MimeIcon.cs: Added internal class SVGUtil.
8664
8665 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
8666
8667         * FileDialog.cs: Don't crash if there are two files with the
8668           same name but different locations.
8669
8670 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
8671
8672         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
8673         dates across multiple month grids. Used to not highlight entire 
8674         month, but does now.
8675         
8676 2006-01-06  Jackson Harper  <jackson@ximian.com>
8677
8678         * MonthCalendar.cs: Removed DoEvents call to prevent a running
8679         message loop. Change timer intervals to numbers that seem more
8680         natural.
8681
8682 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
8683
8684         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
8685           object for location info since screen object is now implemented.
8686
8687 2006-01-05  Jackson Harper  <jackson@ximian.com>
8688
8689         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
8690         * AsyncMethodResult.cs: We no longer use a WeakReference for the
8691         AsyncMethodResult, this is because we ALWAYS want the
8692         ManualResetEvent to get set.
8693         * Control.cs: When disposing use an async invoke to call shutdown
8694         code, so that thigns don't block on the finalizer thread.  Also
8695         check if we even have a message loop before trying to send
8696         messages, if we don't then don't bother sending messages.
8697         - No more weak references for async methods
8698         * XplatUIDriver.cs: No more weak references for async methods.
8699
8700 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8701
8702         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
8703           returns two FontFamily with the same name
8704
8705 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8706
8707         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
8708           drawing disabled text. Instead using the ColorGrayText color
8709
8710 2006-01-04  Jackson Harper  <jackson@ximian.com>
8711
8712         * TreeNode.cs: redraw the node when its image index is changed.
8713
8714 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8715
8716         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
8717           time I checked there are no others like it.
8718
8719 2006-01-04  Jackson Harper  <jackson@ximian.com>
8720
8721         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
8722         this gives the behavoir I was looking for.
8723         * Control.cs: Special case Invoking EventHandlers, this matches MS
8724         and fixes part of bug #76326.
8725
8726 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8727
8728         * ThemeClearlooks.cs, FileDialog.cs:
8729           - Reflect the latest Theme class changes
8730           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
8731             with DateTime
8732             
8733 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8734
8735         * Theme.cs: Cache UI resource images and resize them if needed
8736
8737 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8738
8739         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
8740           is called. This fixes the crash in Nexxia when setting the font
8741           attributes in the chat. [However, RTF needs a look-over to make sure
8742           that all SelectionXXX methods handle the special case that selection
8743           is empty and therefore the change must be applied to all text starting
8744           at the cursor/selection start]
8745
8746 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
8747
8748         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8749           XplatUIOSX.cs: Added SendMessage and PostMessage methods
8750         * X11Keyboard.cs: Switched to new way of calling PostMessage
8751
8752 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8753
8754         * Theme.cs: Added theme interface for images to allow the theme to
8755           control what images are used for things like FileDialog, MessageBox
8756           icons, etc.
8757         * MessageBox.cs: Now uses the new Theme icon/image interfaces
8758
8759 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
8760
8761         * FileDialog.cs:
8762           - Removed some dead code
8763           - Opening a recently used file does work now
8764           - Small UI enhancements
8765           - Refactoring
8766
8767 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8768
8769         * FileDialog.cs: Forgot too add __MonoCS__
8770
8771 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8772
8773         * FileDialog.cs: We are able to read recently used files now let's
8774           go on and write them.
8775
8776 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
8777
8778         * FileDialog.cs: Breathe some life into "last open"/"recently used"
8779           button
8780         * MimeIcon.cs: Do a check for the top level media type also
8781
8782 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8783
8784         * ThemeClearlooks.cs:
8785           - Added CPDrawStringDisabled
8786           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
8787             some chars if the text doesn't fit into text_rect
8788           - DrawListViewItem: If View = View.LargeIcon center the image;
8789             rewrote the drawing of ListViewItem.Text if View = 
8790             View.LargeIcon
8791
8792 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8793
8794         * MimeIcon.cs: Use default KDE icon theme if there is no
8795           "48x48" directory for the current icon theme, fixes #77114
8796         * Mime.cs: Disable not working and actually not used code. 
8797         * ThemeWin32Classic.cs:
8798           - Replace "new SolidBrush" in GetControlBackBrush and
8799             GetControlForeBrush with ResPool.GetSolidBrush
8800           - Changed DrawListViewItem from private to protected virtual
8801         * FileDialog.cs:
8802           - Added form.MaximizeBox = true
8803           - Don't throw an exception if there is a broken symbolic link
8804
8805 2005-12-23  Jackson Harper  <jackson@ximian.com>
8806
8807         * TabControl.cs: Give the panels focus, keyboard navigation is
8808         fixed so this works correctly now.
8809         - We need these key events also.
8810         * ToolBar.cs: Remove some of the poor mans double buffering.
8811         
8812 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
8813
8814         * ComboBox.cs: The internal TextBox now returns the focus.
8815
8816 2005-12-23  Jackson Harper  <jackson@ximian.com>
8817
8818         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
8819
8820 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8821
8822         * Control.cs: Removed debug code
8823         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
8824           implicit children
8825
8826 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
8827
8828         * Control.cs: When creating the control, update the Z-order after
8829           all it's children are created, too. (Fixes nexxia not showing
8830           picturebox bug)
8831
8832 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8833
8834         * Control.cs: Do not update the anchoring distances if layout is
8835           suspended, instead do it once layout is resumed
8836
8837 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
8838
8839         * Control.cs: 
8840           - After many hours of debugging, for both Jackson and
8841             myself, it turns out that it helps to set the parent of a control
8842             if you want to actually see it onscreen. In the spirit of that
8843             discovery, we're now setting the parent of the control and
8844             it's children when the control's handle is created. This fix
8845             will make Lutz Roeder's Reflector run happily. 
8846           - now just creating the handle instead of the whole control when
8847             getting a graphics context for the control.
8848
8849 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8850
8851         * ScrollableControl.cs: When calculating the canvas, don't consider
8852           the scrollbar widths. Instead, predict if horizontal scrollbar
8853           will affect canvas when deciding on vertical display and vice versa.
8854
8855 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8856
8857         * RichTextBox.cs: Set default RTF font for documents that don't
8858           have a font table (Fixes #77076)
8859
8860 2005-12-22  Jackson Harper  <jackson@ximian.com>
8861
8862         * TextBoxBase.cs: It's difficult to do, but you can have an empty
8863         clipboard. This prevents a NullRef in that case.
8864         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
8865         clipboard. PRIMARY is for the currently selected text only. (We
8866         should implement PRIMARY at some point.
8867
8868 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8869
8870         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
8871           a Unicode function with a structure that was defined in Ansi way.
8872           This fixes #76942.
8873
8874 2005-12-21  Jackson Harper  <jackson@ximian.com>
8875
8876         * StatusBar.cs: Statusbar handles its fore/back colours on it's
8877         on. Because thats how it rolls. (and this avoids it using ambient
8878         colours).
8879         * ThemeWin32Classic.cs: Use the proper back color for filling.
8880         * Menu.cs: Use the system menu bar color for drawing menu
8881         bars. Using the window back color will bring ambient colours into
8882         the picture.
8883
8884 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
8885
8886         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
8887           Bitmaps were created and not disposed.
8888
8889 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8890
8891         * Control.cs (CreateControl): Don't do anything if the control is
8892           already created, otherwise we'd fire the OnCreated event more than
8893           once
8894
8895 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
8896
8897         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
8898           will always match. Instead return -1. Fixes #76464.
8899
8900 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8901
8902         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
8903           neither the beginning nor the end of the line (Fixes bug #76479)
8904
8905 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
8906
8907         * Control.cs:
8908           - ControlNativeWindow.ControlFromHandle(): Now handling situation
8909             where handle is invalid
8910           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
8911             instead of slower linear search
8912         * NativeWindow.cs: Don't remove the window from the hashtable until
8913           after the driver has destroyed it (since the driver might use
8914           Control.FromHandle to lookup the control object
8915         * Hwnd.cs: Added DestroyPending property to track if a window is 
8916           already destroyed as far as the driver is concerned and only hasn't
8917           yet notified the control
8918         * XplatUIX11.cs:
8919           - Activate(): Check if the window is still valid before using the 
8920             handle
8921           - Implemented DestroyChildWindow() method to mark child windows as
8922             destroyed when a window is destroyed. This prevents situations 
8923             where we might call an X method based on queued events for a
8924             window that already has been destroyed but we haven't yet pulled
8925             the destroy method from the queue.
8926           - Added a call to the new DestroyChildWindow() method to the drivers
8927             DestroyWindow code. Also now marking the destroyed window itself
8928             as pending
8929
8930 2005-12-20  Jackson Harper  <jackson@ximian.com>
8931
8932         * StatusBar.cs:
8933         * StatusBarPanel.cs: Don't calculate panel sizes on draw
8934         anymore. Just do them when needed, also track the rects of panels
8935         so that we can optimize refreshing more in the future.
8936
8937 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
8938
8939         * ColorDialog.cs: Fixed focus drawing in small color controls
8940
8941 2005-12-19  Jackson Harper  <jackson@ximian.com>
8942
8943         * InternalWindowManager.cs:
8944         * MdiWindowManager.cs: Cleanup some coordinate system changes so
8945         moving windows works properly.
8946
8947 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
8948
8949         * Control.cs: 
8950           - Removed call to InitLayout() from SetBoundsCore(); doc says
8951             it's only called when a control is added to a container
8952           - Split InitLayout logic, moved to separate UpdateDistances() method
8953             since we need to perform those calculations more often than just
8954             when adding the control to a container. (Needed to fix #77022)
8955           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
8956           - Reduced the OnBindingContextChanged events count, don't send them
8957             unless the control is created, we still aren't totally matching
8958             MS, but I can't quite figure out some of their rules
8959
8960 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8961
8962         * ThemeClearlooks.cs: Corrected distance between ProgressBar
8963           stripes
8964
8965 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8966
8967         * ThemeClearlooks.cs:
8968           - Updated ProgressBar drawing
8969           - Corrected drawing of ScrollBars and scroll buttons
8970           - Some temporary fixes for minor pixel artefacts
8971
8972 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
8973
8974         * Control.cs:
8975           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
8976             cause events to be sent in the same order as MS does.
8977           - Added ChangeParent() method to trigger various OnXXXChanged events
8978             that need to be fired when a parent changes (This is a reworking
8979             of the patch from r54254, with the X11 errors fixed)
8980           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
8981             since on MS we get OnLayoutChanged events when calling Clear()
8982           - Changed Enabled property to consider parent state as well, if a
8983             parent is not enabled, the control will not be either
8984           - Changed Parent property to simply call Controls.Add() since that
8985             now does all the work required, this way we avoid code duplication
8986           - Threw in a few OnBindingsContextChanged calls to try and match
8987             when MS sends them. We seem to send a few too many, though.
8988           - Added call to CreateControl when adding the control to a parent.
8989             We were never calling CreateControl. Still needs some work, in
8990             some places we treat HandleCreated and ControlCreated as equal, 
8991             which is wrong
8992           - Removed obsolete commented out code from UpdateZOrder()
8993
8994 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8995
8996         * ThemeClearlooks.cs: Updated TrackBar drawing.
8997
8998 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
8999
9000         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
9001
9002 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
9003
9004         * FileDialog.cs: Add the Help button and the open readonly
9005           checkbox only if needed
9006
9007 2005-12-16  Jackson Harper  <jackson@ximian.com>
9008
9009         * Control.cs: Make sure we have an active menu before trying to
9010         process commands on it. Prevents menu-less forms from crashing
9011         when Alt is pressed.
9012         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
9013         Dieter Bremes.
9014         * RichTextBox.cs: Expand statement to help out gmcs and fix the
9015         2.0 build.
9016
9017 2005-12-16  Jackson Harper  <jackson@ximian.com>
9018
9019         * InternalWindowManager.cs: Don't translate tool windows screen
9020         coordinates. This fixes windows 'bouncing' around when being moved.
9021
9022 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9023
9024         * TextBoxBase.cs:
9025           - MaxLength now treats 2^31-1 equal to unlimited length (this is
9026             not quite MS compatible, MS uses that number only for single line
9027             and 2^32-1 for multi-line, but I figure it won't hurt keeping
9028             the limit at 2GB)
9029           - Now enforcing the MaxLength limit when entering characters
9030           - Added argument to internal Paste() method to track if it's called
9031             from programatically or via keyboard, since keyboard driven pastes
9032             need to enforce max-length
9033           - Added logic to Paste to only paste as many chars as MaxLength 
9034             allows
9035         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
9036         * TextControl.cs:
9037           - Added Length property to return number of characters in document
9038           - Added private CharCount property which only tracks actual chars
9039             in the document (no linefeeds) and fires event when CharCount
9040             changes
9041           - Added tracking of character count to all methods that alter it
9042           - Added LengthChanged event to allow applications to subscribe
9043             to any changes to the document
9044
9045 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
9046
9047         * TextBox.cs: 
9048           - Removed local password_char field (moved to TextBoxBase)
9049           - Now setting the document's password var when password is
9050             set
9051         * TextBoxBase.cs:
9052           - Added password_char field (needed here so MultiLine can
9053             access it)
9054           - Added logic to MultiLine property setter to set the document's
9055             variable when password display is allowed
9056           - Removed debug code and made some debug code conditional
9057         * TextControl.cs:
9058           - Added RecalculatePasswordLine() method to handle special password
9059             char only lines
9060           - Added PasswordChar property, also added related tracking vars
9061           - Draw() method now uses local text var for grabbing text to draw,
9062             this var is set to line.text unless we're doing password display,
9063             then it is set to the pre-generated all-password-chars line
9064           - Added calling RecalculatePasswordLine() method for password lines
9065
9066 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9067
9068         * Hwnd.cs: 
9069           - Added Reparented property to allow tracking of Window Manager
9070             reparenting actions (which affect X/Y calculations of toplevel 
9071             windows)
9072           - Made ToString() print window handles in hex
9073         * XplatUIX11.cs:
9074           - AddConfigureNotify(): Now uses reparented state off Hwnd to
9075             determine if X/Y needs offsetting
9076           - AddConfigureNotify(): Fixed offset calculations
9077           - Now adds ReparentNotify messages into the queue
9078           - Now processes ReparentNotify messages and causes a 
9079             WM_WINDOWPOSCHANGED message to be sent upstream if a window
9080             is reparented (as most likely it's X/Y coordinates are changed
9081             due to that)
9082
9083 2005-12-14  Jackson Harper  <jackson@ximian.com>
9084
9085         * XplatUIX11.cs: Tool windows still need to respek focus.
9086
9087 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
9088
9089         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
9090           have a working release
9091
9092 2005-12-13  Jackson Harper  <jackson@ximian.com>
9093
9094         * Form.cs: Update styles after setting the border style regardless
9095         of whether or not the window is using a window manager.
9096
9097 2005-12-13  Jackson Harper  <jackson@ximian.com>
9098
9099         * Form.cs: We now hook into an internal window manager instead of just an
9100         MDI subsystem, this is so we can have properly behaving tool windows.
9101         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
9102         * InternalWindowManager.cs: New internal class that acts as a
9103         window manager for tool windows and as a base for mdi windows.
9104         * MdiWindowManager.cs: New class that acts as a window manager for
9105         mdi windows.
9106
9107 2005-12-12  Jackson Harper  <jackson@ximian.com>
9108
9109         * Control.cs: Updates so we match behavoir for for implicit
9110         controls. Fixes explosions in MDI.
9111
9112 2005-12-12  Jackson Harper  <jackson@ximian.com>
9113
9114         * Control.cs: Implement Invalidate (Region).
9115
9116 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
9117
9118         * Control.cs: 
9119           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
9120             the same events as MS does. MS fires events for each property 
9121             except, for unknown reasons, Cursor, when the control is reparented. 
9122             I can't seem to totally match add/remove since MS also fires some 
9123             VisibleChanged events, which makes no sense. Consolidated the
9124             parenting code into a separate method so it can be called from
9125             both Add and Remove. set_Parent no longer needs any special logic
9126             as it calls the parent's add method which implicitly fires
9127             all events
9128           - Removed some obsolete code and debug output
9129           - Enabled state is inherited from parents, if this is enabled
9130
9131 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
9132
9133         * Form.cs: Removed commented out code
9134
9135 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
9136
9137         * Control.cs:
9138           - Added internal version of Invoke, with additional argument 
9139             indicating if we're calling it from a Dispose() handler. That
9140             way we can avoid BeginInvoke throwing an exception if we're
9141             calling for an already destroyed window.
9142           - Added a dispose argument to BeginInvokeInternal, and made the
9143             check if a valid window handle chain exists conditional on
9144             it not being a dispose call
9145           - Removed code in DestroyHandle to destroy our children. Since we
9146             now handle the WM_DESTROY message we will catch all our children
9147             being destroyed.
9148           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
9149         * Form.cs:
9150           - Added a field to track the application context of the form.
9151           - No need to set closing variable as response to WM_CLOSE, instead
9152             we destroy the window. We also call PostQuitMessage if the form
9153             has an application context (which makes it the main app form,
9154             which, when closed terminates the app)
9155         * XplatUI.cs:
9156           - Dropped Exit() method, it's naming was confusing
9157           - Added PostQuitMessage() which causes GetMessage to return false
9158             once the message queue is empty
9159         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
9160           PostQuitMessage()
9161         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
9162           no longer a valid XplatUI method, but left it in since it's used
9163           internally. Added empty PostQuitMessage() method.
9164         * MenuAPI.cs: Replaced call to Exit() with call to
9165           PostQuitMessage, even though this is probably no longer needed.
9166         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
9167         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
9168         * Application.cs:
9169           - Replaced call to XplatUI.Exit() with PostQuitMessage()
9170           - Removed old debug code that would call XplatUI for exception
9171             display, enabled standard exception handling (Still not enabled
9172             though, until NativeWindow's ExternalExceptionHandler define
9173             is removed
9174         * NativeWindow.cs:
9175           - Added internal method to allow control to update NativeWindow
9176             after a window has been destroyed
9177           - Added handling of already destroyed windows when calling i
9178             DestroyWindow
9179           - Added removal of handle from list on ReleaseHandle
9180         * XplatUIX11.cs:
9181           - Dropped GetMessageResult var and related code
9182           - Added PostQuitState to field to track if PostQuitMessage has been
9183             called
9184           - Dropped Exit() method
9185           - Added PostQuitMessage() method
9186           - GetMessage now will return false if PostQuitState is set and no
9187             more messages are in the queue.
9188           - Expose handler will no longer generate WM_PAINT messages if we are
9189             in PostQuitState since it's very likely any windows have already
9190             been destroyed, and since Hwnd won't get updated until we have
9191             processed the DestroyNotify we'd be causing X errors.
9192         
9193 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9194
9195         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
9196           Thanks to Mike for pointing out the err of my ways.
9197
9198 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9199
9200         * Control.cs(PreProcessMessage): Moved menu handling back, but
9201           after all other key handling, to match MS (who handles Menu in
9202           DefWndProc)
9203         * Menu.cs (WndProc): Removed my brainfart
9204
9205 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9206
9207         * Control.cs(PreProcessMessage): Removed special menu handling 
9208         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
9209
9210 2005-12-07  Mike Kestner  <mkestner@novell.com>
9211
9212         * Control.cs : special case SYSKEYUP so that we can adjust keynav
9213         state according in tracker.
9214         * Menu.cs : promote tracker field to base class and provide a tracker
9215         lookup capability.  Add/Remove shortcuts dynamically if the top menu
9216         has a tracker. Unparent items that are removed from the collection.
9217         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
9218         * Theme*.cs: add always_show_hotkeys field to support configurability
9219         of mnemonic display.  win32 doesn't show mnemonics until Alt is
9220         pressed.
9221
9222 2005-12-07  Jackson Harper  <jackson@ximian.com>
9223
9224         * MdiChildContext.cs: Use Control.ResetCursor.
9225         * Control.cs: ResetCursor needs to set the property so that the
9226         correct XplatUI call gets made.
9227
9228 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9229
9230         * Control.cs: More fixes to make our key events match MS. We
9231           were not setting the modifier state on KeyData, and we were
9232           not generating any events when Alt was pressed with a key
9233           since handling of WM_SYSxxx was missing for the OnKey methods.
9234
9235 2005-12-07  Jackson Harper  <jackson@ximian.com>
9236
9237         * MdiChildContext.cs: reenable the sizing code.
9238         - When the mouse leaves a window reset its cursor.
9239
9240 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9241
9242         * ThemeClearlooks.cs: Reflect latest Hwnd changes
9243
9244 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
9245
9246         * Hwnd.cs: Now using the theme 3d bordersize to calculate
9247           widths of Fixed3D borders
9248
9249 2005-12-07  Jackson Harper  <jackson@ximian.com>
9250
9251         * MdiClient.cs: Fix warnings. Earn Mike's love.
9252
9253 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
9254
9255         * ThemeClearlooks.cs:
9256           - Adjusted mouse over button color
9257           - Added first parts of CheckBox drawing
9258           - Added correct color for selected text background
9259           - Fixed ComboBox drawing
9260           - Added CPDrawBorder3D and CPDrawBorder
9261
9262 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9263
9264         * XplatUIX11.cs: Added call to XBell for AudibleAlert
9265
9266 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
9267
9268         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
9269           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
9270           alert users via sound. We could add an enum arg with different
9271           types of alerts in the future
9272
9273 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
9274
9275         * Control.cs: Fix behaviour problems pointed out by Mike
9276
9277 2005-12-05  Mike Kestner  <mkestner@novell.com>
9278
9279         * StatusBarPanel.cs: add Invalidate method and hook it into all the
9280         prop setters.  Calls parent.Refresh for now, but could be maybe be
9281         optimized with an internal method on StatusBar at some point.
9282         [Fixes #76513]
9283
9284 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
9285
9286         * RichTextBox.cs: Implemented get_SelectionColor
9287
9288 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
9289
9290         * ThemeClearlooks.cs:
9291           - Removed dead code
9292           - Draw black button border only if button is Form.AcceptButton
9293           - Draw correct button color for pressed RadioButton if the mouse 
9294             has entered the button
9295           - Updated ProgressBar drawing!
9296           - Updated CPDrawSizeGrip drawing
9297           - Updated StatusBarPanel drawing
9298
9299 2005-12-05  Mike Kestner  <mkestner@novell.com>
9300
9301         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
9302         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
9303
9304 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
9305
9306         * ThemeClearlooks.cs: Initial check-in, activate with
9307           export MONO_THEME=clearlooks
9308         * ThemeEngine.cs: Added ThemeClearlooks
9309
9310 2005-12-03  Mike Kestner  <mkestner@novell.com>
9311
9312         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
9313         [Fixes #76897]
9314
9315 2005-12-02  Jackson Harper  <jackson@ximian.com>
9316
9317         * Form.cs: If the child form has no menu the default main menu is
9318         used as the active menu.
9319
9320 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
9321
9322         * ListBox.cs: Check if any items exist before trying to resolve 
9323           coordinates into items
9324
9325 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9326
9327         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
9328           as the second color for the background hatch
9329
9330 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
9331
9332         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
9333         * RichTextBox.cs: FormatText position arguments are 1-based, now making
9334           sure that what we pass to FormatText is always 1-based. Fixes #76885
9335
9336 2005-11-29  Miguel de Icaza  <miguel@novell.com>
9337
9338         * NumericUpDown.cs (EndInit): When we are done initializing,
9339         reflect any updates on the UI.
9340
9341 2005-12-02  Jackson Harper  <jackson@ximian.com>
9342
9343         * ImplicitHScrollBar.cs:
9344         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
9345         their container controls.
9346         * TreeView.cs: Use the new implicit scrollbars.
9347
9348 2005-12-02  Jackson Harper  <jackson@ximian.com>
9349
9350         * TreeView.cs: Make top_node internal so the TreeNodeCollections
9351         can play with it.
9352         * TreeNodeCollection.cs: If we remove the topnode we need to
9353         update topnode to the next node in line.
9354         - When clearing nodes go through the same process as removing
9355         them, so they get depareneted and checked if they are top node.
9356
9357 2005-12-01  Jackson Harper  <jackson@ximian.com>
9358
9359         * TreeView.cs: When imagelists are used the image area is
9360         selectable as well as the text.
9361         - If there are no selected nodes select the first one.
9362         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
9363         so don't do it more then we need to.
9364
9365 2005-12-01  Jackson Harper  <jackson@ximian.com>
9366
9367         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
9368         that arrows can be scaled.
9369
9370 2005-12-01  Jackson Harper  <jackson@ximian.com>
9371
9372         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
9373         fail. Patch by Dieter Bremes
9374
9375 2005-11-30  Jackson Harper  <jackson@ximian.com>
9376
9377         * Form.cs: Property is 2.0 only
9378         * PrintDialog.cs: Signature fix.
9379
9380 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9381
9382         * TextControl.cs: 
9383           - No longer artificially moves text 2 pixels down (now that we have
9384             borders this is no longer needed)
9385           - Added calcs for left, hanging and right indent
9386
9387 2005-11-23  Mike Kestner  <mkestner@novell.com>
9388
9389         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
9390
9391 2005-11-30  Jackson Harper  <jackson@ximian.com>
9392
9393         * MdiChildContext.cs: Set the cloned menus forms, as these don't
9394         get cloned as part of CloneMenu ().
9395         * Menu.cs: Make sure the parent of the items get set correctly
9396         when they are added.  And the owners are notified of the changes.
9397         * Form.cs: Create an ActiveMenu property, so that when MDI is used
9398         we can change the menu being displayed/handled by the form without
9399         changing the menu assosciated with the form.
9400         - Don't let Mdi children draw/handle menus.
9401         
9402 2005-11-30  Jackson Harper  <jackson@ximian.com>
9403
9404         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
9405         a MenuChanged event. Just to make the API a little more
9406         consistent.
9407         * MainMenu.cs:
9408         * MenuItem.cs: Use the new OnMenuChanged
9409         * MdiChildContext.cs: Handle menu merging.
9410         * Form.cs: Implement MergedMenu.
9411         
9412 2005-11-30  Jackson Harper  <jackson@ximian.com>
9413
9414         * Menu.cs: We were misusing Add. Add goes behind the specified
9415         index according to the docs, and does not replace the specified
9416         index. So I added an Insert method.
9417
9418 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
9419
9420         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
9421           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
9422           is for Jackson
9423         * RichTextBox.cs: Added calls to base for DnD events
9424
9425 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
9426
9427         * TextControl.cs:
9428           - Fixed drag-selection related crash; style fixes
9429           - Implemented undo class
9430             o Implemented method to capture document state for specified
9431               range in document tree
9432             o Implemented method to restore captured document state
9433             o Implemented cursor tracking
9434             o Implemented basic undo stack
9435           - Added undo cursor tracking to methods altering cursor location
9436           - Added undo tracking to selection deletion (still missing
9437             other text-altering hookups)
9438         * RichTextBox.cs:
9439           - Added SelectionLength property
9440           - Implemented CanPaste()
9441           - Implemented Paste()
9442           - Added missing protected methods
9443           - Fixed RTF->Document conversion; now uses font index 0 and color 
9444             index 0 as the default font for the parsed text
9445           - Fixed RTF<->Document font size translation
9446           - Fixed RTF generation, now properly handles cross-tag boundaries
9447             for single line selection
9448           - No longer always appends blank line to generated RTF
9449           - Removed TODOs
9450           - Added missing attributes
9451           - Hooked up undo-related methods
9452         * TextBoxBase.cs:
9453           - Implemented Copy()
9454           - Implemented Paste()
9455           - Implemented Cut()
9456           - Fixed caret mis-behaviour on backspace across line-boundaries
9457
9458 2005-11-29  Jackson Harper  <jackson@ximian.com>
9459
9460         * MdiClient.cs: Add a method for activating mdi children. Very
9461         basic right now. I imagine someday it might need more girth.
9462         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
9463         children windows names are added to the menu item.
9464         * ThemeWin32Classic.cs: Draw the arrow if the item is an
9465         mdilist. This happens regardless of whether or not there are any
9466         mdi windows to see in the list, and according to my tests happens
9467         before the items are even added. Also happens if there isn't even
9468         an mdi client to get windows from.
9469
9470 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
9471
9472         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
9473         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
9474
9475 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
9476
9477         * DataGridTableStyle.cs:
9478           - Create always the styles for the missing columns even if they are
9479             provided by the user (not default table style)
9480         * DataGrid.cs:
9481           - Fixes bug 76770
9482           - Fixes SetDataBinding (always re-attach source)
9483           - Fixes SetNewDataSource (only clear styles if they are not for 
9484             this source)
9485          -  Expands OnTableStylesCollectionChanged to handle style refresh 
9486             and remove properly
9487
9488 2005-11-29  Jackson Harper  <jackson@ximian.com>
9489
9490         * FileDialog.cs: Implement missing bits, remove some dead
9491         code.
9492         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
9493         creation of the panel so that the options set on the dialog are
9494         seen when the panel is created.
9495         * TreeView.cs: raise a click when items are clicked.
9496         
9497 2005-11-29  Jackson Harper  <jackson@ximian.com>
9498
9499         * MdiClient.cs: Pass some signature methods through to base.
9500
9501 2005-11-28  Jackson Harper  <jackson@ximian.com>
9502
9503         * ListView.cs: Raise the click event when items are clicked.
9504
9505 2005-11-28  Jackson Harper  <jackson@ximian.com>
9506
9507         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
9508         a nullref.
9509
9510 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
9511
9512         * ThemeNice.cs: - Removed 1 pixel bitmaps
9513           - Use SmoothingMode.AntiAlias where it makes sense
9514             (ScrollButton arrow for example)
9515           - Enhanced Button focus drawing
9516           - Fixed ComboBox drawing (no artefacts anymore, focus
9517             rectangle is back again, reduced size of ComboButton, etc.)
9518           - Fixed RadioButton focus drawing for Appearence.Button
9519           - Slight ScrollButton redesign
9520           - Some LinearGradientBrush size fixes
9521           - GroupBoxes have now rounded edges
9522           - Fixed StatusBar drawing
9523
9524 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
9525
9526         * ThemeNice.cs: - Remove dead code
9527           - use correct background colors for menus, etc.
9528           - Fake pixel drawing with 1 pixel bitmaps
9529
9530 2005-11-24  Jackson Harper  <jackson@ximian.com>
9531
9532         * MdiClient.cs: Size the scrollbars when resizing the window.
9533         - Resize the maximized windows when the client is resized
9534         * Form.cs: Make the child context available
9535         
9536 2005-11-23  Jackson Harper  <jackson@ximian.com>
9537
9538         * MdiChildContext.cs: Don't size windows if they are maximized.
9539
9540 2005-11-23  Mike Kestner  <mkestner@novell.com>
9541
9542         * ContextMenu.cs: use MenuTracker.
9543         * Control.cs: remove menu handle usage.
9544         * Form.cs: remove menu handle usage.
9545         * Hwnd.cs: remove menu handle usage.
9546         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
9547         motion and clicks to the new Tracker handlers.
9548         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
9549         and handle usage.
9550         * MenuAPI.cs: refactored to combine popup and menubar event handling.
9551         Killed the MENU and MENUITEM data types and associated collections
9552         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
9553         MenuTracker class that exposes the leftovers from the old MenuAPI
9554         static methods. Restructured Capture handling so that only one grab is
9555         done for the entire menu hierarchy instead of handing off grabs to
9556         submenus. Tracker now has an invisible control to Capture when active.
9557         * MenuItem.cs: add sizing accessors, kill Create
9558         and handle usage.
9559         * Theme.cs: remove menu handle and MENU(ITEM) usage.
9560         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
9561         MENU(ITEM). remove menu handle usage, use Menu directly.
9562         * XplatUIDriver.cs: remove menu handle usage.
9563         * XplatUIOSX.cs: remove menu handle usage.
9564         * XplatUIWin32.cs: remove menu handle usage.
9565         * XplatUIX11.cs: remove menu handle usage.
9566
9567 2005-11-22  Jackson Harper  <jackson@ximian.com>
9568
9569         * Hwnd.cs: Don't compute the menu size for
9570         DefaultClientRectangle.
9571         - Reenable menu sizes being computed for GetClienRectangle.
9572         * Form.cs: Remove comment of trechery
9573         
9574 2005-11-22  Jackson Harper  <jackson@ximian.com>
9575
9576         * Hwnd.cs: The adjustments for the menu bar are made when it is
9577         attached to the form.
9578
9579 2005-11-19  Jackson Harper  <jackson@ximian.com>
9580
9581         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
9582         (just like on windows).
9583
9584 2005-11-19  Jackson Harper  <jackson@ximian.com>
9585
9586         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
9587         use real buttons anymore because they are in non client area. The
9588         one TODO here is that I need to somehow invalidate a section of
9589         the non client area.
9590
9591 2005-11-18  Jackson Harper  <jackson@ximian.com>
9592
9593         * Control.cs: Put the enum check back in now that MDI doesnt have
9594         to use this to set border styles.
9595         * Form.cs: Only set mdi child windows borders if the handle has
9596         been created.
9597         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
9598         this directly on to the driver.
9599         - Get the move start position before adjusting for the titlebar
9600         height, this fixes the windows "skipping" when they are first
9601         moved.
9602
9603 2005-11-18  Jackson Harper  <jackson@ximian.com>
9604
9605         * XplatUIX11.cs: Just compute the mdi borders separately as they
9606         don't totally match up with normal form borders.
9607
9608 2005-11-18  Jackson Harper  <jackson@ximian.com>
9609
9610         * Control.cs: Set WS_ styles for borders, so that the driver does
9611         not have to retrieve the control instance to figure out what kind
9612         of borders it should have.
9613         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
9614         driver can know its an mdi child easily.
9615         * XplatUIX11.cs: Get the border styles and whether the window is
9616         MDI from the Styles and ExStyles params instead of having to get a
9617         control. This prevents a chicken and egg problem.       
9618
9619 2005-11-18  Jackson Harper  <jackson@ximian.com>
9620
9621         * MdiClient.cs: Fix typo so scrollbars show up correctly.
9622
9623 2005-11-18  Jackson Harper  <jackson@ximian.com>
9624
9625         * MdiClient.cs: Calculate when to add and remove scrollbars
9626         correctly.
9627         * MdiChildContext.cs: Adjust the y position to take the titlebar
9628         into account.
9629         - No height for FormBorderStyle.None
9630
9631 2005-11-18  Jackson Harper  <jackson@ximian.com>
9632
9633         * Control.cs: Allow non enum values to be used for
9634         InternalBorderStyle.  MDI does this to set a special border style.
9635         - New utility methods for converting points to/from client coords
9636         - Add the newly created control to the Controls collection before
9637         updating its style. This way UpdateStyle can walk the control
9638         heirarchy to find the control if needed.
9639         so I don't need to create a new Point object all the time.
9640         * Form.cs: Let MDI windows handle their border styles.
9641         - Set styles on MDI windows so the correct title style is derived.
9642         * MdiChildContext.cs: Move all the painting and window handling
9643         into the non client area.
9644         - Use correct sizing and put correct buttons on frames based on
9645         the FormBorderStyle.
9646         - Notify the mdi client about scrolling
9647         - Need to handle the buttons ourselves now, because they are all
9648         in non client areas and we can't add controls there.
9649         * MdiClient.cs: Halfway to scrolling, this implementation is
9650         somewhat broken though, we need to check to make sure other
9651         windows aren't causing scrolling before removing the bars. Also
9652         the bars need to be drawn on top, maybe I can switch implicit
9653         controls to be on top.
9654         * Hwnd.cs: caption_height and tool_caption_height are now
9655         properties of an hwnd, this way they can be set by the driver
9656         based on the type of window they are.  In X11 the window manager
9657         handles the decorations so caption_height is zero unless its an
9658         MDI window.
9659         - Add 3 pixel borders for MDI windows (0xFFFF).
9660         - Get rid of some code duplication, have DefaultClientRectanle
9661         just call GetClientRectangle.
9662         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
9663         Hwnd now.
9664         - Set border styles differently for mdi windows.
9665         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
9666         Hwnd now.
9667         
9668 2005-11-15  Mike Kestner  <mkestner@novell.com>
9669
9670         * Menu.cs: when adding an item to the collection, if item is already 
9671         parented, remove it from the parent.
9672
9673 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
9674
9675         * X11DesktopColors.cs: Added KDE support
9676
9677 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
9678
9679         * XplatUIWin32.cs: 
9680           - Clipboard methods now can translate Rtf format
9681           - No longer removes clipboard contents whenever a new format is added
9682             to allow placing multiple formats on the clipboard
9683         * Clipboard.cs: Clipboard now supports getting a IDataObject and
9684           will place all formats contained in it onto the clipboard. Also
9685           now cleans the clipboard before placing a new object onto it
9686         * RichTextBox.cs:
9687           - Implemented set_Rtf
9688           - Implemented set_SelectedRtf
9689           - Created InsertRTFFromStream() method to allow single code base
9690             for all properties and methods that insert RTF into document
9691           - Removed debug output
9692         * TextControl.cs:
9693           - Fixed Delete(int) to fix up line numbers
9694           - Fixed ReplaceSelection to combine start and end line
9695           - Fixed serious DeleteChars bug that would leave the document tree
9696             broken
9697           - Improved DumpTree with several logic checks to detect broken
9698             document trees
9699           - Removed debug lines
9700           - Fixed Caret.WordForward/WordBack moving code, now always also 
9701             updates caret.tag (fixes crash when word-selecting across tag
9702             boundaries via keyboard)
9703           - Added Insert() method for inserting multiline text into documents
9704           - Fixed DeleteChars() calculation errors that would cause a broken
9705             tag chain with multiple tag lines
9706           - DeleteChars() no longer crashes on multi-tag lines if not all tags
9707           - Split() no longer moves caret if split is at caret location
9708           - ReplaceSelection() now updates the cursor and re-displays it
9709           - ReplaceSelection() now uses new Insert() method to avoid code
9710             duplication
9711           - FormatText() can now handle formatting partial lines
9712         * TextBoxBase.cs:
9713           - Append now uses new TextControl.Insert() method (this avoids 
9714             duplicate code)
9715           - Implemented Ctrl-X (Cut) (
9716           - Implemented Ctrl-C (Copy)
9717           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
9718             regeneration when pasting text; roundtripping Copy&Paste within
9719             edit control still fails due to some calculation bugs in GenerateRTF)
9720           - The Delete key will now remove the current selection if it is visible
9721         * TextBox.cs: Removed debug lines
9722         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
9723           driver to be initialized and can't therefore be done via a static ctor)
9724
9725 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
9726
9727         * TextControl.cs: Added backend code for finding char arrays and strings
9728         * TextBoxBase.cs:
9729           - Added mouse wheel scroll support
9730           - Added support for VScroll and HScroll events
9731         * RichTextBox.cs:
9732           - Implemented all seven Find() variants
9733           - Implemented GetCharFromPosition()
9734           - Implemented GetCharIndexFromPosition()
9735           - Implemented GetLineFromIndex()
9736           - Implemented GetPositionFromCharIndex();
9737           - Implemented SaveFile for PlainText and UnicodeText
9738           - Fixed set_Font, now setting a new font applies that font to
9739             the whole document
9740           - Implemented generic Document to RTF converter
9741           - Implemented SaveFile for RichText format (still missing unicode
9742             conversion for non-ansi chars)
9743           - Implemented get_Rtf
9744           - Implemented get_SelectedRtf
9745
9746 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
9747
9748         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
9749           to allow any captures to be released before triggering OnClick. This
9750           way a click handler may capture the mouse without interference.
9751         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
9752           This way we send them even though X may not allow a grab (if the window
9753           isn't visible, for example)
9754
9755 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
9756
9757         * DataGridViewRowEventArgs.cs: DataGridView implementation
9758         * DataGridViewElement.cs: DataGridView implementation
9759         * DataGridViewComboBoxCell.cs: DataGridView implementation
9760         * DataGridViewDataErrorContexts.cs: DataGridView implementation
9761         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
9762         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
9763         * ImageLayout.cs: DataGridView implementation
9764         * DataGridViewComboBoxColumn.cs: DataGridView implementation
9765         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
9766         * DataGridViewSelectionMode.cs: DataGridView implementation
9767         * IDataGridViewEditingControl.cs: DataGridView implementation
9768         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
9769         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
9770         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
9771         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
9772         * DataGridViewColumnSortMode.cs: DataGridView implementation
9773         * DataGridView.cs: DataGridView implementation
9774         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
9775         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
9776         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
9777         * Padding.cs: DataGridView implementation
9778         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
9779         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
9780         * DataGridViewRowEventHandler.cs: DataGridView implementation
9781         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
9782         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
9783         * DataGridViewButtonCell.cs: DataGridView implementation
9784         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
9785         * DataGridViewEditMode.cs: DataGridView implementation
9786         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
9787         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
9788         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
9789         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
9790         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
9791         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
9792         * DataGridViewCellEventHandler.cs: DataGridView implementation
9793         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
9794         * DataGridViewCellStyleConverter.cs: DataGridView implementation
9795         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
9796         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
9797         * DataGridViewColumnEventArgs.cs: DataGridView implementation
9798         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
9799         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
9800         * QuestionEventArgs.cs: DataGridView implementation
9801         * IDataGridViewEditingCell.cs: DataGridView implementation
9802         * DataGridViewTriState.cs: DataGridView implementation
9803         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
9804         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
9805         * DataGridViewColumnCollection.cs: DataGridView implementation
9806         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
9807         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
9808         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
9809         * DataGridViewColumn.cs: DataGridView implementation
9810         * DataGridViewCellBorderStyle.cs: DataGridView implementation
9811         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
9812         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
9813         * DataGridViewRow.cs: DataGridView implementation
9814         * DataGridViewImageCellLayout.cs: DataGridView implementation
9815         * DataGridViewImageCell.cs: DataGridView implementation
9816         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
9817         * DataGridViewCheckBoxCell.cs: DataGridView implementation
9818         * DataGridViewHeaderCell.cs: DataGridView implementation
9819         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
9820         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
9821         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
9822         * DataGridViewTextBoxColumn.cs: DataGridView implementation
9823         * QuestionEventHandler.cs: DataGridView implementation
9824         * DataGridViewCellStyleScopes.cs: DataGridView implementation
9825         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
9826         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
9827         * DataGridViewCell.cs: DataGridView implementation
9828         * DataGridViewCellEventArgs.cs: DataGridView implementation
9829         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
9830         * DataGridViewCellStyle.cs: DataGridView implementation
9831         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
9832         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
9833         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
9834         * TextFormatFlags.cs: DataGridView implementation
9835         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
9836         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
9837         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
9838         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
9839         * DataGridViewButtonColumn.cs: DataGridView implementation
9840         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
9841         * HandledMouseEventArgs.cs: DataGridView implementation
9842         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
9843         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
9844         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
9845         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
9846         * DataGridViewRowCollection.cs: DataGridView implementation
9847         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
9848         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
9849         * DataGridViewHitTestType.cs: DataGridView implementation
9850         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
9851         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
9852         * DataGridViewColumnEventHandler.cs: DataGridView implementation
9853         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
9854         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
9855         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
9856         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
9857         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
9858         * DataGridViewContentAlignment.cs: DataGridView implementation
9859         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
9860         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
9861         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
9862         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
9863         * DataGridViewPaintParts.cs: DataGridView implementation
9864         * DataGridViewCellCollection.cs: DataGridView implementation
9865         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
9866         * DataGridViewImageColumn.cs: DataGridView implementation
9867         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
9868         * DataGridViewElementStates.cs: DataGridView implementation
9869         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
9870         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
9871         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
9872         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
9873         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
9874         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
9875         * DataGridViewRowHeaderCell.cs: DataGridView implementation
9876         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
9877         * DataGridViewTextBoxCell.cs: DataGridView implementation
9878         * DataGridViewBand.cs: DataGridView implementation
9879         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
9880         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
9881         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
9882         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
9883         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
9884         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
9885         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
9886         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
9887         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
9888         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
9889         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
9890
9891 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
9892
9893         * ThemeWin32Classic.cs: 
9894           - Draw the outside focus rectangle around buttons
9895           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
9896             doesn't use end caps for every dash of a line anymore. This
9897             workaround ignores the forecolor.
9898
9899 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
9900
9901         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
9902           endian safe.
9903
9904 2005-11-07  Jackson Harper  <jackson@ximian.com>
9905
9906         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
9907
9908 2005-11-07  Jackson Harper  <jackson@ximian.com>
9909
9910         * ScrollableControl.cs: Calculate the maximum and change vars
9911         (more) correctly so that scrollbars appear as a sensible size.
9912
9913 2005-11-04  Jackson Harper  <jackson@ximian.com>
9914
9915         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
9916         collection.
9917         * TreeView.cs: When the tree is sorted null out the top_node so
9918         that it is recalculated.
9919         - Use dotted lines instead of dashed lines to match MS better.
9920
9921 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
9922
9923         * ListView.cs: 
9924           - Implements key search for items. Useful when browsing files with FileDialog
9925           - When changing view mode or when clear the items reset scrollbar positions
9926
9927 2005-11-04  Jackson Harper  <jackson@ximian.com>
9928
9929         * CurrencyManager.cs: Implement the MetaDataChanged event, the
9930         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
9931         as to what the method may do as there is no real way of creating a
9932         derived CurrencyManager and calling the method. 
9933
9934 2005-11-03  Jackson Harper  <jackson@ximian.com>
9935
9936         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
9937         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
9938         method which seems to just be used internally to refresh the tabs.
9939
9940 2005-11-03  Jackson Harper  <jackson@ximian.com>
9941
9942         * TabControl.cs: Implement the remove method. Fix some broken
9943         comments.
9944
9945 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9946
9947         * DateTimePicker.cs:
9948           - Added missing DateTimePickerAccessibleObject class
9949           - Added missing events
9950           - Added OnFontChanged method
9951         * Form.cs: Added missing attributes
9952         * TreeView.cs: Added missing attributes
9953
9954 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
9955
9956         * GridItemCollection.cs: Fix signatures
9957
9958 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9959
9960         * XplatUI.cs: Updated build rev/date
9961         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
9962           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
9963         * Application.cs: Trigger context-specific ExitThread events
9964
9965 2005-11-03  Jackson Harper  <jackson@ximian.com>
9966
9967         * Menu.cs:
9968         * MainMenu.cs:
9969         * GridTableStylesCollection.cs:
9970         * Timer.cs:
9971         * TabPage.cs:
9972         * HelpProvider.cs:
9973         * StatusBar.cs:
9974         * MonthCalendar.cs: Signature fixes
9975
9976 2005-11-03  Jackson Harper  <jackson@ximian.com>
9977
9978         * TreeNodeCollection.cs: Remove should not be virtual.
9979         * TreeView.cs: Implement the last of the missing methods.
9980
9981 2005-11-03  Jackson Harper  <jackson@ximian.com>
9982
9983         * TreeNodeConverter.cs: Implement to get off my class-status back.
9984
9985 2005-11-03  Jackson Harper  <jackson@ximian.com>
9986
9987         * TreeView.cs: Hookup the bits for drag and drop.
9988         * TreeNode.cs: Don't cache the tree_view or index anymore, now
9989         that nodes can be moved from tree to tree easily this just causes
9990         all sorts of problems.
9991         * TreeNodeCollection: Don't need to give treenodes an index and
9992         treeview anymore when they are added, these are computed on the
9993         fly. Also make sure to remove a node before its added.
9994
9995 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9996
9997         * TextControl.cs:
9998           - Added CaretSelection enum
9999           - Added comparison methods to Marker struct, makes selection code
10000             more readable
10001           - Added SelectionStart and SelectionEnd as 'moveable' location for
10002             the CaretDirection enum and handler
10003           - Added selection_prev variable to track optimized invalidation for
10004             word and line selection
10005           - Added SelectionVisible property (returns true if there is a valid 
10006             selection)
10007           - Switched CaretHasFocus to only display the caret if there is no
10008             visible selection
10009           - Avoiding StringBuilder.ToString to retrieve a single char, instead
10010             using the direct character index; should be much faster
10011           - Added various conditional debug statements
10012           - Fixed invalidation calculation for selection ranges
10013           - Added ExpandSelection() method to support word and line selection
10014           - Switched SetSelectionToCaret to use new Marker compare overloads
10015           - Added central IsWordSeparator() method to determine word 
10016             separators/whitespace and FindWordSeparator() to streamline common
10017             usage of IsWordSeparator()
10018         * TextBoxBase.cs:
10019           - Removed unneeded grabbed variable, it was just mirroring
10020             Control.Capture
10021           - No longer firing OnTextChanged event when Text setter is called,
10022             since the base will fire the event for us
10023           - Added handling of Ctrl-Up/Down selection
10024           - Added handling of Shift-Cursorkey selection
10025           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
10026             words
10027           - Added handling of Shift and Ctrl-Shift-Home/End selection
10028           - Removed some debug output
10029           - Added handling for single/double/tripple-click to place caret/
10030             select word/select line respectively (Fixes bug #76031)
10031           - Added support for drag expansion of word/line selection
10032         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
10033           current selection
10034
10035 2005-11-02  Jackson Harper  <jackson@ximian.com>
10036
10037         * X11Dnd.cs: If the drag is going to and from a MWF window just
10038         copy the data instead of sending it out through the X Selection
10039         mechanism.
10040
10041 2005-11-02  Jackson Harper  <jackson@ximian.com>
10042
10043         * X11Dnd.cs:
10044         * XplatUIX11.cs: When in a drag we don't want motion notify
10045         messages to get passed on to the other controls. This prevents
10046         mouse move messages from showing up in the drag source.
10047
10048 2005-11-02  Jackson Harper  <jackson@ximian.com>
10049
10050         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
10051         the correct button is release to end a drag.
10052         * XplatUIX11.cs: Make the button state internal so the drag system
10053         can access it.  Dragging needs to know about all button releases,
10054         not just left button.
10055
10056 2005-11-02  Miguel de Icaza  <miguel@novell.com>
10057
10058         * Form.cs (Icon): If the icon is null, reset the icon to the
10059         default value. 
10060
10061         * Cursor.cs: When writing the AND-mask bitmap do not include the
10062         number of colors, but hardcode those to two (black and white),
10063         fixes the loading of color cursors (Paint Dot Net).
10064
10065         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
10066         turn off autoscaling.
10067
10068         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
10069
10070 2005-11-02  Jackson Harper  <jackson@ximian.com>
10071
10072         * X11Dnd.cs: Make sure to send a status message if the pointer
10073         enters a control that can not accept a drop, otherwise the cursor
10074         isn't updated correctly. Also tried to compress the lines of code
10075         a bit.
10076
10077 2005-11-02  Jackson Harper  <jackson@ximian.com>
10078
10079         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
10080         set actions correctly.  This isn't perfect as XDND and win32 have
10081         some differences on how you allow actions. I'll clear this up by
10082         adding a path for drag from MWF to MWF windows.
10083         * XplatUIX11.cs: Hook into the dnd system.
10084
10085 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
10086
10087         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
10088         previously shown but they are no longer need it. Very obvious when 
10089         browsing files with FileDialog.
10090
10091 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
10092
10093         * Control.cs: We always need to call OnPaintBackground. We pretty much
10094           ignore AllPaintingInWmPaint and always do the painting there, whether 
10095           it's set or not, since we always ignore the WM_ERASEBKGND message 
10096           (which we don't generate on X11). This fixes #76616.
10097         * Panel.cs: Removed unneeded background painting. This happens properly
10098           in Control.cs already
10099
10100 2005-10-31  Mike Kestner  <mkestner@novell.com>
10101
10102         * Menu.cs: Add items to collection before setting their index.
10103         * MenuItem.cs : add range checking with ArgumentException like MS.
10104         [Fixes #76510]
10105
10106 2005-10-31  Jackson Harper  <jackson@ximian.com>
10107
10108         * ListBox.cs: Invalidate if the area is visible at all not just
10109         contained in the visible rect. Fixes unselection of semi visible
10110         items.
10111
10112 2005-10-31  Jackson Harper  <jackson@ximian.com>
10113
10114         * Control.cs: Consistently name the dnd methods. Make them
10115         internal so we can override them to match some MS behavoir
10116         internally.
10117         * Win32DnD.cs: Use the new consistent names.
10118
10119 2005-10-31  Jackson Harper  <jackson@ximian.com>
10120
10121         * TreeView.cs: Don't draw the selected node when we lose focus.
10122
10123 2005-10-31  Jackson Harper  <jackson@ximian.com>
10124
10125         * X11Dnd.cs: We still need to reset the state even though a full
10126         reset isn't being done, otherwise status's still get sent all over
10127         the place.
10128
10129 2005-10-31  Jackson Harper  <jackson@ximian.com>
10130
10131         * Control.cs: Make the dnd_aware flag internal so the dnd
10132         subsystem can check it. Catch exceptions thrown in dnd handlers to
10133         match MS behavoir.
10134         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
10135         * X11Dnd.cs: Handle null data in the converters. Set the XDND
10136         version when sending a XdndEnter. Use the control/hwnd dnd_aware
10137         flags to reduce the number of dnd enters/status's sent.
10138
10139 2005-10-31  Jackson Harper  <jackson@ximian.com>
10140
10141         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
10142
10143 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
10144
10145         * PictureBox.cs: Fixes 76512
10146
10147 2005-10-28  Jackson Harper  <jackson@ximian.com>
10148
10149         * X11Dnd.cs: Early implementation to support winforms being a drag
10150         source for data on X11. Also restructured the converters so they
10151         can go both ways now.
10152         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
10153         
10154 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
10155
10156         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
10157           clipboard requests
10158
10159 2005-10-27  Jackson Harper  <jackson@ximian.com>
10160
10161         * TreeNode.cs: Implement serialization so my DnD examples will work.
10162
10163 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
10164
10165         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
10166           TreeView.cs: Don't dispose objects that are not owned.
10167           
10168 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
10169
10170         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
10171           should retrieve the current cursor and report that, but XplatUI
10172           doesn't (yet) have an interface for that (and I'm not sure I even
10173           can, on X11)
10174         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
10175           until any message loop processing is done (and the WM_SETCURSOR
10176           replaces the cursor to the proper one)
10177         * XplatUIX11.cs: 
10178           - Fixed override behaviour, we can't set the cursor globally on X11, 
10179             just for our windows.
10180           - Invalidating the System.Drawing X11 display handle when we are
10181             shutting down
10182         * Control.cs: Fix to make csc happy
10183
10184 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
10185
10186         * TextBoxBase.cs: 
10187           - get_Text: Add last line (without trailing newline) to returned
10188             value (Fixes 76212)
10189           - get_TextLength: Count last line in returned length
10190           - ToString: Call Text property instead of duplicating code
10191
10192 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
10193
10194         * ImageList.cs: Dispose ImageAttributes objects.
10195
10196 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10197
10198         * ImageList.cs: Use attribute constructors with less arguments where
10199           possible.
10200
10201 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
10202
10203         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
10204           Use typeof instead of strings when assembly is referenced. Added
10205           some more comments.
10206
10207 2005-10-21  Jackson Harper  <jackson@ximian.com>
10208
10209         * ListView.cs: Raise a double click event. Also tried to somewhat
10210         fix when the selectedindexchanged event is raised. Its still
10211         broken though.
10212
10213 2005-10-21  Jackson Harper  <jackson@ximian.com>
10214
10215         * TreeView.cs: New method to invalidate the plus minus area of a
10216         node without invalidating the whole node (maybe this can be used
10217         in some more places).
10218         * TreeNodeCollection.cs: When adding to an empty node we need to
10219         invalidate its plus minus area so the little block shows up.
10220         
10221 2005-10-21  Jackson Harper  <jackson@ximian.com>
10222
10223         * TreeView.cs: Make sure that when we invalidate a node the bounds
10224         are big enough to cover the selected box and the focus
10225         rectangle. Use a different colour for the lines connecting nodes
10226         so they show up with all themes.
10227
10228 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10229
10230         * NativeWindow.cs: Don't call anything that could call into the driver,
10231           we might be on a different thread.
10232
10233 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
10234
10235         * Control.cs(Dispose): Since Dispose might run on a different thread,
10236           make sure that we call methods that could call into the driver via
10237           invoke, to avoid thread issues
10238
10239 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
10240
10241         * XplatUI.cs: Removed finalizer
10242         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
10243           not allowing to be called on the finalizer thread.
10244
10245 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
10246
10247         * ImageList.cs:
10248           - Reverted r51889 and r51891.
10249           - Added ImageListItem class that stores unmodified image items and image
10250             properties required to create list images until handle is created.
10251           - Added AddItem and moved image creation logic to AddItemInternal.
10252           - Added CreateHandle method that creates images based on unmodified items.
10253           - Added DestroyHandle that changes state to store unmodified items.
10254           - Add and AddStrip methods no more create handle.
10255           - ReduceColorDepth has no return value.
10256           - Dispose destroys handle.
10257           - Modified other methods to reflect the above changes.
10258           - Implemented key support.
10259           - Added profile 2.0 members and attributes.
10260           - Added private Reset and ShouldSerialize methods that provide the same
10261             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
10262             them as they are private.
10263           - Added some more comments about implementation details.
10264
10265 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10266
10267         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
10268
10269 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10270
10271         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
10272
10273 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
10274
10275         * DataGridDrawingLogic.cs: Fixes column hit calcultation
10276         * DataGridColumnStyle.cs: Remove debug message
10277
10278 2005-10-20  Jackson Harper  <jackson@ximian.com>
10279
10280         * TreeView.cs: We can always get input keys regardless of whether
10281         or not editing is enabled. They are used for navigation.
10282
10283 2005-10-20  Jackson Harper  <jackson@ximian.com>
10284
10285         * TreeNode.cs: Use the viewport rect for determining if a node
10286         needs to be moved for visibility. Don't use Begin/End edit. This
10287         calls a full refresh when its done.
10288         * TreeView.cs: New SetBottom works correctly.  Make the viewport
10289         rect property internal so the treenodes can see it. When clicking
10290         on a node we need to ensure that its visible because it might just
10291         be partly visible when clicked.
10292
10293 2005-10-20  Jackson Harper  <jackson@ximian.com>
10294
10295         * TreeNodeCollection.cs: Remove debug code.
10296
10297 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10298
10299         * Datagrid.cs: Implements column sorting in Datagrid
10300         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
10301
10302 2005-10-20  Jackson Harper  <jackson@ximian.com>
10303
10304         * TreeNodeCollection.cs: Remove items properly. Update the correct
10305         area after removing them.
10306
10307 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
10308
10309         * Datagrid.cs: Should not call base.OnPaintBackground
10310
10311 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10312
10313         * XplatUIX11.cs (GetMessage):
10314           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
10315             window instead of client window
10316           - Now properly calculates NC_xBUTTONUP message coordinates
10317           - ScreenToMenu now properly calculates it's coordinates of whole 
10318             window, since menus are in the whole window, not in the client
10319             window
10320           - Added WholeToScreen coordinate translation method
10321
10322 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
10323
10324         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
10325           want to return a message, loop back to the beginning of the function
10326           and grab the next real message to process instead.
10327
10328 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
10329
10330         * Splitter.cs: Properly set limits if no filler control is used
10331
10332 2005-10-19  Jackson Harper  <jackson@ximian.com>
10333
10334         * ColorDialog.cs: Don't show the help button if it is not enabled
10335         instead of disabling it (this is what MS does). Don't create the
10336         panel until the dialog is run, otherwise the vars (such as
10337         ShowHelp) are not set yet.
10338
10339 2005-10-19  Jackson Harper  <jackson@ximian.com>
10340
10341         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
10342         are reduced when adding nodes.
10343         * TreeNode.cs:
10344         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
10345         tree.
10346         
10347 2005-10-19  Jackson Harper  <jackson@ximian.com>
10348
10349         * FolderBrowserDialog.cs: End editing our treeview so the window
10350         actually gets refreshed.
10351
10352 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10353
10354         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
10355           Obsoleted handling of WM_ERASEBKGND, now always draws our background
10356           inside of WM_PAINT
10357
10358 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10359
10360         * MenuAPI.cs: Returns after Hidding window
10361         * XplatUIX11.cs: Added TODO found while debugging menu issues
10362
10363 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
10364
10365         * XplatUIX11.cs: Do not re-map the whole window when it's size
10366           becomes non-zero unless it's supposed to be actually visible
10367
10368 2005-10-18  Jackson Harper  <jackson@ximian.com>
10369
10370         * TreeView.cs: We don't need to keep a count anymore.
10371         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
10372         use the Grow method.
10373
10374 2005-10-18  Jackson Harper  <jackson@ximian.com>
10375
10376         * TreeNodeCollection.cs: Insert is not supported on arrays, so
10377         implement it manually here.
10378
10379 2005-10-18  Jackson Harper  <jackson@ximian.com>
10380
10381         * ImageList.cs: Dont kill the list when the colour depth is
10382         changed, just change the colour depth of all the images.
10383         - Same goes for setting the image size. Just resize them all
10384         instead of killing the list softly.
10385
10386 2005-10-18  Jackson Harper  <jackson@ximian.com>
10387
10388         * Control.cs: Don't invalidate empty rectangles.
10389
10390 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10391
10392         * ListViewItem.cs:
10393           - Adds checked item to the Checked/Item lists (where empty before)
10394           - Do not add items to the Selected lists if they are already present
10395         * ListView.cs:
10396           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
10397           - When deleting items make sure that we delete them for the Selected
10398           and Checked list also.
10399
10400 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
10401
10402         * Label.cs: Dispose objects no longer used
10403         * ThemeWin32Classic.cs: Dispose objects no longer used
10404
10405 2005-10-18  Jackson Harper  <jackson@ximian.com>
10406
10407         * TabControl.cs: Don't refresh the whole control when the tabs are
10408         scrolled, we just need to refresh the tab area.
10409
10410 2005-10-17  Jackson Harper  <jackson@ximian.com>
10411
10412         * XplatUIX11.cs: Compress code a little bit. Only calculate the
10413         after handle when we need it.
10414
10415 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10416
10417         * Control.cs: When the parent size changes, recalculate anchor 
10418           positions. Partial fix for #76462
10419
10420 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
10421
10422         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
10423           drawn. Fixes #76462
10424
10425 2005-10-17  Jackson Harper  <jackson@ximian.com>
10426
10427         * MonthCalendar.cs: Don't create the numeric up down until our
10428         handle is created. Otherwise our handle is created in the
10429         constructor and we don't know if we are a WS_CHILD or WS_POPUP
10430         yet.
10431
10432 2005-10-17  Jackson Harper  <jackson@ximian.com>
10433
10434         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
10435         correctly.
10436
10437 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10438         * TreeNode.cs : small logical fix (was using local var instead of field)
10439         
10440 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10441
10442         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
10443
10444 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
10445
10446         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
10447
10448 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
10449
10450         * Control.cs: 
10451           - Re-implemented anchoring code. My first version was really broken.
10452             This fixes bug #76033. Unlike the previous implementation we will
10453             no longer have round errors since all numbers are calculated from
10454             scratch every time. Removed various anchor-related obsolete vars.
10455           - InitLayout no longer causes layout event firing and layout to be 
10456             performed
10457
10458 2005-10-16  Jackson Harper  <jackson@ximian.com>
10459
10460         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
10461         which was broken).
10462
10463 2005-10-16  Jackson Harper  <jackson@ximian.com>
10464
10465         * TabControl.cs: Remove debug code.
10466
10467 2005-10-16  Jackson Harper  <jackson@ximian.com>
10468
10469         * XEventQueue.cs: Increase the default queue size (very simple
10470         apps needed to grow the queue).
10471         * Hwnd.cs: No finalizer so we don't need to suppress
10472         finalization. Compute the invalid area manually so a new rectangle
10473         does not newto be created.
10474         * ScrollableControl.cs: Don't set any params (otherwise visibility
10475         isn't set correctly).
10476         * MdiChildContext.cs: New constructor takes the mdi parent so it
10477         doesn't have to be computed and avoids a crash on windows. Draw
10478         the window icon properly, and allow the text to be seen.
10479         * Form.cs: Use new MdiChildContext constructor. Make sure the
10480         child context isn't null in wndproc.
10481         * TabControl.cs: Don't set focus, this is muddling keyboard
10482         behavoir. Expand the tab rows when a window size increase will
10483         allow extra tabs to be seen. Don't allow tabs smaller than the
10484         width of a window to be scrolled out of view.
10485         * TreeNode.cs:
10486         * TreeView.cs: Use measure string to calculate a nodes width, the
10487         width is cached and only updated when the text or the font is
10488         changed. Don't check for expand/collapse clicks on the first level
10489         nodes if root lines are disabled.
10490         
10491 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
10492
10493         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
10494
10495 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10496
10497         * DataGridBoolColumn.cs: fixes warning
10498
10499 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
10500
10501         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
10502         to match more to match more precisely the MS Net behavior
10503
10504 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10505
10506         * Hwnd.cs: Added field to track if window is mapped
10507         * XplatUIX11.cs: 
10508           - Unmap windows if they become 0-size, re-map when 
10509             they are >0 again; fixes #76035
10510           - Re-set our error handler after initializing X11Desktop
10511             to override any error handlers Gtk or whatever was called
10512             may have set.
10513
10514 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
10515
10516         * CheckedListBox.cs: Removed unused vars
10517         * ListView.cs: Fixed signatures
10518         * RichTextBox.cs: Removed unused vars
10519         * TextBoxBase.cs: Removed unused vars
10520         * XplatUIWin32.cs: Removed unused vars
10521         * XplatUIX11.cs: Removed unused vars
10522         * XplatUI.cs: Updated version and date to latest published
10523
10524 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10525
10526         * Cursor.cs: Added private .ctor to work around a bug in
10527           resourceset (Thanks to Geoff Norton for the help on this)
10528         * SplitterEventArgs.cs: Made fields accessible so we don't
10529           waste boatloads of objects and can reuse the same one
10530           in Splitter
10531         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
10532           any captions and borders when generating screen coordinates
10533         * Splitter.cs: Reimplemented control, now fully complete, uses
10534           rubberband drawing, supports and obeys all properties, has
10535           proper cursors
10536
10537 2005-10-13  Miguel de Icaza  <miguel@novell.com>
10538
10539         * Form.cs (Form): Setup default values for autoscale and
10540         autoscale_base_size;  Make these instance variables, not static
10541         variables. 
10542
10543         (OnLoad): on the first load, adjust the size of the form.
10544
10545 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
10546
10547         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
10548           width argument to DrawReversibleRectangle()
10549         * XplatUIWin32.cs, XplatUIX11.cs: 
10550           - Implemented width for DrawReversibleRectangle()
10551           - Added logic to DrawReversibleRectangle that recognizes a zero
10552             width or height and only draws a line in that situation
10553         
10554 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
10555
10556         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
10557         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
10558         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
10559           method (it uses our FosterParent window to get a graphics context)
10560
10561 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
10562
10563         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
10564           and SetWindowBackground methods
10565         * Control.cs:
10566           - Setting proper ControlStyles
10567           - We no longer call XplatUI.SetWindowBackground and XplatUI.
10568             EraseWindowBackground, instead we draw the window background
10569             ourselves in PaintControlBackground. This behaviour is
10570             required to match MS, where, when OnPaintBackground is not
10571             called, the background is not drawn.
10572           - Removed unneeded Refresh() in set_Text
10573         * Hwnd.cs: Dropped the ErasePending support. No longer needed
10574         * XplatUIX11.cs:
10575           - Created DeriveStyles method to translate from CreateParams to
10576             FormBorderStyle and TitleStyle, also handles BorderStyle (which
10577             matches FormBorderStyle enum values)
10578           - Consolidated SetHwndStyles and CalculateWindowRect border/title
10579             style calculations into single DeriveStyles method
10580           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
10581             from redrawing the whole window on any resize or expose.
10582           - Fixed CreateWindow usage of SetWindowValuemask. Before not
10583             all styles were applied to our whole/client window appropriately
10584           - Removed EraseWindowBackground() and SetWindowBackground() methods
10585           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
10586             no longer clear/redraw the background through X
10587           - Removed handling of erase_pending bit, we have no use for it (or
10588             so it seems)
10589         * XplatUIOSX.cs:
10590           - Removed generation and handling of WM_ERASEBKGND message
10591           - Removed EraseWindowBackground() and SetWindowBackground() methods
10592           - Removed handling of hwnd.ErasePending flag
10593         * XplatUIWin32.cs:
10594           - Removed EraseWindowBackground() and SetWindowBackground() methods
10595           - We no longer call EraseWindowBackground on PaintEventStart, we 
10596             ignore the fErase flag, erasing is handled in Control in the
10597             background handler
10598         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
10599           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
10600           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
10601           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
10602           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
10603           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
10604           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
10605
10606 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
10607
10608         * PropertyGrids.cs: Get sub properties
10609         * PropertyGridView.cs: Fix drawing code
10610
10611 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10612
10613         * ListBox.cs: Fixes 76383
10614
10615 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10616
10617         * DataGridTextBoxColumn.cs: Sets location and size before attachment
10618         * ThemeWin32Classic.cs: Fixes border drawing and calculations
10619         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
10620
10621
10622 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10623
10624         * ComboBox.cs: Fixes border drawing
10625
10626 2005-10-10  Miguel de Icaza  <miguel@novell.com>
10627
10628         * MimeIcon.cs: Ignore errors if the file can not be read.
10629
10630 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
10631
10632         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
10633          - Fixed border calculations
10634          - Fixed horizontal scrolling in single column listboxes
10635          - Fixed drawing issues
10636
10637 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
10638
10639         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
10640           FormBorderStyle enum
10641         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
10642           code to determine FormBorderStyles from CreateParams
10643         * Form.cs:
10644           - Fixed bug where we'd set the wrong window styles if we were
10645             not creating an MDI window
10646           - Added call to XplatUI.SetBorderStyle when form borders are set
10647         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
10648         * Hwnd.cs:
10649           - Removed obsolete edge style
10650           - Switched from BorderStyle to FormBorderStyle
10651         
10652 2005-10-10  Jackson Harper  <jackson@ximian.com>
10653
10654         * Form.cs: Use the property to get the window handle instead of
10655         accessing it directly. Prevents a null reference exception.
10656
10657 2005-10-10  Jackson Harper  <jackson@ximian.com>
10658
10659         * TreeView.cs: Don't adjust the rect given to DrawString now that
10660         our libgdiplus draws correctly.
10661
10662 2005-10-08  Jackson Harper  <jackson@ximian.com>
10663
10664         * TreeView.cs: Don't try to find the clicked on node if there are
10665         no nodes in the tree.
10666
10667 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
10668
10669         * RichTextBox.cs:
10670
10671           restore
10672
10673 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
10674
10675         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
10676           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
10677           ErrorProvider.cs:
10678           Use ResPool for brushes and dispose System.Drawing objects that
10679           are not used anymore.
10680
10681 2005-10-07  Jackson Harper  <jackson@ximian.com>
10682
10683         * MdiChildContext.cs: Use the new borders instead of drawing them
10684         ourselves.
10685
10686 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10687
10688         * Calling UpdateBounds after changing the window's BorderStyle 
10689         since the style can change the ClientSize
10690
10691 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10692
10693         * Control.cs: Made PaintControlBackground virtual
10694         * Panel.cs: Overriding PaintControlBackground instead of using paint
10695           event; paint event method was interfering with 'real' users of the
10696           event.
10697
10698 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10699
10700         * ThemeWin32Classic.cs: remove border drawing since it is handled
10701         by the base control class now and was causing double border drawing.
10702
10703 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10704
10705         * Panel.cs: Redraw our background on paint. Not a pretty solution,
10706           but it does seem to match MS behaviour. This fixes bug #75324
10707
10708 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10709
10710         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
10711           somewhat hackish looking
10712
10713 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10714
10715         * TextBoxBase.cs:
10716           - We now accept Enter even if AcceptEnter is false, if the containing
10717             form does not have an AcceptButton configured (fixes bug #76355)
10718           - Calculations are now fixed to no longer use Width/Height, but
10719             ClientSize.Width/Height, since we now support borders (this was
10720             a result of fixing borders and therefore bug #76166)
10721           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
10722             true (fixes bug #76354)
10723         
10724 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10725
10726         * Control.cs: 
10727           - Defaulting BorderStyle and setting it in XplatUI when our window 
10728             is created
10729           - Added enum check to InternalBorderStyle setter
10730         * XplatUIX11.cs: 
10731           - Added drawing of window borders
10732           - Now properly calculates WM decorations offset for toplevel 
10733             windows (fixes bug #74763)
10734         * XplatUIWin32.cs: 
10735           - Implemented BorderStyles for windows (we're letting win32 draw 
10736             the border for us)
10737           - Fixed the signature for SetWindowLong
10738         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
10739           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
10740           setting borders
10741         * UpDownBase.cs: Remove drawing of borders, this is handled by
10742           the driver, outside the client area
10743         * ListView.cs: Removed bogus border calculations. The control should
10744           be oblivious to borders, since those are not part of the client
10745           area. 
10746         * X11DesktopColors.cs: Commented out (currently) unneeded variables
10747         * ThemeWin32Classic.cs: Removed border calculations from ListView 
10748           drawing code
10749
10750 2005-10-06  Jackson Harper  <jackson@ximian.com>
10751
10752         * MdiChildContext.cs: Clear out the old virtual position remove
10753         all the unneeded calls to CreateGraphics.
10754
10755 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10756
10757         * TextControl.cs: Use proper color for highlighted text; fixes #76350
10758
10759 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10760
10761         * Form.cs: 
10762           - Added loading and setting of our new default icon
10763           - Only set icon if window is already created
10764
10765 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10766
10767         * Label.cs:
10768           - Do not explicitly set the foreground and background colors, to
10769             allow inheriting from parents (fixes #76302)
10770           - Use Control's InternalBorderStyle property to deal with borders
10771
10772 2005-10-06  Jackson Harper  <jackson@ximian.com>
10773
10774         * MdiChildContext.cs: Use the new xplatui function to draw a
10775         reversible rect.
10776
10777 2005-10-06  Jackson Harper  <jackson@ximian.com>
10778
10779         * Form.cs: Add the parent before creating the child context cause
10780         we need the parent when setting up the child.
10781
10782 2005-10-06  Jackson Harper  <jackson@ximian.com>
10783
10784         * FolderBrowserDialog.cs: redo the tree population code so a
10785         second thread isn't used. Should be a lot faster and more stable
10786         now.
10787
10788 2005-10-05  Jackson Harper  <jackson@ximian.com>
10789
10790         * TreeView.cs: There are no expand/collapse boxes if the node has
10791         no children.
10792
10793 2005-10-05  Jackson Harper  <jackson@ximian.com>
10794
10795         * X11DesktopColors.cs: Get menu colours for the gtk theme.
10796
10797 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
10798
10799         * FileDialog.cs: Fix InitialDirectory
10800
10801 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10802
10803         * ComboBox.cs:
10804                 - Fixes changing between styles
10805                 - Fixes simple mode
10806                 - Fixes last item crashing when navigating with keyboard
10807
10808 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10809
10810         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
10811
10812 2005-10-05  Jackson Harper  <jackson@ximian.com>
10813
10814         * TreeView.cs: If updating the root node do a full refresh.
10815         * TreeNode.cs: The root node should be expanded by default. Also
10816         added a utility prop to tell if we are the root node.
10817         * TreeNodeCollection.cs: Only refresh if the node we are being
10818         added to is expanded. Also added a comment on a potential
10819         optimization.
10820         
10821 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
10822
10823         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
10824           in dispose method. Fixes #76330
10825
10826 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
10827
10828         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
10829
10830                 - Implements vertical and horizontal scrolling using XplatUI
10831                 - Fixes keyboard navagation
10832                 - Fixes EnsureVisible
10833                 - Drawing fixes
10834                 - Handles and draws focus properly
10835
10836
10837 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
10838
10839         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
10840           Create handle. NET_2_0: Destroy handle when value is null.
10841
10842 2005-10-03  Jackson Harper  <jackson@ximian.com>
10843
10844         * ScrollBar.cs: My last scrollbar patch was broken. This is a
10845         revert and a new patch to prevent the thumb from refreshing so
10846         much.
10847
10848 2005-10-02  Jackson Harper  <jackson@ximian.com>
10849
10850         * ScrollBar.cs: Don't update position if it hasn't actually
10851         changed. This occurs when you hold down the increment/decrement
10852         buttons and the thumb gets to the max/min.
10853
10854 2005-10-01  Jackson Harper  <jackson@ximian.com>
10855
10856         * Form.cs:
10857         * MdiChildContext.cs:
10858         * MdiClient.cs: Implement ActiveMdiChild in Form.
10859
10860 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
10861
10862         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
10863
10864 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
10865
10866         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
10867           be found
10868
10869 2005-09-30  Jackson Harper  <jackson@ximian.com>
10870
10871         * ListBox.cs: Don't do a full refresh unless some data has
10872         actually changed.
10873
10874 2005-09-30  Jackson Harper  <jackson@ximian.com>
10875
10876         * TreeView.cs: Make sure that the checkboxes size is factored in
10877         even when not visible.
10878
10879 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10880
10881         * FileDialog.cs: Fix Jordi's build break
10882
10883 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
10884
10885         * FileDialog.cs: 
10886                 - Use standard the Windows colours for the combobox as espected
10887                 - Dispose objects that use resouces when no longer need them
10888
10889 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10890
10891         * X11DesktopColors.cs: Initial incomplete implementation
10892         * XplatUIX11.cs: Added call to initialize X11DesktopColors
10893
10894 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
10895
10896         * Theme.cs: 
10897           - Switched Theme color names to match the names defined in 
10898             System.Drawing.KnownColors. Life's hard enough, no need to make 
10899             it harder.
10900           - Added setters to all theme color properties so themes can set
10901             their color schemes. The setters also propagate the color changes
10902             to System.Drawing.KnownColors via reflection
10903         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
10904           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
10905           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
10906           use the new, more logical theme color names
10907         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
10908           post-NT colors
10909         * ThemeWin32Classic.cs:
10910           - Removed code to set the old classic Windows colors. Instead it
10911             now relies on the colors returned by System.Drawing.KnownColors
10912             which will be either modern static colors (Unix) or colors
10913             read from the user's configuration (Win32)
10914           - Updated to use the new, more logical theme color names
10915           - Switched DataGrid drawing code to use only Theme colors instead of
10916             a mix of System.Drawing.KnownColors and Theme colors
10917           - DrawFrameControl(): Removed code that fills the button area, the
10918             fill would overwrite any previous fill done by a control. This
10919             fixes bug #75338 
10920           - Added DrawReversibleRectangle() stub
10921         * ScrollableControl.cs: Set visible state to false when scrollbars
10922           are removed (pdn fix)
10923         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
10924           DrawReversibleRectangle() method to allow drawing primitive 
10925           'rubber bands'
10926         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
10927
10928 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10929
10930         * ImageList.cs: Add(Icon): Create handle.
10931
10932 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
10933
10934         * ListView.cs:
10935         * ThemeWin32Classic.cs:
10936                 - Fixes detail mode
10937                 - Sets clippings
10938                 - Issues with drawing
10939
10940 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10941
10942         * ImageList.cs: Moved RecreateHandle back to ImageList as event
10943           source has to be the ImageList.
10944
10945 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10946
10947         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
10948
10949 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10950
10951         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
10952
10953 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10954
10955         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
10956
10957 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
10958         * GridItem.cs: Fixed TODOs
10959         * GridItemCollection.cs: Added ICollection interface
10960
10961 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10962
10963         * ImageList.cs: Resize icons when needed.
10964
10965 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
10966
10967         * ListViewItem.cs
10968                 - Fixes GetBounds and returns on screen rects
10969         * ListView.cs:
10970                 - Fixes vertical and horzintal scrolling of items
10971         * ThemeWin32Classic.cs:
10972                 - Fixes drawing
10973                 
10974 2005-09-29  Raja R Harinath  <harinath@gmail.com>
10975
10976         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
10977
10978 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
10979
10980         * ImageList.cs: Added comments about handle creation. Moved Handle,
10981           HandleCreated and OnRecreateHandle implementations to ImageCollection.
10982           Handle is created in Add methods.
10983
10984 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
10985          
10986         * DataGridDrawingLogic.cs: 
10987                 - Takes rows into account on Colum calculations
10988                 - Returns the column when clickig
10989         * DataGrid.cs:
10990                 - Fixes default HitTestInfo values
10991                 - Fixes HitTestInfo.ToString
10992                 - Fixes ResetBackColor          
10993         
10994 2005-09-28  Jackson Harper  <jackson@ximian.com>
10995
10996         * MdiChildContext.cs: Obey rules for fixed sized windows (no
10997         sizing or cursor changes). Also added some temp code to draw the
10998         titlebars text (Makes dev a little easier).
10999
11000 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11001
11002         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
11003
11004 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
11005          
11006         * ListBox.cs: Fixes bug 76253
11007
11008 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
11009
11010         * ImageList.cs: Added comments about the current implementation. Added
11011           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
11012           Format32bppArgb to preserve transparency and can use Graphics.FromImage
11013           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
11014           with Bitmap.LockBits for better performance. Revised the whole file to
11015           match MS.NET behaviour and provide better performance. Non-public
11016           interface members are calling public members even when they throw
11017           NotSupportedException for better maintainability. Moved ColorDepth,
11018           ImageSize, ImageStream and TransparentColor implementations to
11019           ImageCollection for better performance as these properties are not used
11020           by ImageList.
11021         * ImageListStreamer.cs: Added a new internal constructor that takes an
11022           ImageList.ImageCollection and serializes Images based on
11023           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
11024           match ImageList property name.
11025
11026 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
11027
11028         * ListBox.cs: Fixes IndexFromPoint for last item
11029
11030 2005-09-27  Jackson Harper  <jackson@ximian.com>
11031
11032         * Form.cs: Set the position of new mdi children correctly.
11033
11034 2005-09-27  Jackson Harper  <jackson@ximian.com>
11035
11036         * MdiClient.cs: New mdi children need to be added to the back of
11037         the controls collection so the zorder is set correctly. Also add a
11038         count of all the child windows that have been created.
11039
11040 2005-09-27  Jackson Harper  <jackson@ximian.com>
11041
11042         * Form.cs (CreateParams): Setup MDI forms correctly.
11043
11044 2005-09-27  Jackson Harper  <jackson@ximian.com>
11045
11046         * MdiChildContext.cs:
11047         * MonthCalendar.cs:
11048         * UpDownBase.cs:
11049         * ListBox.cs:
11050         * ListView.cs:
11051         * TextBoxBase.cs:
11052         * TreeView.cs:
11053         * ScrollableControl.cs:
11054         * ComboBox.cs: Add implicit controls using the new implict control
11055         functionality in ControlCollection. Also try to block multiple
11056         control add in a suspend/resume layout to save some cycles.
11057         
11058 2005-09-27  Jackson Harper  <jackson@ximian.com>
11059
11060         * Control.cs: Add functionality to the controls collection to add
11061         'implicit controls' these are controls that are created by the
11062         containing control but should not be exposed to the user. Such as
11063         scrollbars in the treeview.
11064         * Form.cs: The list var of the ControlsCollection is no longer
11065         available because of the potential of implicit controls getting
11066         ignored by someone accessing the list directly.
11067
11068 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
11069
11070         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
11071           loose it's parent. (Fixed bug introduced in r49103 when we added
11072           setting the child parent to null on Remove)
11073
11074 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
11075
11076         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
11077         * Splitter.cs: Added missing attributes for BorderStyle property.
11078         * TextBoxBase.cs: Marked Calculate* methods internal.
11079         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
11080         MS.NET.
11081
11082 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
11083          
11084         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
11085
11086 2005-09-25  Jackson Harper  <jackson@ximian.com>
11087
11088         * TreeView.cs: Update the node bounds correctly regardless of
11089         whether the node is visible.
11090
11091 2005-09-25  Jackson Harper  <jackson@ximian.com>
11092
11093         * ImageList.cs: Don't dispose the image after it is added to the
11094         image list. Only reformat images that need to be resized.
11095
11096 2005-09-25  Jackson Harper  <jackson@ximian.com>
11097
11098         * ImageList.cs: Don't set the format when changing the image.
11099
11100 2005-09-25  Jackson Harper  <jackson@ximian.com>
11101
11102         * TreeView.cs: We can't just assume the node has a font. Use the
11103         treeviews font if no node font is available.
11104
11105 2005-09-25  Jackson Harper  <jackson@ximian.com>
11106
11107         * TreeView.cs: Allow the scrollbars to be reset with negative
11108         values.
11109         - Don't add scrollbars to negative sized windows.
11110
11111 2005-09-23  Jackson Harper  <jackson@ximian.com>
11112
11113         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
11114         old Mono.Posix. Also remove some stray code that shouldn't have
11115         been committed.
11116
11117 2005-09-23  Jackson Harper  <jackson@ximian.com>
11118
11119         * TreeView.cs: Attempt at proper sizing of the horizontal
11120         scrollbar. Also don't resize the scrollbars unless they are
11121         visible.
11122
11123 2005-09-23  Jackson Harper  <jackson@ximian.com>
11124
11125         * TreeView.cs: We don't need to expand the invalid area when the
11126         selection changes, as this is all drawn in the node's bounding
11127         box. The area needs to be expanded (previous typo was contracting
11128         it) when the focus rect moves.
11129
11130 2005-09-23  Jackson Harper  <jackson@ximian.com>
11131
11132         * TreeView.cs: Display the selection box under the correct
11133         circumstances. We were rendering white text with no selection box
11134         before.
11135
11136 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
11137
11138         * TextControl.cs(Split): Now updates selection start/end if it points 
11139           into a line that's being split. Fixes a FIXME and bug #75258
11140
11141 2005-09-23  Jackson Harper  <jackson@ximian.com>
11142
11143         * Binding.cs:
11144         * ListControl.cs: Don't use the path when retrieving binding
11145         managers from the binding context. My bat sense tells me that the
11146         path is only used on insertion.
11147
11148 2005-09-22  Jackson Harper  <jackson@ximian.com>
11149
11150         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
11151
11152 2005-09-22  Jackson Harper  <jackson@ximian.com>
11153
11154         * Splitter.cs: There are special cursors used for splitting.
11155         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
11156
11157 2005-09-22  Jackson Harper  <jackson@ximian.com>
11158
11159         * Splitter.cs: Change the cursor appropriately when the splitter
11160         is moused over, so the user actually knows there is a splitter
11161         there.
11162
11163 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11164
11165        * Label.cs : Fix ToString method to give same output as MS.NET
11166
11167 2005-09-22  Jackson Harper  <jackson@ximian.com>
11168
11169         * TreeView.cs: Create the scrollbars when the handle is created
11170         and add them right away, just make them invisble. Also account for
11171         the window being shrunk vertically to the point that the vert
11172         scrollbar needs to be added.
11173         - Remove some 0.5 adjustments to get around anti aliasing issues.
11174         
11175 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
11176          
11177         * MainMenu.cs: Fixes default value
11178         * MenuItem.cs: Fixes default value
11179
11180 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
11181
11182         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
11183
11184 2005-09-21  Jackson Harper  <jackson@ximian.com>
11185
11186         * Control.cs: Don't try to set the border style on the window if
11187         it hasn't been created. When the window is created the border
11188         style will be used.
11189
11190 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11191
11192         * Control.cs (Update): Don't call XplatUI if we don't have a
11193           window handle yet
11194
11195 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11196
11197         * ContainerControl.cs: Instead of throwing an exception, print
11198           a one-time warning about Validate not being implemented
11199         * XplatUIWin32.cs: Removed debug output
11200
11201 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
11202
11203         * Control.cs: Only set XplatUI background if we expect the windowing
11204           system to handle the background. This stops controls that draw their
11205           own background from flickering
11206
11207         * XplatUIX11.cs: Support custom visuals and colormaps for window 
11208           creation. This allows, amongst other things, using MWF X11 windows 
11209           with OpenGL.
11210
11211 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
11212
11213         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
11214           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
11215           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
11216           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
11217           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
11218           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
11219           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
11220           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
11221           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
11222           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
11223           GridColumnStylesCollection.cs, 
11224           IDataGridColumnStyleEditingNotificationService.cs,
11225           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
11226           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
11227           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
11228           TreeNodeCollection.cs, AmbientProperties.cs, 
11229           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11230           DataObject.cs, ErrorProvider.cs, Splitter.cs,
11231           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
11232           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
11233           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
11234           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
11235           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
11236           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
11237           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
11238           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
11239           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
11240           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
11241           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
11242           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
11243           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
11244           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
11245           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
11246           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
11247           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
11248           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
11249           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
11250           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
11251           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
11252           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
11253           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
11254           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
11255           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
11256           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
11257           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
11258           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
11259           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
11260           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
11261           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
11262           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
11263           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
11264           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
11265           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
11266
11267 2005-09-21  Jackson Harper  <jackson@ximian.com>
11268
11269         * TreeNode.cs: Call Before/After Expand not Collapse when
11270         expanding.
11271
11272 2005-09-20  Jackson Harper  <jackson@ximian.com>
11273         
11274         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
11275
11276 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11277          
11278         * ListViewItem.cs:
11279                 - Fixes bug 76120
11280                 - Fixes proper storing of subitems
11281                 - Fixes not updated items
11282
11283 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
11284
11285         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
11286           things if our window handle isn't created yet. Also disabled 
11287           debug for TextBoxBase
11288
11289 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
11290
11291         * MenuAPI.cs: Remove filtering of events to allow menu usage
11292
11293 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11294
11295         * Cursor.cs: Allow null to be passed to Cursor.Current.
11296
11297 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
11298
11299         * ThemeWin32Classic.cs:
11300           - Change some private methods/fields to protected virtual so that 
11301             they can be accessed and overriden in derived classes
11302           - First refactoring of some methods. Derived themes now don't 
11303             need to duplicate the complete code from ThemeWin32Classic
11304         * ThemeNice.cs:
11305           - Added nice StatusBar
11306           - Derive from ThemeWin32Classic and not Theme
11307           - Removed duplicate ThemeWin32Classic code
11308
11309 2005-09-20  Miguel de Icaza  <miguel@novell.com>
11310
11311         * Control.cs (ControlCollection.Add): If the value null is passed
11312         the control is ignored. 
11313
11314         Optimize this loop.
11315
11316 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
11317
11318         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
11319           PostQuitMessage state.
11320         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
11321
11322 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
11323
11324         * Application.cs: Our constructor will never get called, move 
11325           initialization to fields; fixes bug #75933
11326
11327 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
11328
11329         * FileDialog.cs :
11330                 - Allow files to be selected properly using file name
11331                 combo box.
11332                 - Add ability to change diretory (absolute / relative)
11333                 using file name combo box.
11334
11335 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
11336          
11337         * ListBox.cs: 
11338                 - Fixes Multicolumn listboxes item wrong calculations
11339                 - Allows to click when only one item is in the listbox
11340                 - Fixes crash when no items using keyboard navigation
11341
11342 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
11343
11344         * ComboBox.cs: Reverted almost everything from the latest patch which
11345           broke ComboBox
11346
11347 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
11348         
11349         * ToolTip.cs:
11350                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
11351         * ComboBox.cs:
11352                 - When DropDownStyle is Simple, it does not show scrollbar 
11353                 to the last item of the list.
11354                 - When DropDownStyle is Simple, it crashed when the list was 
11355                 scrolled down with the down cursor key.
11356                 - Fixed a bug that when DropDownStyle is DropDownList, the 
11357                 selected item was not shown.
11358                 - The position of the selected item was not preserved when 
11359                 the next dropdown happened.
11360         * ThemeWin32Classic.cs:
11361                 - Items were wrapped at the right end.
11362         * CheckedListBox.cs:
11363                 - Fixed Add method
11364         * ListBox.cs:
11365                 - Items should be fully shown.
11366                 - When resizing and vertical scrollbar disappeared, the item 
11367                 of index 0 should be on the top of the list.
11368                 - GetItemRectangle should consider the size of ver. scrollbar
11369         * StatusBar.cs:
11370                 - SizingGrip area should not be allocated when it is not 
11371                 displayed.
11372                 - Now it reflects MinWidth of the containing panel and 
11373                 fixed a crash that happens when its width becomes so small.
11374
11375 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11376
11377         * CheckedListBox.cs: Fixes bug 76028
11378         * ListBox.cs: Fixes bug 76028
11379
11380 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
11381
11382         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
11383         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
11384
11385 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
11386
11387         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
11388
11389 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11390
11391         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
11392
11393 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
11394
11395         * IRootGridEntry.cs: Added
11396         * PropertyGridCommands.cs: Added
11397         * PropertiesTab.cs: Added missing methods and property
11398         * PropertyGridView.cs: Made class internal
11399         * PropertyGridTextBox.cs: Made class internal
11400
11401 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11402
11403         * MimeIcon.cs: Try to check some other environment variables
11404           if "DESKTOP_SESSION" returns "default"
11405
11406 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11407
11408         * ThemeNice.cs: Corrected background colors (e.g. menus)
11409         * ColorDialog.cs: Use correct background colors for controls
11410
11411 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
11412
11413         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
11414
11415 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
11416
11417         * RichTextBox.cs: Added initial implementation
11418         * lang.cs: Removed. Was accidentally checked in long time ago
11419         * TODO: Removed. Contents were obsolete
11420
11421 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11422                                                                                 
11423         * PropertiesTab.cs : Added
11424
11425 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
11426                                                                                 
11427         * PropertyGrid.cs : Update
11428         * PropertyGridView.cs : Update
11429         * System.Windows.Forms.resx : Added images and strings
11430
11431 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
11432
11433         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
11434  
11435 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
11436
11437         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
11438           a busy loop right after the Ungrab the X11 display is otherwise 
11439           blocked
11440
11441 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
11442
11443         * ThemeWin32Classic.cs: Optimise the use of clipping
11444
11445 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
11446
11447         * DataGrid.cs: fixes recursion bug
11448
11449 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
11450
11451         * ThemeNice.cs: 
11452           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
11453           - Cleanup
11454
11455 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
11456
11457         * ThemeNice.cs: Draw nice ProgressBars
11458
11459 2005-09-01  Miguel de Icaza  <miguel@novell.com>
11460
11461         * VScrollBar.cs: Another buglet found by Aaron's tool. 
11462
11463         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
11464         bug finder.
11465
11466 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
11467
11468         * ThemeNice.cs:
11469           - Added nicer menu drawing
11470           - Updated DrawTab
11471           - some refactoring
11472
11473 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11474
11475         * CreateParams.cs (ToString): Made output match MS
11476         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
11477             handle is already created (to avoid forcing window creation)
11478         * XplatUIX11.cs: Set window text to caption after creating window,
11479           in case Text was set before window was created
11480         * Form.cs: Use this.Text instead of a static string as caption
11481
11482 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11483
11484         * NotifyIcon.cs: Don't set the window to visible; this screws
11485           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
11486           OnPaint without a bitmap)
11487         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
11488           happen very often anyway; we could add the check to the WM_PAINT 
11489           event generation code
11490
11491 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
11492
11493         * NotifyIcon.cs: Fill the icon area with a background color, to 
11494           avoid 'residue' when transparent icons are drawn
11495         * XplatUIX11.cs:
11496           - Handle whole_window == client_window when destroying windows
11497           - SystrayAdd(): Set client_window to whole_window value to
11498             get mouse and other events passed to NotifyIcon
11499
11500 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
11501
11502         * Form.cs: Set proper default for Opacity property
11503         * NotifyIcon.cs:
11504           - ShowSystray(): Don't bother creating telling the OS
11505             about the systray item if no icon is provided
11506           - Now handles WM_NCPAINT message to deal with whole/client window
11507             split
11508           - Create window as visible to not get caught by Expose optimization
11509         * Hwnd.cs: Removed debug message
11510         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
11511           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
11512             PaintEventStart/End to use new client argument
11513         * TextBoxBase.cs:
11514           - Commented out debug messages
11515           - Switched PaintEventStart/End to use new client argument
11516         * XplatUI.cs: Added client window bool to PaintEventStart()/
11517           PaintEventEnd() calls, to support drawing in non-client areas
11518         * XplatUIDriver.cs: 
11519           - Added client window bool to PaintEventStart()/PaintEventEnd() 
11520             calls, to support drawing in non-client areas
11521           - Added conditional compile to allow using MWF BeginInvoke 
11522             on MS runtime
11523         * XplatUIX11.cs:
11524           - Added some conditional debug output
11525           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
11526             whole/client window split
11527           - Implemented handling of client argument to PaintEventStart()/End()
11528         * Control.cs:
11529           - Throw exception if BeginInvoke() is called and the window handle
11530             or one of the window's parent handles is not created
11531           - Added conditional compile to allow using MWF BeginInvoke on
11532             MS runtime
11533           - get_Parent(): Only sets parent if handle is created. This avoids
11534             forcing window handle creation when parent is set.
11535           - Now fires Layout and Parent changed events in proper order
11536           - Switched to use Handle instead of window.Handle for Z-Order setting,
11537             the get_Parent() patch above causes us to possibly get null for 'window'
11538           - Implemented handling of client argument to PaintEventStart()/End()
11539           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
11540             default handling)
11541           - Now sends a Refresh() to all child windows when Refresh() is called
11542
11543 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
11544
11545         * Form.cs: Added (non-functional) Opacity property
11546         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
11547
11548 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
11549         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
11550           use export MONO_THEME=nice to activate it.
11551           Currently supported controls:
11552           - Button
11553           - ComboBox
11554           - ScrollBar
11555           - TabControl (TabAlignment.Top only, other will follow)
11556         * ThemeEngine.cs: Add theme nice
11557         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
11558           if enabled
11559
11560 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
11561
11562         * Splitter.cs: Resize docked control and its neighbor.
11563
11564 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
11565         -- Making Windows with Menus layout correctly --
11566         * Form.cs : The first leg of the fix
11567                 Menu setter - adjust Client Size as needed to make space for the menu
11568                 SetClientSizeCore - doesn't call base version to be able to pass the 
11569                         menu handle to XplatUI.CalculateWindowRect
11570         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
11571         * XplatUIX11.cs: The critical second leg of the fix
11572                 GetWindowPos needs to use a recalculated client_rect
11573                 so that resizing the window doesn't break layout of child controls. 
11574                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
11575                 Lots of \t\n killed
11576
11577 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11578
11579         * Label.cs: Now properly recalculates width and height on Font and Text
11580           changes if AutoSize is set
11581
11582 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
11583         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
11584
11585 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
11586
11587         * ImageList.cs: Makes ToString method compatible with MS
11588
11589 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
11590
11591         * MenuAPI.cs: fixes bug 75716
11592
11593 2005-08-11 Umadevi S <sumadevi@novell.com>
11594         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
11595
11596 2005-08-11 Umadevi S <sumadevi@novell.com>
11597         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
11598
11599 2005-08-10  Umadevi S <sumadevi@novell.com>
11600         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
11601
11602 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
11603
11604         * Menu.cs: fixes bug 75700
11605         * MenuAPI.cs: fixes navigation issues
11606
11607 2005-08-09  Umadevi S <sumadevi@novell.com>
11608         * CheckedListBox.cs - simple fix for GetItemChecked.
11609
11610 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
11611
11612         * ComboBox.cs: Serveral fixes
11613         * ListBox.cs: Serveral fixes
11614
11615 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
11616
11617         * ComboBox.cs: Fixes FindString methods and GetItemHeight
11618         * ListBox.cs: Fixes FindString methods
11619
11620 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
11621
11622         * DataGrid.cs: fixes bugs exposed by new tests
11623
11624 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
11625
11626         * Mime.cs: Compile Mono assembly references only if compiling
11627           with Mono (Allows to build with VS.Net again)
11628
11629 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
11630
11631         * Control.cs (PaintControlBackground): Draw background image
11632         corrrectly.
11633         (CheckForIllegalCrossThreadCalls): Stubbed.
11634         
11635         * Form.cs (OnCreateControl): Center when should be centered.
11636         
11637         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
11638
11639 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
11640
11641         * Binding.cs: Binding to properties should be case unsensitive
11642
11643 2005-07-18 vlindos@nucleusys.com
11644
11645         * DataGrid.cs: fixes setmember order
11646
11647 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
11648
11649         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
11650         * FileDialog.cs: FileDialog is now resizable and uses the new
11651           MimeIconEngine
11652
11653 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
11654
11655         * DataGridTextBoxColumn.cs: default value
11656         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
11657         * GridTableStylesCollection.cs: fixes checking MappingName
11658         * DataGridDrawingLogic.cs: fixes drawing logic issues
11659         * DataSourceHelper.cs: rewritten to make compatible with more data sources
11660         * DataGrid.cs: fixes    
11661
11662 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
11663
11664         * MimeGenerated.cs: Use case sensitive comparer for
11665           NameValueCollections
11666
11667 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
11668
11669         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
11670         * ThemeWin32Classic.cs: bug fixes, code refactoring
11671         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
11672         * DataGrid.cs: bug fixes, code refactoring
11673         * DataGridTextBox.cs: bug fixes, code refactoring
11674         * DataGridColumnStyle.cs:  bug fixes, code refactoring
11675         * Theme.cs:  bug fixes, code refactoring
11676
11677 2005-07-01  Peter Bartok  <pbartok@novell.com> 
11678
11679         * TextControl.cs: Quick fix for the reported crash on ColorDialog
11680           and other text box usage
11681
11682 2005-07-01  Jackson Harper  <jackson@ximian.com>
11683
11684         * TabControl.cs: Make sure the bottom of the tab covers the pages
11685         border.
11686
11687 2005-06-30  Peter Bartok  <pbartok@novell.com> 
11688
11689         * Form.cs (ShowDialog): Assign owner of the dialog
11690         * TextBoxBase.cs: Always refresh caret size when deleting, caret
11691           might have been moved to a tag with different height
11692
11693 2005-06-30  Jackson Harper  <jackson@ximian.com>
11694
11695         * Form.cs: Don't create an infinite loop when setting focus
11696         * MenuItem.cs: Don't dirty the parents if we don't have any
11697
11698 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
11699
11700         * LibSupport.cs: Rename
11701
11702 2005-06-29  Peter Bartok  <pbartok@novell.com>
11703
11704         * TextBoxBase.cs: Re-align caret after deleting a character
11705         * TextControl.cs:
11706           - DeleteChars(): Ensure that tag covers the provided position
11707           - StreamLine(): Drop reference for dropped tag
11708
11709 2005-06-29  Peter Bartok  <pbartok@novell.com> 
11710
11711         * TextControl.cs: 
11712           - Selections now work properly, anchoring at the initial location
11713             and properly extending in either direction (SetSelectionToCaret(),
11714             SetSelectionStart() and SetSelectionEnd())
11715           - No longer redraws the whole control on selection change, now
11716             calculates delta between previous and new selection and only
11717             invalidates/redraws that area
11718           - Fixed FindPos() math off-by-one errors
11719           - Changed DeleteChars() to verify the provided tag covers the
11720             provided position, selections may have a tag that doesn't cover
11721             the position if the selection is at a tag border
11722           - Fixed off-by-one errors in DeleteChars()
11723           - Added missing streamlining check in DeleteChars() to remove
11724             zero-length tags
11725           - Implemented Invalidate() method, now properly calculates exposures
11726             between two given lines/positions
11727           - Implemented SetSelection()
11728           - Obsoleted and removed FixupSelection()
11729           - Improved RecalculateDocument() logic, removing code duplication
11730
11731 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11732
11733         * LibSupport.cs: changes to match different input/output arguments.
11734
11735 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11736
11737         * LibSupport.cs: added libsupport.so init routine.
11738
11739 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
11740         
11741         * ControlBindingsCollection.cs
11742                 - Throws an exception on null datasource when adding
11743                 - Checks for duplicated bindings when adding
11744
11745 2005-06-28  Jackson Harper  <jackson@ximian.com>
11746
11747         * TreeView.cs (OnKeyDown): Support left and right properly
11748         (navigates as well as expanding and collapsing.
11749         - Add support for Multiply, this expands all the selected nodes
11750         children.
11751         - Fix some tabbing.
11752
11753 2005-06-28  Jackson Harper  <jackson@ximian.com>
11754
11755         * TreeView.cs: Implement keyboard navigation, currently supports,
11756         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
11757         support for toggling checkboxes with the space bar.
11758
11759 2005-06-28  Jackson Harper  <jackson@ximian.com>
11760
11761         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
11762         tree.
11763
11764 2005-06-28  Jackson Harper  <jackson@ximian.com>
11765
11766         * TreeView.cs: Add missing event.
11767
11768 2005-06-27  Peter Bartok  <pbartok@novell.com> 
11769
11770         * TextControl.cs:
11771           - Made line ending size configurable (now allows for counting 
11772             lineendings as \n or \r\n)
11773           - Added margin to viewport to keep caret visible on right side
11774           - Fixed translation routines for line/pos to documentpos to consider
11775             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
11776           - Fixed some line-endings to be unix style
11777           - Fixed Document.FormatText to perform it's calculations 1-based
11778           - Added descriptions for a few methods that might otherwise get 
11779             used wrong
11780           - Added NOTE section with some basic conventions to remember at 
11781             the top of the file
11782           - Major fixup for RichTextBox selection drawing:
11783             * Fixed crashes when multiple tags on a single line were selected
11784             * fixed selection box drawing not overlaying text
11785             * fixed bogus offset calculation for tags not starting at index 1
11786             * Switched behaviour from using multiple Substrings of a 
11787               StringBuilder.ToString() to using multiple 
11788               StringBuilder.ToString(start, length) statements, hoping this is
11789               faster (kept original version commented out in the code, in case
11790               original version was faster)
11791         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
11792           alignment != Left
11793         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
11794           call it as well
11795
11796 2005-06-27  Jackson Harper  <jackson@ximian.com>
11797
11798         * TabControl.cs: Move to the left and right with the arrow
11799         keys. These keys don't cycle beyond first and last like
11800         tab. Refresh all the tabs when scrolling them to the left or
11801         right.
11802
11803 2005-06-27  Jackson Harper  <jackson@ximian.com>
11804
11805         * TabControl.cs:
11806           - ToString: Added method
11807           - CreateParams: Remove TODO and comment
11808           - OnKeyDown: Cycle through bounds properly.
11809           - SelectedIndex: Scroll to the right or left if we need to
11810           display the newly selected tab.
11811
11812 2005-06-23  Jackson Harper  <jackson@ximian.com>
11813
11814         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
11815         set.
11816
11817 2005-06-23  Jackson Harper  <jackson@ximian.com>
11818
11819         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
11820         CTRL-SHIFT-TAB, and HOME, END are there any others?
11821
11822 2005-06-23  Jackson Harper  <jackson@ximian.com>
11823
11824         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
11825
11826 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11827         
11828         * DataGridTextBoxColumn.cs: fixes and enhancements
11829         * ThemeWin32Classic.cs: fixes and enhancements
11830         * DataGridBoolColumn.cs:  fixes and enhancements
11831         * DataGridDrawingLogic.cs:  fixes and enhancements
11832         * CurrencyManager.cs: fixes and enhancements
11833         * DataGrid.cs: fixes and enhancements
11834         * DataGridColumnStyle.cs:  fixes and enhancements
11835
11836 2005-06-22  Jackson Harper  <jackson@ximian.com>
11837
11838         * TabControl.cs: Add some missing methods that just call into the
11839         base. Make the TabPageCollection's IList interface behave in the
11840         same manner as the MS implementation.
11841
11842 2005-06-22  Peter Bartok  <pbartok@novell.com> 
11843
11844         * TextControl.cs: Added sanity check
11845         * TextBoxBase.cs: 
11846           - Fixed wrapping behaviour, don't set wrap on single line controls
11847             (this fixes the breakage of colordialog introduced in an earlier
11848              checkin)
11849           - Added rudimentary support for autoscrolling right-aligned controls
11850             (still needs fixing, also, center alignment scroll is missing)
11851
11852 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11853         
11854         * ScrollBar.cs: Fixes thumbpos on Maximum values
11855
11856 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
11857         
11858         * PropertyGridView.cs: Pass context information to UITypeEditors 
11859
11860 2005-06-21  Peter Bartok  <pbartok@novell.com> 
11861
11862         * TextBoxBase.cs:
11863           - Now calling PositionCaret with absolute space coordinates
11864           - Enabled vertical scrolling
11865           - Better tracking of scrollbar changes, tied into WidthChange
11866             event
11867           - Improved cursor tracking
11868           - Removed debug output
11869         * TextControl.cs:
11870           - PositionCaret coordinates are now works in absolute space, not 
11871             the canvas
11872           - Improved tracking of document size
11873           - Added events for width and height changes
11874
11875 2005-06-21  Peter Bartok  <pbartok@novell.com>
11876
11877         * Form.cs: Set focus to active control when form is activated
11878         * TextControl.cs: 
11879           - Added word-wrap functionality to RecalculateLine() 
11880           - Added some short function descriptions for VS.Net to aid in
11881             writing dependent controls
11882           - Added Caret property, returning the current coords of the caret
11883           - Added ViewPortWidth and ViewPortHeight properties
11884           - Added Wrap property
11885           - Added CaretMoved event
11886           - Removed some old debug code
11887           - Split() can now create soft splits
11888           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
11889           - Added method to format existing text
11890           - Fixed size/alignment calculations to use viewport
11891           - RecalculateDocument now can handle changing line-numbers while
11892             calculating lines
11893
11894         * TextBox.cs:
11895           - Added some wrap logic, we don't wrap if alignment is not left
11896           - Added casts for scrollbar var, base class switched types to
11897             also support RichTextBoxA
11898           - Implemented handling of scrollbar visibility flags
11899
11900         * TextBoxBase.cs:
11901           - Switched scrollbars type to RichTextBoxScrollBars to support
11902             RichTextBox
11903           - Added tracking of canvas width/height
11904           - Switched scrollbars to be not selectable (to keep focus on text)
11905           - Added central CalculateDocument() method to handle all redraw
11906             requirements
11907           - Added ReadOnly support
11908           - Added WordWrap support
11909           - Fixed handling of Enter key (we now treat it as a DialogKey)
11910           - Fixed caret positioning when h or v scroll is not zero
11911           - Fixed placing/generation of vertical scrollbar
11912           - Added CalculateScrollBars() method to allow updating scrollbar
11913             limits and visibility
11914           - Fixed handling of horizontal scroll
11915           - Added handling of vertical scroll
11916           - Implemented auto-'jump' when caret moves to close to a left or
11917             right border and there is text to be scrolled into view (currently
11918             there's the potential for a stack overflow, until a bug in
11919             scrollbar is fixed)
11920
11921 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
11922         
11923         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
11924
11925 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
11926
11927         * Mime.cs:
11928         - added inodes.
11929         - return application/x-zerosize for files with size zero
11930           (if no extension pattern matches).
11931         - check matches collection for strings too.
11932         - return only the first mime type if the name value
11933           collection has more than one mime type.
11934
11935 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
11936         
11937         * PropertyGrid.cs: Cleaned up some TODOs
11938         * PropertyGridView.cs: Added support for UITypeEditors
11939
11940 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11941         
11942         * DataGrid.cs: clears cached value
11943
11944 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11945
11946         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
11947         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
11948         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
11949         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
11950         
11951 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
11952
11953         * ThemeWin32Classic.cs: fixes colour
11954
11955 2005-06-15  Peter Bartok  <pbartok@novell.com>
11956
11957         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
11958         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
11959         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
11960         * Control.cs: Added some MWFCategory and MWFDescription attributes
11961         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
11962
11963 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
11964
11965         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
11966         usage
11967
11968 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
11969
11970         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
11971         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
11972         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
11973         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
11974         * DataGrid.cs: default datagrid settings for Default Styles, fixes
11975         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
11976
11977 2005-06-13  Jackson Harper  <jackson@ximian.com>
11978
11979         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
11980         isn't printed when the user enables dropping. (X11 does accept
11981         drops).
11982         
11983 2005-06-13  Jackson Harper  <jackson@ximian.com>
11984
11985         * TreeView.cs: Remove some TODOS.
11986
11987 2005-06-13  Jackson Harper  <jackson@ximian.com>
11988
11989         * Form.cs: Hook into the mdi framework.
11990         * MdiClient.cs: Use the base control collections add method so
11991         parents get setup correctly. Set the default back colour and dock
11992         style.
11993         * MdiChildContext.cs: New class, this bad actor handles an
11994         instance of an MDI window. Right now there is only basic
11995         support. You can drag, close, and resize windows. Minimize and
11996         Maximize are partially implemented.
11997
11998 2005-06-13  Jackson Harper  <jackson@ximian.com>
11999
12000         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
12001         freaky when both vals are negative. NOTE: There are probably other
12002         places in XplatUIX11 that this needs to be done.
12003
12004 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
12005
12006         * DataGrid.cs: implement missing methods, move KeyboardNavigation
12007         * DataGridColumnStyle.cs: fixes signature
12008
12009 2005-06-12  Jackson Harper  <jackson@ximian.com>
12010
12011         * XplatUIX11.cs: Use sizing cursors similar to the ones on
12012         windows.
12013
12014 2005-06-11  Jackson Harper  <jackson@ximian.com>
12015
12016         * StatusBarPanel.cs: Signature cleanups. Implement
12017         BeginInit/EndInit.
12018
12019 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
12020
12021         * DataGridTextBoxColumn.cs: Honors aligment
12022         * GridColumnStylesCollection.cs: Contains is case unsensitive
12023         * GridTableStylesCollection.cs: several fixes
12024         * DataGridTableStyle.cs: default column creation
12025         * DataGridDrawingLogic.cs: fixes
12026         * CurrencyManager.cs: ListName property
12027         * DataGrid.cs: multiple styles support
12028         * DataGridColumnStyle.cs: fixes
12029         
12030
12031 2005-06-10  Peter Bartok  <pbartok@novell.com>
12032
12033         * Control.cs(Select): Moved SetFocus call to avoid potential
12034           loops if controls change the active control when getting focus
12035         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
12036           the up/down buttons
12037
12038 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
12039
12040         * ImageListConverter.cs: Implemented
12041
12042 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12043
12044         * MonthCalendar.cs: Wired in NumericUpDown control for year
12045
12046 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
12047
12048         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
12049           DoubleClick events, since they are not meant to be fired.
12050
12051 2005-06-09  Peter Bartok  <pbartok@novell.com>
12052
12053         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
12054           Jonathan's standalone controls into MWF, implemented missing
12055           events, attributes and methods; added xxxAccessible classes
12056         * AccessibleObject.cs: Made fields internal so other classes
12057           can change them if needed
12058
12059 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
12060
12061         * UpDownBase.cs: Complete implementation
12062         * NumericUpDown.cs: Complete implementation
12063         * DomainUpDown.cs: Complete implementation
12064
12065 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
12066
12067         * DataGridTextBoxColumn.cs: drawing fixes
12068         * DataGridCell.cs: fixes ToString method to match MSNet
12069         * DataGridTableStyle.cs: fixes
12070         * DataGridBoolColumn.cs: fixes, drawing
12071         * DataGridDrawingLogic.cs: fixes, new methods
12072         * DataGridTextBox.cs: Keyboard and fixes
12073         * DataGrid.cs:
12074                 - Keyboard navigation
12075                 - Scrolling fixes
12076                 - Row selection (single, multiple, deletion, etc)
12077                 - Lots of fixes
12078         
12079 2005-06-07  Jackson Harper  <jackson@ximian.com>
12080
12081         * ThemeWin32Classic.cs: Clear the background area when drawing
12082         buttons.
12083
12084 2005-06-06  Peter Bartok  <pbartok@novell.com>
12085
12086         * ImageListStreamer.cs: Fixed signature for GetData
12087         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
12088         * ComboBox.cs:
12089           - Added missing ChildAccessibleObject class
12090           - Added missing OnXXXFocus overrides, switched to using those
12091             instead of the event handler
12092         * Control.cs:
12093           - Added Parent property for ControlAccessibleObject
12094           - Fixed signatures
12095           - Fixed attributes
12096           - Added ResetBindings()
12097         * ListBindingConverter.cs: Implemented some methods
12098         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
12099         * ImageList.cs: Implemented basic handle scheme, removed TODOs
12100         * ContainerControl.cs: Fixed signature, now subscribing to the
12101           ControlRemoved event instead of overriding the handler, LAMESPEC
12102         * CurrencyManager.cs: Added missing attribute
12103         * MonthCalendar.cs: Added missing properties
12104
12105 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12106
12107         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
12108         
12109 2005-06-06  Gaurav Vaish and Ankit Jain
12110
12111         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
12112         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
12113         
12114 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
12115
12116         * Control.cs: fixes CreateParams Width / Height.
12117
12118 2005-06-05  Peter Bartok  <pbartok@novell.com>
12119
12120         * Win32DnD.cs: Removed compilation warnings
12121
12122 2005-06-05  Peter Bartok  <pbartok@novell.com>
12123
12124         * Control.cs (CreateParams): Since we don't know if one of the
12125           properties we use is overridden, lets make sure if we fail accessing
12126           we continue with a backup plan
12127
12128 2005-06-05  Peter Bartok  <pbartok@novell.com>
12129
12130         * Win32DnD.cs:
12131           - Removed debug output
12132           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
12133             struct
12134           - Plugged resource leak
12135         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
12136           MS size
12137
12138 2005-06-05  Peter Bartok  <pbartok@novell.com>
12139
12140         * XplatUIWin32.cs: Removed DnD code
12141         * Win32DnD.cs: Implemented drop source and drop target functionality
12142
12143 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12144
12145         * UpDownBase.cs: remove duplicate addition of event, enable some code
12146         that was commented out.
12147         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
12148         Validate input when a key is pressed. It works fine now for every
12149         combination of Hexadecimal. Only missing some drawing love when sharing
12150         space with other controls.
12151
12152 2005-06-04  Peter Bartok  <pbartok@novell.com>
12153
12154         * Control.cs:
12155           - We need to pass a window for DragDrop, so enable callback events
12156           - Added DnD callback events when being a DragSource
12157         * XplatUI.cs (StartDrag): Added window handle argument
12158         * XplatUIDriver.cs (StartDrag): Added window handle argument
12159         * QueryContinueDragEventArgs: Made fields internally accessible so
12160           drivers can set them
12161         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
12162           can set them
12163
12164 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
12165
12166         * DataGridTextBoxColumn.cs: column text editing
12167         * DataGridTableStyle.cs: Respect columns styles created by the user
12168         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
12169         * DataGridBoolColumn.cs: bool column editing
12170         * DataGrid.cs: fixes to scrolling, properties, etc
12171         * DataGridTextBox.cs: handle keyboard
12172         * DataGridColumnStyle.cs: fixes
12173
12174 2005-06-02  Jackson Harper  <jackson@ximian.com>
12175
12176         * ImageListStreamer.cs: Somewhat broken implementation of
12177         GetObjectData. The RLE needs some work to match MS properly.
12178
12179 2005-06-02  Jackson Harper  <jackson@ximian.com>
12180
12181         * X11Dnd.cs: Attempting to keep at least one file in MWF
12182         monostyled.
12183
12184 2005-06-02  Peter Bartok  <pbartok@novell.com>
12185
12186         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
12187           that way
12188
12189 2005-06-02  Peter Bartok  <pbartok@novell.com>
12190
12191         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
12192         * XplatUI.cs: Added DoDragDrop() method
12193         * XplatUIDriver.cs: Added DoDragDrop() method
12194
12195 2005-06-02  Jackson Harper  <jackson@ximian.com>
12196
12197         * Splitter.cs: Implement BorderStyle.
12198
12199 2005-06-02  Jackson Harper  <jackson@ximian.com>
12200
12201         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
12202         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
12203         X11 using XDND.
12204
12205 2005-06-02  Peter Bartok  <pbartok@novell.com>
12206
12207         * DataObject.cs:
12208           - Added Data setter
12209           - Fixed broken insertion code for SetData, now also
12210             overwrites any existing entry of the same format name
12211         * Hwnd.cs: Added list of pointers that automatically gets
12212           freed when the window is disposed
12213         * XplatUI.cs: Call driver initialization method when loading
12214           a driver
12215         * Control.cs:
12216           - OnDragLeave takes EventArgs, not DragEventArgs
12217           - Added setting of WS_EX_ACCEPTFILES style when dropping is
12218             supported
12219           - Forces style update when drop state changes
12220         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
12221           not perfect since we cannot (yet) call the IDataObject.GetData()
12222           method, we keep getting 0x80004005 error, dunno why)
12223
12224 2005-06-02  Peter Bartok  <pbartok@novell.com>
12225
12226         * DragEventArgs.cs: Make fields internal so we can cache the
12227           object and re-set the fields from XplatUI
12228
12229 2005-06-02  Jackson Harper  <jackson@ximian.com>
12230
12231         * Control.cs: Add some internal methods so the DnD subsystem can
12232         raise DnD events. Also call into the driver when AllowDrop is set.
12233         * XplatUI.cs:
12234         * XplatUIDriver.cs: New method for setting whether or not a window
12235         is allowed to accept drag and drop messages.
12236                 
12237 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
12238         
12239         * ScrollBar.cs: Make sure that values sent in Scroll events
12240         are always between Maximum and Minimum.
12241
12242 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
12243
12244         * Menu.cs: Call MenuChanged when menuitem visibility has been
12245         changed.
12246         * MenuItem.cs: Rebuild menu when item is (not) visible.
12247         * MainMenu.cs: MainMenu has special MenuChanged.
12248         * Theme.cs: Caption and FrameBorderSize are not fixed.
12249         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
12250         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
12251         * XplatUIX11.cs,
12252         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
12253         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
12254
12255 2005-05-30  Jackson Harper  <jackson@ximian.com>
12256
12257         * DataFormat.cs: We can't statically initialize this stuff because
12258         it calls into the xplatui and could create a loop. So we lazy init
12259         it.
12260
12261 2005-05-28  Jackson Harper  <jackson@ximian.com>
12262
12263         * Control.cs: Proper implementation of Product(Name/Version).
12264
12265 2005-05-27  Jackson Harper  <jackson@ximian.com>
12266
12267         * DataObject.cs: Dont crash if no data is found.
12268
12269 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
12270         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
12271                 as per status page, guessing it should be set to true
12272
12273 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
12274
12275         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
12276         * DataGridTableStyle.cs: set proper formatting text, def header text
12277         * ThemeWin32Classic.cs: new themable paramaters
12278         * DataGridBoolColumn.cs: paint check box, get data, fixes
12279         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
12280         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
12281         * DataGridColumnStyle.cs: fixes
12282         * Theme.cs: new themable paramaters
12283                 
12284 2005-05-26  Peter Bartok  <pbartok@novell.com>
12285
12286         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
12287
12288 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12289         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
12290
12291 2005-05-24  Peter Bartok  <pbartok@novell.com>
12292
12293         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
12294           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
12295           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
12296           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
12297           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
12298           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
12299           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
12300           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
12301           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
12302           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
12303           missing attributes, etc
12304         * DataGridPreferredColumnWidthTypeConverter.cs: Added
12305
12306 2005-05-24  Peter Bartok  <pbartok@novell.com>
12307
12308         * Help.cs: Added, implemented trivial functions, throws up MessageBox
12309           when user tries to get help
12310         * DataObject.cs, DataFormats.cs, LinkArea.cs,
12311           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
12312           to suppress warnings
12313         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
12314           avoid unreachable code warning
12315
12316 2005-05-20  Peter Bartok  <pbartok@novell.com>
12317
12318         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
12319
12320 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12321
12322         * DataGridTextBoxColumn.cs: Basic painting methods
12323         * DataGridTableStyle.cs: Set table style in the column
12324         * ThemeWin32Classic.cs: Use Theme for colors
12325         * DataGridDrawingLogic.cs: Implement more drawing
12326         * DataGrid.cs: drawing, theming, enhacements, fixes
12327         * DataGridColumnStyle.cs: fixes, drawing
12328         * Theme.cs: theming for Datagrid
12329
12330 2005-05-20  Peter Bartok  <pbartok@novell.com>
12331
12332         * Cursor.cs: Implemented GetObjectData() method
12333
12334 2005-05-20  Peter Bartok  <pbartok@novell.com>
12335
12336         * Cursors.cs: Added setting of cursor name
12337         * Cursor.cs:
12338           - Implemented constructors
12339           - Implemented Draw and DrawStretched
12340           - Implemented Current property
12341           - Implemented == and != operators
12342           - Implemented Dispose()
12343           - Implemented ToString
12344           - Added missing attributes
12345         * XplatUIX11.cs:
12346           - Added missing reset for OverrideCursor when DoEvents is called
12347           - Fixed creation of cursor, logic was wrong
12348         * XplatUIWin32.cs:
12349           - Added missing reset for OverrideCursor when DoEvents is called
12350           - Fixed creation of cursor, bit arrays were swapped
12351         * Clipboard.cs: Removed obsolete MonoTODO attribute
12352
12353 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12354
12355         * ComboBox.cs: fixes OnSelectedItemChanged
12356         * ControlBindingsCollection.cs: fixes item range check
12357
12358 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
12359
12360         * UpDownBase.cs:
12361                 - Calc preferred height properly
12362                 - Implement missing properties
12363                 
12364         * NumericUpDown.cs: Implement missing events
12365
12366 2005-05-19  Jackson Harper  <jackson@ximian.com>
12367
12368         * TabControl.cs: New method that resizes the tab pages before
12369         redrawing them. This as needed as the control is double buffered
12370         and sizing will not be recalculated unless ResizeTabPages is
12371         called.
12372         * TabPage.cs: Set base.Text instead of Text in the constructor so
12373         that UpdateOwner does not get called. Use the new Redraw method of
12374         TabControl instead of Refresh so the sizing is recalculated.
12375         * ThemeWin32Classic.cs: Draw the text for button tabs.
12376
12377 2005-05-19  Jackson Harper  <jackson@ximian.com>
12378
12379         * Control.cs: Paint control background images. Fix typo where
12380         PaintControlBackground was not getting called correctly.
12381
12382 2005-05-19  Peter Bartok  <pbartok@novell.com>
12383
12384         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
12385           I can investigate, apparently I broke FileDialog
12386
12387 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
12388
12389         * AxHost.cs: Some simple properties.
12390         * Control.cs: window must be accessible after ctor.
12391         * Form.cs: Added TransparencyKey property.
12392         * TextBoxBase.cs: Implemented Clear. Text property can be null.
12393         * XplatUIWin32.cs: SetBorderStyle implemented.
12394
12395 2005-05-18  Peter Bartok  <pbartok@novell.com>
12396
12397         * DataObject.cs: Entries are not global but particular to the
12398           DataObject, now it behaves that way
12399         * XplatUIWin32.cs: Implemented Clipboard methods
12400         * Clipboard.cs: Implemented
12401         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
12402         * XplatUIOSX.cs: Updated to final clipboard prototypes
12403         * XplatUIX11.cs: Implemented Clipboard methods
12404         * XplatUIDriver.cs: Updated to final clipboard prototypes
12405         * XplatUIStructs.cs:
12406           - Added BITMAPINFOHEADER struct
12407           - Added ClipboardFormats enum
12408         * X11Structs.cs:
12409           - Added ClipboardStruct
12410           - Added Atom enum items for clipboard types
12411           - Fixed atom types for Selection event structures
12412         * DataFormats.cs:
12413           - Added internal properties and methods for drivers to enumerate
12414             all known formats
12415           - Switched initialization method to allow drivers to assign their
12416             own IDs even for the MS predefined clipboard IDs
12417         * XplatUI.cs: Updated to final clipboard interface
12418
12419 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12420         * PropertyGridView.cs: Fixed compiler warnings.
12421
12422 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
12423         * PropertyGrid.cs: Added some event calls
12424         * PropertyGridView.cs: Change drawing code to use double buffering
12425         * PropertyGridTextBox.cs: Changed Text property name
12426         * GridItem.cs: Added Bounds property.
12427         * GridEntry.cs: Added Bounds property.
12428
12429 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
12430
12431         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
12432         since GetType() may not return the correct type if the object is
12433         a remoting proxy.
12434
12435 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
12436
12437         * TreeNodeCollection.cs: fixes get/set item ranges
12438         
12439 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12440
12441         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
12442                 
12443 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
12444
12445         * ComboBox.cs: Fix item range comparation
12446         * ListView.cs: Fix item range comparation
12447
12448 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12449
12450         * FontDialog.cs:
12451           - Clear example panel when OnPaint is called
12452           - Better solution for displaying the example panel text
12453           - Select default indexes in the ListBoxes
12454
12455 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12456
12457         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
12458
12459 2005-05-11  Peter Bartok  <pbartok@novell.com>
12460
12461         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
12462         * SelectionRangeConverter.cs: Implemented
12463         * PropertyGrid.cs: Fixed attribute value
12464         * Control.cs:
12465           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
12466           - Added Sebastien Pouliot's CAS Stack Propagation fixes
12467         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
12468           that's common to all drivers. First methods to go there are
12469           Sebastien Pouliot's CAS Stack Propagation helper methods
12470         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
12471           Sebastien Pouliot for CAS Stack Propagation
12472
12473 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
12474
12475         * OSXStructs.cs:
12476           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
12477
12478 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
12479
12480         * DataGridTextBoxColumn.cs: fixed some members
12481         * GridColumnStylesCollection.cs: indexed column is case insensitive
12482         * DataGridTableStyle.cs: fixes
12483         * ThemeWin32Classic.cs: add new theme parameter
12484         * Theme.cs: add new theme parameter
12485         * DataGridDrawingLogic.cs: Datagrid's drawing logic
12486         * DataGrid.cs: fixes, new internal properties, etc.
12487         * DataGridColumnStyle.cs: allows to set grid value
12488         *
12489
12490 2005-05-10  Peter Bartok  <pbartok@novell.com>
12491
12492         * AccessibleObject.cs:
12493           - Removed MonoTODO attribute on help, method is correct
12494           - Fixed Bounds property
12495         * AxHost.cs: Moved MonoTODO
12496         * ButtonBase.cs: Now setting AccessibleObject properties
12497         * RadioButton.cs: Setting proper AccessibleObject role
12498         * CheckBox.cs: Setting proper AccessibleObject role
12499         * ControlBindingsCollection.cs: Added properties, methods and attributes
12500         * DataFormats.cs: Fixed awkward internal API, and changed to enable
12501           userdefined DataFormats.Format items as well
12502         * ListControl.cs: Removed data_member from the public eye
12503         * OpenFileDialog.cs:
12504           - Made class sealed
12505           - Added missing attributes
12506         * SaveFileDialog.cs: Added missing attributes
12507         * ImageListStreamer.cs: Fixed code that caused warnings
12508         * LinkLabel.cs: Removed unreachable code
12509         * TreeView.cs: Fixed code that caused warnings
12510         * PropertyGridView.cs: Fixed code that caused warnings
12511         * GridColumnStylesCollection.cs: Added missing attributes
12512         * GridTableStylesCollection: Added missing attribute
12513         * PropertyManager: Added .ctor
12514         * SecurityIDType: Added
12515         * DataObject.cs: Implemented class
12516         * LinkArea.cs: Added missing attribute
12517
12518 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
12519
12520         * RadioButton.cs: call base method to allow to fire OnClick event
12521         * UpDownBase.cs: OnMouseUp call base method
12522         * CheckedListBox.cs: call base method before returning
12523         * TrackBar.cs: call base method before returning
12524         
12525
12526 2005-05-10  Peter Bartok  <pbartok@novell.com>
12527
12528         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
12529           for messages
12530
12531 2005-05-10  Peter Bartok  <pbartok@novell.com>
12532
12533         * DataFormats.cs: Implemented
12534         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
12535           XplatUIX11.cs: Added Clipboard APIs
12536         * XplatUIWin32.cs: Implemented Clipboard APIs
12537         * FolderBrowserDialog.cs: Added missing event, attributes
12538
12539 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
12540
12541         * CheckBox.cs: call base method to allow to fire OnClick event
12542
12543 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
12544
12545         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
12546
12547 2005-05-06  Peter Bartok  <pbartok@novell.com>
12548
12549         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
12550         * Screen.cs: Implemented
12551         * HelpNavigator.cs: Added
12552         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
12553           property
12554         * HelpProvider.cs: Implemented all we can do until we have a CHM
12555           help library (which means that "What's This" does work now)
12556
12557 2005-05-06  Jackson Harper  <jackson@ximian.com>
12558
12559         * XplatUIX11.cs: Fix waking up the main loop.
12560                 
12561 2005-05-05  Peter Bartok  <pbartok@novell.com>
12562
12563         * XplatUI.cs: Updated revision
12564         * Form.cs: Removed enless loop
12565         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
12566         * Label.cs (OnPaint): Added call to base.OnPaint()
12567         * ToolTip.cs: Made ToolTipWindow reusable for other controls
12568         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
12569         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
12570         * AxHost.cs: Added
12571         * ButtonBase.cs: Moved base.OnPaint() call to end of method
12572         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
12573           to ToolTip.ToolTipWindow for drawing and size methods; this allows
12574           reuse of ToolTipWindow by other controls
12575         * SizeGrip.cs: Moved base.OnPaint() call to end of method
12576         * XplatUIX11.cs: Now clipping drawing area (experimental)
12577         * PictureBox.cs: Moved base.OnPaint() call to end of method
12578         * Theme.cs: Fixed ToolTip abstracts to match new format
12579         * ErrorProvider.cs: Implemented
12580
12581 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
12582
12583         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
12584         * LinkLabel.cs:
12585                 - Adds cursors
12586                 - Handles focus
12587                 - Implements LinkBehavior
12588                 - Fixes many issues
12589
12590 2005-05-03  Jackson Harper  <jackson@ximian.com>
12591
12592         * ListView.cs: Calculate the scrollbar positioning on resize and
12593         paint, so they get put in the correct place.
12594
12595 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
12596
12597         * ColorDialogs.cs: The small color panels are now handled by
12598           SmallColorControl. This fixes drawing of the focus rectangle
12599           and adds a 3D border.
12600
12601 2005-05-03  Peter Bartok  <pbartok@novell.com>
12602
12603         * Control.cs: Modified version of Jonathan Chamber's fix for
12604           double-buffering
12605
12606 2005-05-03  Jackson Harper  <jackson@ximian.com>
12607
12608         * ListView.cs: Remove redraw variable. Control now handles whether
12609         or not a redraw needs to be done, and will only raise the paint
12610         event if redrawing is needed.
12611
12612 2005-05-03  Jackson Harper  <jackson@ximian.com>
12613
12614         * Splitter.cs: No decorations for the splitter form. Cache the
12615         hatch brush.
12616
12617 2005-05-03  Jackson Harper  <jackson@ximian.com>
12618
12619         * TreeView.cs: Use dashed lines to connect nodes. Use the
12620         ControlPaint method for drawing the focus rect instead of doing
12621         that in treeview.
12622
12623 2005-05-02  Peter Bartok  <pbartok@novell.com>
12624
12625         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
12626
12627 2005-04-29  Jackson Harper  <jackson@ximian.com>
12628
12629         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
12630         entire image buffer. Just clear the clipping rectangle.
12631
12632 2005-04-29  Jackson Harper  <jackson@ximian.com>
12633
12634         * ThemeWin32Classic.cs: Don't draw list view items that are
12635         outside the clipping rectangle.
12636
12637 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
12638
12639         * ListBox.cs: added horizontal item scroll
12640
12641 2005-04-29  Jackson Harper  <jackson@ximian.com>
12642
12643         * ThemeWin32Classic.cs: Remove some old debug code that was
12644         causing flicker with the new double buffering code.
12645
12646 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
12647
12648         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
12649         behave like combobox and comboboxlist (still not sure if this is
12650         correct though).
12651
12652 2005-04-28  Jackson Harper  <jackson@ximian.com>
12653
12654         * ThemeWin32Classic.cs: Don't fill the middle of progress
12655         bars. This fills areas outside of the clip bounds that don't need
12656         to be filled.
12657
12658 2005-04-28  Jackson Harper  <jackson@ximian.com>
12659
12660         * Control.cs: Don't expose functionality to touch the image buffers.
12661         * ProgressBar.cs:
12662         * ListView.cs: We do not need to (and no longer can) manipulate
12663         the image buffers directly. All of this is handled by Control.
12664
12665 2005-04-28  Peter Bartok  <pbartok@novell.com>
12666
12667         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
12668           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
12669           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
12670
12671 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
12672
12673         * Combobox:
12674                 - Adjust control's height for non-simple comboboxes (bug fix)
12675                 - Remove dead code
12676         * MenuAPI.cs: remove unused var
12677         * ScrollBar.cs: remove unsed var
12678                  
12679         * ListBox.cs: unselect items when clearing
12680
12681 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
12682
12683         * ListControl.cs: honors OnPositionChanged and default Selected Item
12684         * ListBox.cs: unselect items when clearing
12685
12686 2005-04-27  Jackson Harper  <jackson@ximian.com>
12687
12688         * X11Keyboard.cs: Initialize a default keyboard and give a warning
12689         if a "correct" keyboard is not found. This will make us not crash,
12690         but might give some users bad keyboard layouts...seems to be the
12691         same thing rewind does.
12692
12693 2005-04-27  Jackson Harper  <jackson@ximian.com>
12694
12695         * BindingManagerBase.cs: Attach the current/position changed
12696         handlers to their respective events.
12697
12698 2005-04-27  Jackson Harper  <jackson@ximian.com>
12699
12700         * Control.cs: Make sure that the first WM_PAINT does a full draw,
12701         not just a blit.
12702         * ThemeWin32Classic.cs: Don't fill the background for picture
12703         boxes. This could overright user drawing.
12704         * ComboBox.cs: Just fill the clipping rect not the entire client
12705         rect when drawing the background. This prevents pieces of the
12706         image buffer from getting overwritten and is theoretically faster.
12707
12708 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
12709
12710         * ComboBox.cs: Databinding support fixes, fire missing events
12711         * ListControl.cs: implement missing methods and properties, fixes
12712         * ThemeWin32Classic.cs: Databiding support on Drawing
12713         * CheckedListBox.cs: Databinding support fixes, fire missing events
12714         * ListBox.cs: Databinding support fixes, fire missing events
12715         
12716 2005-04-25  Peter Bartok  <pbartok@novell.com>
12717
12718         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
12719
12720 2005-04-25  Jackson Harper  <jackson@ximian.com>
12721
12722         * TreeView.cs: Use the horizontal scrollbars height not width when
12723         determining how much of the client area is available.
12724
12725 2005-04-25  Jackson Harper  <jackson@ximian.com>
12726
12727         * Control.cs: Double buffering is handled differently now. As per
12728         the spec, the extra buffer is created in the WM_PAINT message and
12729         passed down to the control's drawing code.
12730         * GroupBox.cs:
12731         * Label.cs:
12732         * CheckBox.cs:
12733         * ProgressBar.cs:
12734         * RadioButton.cs:
12735         * ColorDialog.cs:
12736         * ComboBox.cs:
12737         * PropertyGridView.cs:
12738         * UpDownBase.cs:
12739         * MessageBox.cs:
12740         * MenuAPI.cs:
12741         * ListView.cs:
12742         * ButtonBase.cs:
12743         * SizeGrip.cs:
12744         * ScrollBar.cs:
12745         * ListBox.cs:
12746         * TrackBar.cs:
12747         * ToolBar.cs:
12748         * PictureBox.cs:
12749         * DateTimePicker.cs:
12750         * StatusBar.cs:
12751         * TreeView.cs: Update to new double buffering system.
12752         * MonthCalendar.cs: Uncomment block, as Capture is now
12753         working. Update to new double buffering
12754         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
12755         * PaintEventArgs.cs: New internal method allows us to set the
12756         graphics object. This is used for double buffering.
12757         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
12758         rectangle. The internal paint_area var has been removed from
12759         StatusBar. The clipping rect should be used instead.
12760         * Theme.cs: Give the PictureBox drawing method a clipping rect.
12761         * TabPage.cs: The RefreshTabs method was removed, so just call the
12762         tab controls Refresh method now.
12763         * TabControl.cs: Update to new double buffering. Make sure the
12764         handle is created before sizing the tab pages, otherwise we will
12765         get stuck in a loop.
12766
12767 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
12768
12769         * LinkLabel.cs: Fix typo, bug #74719; patch
12770           from Borja Sanchez Zamorano
12771
12772 2005-04-22  Jackson Harper  <jackson@ximian.com>
12773
12774         * TreeNode.cs: Implement Handle stuff.
12775         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
12776
12777 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
12778
12779         * DataGridTextBoxColumn.cs: call base constructors, fixes
12780         * GridColumnStylesCollection.cs: missing events, methods, and functionality
12781         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
12782         * DataGridTableStyle.cs: implements create default column styles
12783         * DataGridBoolColumn.cs: which types can handle
12784         * DataGrid.cs: missing methods, fixes, new functionality
12785         * DataGridColumnStyle.cs: fixes
12786
12787 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
12788         * FolderBrowserDialog.cs:
12789         - Use a thread to fill the TreeView
12790         - Adjusted some sizes
12791
12792 2005-04-19  Peter Bartok  <pbartok@novell.com>
12793
12794         * LinkLabel.cs: (Re-)create the pieces when setting the Text
12795           property. Fixes #74360.
12796
12797 2005-04-19  Jackson Harper  <jackson@ximian.com>
12798
12799         * XEventQueue.cs: Lock when getting the lockqueue size.
12800         * PictureBox.cs: Call base OnPaint
12801         
12802 2005-04-19  Peter Bartok  <pbartok@novell.com>
12803
12804         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
12805           messages were no longer being processed (this broke BeginInvoke)
12806
12807           
12808 2005-04-18  Jackson Harper  <jackson@ximian.com>
12809
12810         * TreeView.cs: buglet that caused node images to get drawn
12811         regardless of whether or not they were in the clipping rectangle.
12812
12813 2005-04-18  Jackson Harper  <jackson@ximian.com>
12814
12815         * CurrencyManager.cs: There are four rules for GetItemProperties:
12816         - If the type is an array use the element type of the array
12817         - If the type is a typed list, use the type
12818         - If the list contains an Item property that is not an object, use
12819         that property
12820         - use the first element of the list if there are any elements in
12821         the list.
12822         
12823 2005-04-17  Jackson Harper  <jackson@ximian.oom>
12824
12825         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
12826         click. This handles offsets for scrolling properly and reduces
12827         memory. Also fixed GetNode to not offset now that TopNode works
12828         properly.
12829         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
12830         
12831 2005-04-17  Jackson Harper  <jackson@ximian.com>
12832
12833         * CursorConverter.cs: Initial implementation.
12834
12835 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12836
12837         * ListControl.cs: work towards complex data binding support on ListControl
12838         * CurrencyManager.cs: work towards complex data binding support on ListControl
12839         * ListBox.cs: work towards complex data binding support on ListControl
12840
12841
12842 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12843
12844         * GridTableStylesCollection.cs: fixes name and constructor
12845         * DataGridTableStyle.cs: fixes
12846         * DataGridBoolColumn.cs: fixes names and constructors
12847         * DataGrid.cs: define methods and properties. Some init implementations
12848         * DataGridCell.cs: define methods and properties. Some init implementations
12849         * GridTablesFactory.cs: Define methods and properties
12850
12851 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
12852
12853         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
12854         graphics port changes.  We still want the coordinates in global screen
12855         coordinates.
12856
12857 2005-04-14  Jackson Harper  <jackson@ximian.com>
12858
12859         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
12860         check plus minus or checkbox clicks unless those features are enabled.
12861
12862 2005-04-14  Jackson Harper  <jackson@ximian.com>
12863
12864         * TreeView.cs: Add methods for setting the top and bottom visible
12865         nodes. TreeNode::EnsureVisible uses these methods.
12866         * TreeNode.cs: Implement EnsureVisible
12867
12868 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
12869
12870         * Form.cs: Pospone menu assignation if the window has not been created yet
12871         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
12872         size and position
12873
12874 2005-04-12  Jackson Harper  <jackson@ximian.com>
12875
12876         * TreeView.cs: Set the TopNode properly when scrolling
12877         occurs. This has the added benifit of reducing the amount of
12878         walking that needs to be done when drawing. Also removed an old
12879         misleading TODO.
12880         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
12881         
12882 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
12883
12884         * Timer.cs: fixes interval setting when the timer is already enabled
12885         
12886 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
12887
12888         * FolderBrowserDialog.cs: First approach
12889
12890 2005-04-09  Peter Bartok  <pbartok@novell.com>
12891
12892         * FolderBrowserDialog: Added
12893
12894 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
12895
12896         * LinkLabel.cs: move drawing code into the theme
12897         * ThemeWin32Classic.cs: drawing code and painting background bugfix
12898         * Theme.cs: define DrawLinkLabel method
12899
12900 2005-04-05  Jackson Harper  <jackson@ximian.com>
12901
12902         * BindingContext.cs: Use weak references so these bad actors don't
12903         stay alive longer then they need to.
12904
12905 2005-04-05  Jackson Harper  <jackson@ximian.com>
12906
12907         * ListControl.cs: Basic implementation of complex databinding.
12908         * ComboBox.cs:
12909         * ListBox.cs: Add calls to ListControl databinding methods.
12910
12911 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
12912
12913         * FileDialog.cs:
12914           - Don't change PopupButtonState to Normal when the
12915             PopupButton gets pressed several times.
12916           - Renamed ButtonPanel to PopupButtonPanel
12917
12918 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
12919
12920         * ColorDialog.cs: Use cached objects instead of creating them
12921         * LinkLabel.cs: Use cached objects instead of creating them
12922         * Splitter.cs: Use cached objects instead of creating them
12923         * FontDialog.cs: Use cached objects instead of creating them
12924         * PropertyGridView.cs: Use cached objects instead of creating them
12925         * MessageBox.cs: Use cached objects instead of creating them
12926         * FileDialog.cs: Use cached objects instead of creating them
12927         * ThemeWin32Classic.cs: Use cached objects instead of creating them
12928         * TreeView.cs: Use cached objects instead of creating them
12929         
12930 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
12931
12932         * Control.cs: use Equals to compare the font since no == op
12933         * ScrollBar.cs: use Equals to compare the font since no == op
12934
12935 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
12936
12937         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
12938
12939 2005-04-01  Jackson Harper  <jackson@ximian.com>
12940
12941         * Binding.cs: Implement IsBinding.
12942         * BindingManagerBase.cs:
12943         * PropertyManager.cs:
12944         * CurrencyManager.cs: Add IsSuspended property.
12945
12946 2005-04-01  Jackson Harper  <jackson@ximian.com>
12947
12948         * Binding.cs: Had some IsAssignableFrom calls backwards.
12949
12950 2005-04-01  Jackson Harper  <jackson@ximian.com>
12951
12952         * Binding.cs: Handle null data members when pulling data.
12953         * PropertyManager.cs: Handle the data member being a property that
12954         does not exist.
12955
12956 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12957
12958         * DataGridTextBoxColumn.cs: fixes signature
12959         * DataGrid.cs: calls right constructor
12960
12961 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12962
12963         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
12964         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
12965         * GridTableStylesCollection.cs: implements GridTableStylesCollection
12966         * DataGridTableStyle.cs: implements DataGridTableStyle
12967         * DataGridBoolColumn.cs: implements DataGridBoolColumn
12968         * DataGridTextBox.cs: implements DataGridTextBox
12969         * DataGridColumnStyle.cs: implements DataGridColumnStyle
12970
12971 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
12972
12973         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
12974
12975 2005-03-29  Peter Bartok  <pbartok@novell.com>
12976
12977         * Application.cs:
12978           - Properly implemented CompanyName property
12979           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
12980             returns a path that includes CompanyName, ProductName and
12981             Version (fixes bug #70330)
12982
12983 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
12984
12985         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
12986           fixes bug #72588.
12987
12988 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12989
12990         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
12991         
12992           - Added ReadOnly CheckBox
12993           - Further refactoring: moved some code from Open-/SaveFileDialog
12994             to FileDialog
12995
12996 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12997
12998         * OpenFileDialog.cs: Fixed CheckFileExists
12999         * FileDialog.cs:
13000           Moved FileView and DirComboBox outside FileDialog class.
13001           They can now be used outside FileDialog
13002
13003 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13004
13005         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
13006         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
13007
13008 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
13009
13010         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13011           - Added missing CreatePrompt property in SaveDialog
13012           - Overall SaveDialog handling should be better now
13013           - Added non standard ShowHiddenFiles property
13014           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
13015           - Added InitialDirectory and RestoreDirectory support
13016
13017 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
13018
13019         * FileDialog.cs: Made dirComboBox usable
13020
13021 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
13022
13023         * FileDialog.cs: Added Filter support (case sensitiv)
13024
13025 2005-03-24  Jackson Harper  <jackson@ximian.com>
13026
13027         * TabControl.cs: Need a couple more pixels for the lines.
13028
13029 2005-03-23  Jackson Harper  <jackson@ximian.com>
13030
13031         * TabControl.cs: Give the tab page focus when it is selected.
13032
13033 2005-03-23  Jackson Harper  <jackson@ximian.com>
13034
13035         * TabControl.cs: Account for the drawing of tabs borders when
13036         invalidating. If the slider was clicked dont do click detection on
13037         the tabs.
13038
13039 2005-03-23  Jackson Harper  <jackson@ximian.com>
13040
13041         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
13042
13043 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
13044
13045         * CategoryGridEntry.cs: Added
13046         * GridItem.cs: Added helper properties
13047         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
13048         * GridEntry.cs: Updated code for collection
13049         * PropertyGrid.cs: Cleaned up some formatting
13050         * PropertyGridView.cs: Added drop down functionality for enums.
13051         * GridItemCollection.cs: Added enumerator logic
13052         * PropertyGridEntry.cs: Added
13053
13054 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13055
13056         * FileDialog.cs:
13057           - Removed unnecessary commented code
13058           - Fixed handling for entering the filename manually in the combobox
13059
13060 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
13061
13062         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
13063
13064 2005-03-18  Peter Bartok  <pbartok@novell.com>
13065
13066         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
13067           them being touching the border
13068
13069 2005-03-18  Peter Bartok  <pbartok@novell.com>
13070
13071         * TextControl.cs: Quick hack to center text better
13072
13073 2005-03-18  Peter Bartok  <pbartok@novell.com>
13074
13075         * ControlPaint.cs:
13076           - Don't throw NotImplemented exceptions, just print a notice once
13077             instead (requested by Miguel). This makes running existing SWF
13078             apps a bit easier
13079         * Control.cs:
13080           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
13081           - Added context menu trigger on right click
13082         * Panel.cs: Trigger invalidate on resize
13083         * StatusBar.cs:
13084           - Removed old double-buffer drawing
13085           - Added ResizeRedraw style to force proper update of statusbar
13086         * ListView.cs:
13087           - Removed debug output
13088         * ThemeWin32Classic.cs:
13089           - Fixed drawing of status bar, now draws Text property if there
13090             are no defined panels
13091
13092 2005-03-18  Jackson Harper  <jackson@ximian.com>
13093
13094         * ImageList.cs: When the image stream is set pull all the images
13095         from it.
13096         * ImageListStreamer.cs: Implement reading image list streams.
13097
13098 2005-03-18  Peter Bartok  <pbartok@novell.com>
13099
13100         * ThemeWin32Classic.cs (DrawPictureBox):
13101           - Fixed calculations for centered drawing
13102           - Fixed drawing for normal mode, not scaling the image on normal
13103
13104 2005-03-18  Peter Bartok  <pbartok@novell.com>
13105
13106         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
13107           textbox
13108         * FileDialog.cs:
13109           - Made Open/Save button the accept button for FileDialog
13110           - Tied the cancel button to the IButtonControl cancel button
13111           - Save/Open now properly builds the pathname
13112           - Now handles user-entered text
13113           - Preventing crash on right-click if no item is selected
13114           - Fixed Text property, now uses contents of textbox
13115           - Fixed SelectedText property, now just returns the text part that
13116             is selected in the text box
13117
13118 2005-03-18  Jackson Harper  <jackson@ximian.com>
13119
13120         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
13121         rect, make sure to de-adjust the interior rect after drawing the
13122         tab text.
13123
13124 2005-03-18  Peter Bartok  <pbartok@novell.com>
13125
13126         * MenuAPI.cs: Remove menu *before* executing selected action to
13127           prevent the menu from 'hanging around'
13128           
13129 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
13130
13131         * XplatUIOSX.cs: Implemented WorkingArea property
13132
13133 2005-03-17  Peter Bartok  <pbartok@novell.com>
13134
13135         * XplatUIX11.cs: Fixed menu coord calculations
13136         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
13137           for calculating offsets
13138
13139 2005-03-17  Peter Bartok  <pbartok@novell.com>
13140
13141         * Hwnd.cs: Do not consider menu presence for default client
13142           rectangle location/size
13143         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
13144           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
13145           translation functions
13146         * FileDialog.cs: Fixed (what I presume is a) typo
13147
13148 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
13149
13150         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
13151           X access (avoids X-Async errors)
13152
13153 2005-03-16  Jackson Harper  <jackson@ximian.com>
13154
13155         * TabControl.cs: Raise the SelectedIndexChanged event.
13156
13157 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
13158
13159         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
13160           - Removed vertical ToolBar and replaced it with a custom panel
13161             (desktop and home button already work)
13162           - Added Help button (some controls get resized or relocated then)
13163           - Draw correct text depending on Open or Save.
13164           - Fixed some typos...
13165
13166 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
13167
13168         * ScrollBar.cs:
13169           - Only change Maximum and Minimum when need it (bug fix)
13170
13171 2005-03-15  Peter Bartok  <pbartok@novell.com>
13172
13173         * Form.cs: Use Handle for icon, to trigger creation if
13174           the window does not yet exist
13175         * Control.cs:
13176           - CanSelect: Slight performance improvement
13177           - Focus(): Preventing possible recursion
13178           - Invalidate(): Removed ControlStyle based clear flag setting
13179           - WM_PAINT: fixed logic for calling OnPaintBackground
13180           - WM_ERASEBKGND: Fixed logic, added call to new driver method
13181             EraseWindowBackground if the control doesn't paint background
13182         * XplatUIWin32.cs:
13183           - Moved EraseWindowBackground() method to internal methods
13184           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
13185             is sent via SendMessage on BeginPaint call on Win32
13186         * XplatUIX11.cs:
13187           - Added EraseWindowBackground() method
13188           - No longer sends WM_ERASEBKGND on .Expose, but on call to
13189             PaintEventStart, which more closely matches Win32 behaviour
13190           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
13191           - Fixed SetFocus() to properly deal with client and whole windows
13192         * Hwnd.cs: Added ErasePending property
13193         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
13194         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
13195
13196 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
13197
13198         * XplatUIOSX.cs:
13199           - Fix hard loop when timers exist.
13200           - Fix bugs with middle and right click for 3 button mice.
13201
13202 2005-03-11  Peter Bartok  <pbartok@novell.com>
13203
13204         * XplatUIX11.cs:
13205           - get_WorkingArea: Need to call X directly, GetWindowPos only
13206             returns cached data now
13207           - Added sanity check to GetWindowPos hwnd usage
13208
13209 2005-03-11  Jackson Harper  <jackson@ximian.com>
13210
13211         * BindingManagerBase.cs: This method isn't used anymore as
13212         PullData now updates the data in the control.
13213
13214 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
13215
13216         * Form.cs: fixes menu drawing on X11
13217         * MenuAPI.cs:  fixes menu drawing on X11
13218
13219 2005-03-11  Peter Bartok  <pbartok@novell.com>
13220
13221         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
13222           from Jonathan Gilbert; should fix bug #73606
13223         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
13224           in Screen coordinates. Thanks, Jordi.
13225         * Form.cs: Added missing attribute
13226
13227 2005-03-11  Peter Bartok  <pbartok@novell.com>
13228
13229         * Form.cs:
13230           - Rudimentary Mdi support
13231           - Removed outdated FormParent code
13232           - Implemented lots of missing properties and methods, still missing
13233             transparency support
13234           - Added missing attributes
13235           - Implemented support for MaximumBounds
13236           - Added firing of various events
13237         * XplatUI.cs: Added SetIcon() method
13238         * XplatUIDriver.cs: Added SetIcon() abstract
13239         * XplatUIOSX.cs: Stubbed out SetIcon() method
13240         * XplatUIX11.cs:
13241           - Implemented SetIcon() support
13242           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
13243           - Switched to unix line endings
13244         * XplatUIWin32.cs:
13245           - Made POINT internal so for can access it as part of MINMAX
13246           - Implemented SetIcon() support
13247           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
13248             native Mdi support again, might have to go managed)
13249         * Control.cs: Now fires the StyleChanged event
13250         * MdiClient.cs: Added; still mostly empty
13251
13252 2005-03-10  Peter Bartok  <pbartok@novell.com>
13253
13254         * SaveFileDialog.cs: Added emtpy file
13255
13256 2005-03-08  Peter Bartok  <pbartok@novell.com>
13257
13258         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
13259           in turn triggers OnCreateContro) when creating a handle for the
13260           first time.
13261         * TextControl.cs: Fixed endless loop in certain cases when
13262           replacing the current selection
13263
13264 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
13265
13266         * ScrollBar.cs:
13267           - Honors NewValue changes in Scroll events allowing apps to change it
13268           - Adds First and Last Scroll events
13269           - Fixes Thumb events
13270
13271 2005-03-07  Peter Bartok  <pbartok@novell.com>
13272
13273         * Hwnd.cs: Added DefaultClientRectangle property
13274         * XplatUI.cs: Now using the X11 driver Where() method, which provides
13275           more detailed debug information
13276         * XplatUIX11.cs:
13277           - Fixed size-change feedback loop, where we would pull an old size
13278             off the queue and mistakenly change our window's size to an
13279             earlier value
13280           - Now compressing ConfigureNotify events, to reduce looping and
13281             redraw issues
13282         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
13283           is called
13284
13285 2005-03-07  Jackson Harper  <jackson@ximian.com>
13286
13287         * Binding.cs: Push data pushes from data -> property. Check if the
13288         property is readonly when attempting to set it.
13289
13290 2005-03-07  Jackson Harper  <jackson@ximian.com>
13291
13292         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
13293         instead of IsSubclassOf. Pulling data now sets the value on the
13294         control.
13295         * PropertyManager.cs:
13296         * CurrencyManager.cs: Just need to pull data when updating now,
13297         because PullData will set the value on the control.
13298
13299 2005-03-04  Jackson Harper  <jackson@ximian.com>
13300
13301         * Binding.cs: Implement data type parsing and converting on pulled
13302         data. TODO: Are there more ways the data can be converted?
13303
13304 2005-03-04  Jackson Harper  <jackson@ximian.com>
13305
13306         * Binding.cs: Support <Property>IsNull checks. Also bind to the
13307         controls Validating method so we can repull the data when the
13308         control loses focus.
13309
13310 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
13311
13312         * ColumnHeader.cs:
13313           - Fixes null string format
13314           
13315         * ListView.cs:
13316           - Adds enum type checks
13317           - Fixes redrawing and recalc need after changing some properties
13318           - Fixes on focus_item set after the event
13319           - Fixes adding columns after the control has been created
13320           
13321         * ThemeWin32Classic.cs:
13322           - Fixes CheckBox focus rectangle
13323           - Fixes ColumnHeader drawing
13324
13325
13326 2005-03-03  Jackson Harper  <jackson@ximian.com>
13327
13328         * Binding.cs: Bind to <Property>Changed events so we can detect
13329         when properties are changed and update the data.
13330
13331 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
13332
13333         * ImageList.cs:
13334           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
13335           - Fixes ImageList constructor with ImageList container
13336           - Fixes image scaling (wrong parameters at DrawImage)
13337
13338 2005-02-02  Jackson Harper  <jackson@ximian.com>
13339
13340         * Binding.cs: Make property searches case-insensitive. Eliminate
13341         some duplicated code.
13342
13343 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
13344
13345         * ComboBox.cs:
13346                 - Handle focus event
13347                 - Fix scrollbar events
13348                 - Discard highlighted item if remove it
13349                 - Fixes SelectedItem with strings
13350
13351 2005-03-01  Peter Bartok  <pbartok@novell.com>
13352
13353         * Control.cs:
13354           - Fixed Visible property, now follows (once again) parent chain
13355             to return false if any control in the chain is visible=false
13356           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
13357           - Fixed several places where is_visible instead of Visible was used
13358           - Implemented FIXME related to focus selection when setting focused
13359             control to be invisible
13360
13361         * XplatUIWin32.cs: Now using proper method to find out if window is
13362           visible. Thanks to Jordi for pointing it out
13363
13364 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
13365
13366         * ComboBox.cs: show/hide scrollbar instead of creating it
13367
13368 2005-02-27  Jackson Harper  <jackson@ximian.com>
13369
13370         * CurrencyManager.cs: Add PositionChanged stuff.
13371
13372 2005-02-27  Peter Bartok  <pbartok@novell.com>
13373
13374         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
13375         * XplatUIOSX.cs: Added GetMenuOrigin() stub
13376         * XplatUIWin32.cs: Implemented GetMenuOrigin()
13377         * XplatUIX11.cs:
13378           - Implemented GetMenuDC()
13379           - Implemented GetMenuOrigin()
13380           - Implemented ReleaseMenuDC()
13381           - Implemented generation of WM_NCPAINT message
13382           - Implemented generation and handling of WM_NCCALCSIZE message
13383         * Form.cs: Added debug helper message for Jordi's menu work
13384         * Hwnd.cs:
13385           - Modified ClientRect property; added setter, fixed getter to handle
13386             setting of ClientRect
13387           - Added MenuOrigin property
13388
13389 2005-02-26  Peter Bartok  <pbartok@novell.com>
13390
13391         * XplatUIX11.cs:
13392           - Destroys the caret if a window that's being destroyed contains it
13393           - Ignores expose events coming from the X11 queue for windows that
13394             already are destroyed
13395           - Now uses the proper variable for handling DestroyNotify, before we
13396             marked the wrong window as destroyed
13397           - Improved/added some debug output
13398
13399 2005-02-26  Peter Bartok  <pbartok@novell.com>
13400
13401         * X11Keyboard.cs: Fixes to work on 64bit systems
13402
13403 2005-02-26  Peter Bartok  <pbartok@novell.com>
13404
13405         * Control.cs:
13406           - Now calling OnHandleDestroyed from DestroyHandle()
13407             instead of Dispose()
13408           - Removed bogus call to controls.Remove() from DestroyHandle()
13409
13410 2005-02-26  Peter Bartok  <pbartok@novell.com>
13411
13412         * Control.cs: Properly destroy child windows when our handle is
13413           destroyed
13414
13415 2005-02-25  Peter Bartok  <pbartok@novell.com>
13416
13417         * XplatUI.cs:
13418           - Added 'DriverDebug' define to allow tracing XplatUI API calls
13419           - Alphabetized Static Methods and Subclasses
13420
13421         * XplatUIX11.cs:
13422           - Added XException class to allow custom handling of X11 exceptions
13423           - Created custom X11 error handler, tied into XException class
13424           - Added support for MONO_XEXCEPTIONS env var to allow the user
13425             to either throw an exception on X errors or continue running
13426             after displaying the error
13427           - Added handling of DestroyNotify message
13428           - Added handler for CreateNotify message (still disabled)
13429           - Improved (tried to at least) Where method to provide file and lineno
13430         * X11Structs.cs:
13431           - Added XErrorHandler delegate
13432           - Added XRequest enumeration (to suppor translation of errors)
13433
13434 2005-02-25  Jackson Harper  <jackson@ximian.com>
13435
13436         * PropertyManager.cs: Implement editing features
13437         * CurrencyManager.cs:
13438         * Binding.cs: First attempt at UpdateIsBinding
13439         * BindingManagerBase.cs: Call UpdateIsBinding before
13440         pushing/pulling data.
13441
13442 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
13443
13444         * MenuAPI.cs: Respect disabled items
13445         * ThemeWin32Classic.cs
13446                 - Caches ImageAttributes creation for DrawImageDisabled
13447                 - Fixes vertical menu line drawing
13448                 - Draws disabled arrows in disable menu items
13449
13450 2005-02-24  Peter Bartok  <pbartok@novell.com>
13451
13452         * Hwnd.cs:
13453           - Added UserData property to allow associating arbitrary objects
13454             with the handle
13455           - Fixed leak; now removing Hwnd references from static windows array
13456         * XplatUIWin32.cs:
13457           - Fixed Graphics leak in PaintEventEnd
13458           - Removed usage of HandleData, switched over to Hwnd class
13459         * HandleData.cs: Removed, obsoleted by Hwnd.cs
13460
13461 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13462
13463         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
13464         * ScrollBar.cs: Fixes bug
13465         * TrackBar.cs: removes death code, clipping, mimize refreshes,
13466          keyboard navigation enhancements
13467
13468 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
13469
13470         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
13471         * GroupBox.cs: Add control styles
13472         * Label.cs: Add control styles
13473         * UpDownBase.cs: Add control styles
13474         * ListBox.cs: Add control styles
13475         * XplatUIWin32.cs: Fixes wrong parameter order
13476
13477
13478 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
13479
13480         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
13481
13482 2005-02-23  Jackson Harper  <jackson@ximian.com>
13483
13484         * PropertyManager.cs: Implement property binding. This doesn't
13485         seem to work yet though as (I think) there are some bugs in
13486         System.ComponentModel.PropertyDescriptor.
13487         * BindingContext.cs: Use new PropertyManager constructor.
13488
13489 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
13490
13491         * ProgressBar.cs: use clip region in ProgressBar
13492         * ThemeWin32Classic.cs: use clip region in ProgressBar
13493
13494 2004-02-22  Jackson Harper  <jackson@ximian.com>
13495
13496         * BindingsCollection.cs: Remove some debug code.
13497
13498 2005-02-22  Jackson Harper  <jackson@ximian.com>
13499
13500         * BindingContext.cs:
13501         * ControlBindingsCollection.cs:
13502         * CurrencyManager.cs:
13503         * Binding.cs:
13504         * BindingManagerBase.cs: Initial implementation
13505         * BindingsCollection.cs: Add an internal contains method that the
13506         BindingManagerBase uses to ensure bindings aren't added twice to
13507         the collection.
13508         * PropertyManager.cs: Stubbed out.
13509         * Control.cs:
13510         * ContainerControl.cs: Hook up databinding
13511         
13512 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
13513
13514         * XplatUIOSX.cs:
13515           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
13516           Fixed Invalidate/Update chain.
13517           Fixed tons of other minor bugs (this is almost a complete rewrite).
13518
13519 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
13520
13521         * ComboBox.cs: do subcontrol creation when the control is created
13522
13523 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13524
13525         * Label.cs: fixes image drawing (image and imagelist)
13526         * ThemeWin32Classic.cs: cache brushes
13527         
13528 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13529
13530         * Form.cs: Move menu drawing code to Theme class
13531         * ComboBox.cs: Move ComboBox drawing code to Theme class
13532         * MenuItem.cs: Move menu drawing code to Theme class
13533         * MenuAPI.cs: Move menu drawing code to Theme class
13534         * ThemeWin32Classic.cs: New methods
13535         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
13536         * ListBox.cs: Move Listbox drawing code to Theme class
13537         * Theme.cs: New methods
13538
13539 2005-02-20  Peter Bartok  <pbartok@novell.com>
13540
13541         * Control.cs:
13542           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
13543             only process mnemonics on those)
13544           - Fixed event sequence for key handling; first calling
13545             ProcessKeyEventArgs now
13546         * TextBoxBase.cs:
13547           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
13548             for processing non-character keys
13549           - Fixed WM_CHAR to generate proper event sequence before processing
13550         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
13551           generation
13552
13553 2005-02-19  Peter Bartok  <pbartok@novell.com>
13554
13555         * UserControl.cs: Added TextChanged event; added attributes
13556         * SizeGrip.cs: Implemented resizing and optional display of grip
13557         * Form.cs: Fixed attribute
13558         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
13559           Changed meaning of ScrollWindow bool argument; instead of the
13560           clear attribute (which will be true usually anyway), it gives the
13561           option of moving child controls as well.
13562         * XplatUIX11.cs:
13563           - Changed to match new ScrollWindow argument
13564           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
13565             now handles the implicit parent window a WM puts around us
13566         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
13567           to work)
13568         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
13569         * TreeView.cs: Adjusted to new ScrollWindow arguments
13570
13571 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
13572
13573         * Form.cs: Menu integration with non-client area
13574         * MenuItem.cs: Menu integration with non-client area
13575         * MenuAPI.cs: Menu integration with non-client area
13576
13577 2005-02-18  Peter Bartok  <pbartok@novell.com>
13578
13579         * MethodInvoker.cs: Added
13580         * MdiLayout.cs: Added
13581         * SendKeys.cs: Started implementation
13582         * ErrorIconAlignment.cs: Added
13583
13584 2005-02-18  Peter Bartok  <pbartok@novell.com>
13585
13586         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
13587         * Form.cs: Added handling for Menu-related Non-client messages
13588
13589 2005-02-17  Peter Bartok  <pbartok@novell.com>
13590
13591         * UpDownBase.cs: Fixed typo, compilation errors
13592         * DomainUpDown.cs: Fixed attribute value
13593
13594 2005-02-16  Miguel de Icaza  <miguel@novell.com>
13595
13596         * UpDownBase.cs: Attach entry events.
13597         Propagate events.
13598         Add ForeColor property, Focused, InterceptArrowKeys (interception
13599         does not work yet).
13600
13601 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
13602
13603         * Form.cs:
13604                 - Redraw non client are on Setmenu
13605                 - Calc proper menu starting point
13606
13607 2005-02-17  Peter Bartok  <pbartok@novell.com>
13608
13609         * Application.cs: Fixed message_filter check
13610
13611 2005-02-17  Peter Bartok  <pbartok@novell.com>
13612
13613         * Application.cs: Now calls registered message filters
13614         * DockStyle.cs: Fixed attribute
13615         * Form.cs: Fixed attribute
13616         * Menu.cs: Fixed attribute
13617         * ToolTip.cs: Fixed attribute
13618         * TreeNode.cs: Added missing attributes and arranged in regions
13619         * PropertyGrid.cs: Fixed signatures
13620         * TreeNodeCollection.cs: Added attributes
13621         * Splitter.cs: Added missing attributes; arranged into regions
13622         * TabPage.cs: Added missing attributes; arranged into regions
13623         * TextBoxBase.cs: Added missing attributes
13624         * TextBox.cs: Added missing attributes
13625         * ArrangeDirection.cs: Added missing attributes
13626         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
13627         * ToolBarButton.cs: Fixed attributes
13628         * AnchorStyles.cs: Fixed attribute
13629         * TrackBar.cs: Fixed attributes
13630         * TabControl.cs: Added missing attributes and arranged into regions
13631         * ToolBar.cs: Fixed attribute
13632         * StatusBar.cs: Fixed signature, organized into regions and added
13633           attributes
13634         * StatusBarPanel.cs: Fixed attributes
13635         * ContentsResizedEventArgs.cs: Implemented
13636         * ContentsResizedEventHandler.cs: Implemented
13637         * DateBoldEventArgs.cs: Implemented
13638         * DateBoldEventHandler.cs: Implemented
13639         * UpDownEventArgs.cs: Implemented
13640         * UpDownEventHandler.cs: Implemented
13641         
13642 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
13643
13644         * Form.cs: first Menu NC refactoring
13645         * MenuAPI.cs: first Menu NC refactoring
13646         
13647 2005-02-16  Peter Bartok  <pbartok@novell.com>
13648
13649         * ImeMode.cs: Added missing attributes
13650         * Menu.cs: Fixed attribute
13651         * GroupBox.cs: Fixed attribute
13652         * Label.cs: Fixed attribute
13653         * ColorDialog.cs (RunDialog): Removed TODO attribute
13654         * ComboBox.cs: Fixed attributes
13655         * ListControl.cs: Added missing attributes
13656         * PropertyGrid.cs: Fixed attributes
13657         * Control.cs: Fixed attributes
13658         * ListViewItem.cs: Added TypeConverter attribute
13659         * NotifyIcon.cs: Fixed attributes
13660         * ListView.cs: Fixed attributes
13661         * ButtonBase.cs: Fixed attribute
13662         * ImageList.cs: Added missing attributes
13663         * ContainerControl.cs: Fixed signature
13664         * CheckedListBox.cs: Fixed attribute; added missing attributes
13665         * Panel.cs: Fixed attributes
13666         * PropertyTabChangedEventArgs.cs: Added missing attribute
13667         * PropertyValueChangedEventArgs.cs: Added missing attribute
13668         * Binding.cs: Fixed attribute
13669         * ListViewItemConverter: Implemented ListViewSubItemConverter class
13670         * ListBox.cs: Fixed attribute; added missing attributes;
13671         * ScrollableControl.cs: Added missing attributes
13672         * PictureBox.cs: Added missing attributes; implemented missing property
13673         * DateTimePicker.cs: Added missing attributes
13674         * Theme.cs (ToolWindowCaptionHeight): Fixed type
13675         * MonthCalendar.cs: Fixed attributes
13676         * StatusBarPanel.cs: Added missing attributes
13677         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
13678
13679 2005-02-16  Peter Bartok  <pbartok@novell.com>
13680
13681         * TextBoxBase.cs: The previous method to enforce height yet remember
13682           the requested high was less than ideal, this is an attempt to do
13683           it better.
13684         * Control.cs: Added comment about possible problem
13685         * Copyright: Updated format
13686         * GridItemType.cs: Fixed swapped values
13687
13688 2005-02-15  Jackson Harper  <jackson@ximian.com>
13689
13690         * BaseCollection.cs: Use property so we never access an
13691         uninitialized list. Also initialize the list in the property.
13692
13693 2005-02-15  Peter Bartok  <pbartok@novell.com>
13694
13695         * GroupBox.cs (ProcessMnemonic): Implemented
13696         * Label.cs (ProcessMnemonic): Implemented
13697         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
13698           hotkeys
13699
13700 2005-02-15  Peter Bartok  <pbartok@novell.com>
13701
13702         * RadioButton.cs (ProcessMnemonic): Implemented
13703         * CheckBox.cs (ProcessMnemonic): Implemented
13704         * Control.cs:
13705           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
13706             handling
13707           - Added internal method to allow calling ProcessMnemonic from other
13708             controls
13709         * ContainerControl.cs:
13710           - Started support for handling validation chain handling
13711           - Implemented ProcessMnemonic support
13712           - Added Select() call to Active, to make sure the active control
13713             receives focus
13714         * Form.cs: Setting toplevel flag for Forms (this was lost in the
13715           FormParent rewrite)
13716         * ThemeWin32Classic.cs:
13717           - DrawCheckBox(): Fixed stringformat to show hotkeys
13718           - DrawRadioButton(): Fixed stringformat to show hotkeys
13719         * CommonDialog.cs: Removed WndProc override, not needed
13720
13721 2005-02-14  Peter Bartok  <pbartok@novell.com>
13722
13723         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
13724           missed those in the rewrite
13725
13726 2005-02-14  Miguel de Icaza  <miguel@novell.com>
13727
13728         * NumericUpDown.cs (Increment, ToString): Add.
13729         (DecimalPlaces): implement.
13730         
13731         Add attributes.
13732         
13733         * UpDownBase.cs: Add the designer attributes.
13734
13735 2005-02-13  Peter Bartok  <pbartok@novell.com>
13736
13737         * Panel.cs: Removed border_style, now in Control
13738         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
13739           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
13740
13741 2005-02-13  Peter Bartok  <pbartok@novell.com>
13742
13743         * MouseButtons.cs: Added missing attributes
13744         * XplatUIStructs.cs: Added enumeration for title styles
13745         * LeftRightAlignment.cs: Added missing attributes
13746         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
13747           it compatible with Graphics.FromHwnd()
13748         * SelectedGridItemChangedEventArgs.cs: Fixed property type
13749         * Keys.cs: Added missing attributes
13750         * SelectionRange.cs: Added missing attributes
13751         * SelectionRangeConverter.cs: Added
13752         * XplatUI.cs:
13753           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
13754             ReleaseMenuDC methods
13755           - Renamed ReleaseWindow to UngrabWindow
13756           - Added proper startup notice to allow version identification
13757         * Form.cs:
13758           - Added missing attributes
13759           - Removed FormParent concept
13760         * Label.cs: Removed border_style field, now in Control
13761         * RadioButton.cs: Now properly selects RadioButton when focus is
13762           received
13763         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
13764         * Control.cs:
13765           - Added missing attributes
13766           - Added borderstyle handling
13767           - Removed FormParent concept support
13768           - Fixed calls to XplatUI to match changed APIs
13769           - Fixed bug that would case us to use disposed Graphics objects
13770           - Removed unneeded internal methods
13771           - PerformLayout(): Fixed to handle DockStyle.Fill properly
13772           - SelectNextControl(): Fixed to properly check common parents
13773         * TextBoxBase.cs: Removed border_style field (now in Control)
13774         * MessageBox.cs:
13775           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
13776             fixed calculations for form size
13777           - Added support for localized strings and icons
13778           - Improved form size calculations, added border
13779         * ListView.cs: Removed border_style field (now in Control)
13780         * X11Structs.cs: Moved several structs from X11 driver here
13781         * X11Keyboard.cs: Changed debug message
13782         * Application.cs: Removed FormParent concept support
13783         * CommonDialog.cs:
13784           - Resetting end_modal flag
13785           - Removed FormParent concept support
13786         * NativeWindow.cs: Removed FormParent concept support
13787         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
13788           Client area and Non-Client whole window to allow support for WM_NC
13789           messages
13790         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
13791           prevent using it until it supports Hwnd as per Geoff Norton's request
13792         * ToolBar.cs: Fixed drawing, was not doing proper drawing
13793         * PictureBox.cs: Removed border_style field, now in Control
13794         * XplatUIWin32.cs: Added new driver methods
13795
13796 2005-02-12  Peter Bartok  <pbartok@novell.com>
13797
13798         * OpacityConverter.cs: Implemented
13799         * Hwnd.cs: Internal class to support drivers that need to emulate
13800           client area/non-client area window behaviour
13801
13802 2005-02-11  Peter Bartok  <pbartok@novell.com>
13803
13804         * KeysConverter.cs: Implemented
13805
13806 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
13807
13808         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
13809         * LinkLabel: Added missing attributes
13810         * MainMenu.cs: fixes ToString
13811         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
13812         * ListBox.cs: fixes event position
13813         * TrackBar.cs: adds missing attributes and events
13814         
13815 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
13816
13817         * MenuItem.cs: Use SystemInformation and bug fixes
13818         * MenuAPI.cs: Use SystemInformation and bug fixes
13819
13820 2005-02-09  Jackson Harper  <jackson@ximian.com>
13821
13822         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
13823         their keystate otherwise things like VK_MENU get stuck "on".
13824
13825 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
13826
13827         * ListBox.cs: Fixes AddRange bug
13828         
13829 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
13830
13831         * ProgressBar.cs
13832                 - Add missing attributes
13833                 - Add missing method
13834                 
13835         * CheckedListBox.cs: Added missing attributes
13836                 - Add missing attributes
13837                 - Remove extra method
13838         
13839         * ComboBox.cs: Added missing attributes
13840         * VScrollBar.cs: Added missing attributes
13841         * ScrollBar.cs:  Added missing attributes
13842         * ListBox.cs: Fixes signature, add missing consts
13843         * LinkArea.cs:   Added missing attributes
13844         
13845
13846 2005-02-08  Peter Bartok  <pbartok@novell.com>
13847
13848         * Menu.cs: Added missing attributes
13849         * MainMenu.cs: Added missing attributes
13850         * GroupBox.cs: Added missing attributes
13851         * Label.cs: Added missing attributes
13852         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
13853         * ColorDialog.cs:
13854           - Added Instance and Options properties
13855           - Added missing attributes
13856         * Cursor.cs: Made Serializable
13857         * NotifyIcon: Added missing attributes
13858         * MenuItem.cs: Added missing attributes
13859         * TextBoxBase.cs: Implemented AppendText() and Select() methods
13860         * Panel.cs: Added Missing attributes
13861         * MonthCalendar.cs: Fixed CreateParams
13862
13863 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13864         
13865         * LinkLabel.cs:
13866                 - Fixes signature
13867                 - Fixes issues with links
13868                 - Adds the class attributes
13869
13870 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13871         
13872         * ComboBox.cs:
13873                 - Fixes button when no items available in dropdown
13874                 - Fixes repainting problems
13875                 - Adds the class attributes
13876                 
13877 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13878
13879         * XplatUIOSX.cs: Detect the menu bar and title bar height from
13880         the current theme.  Cache these on startup.
13881
13882 2005-02-07  Jackson Harper  <jackson@ximian.com>
13883
13884         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
13885         the scrollbar buttons when they are depressed.
13886
13887 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13888
13889         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
13890         Get the display size from the main displayid.  We currently dont
13891         support multiple display configurations.
13892
13893 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13894
13895         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
13896
13897 2005-02-07  Miguel de Icaza  <miguel@novell.com>
13898
13899         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
13900
13901 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13902
13903         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
13904
13905 2005-02-04  Jackson Harper  <jackson@ximian.com>
13906
13907         * ThemeWin32Classic.cs: Respect the clipping rect when
13908         drawing. Only fill the intersection of clips and rects so there
13909         isn't a lot of large fills.
13910         * ScrollBar.cs: Pass the correct clipping rect to the theme
13911         engine. Remove some debug code.
13912
13913 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
13914         
13915         * DateTimePicker.cs:
13916                 - Fixed crash on DateTime.Parse, use Constructor instead
13917
13918 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
13919         
13920         * MenuItem.cs:
13921         * MenuAPI.cs:
13922                 - Owner draw support (MeasureItem and DrawItem)
13923
13924 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
13925         
13926         *  Menu.cs:
13927                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
13928                 - Fixes MenuItems.Add range
13929         * MenuItem.cs:
13930                 - MergeMenu and Clone and CloneMenu functions
13931
13932 2005-02-03  Jackson Harper  <jackson@ximian.com>
13933
13934         * ScrollBar.cs: Make abstract
13935         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
13936         is abstract.
13937
13938 2005-02-03  Jackson Harper  <jackson@ximian.com>
13939
13940         * ScrollBar.cs: First part of my scrollbar fixups. This removes
13941         all the unneeded refreshes and uses invalidates with properly
13942         computed rects.
13943
13944 2005-02-03  Peter Bartok  <pbartok@novell.com>
13945
13946         * ComponentModel.cs: Added
13947         * IDataGridEditingService.cs: Added
13948         * Timer.cs: Added missing attributes
13949         * ToolTip.cs: Added missing attributes
13950
13951 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
13952
13953         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
13954
13955 2005-02-03  Peter Bartok  <pbartok@novell.com>
13956
13957         * ListBox.cs: Added missing attributes
13958
13959 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
13960         
13961         * ListBox.cs:
13962                 - Fixes font height after font change
13963                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
13964                 
13965 2005-02-02  Peter Bartok  <pbartok@novell.com>
13966
13967         * HandleData.cs: Introduced static methods to allow class
13968           to be more self-contained and track it's own HandleData objects
13969         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
13970           HandleData to use new static methods
13971
13972 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
13973
13974         * Combobox.cs:
13975                 - Fixes default size and PreferredHeight
13976                 - Missing events
13977                 - ObjectCollection.Insert implementation
13978                 
13979         * ListControl.cs
13980                 - Fixes signature
13981         * ListBox.cs:
13982                 - Several fixes
13983                 - ObjectCollection.Insert implementation
13984                 - No selection after clean
13985                 - Small fixes
13986
13987 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13988
13989         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
13990
13991 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
13992
13993         * Combobox.cs:
13994                 - Caches ItemHeight calculation for OwnerDrawVariable
13995                 - Handles dropdown properly
13996                 - Fixes several minor bugs
13997
13998 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13999
14000         * ListBox.cs:
14001                 - Fixes 71946 and 71950
14002                 - Fixes changing Multicolumn on the fly
14003                 - Fixes keyboard navigation on Multicolumn listboxes
14004
14005 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14006         
14007         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
14008         crash reporter log.
14009
14010 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14011
14012         * XplatUIOSX.cs: Allow applications to actually exit.
14013
14014 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
14015
14016         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
14017         their parent at creation time rather than lazily later.  Fixes a major
14018         regression we were experiencing.
14019
14020 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
14021
14022         * ThemeWin32Classic.cs: more date time picker painting fixes
14023         * DateTimePicker.cs: more monthcalendar drop down fixes
14024         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
14025
14026 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
14027
14028         * ScrollBar.cs:
14029                 - When moving the thumb going outside the control should stop the moving
14030                 - Adds the firing of missing events
14031                 - Fixes no button show if Size is not specified
14032                 - End / Home keys for keyboard navigation
14033
14034 2005-01-30  Peter Bartok  <pbartok@novell.com>
14035
14036         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
14037           sanity check to prevent theoretical loop
14038         * XplatUIWin32.cs (SetVisible): Removed debug output
14039         * XplatUIX11.cs (SystrayChange): Added sanity check
14040         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
14041         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
14042           behaviour, valid until the X11 client window rewrite is done
14043         * TextBox.cs (ctor): Setting proper default foreground and background
14044           colors
14045
14046 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
14047
14048         * Theme: Added DrawDateTimePicker to interface
14049         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
14050         * DateTimePicker.cs: Created (still needs keys and painting code)
14051         * DateTimePickerFormat.cs: added
14052         * MonthCalendar.cs: fixed CreateParams for popup window mode
14053           
14054 2005-01-29  Peter Bartok  <pbartok@novell.com>
14055
14056         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
14057           this should also the calculations for ligher/darker
14058         * Theme.cs: Fixed defaults for ScrollBar widths/heights
14059
14060 2005-01-29  Peter Bartok  <pbartok@novell.com>
14061
14062         * ArrangeDirection.cs: Added
14063         * ArrangeStartingPositon.cs: Added
14064         * SystemInformation.cs: Implemented
14065         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14066           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
14067           used by SystemInformation class
14068         * X11Strucs.cs: Added XSizeHints structure
14069         * MenuAPI.cs:
14070           - Fixed CreateParams to make sure the menu window is always visible
14071           - TrackPopupMenu: Added check to make sure we don't draw the
14072             menu offscreen
14073
14074 2005-01-29  Peter Bartok  <pbartok@novell.com>
14075
14076         * HandleData.cs: Added method for altering invalid area
14077         * TextBoxBase.cs: Implemented TextLength
14078
14079 2005-01-28  Peter Bartok  <pbartok@novell.com>
14080
14081         * XplatUIX11.cs: Improvement over last patch, not sending
14082           the WM_PAINT directly anymore, instead we scroll any pending
14083           exposed areas and let the system pick out the WM_PAINT later
14084
14085 2005-01-28  Peter Bartok  <pbartok@novell.com>
14086
14087         * SWF.csproj: Deleted, no longer used. Instead,
14088           Managed.Windows.Forms/SWF.csproj should be used
14089         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
14090           directly, to avoid a potential race condition with the next
14091           scroll
14092
14093 2005-01-28  Peter Bartok  <pbartok@novell.com>
14094
14095         * XplatUI.cs: Made class internal
14096
14097 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
14098
14099         * CheckedListBox.cs:
14100                 - Draw focus
14101                 - Fixed Drawing
14102                 - Missing methods and events
14103
14104 2005-01-27  Peter Bartok  <pbartok@novell.com>
14105
14106         * Application.cs (Run): Don't use form if we don't have one
14107
14108 2005-01-27  Peter Bartok  <pbartok@novell.com>
14109
14110         * TextBoxBase.cs (get_Lines): Fixed index off by one error
14111
14112 2005-01-27  Peter Bartok  <pbartok@novell.com>
14113
14114         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
14115         * GridItem.cs: Added; Patch by Jonathan S. Chambers
14116         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
14117         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
14118         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
14119         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
14120         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14121         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14122         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14123         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14124         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
14125         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
14126
14127 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14128
14129         * Combobox.cs:
14130                 - Draw focus on Simple Combobox
14131                 - Fixes drawing issues
14132                 - fixes 71834
14133
14134 2005-01-27  Peter Bartok  <pbartok@novell.com>
14135
14136         * Form.cs:
14137           - Place window in default location, instead of hardcoded 0/0
14138           - Send initial LocationChanged event
14139         * Control.cs:
14140           - UpdateBounds after creation to find out where the WM placed us
14141           - Make sure that if the ParentForm changes location the Form
14142             is notified
14143         * XplatUIX11.cs: XGetGeometry will not return the coords relative
14144             to the root, but to whatever the WM placed around us.
14145             Translate to root coordinates before returning toplevel
14146             coordinates
14147         * XplatUIWin32.cs: Removed debug output
14148         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
14149           flag to GetWindowPos, to allow translation of coordinates on X11
14150
14151 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
14152
14153         * ListBox.cs: connect LostFocus Event
14154
14155 2005-01-27  Peter Bartok  <pbartok@novell.com>
14156
14157         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14158           XplatUIX11.cs: Extended the Systray API
14159         * Form.cs: Removed debug output
14160         * Application.cs: Fixed focus assignment, always need to call
14161           XplatUI.Activate() since Form.Activate() has rules that may
14162           prevent activation
14163         * NotifyIcon.cs: Should be complete now
14164         * ToolTip.cs: Worked around possible timer bug
14165
14166 2005-01-27  Jackson Harper  <jackson@ximian.com>
14167
14168         * TabControl.cs:
14169         - Only invalidate the effected tabs when the
14170         selected index changes. This reduces drawing and gets rid of some
14171         flicker.
14172         - Only refresh if the tabs need to be shifted, otherwise only
14173         invalidate the slider button.
14174         - On windows the tabs are not filled to right if the slider is
14175         visible.
14176         
14177 2005-01-27  Jackson Harper  <jackson@ximian.com>
14178
14179         * TabControl.cs: Only refresh on mouseup if we are showing the
14180         slider. Also only invalidate the button whose state has changed.
14181
14182 2005-01-26  Peter Bartok  <pbartok@novell.com>
14183
14184         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
14185         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
14186           and SystrayRemove() methods
14187         * XplatUIOSX.cs: Stubbed Systray methods
14188         * XplatUIX11.cs:
14189           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
14190             methods
14191           - Fixed broken XChangeProperty calls (marshalling messed up things)
14192         * X11Structs.cs: Added enums and structs required for Size hinting
14193         * NotifyIcon.cs: Added & implemented
14194
14195 2005-01-26  Jackson Harper  <jackson@ximian.com>
14196
14197         * TabControl.cs: Space vertically layed out tabs properly.
14198
14199 2005-01-26  Peter Bartok  <pbartok@novell.com>
14200
14201         * Form.cs (CreateClientParams): Always set the location to 0,0
14202           since we're a child window.
14203
14204         * Control.cs (SetVisibleCore): Always explicitly setting the location
14205           of a toplevel window, apparently X11 doesn't like to move windows
14206           while they're not mapped.
14207
14208 2005-01-26  Jackson Harper  <jackson@ximian.com>
14209
14210         * TabControl.cs: Implement FillToRight size mode with vertically
14211         rendered tabs.
14212
14213 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14214
14215         * ControlPaint.cs, ThemeWin32Classic.cs
14216                 - Fixes DrawFocusRectangle
14217
14218 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
14219
14220         * MenuAPI.cs:
14221                 - MenuBar tracking only starts when item is first clicked
14222                 - Fixes menu hidding for multiple subitems
14223                 - Unselect item in MenuBar when item Executed
14224                 - Fixes bug 71495
14225
14226 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
14227
14228         * ListControl.cs:
14229                 - IsInputKey for ListBox
14230         * ListBox.cs:
14231                 - Focus item
14232                 - Shift and Control item selection
14233                 - Implement SelectionMode.MultiExtended
14234                 - Fixes RightToLeft
14235         * ComboBox.cs:
14236                 - IsInputKey implemented
14237                 - Do not generate OnTextChangedEdit on internal txt changes
14238                 
14239 2005-01-23  Peter Bartok  <pbartok@novell.com>
14240
14241         * AccessibleObject.cs: Partially implemented Select()
14242         * MonthCalendar.cs: Added missing attributes and events
14243         * Form.cs: Fixed CreateParams behaviour, now controls derived from
14244           form can properly override CreateParams.
14245         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14246           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
14247           Control performs Invalidate & Update
14248         * NativeWindow (CreateHandle): Added special handling for Form
14249           and Form.FormParent classes to allow overriding of From.CreateParams
14250         * Control.cs:
14251           - ControlNativeWindow: Renamed 'control' variable to more intuitive
14252             name 'owner'
14253           - ControlNativeWindow: Added Owner property
14254           - Removed usage of Refresh() on property changes, changed into
14255             Invalidate(), we need to wait until the queue is processed for
14256             updates, direct calls might cause problems if not all vars for
14257             Paint are initialized
14258           - Added call to UpdateStyles() when creating the window, to set any
14259             styles that CreateWindow might have ignored.
14260           - Added support for Form CreateParent overrides to UpdateStyles()
14261         * MessageBox.cs: Removed no longer needed FormParent override stuff,
14262           CreateParams are now properly overridable
14263         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
14264           CreateParams are now properly overridable
14265
14266 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
14267
14268         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
14269         OnTextBoxChanged.
14270
14271         Capture LostFocus and OnTextBoxChanged.  The later introduces a
14272         recursive invocation that I have not figured out yet.
14273
14274         Reset the timer when not using (it was accumulating).
14275
14276
14277         (OnTextBoxChanged): Set UserEdit to true here to track whether the
14278         user has made changes that require validation.
14279
14280         Reset changing to avoid loops.
14281
14282 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
14283
14284         * NumericUpDown.cs: Display value at startup.
14285
14286         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
14287         ValidateEditText.
14288
14289         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
14290         filled in.  Added some basic parsing of text.
14291
14292         Still missing the OnXXX method overrides, and figuring out the
14293         events that must be emitted.
14294
14295         * UpDownBase.cs: Handle UserEdit on the Text property.
14296         
14297 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
14298
14299         * ComboBox.cs:
14300           - Fixes IntegralHeight
14301           - ToString method
14302
14303 2005-01-21  Jackson Harper  <jackson@ximian.com>
14304
14305         * TabControl.cs: Set the SelectedIndex property when SelectedTab
14306         is set so that the page visibility is updated and the tabs are
14307         sized correctly.
14308
14309 2005-01-21  Jackson Harper  <jackson@ximian.com>
14310
14311         * TabControl.cs: Use cliping rectangle for blitting. Give the
14312         theme the clipping rect so we can do clipping while
14313         drawing. Remove some debug code.
14314
14315 2005-01-21  Jackson Harper  <jackson@ximian.com>
14316
14317         * TabPage.cs: Add a new method so tab pages can force the tab
14318         control to recalculate the tab page sizes.
14319         * TabControl.cs: UpdateOwner needs to make the tab control recalc
14320         sizes.
14321
14322 2005-01-20  Jackson Harper  <jackson@ximian.com>
14323
14324         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
14325
14326 2005-01-20  Jackson Harper  <jackson@ximian.com>
14327
14328         * TreeView.cs: Set the bounds for nodes properly. They were
14329         getting screwed up when checkboxes were not enabled, but images
14330         were.
14331
14332 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
14333
14334         * ListBox.cs:
14335                 - Owner draw support
14336                 - Fixes
14337                 
14338 2005-01-20  Jackson Harper  <jackson@ximian.com>
14339
14340         * XplatUIStructs.cs: More misc keys
14341         * X11Keyboard.cs: Ignore some control keys.
14342
14343 2005-01-20  Jackson Harper  <jackson@ximian.com>
14344
14345         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
14346         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
14347
14348 2005-01-19  Peter Bartok  <pbartok@novell.com>
14349
14350         * Control.cs: Un-selecting the control when it is loosing focus
14351
14352 2005-01-19  Jackson Harper  <jackson@ximian.com>
14353
14354         * TreeView.cs: Hook up to the text controls leave event so we can
14355         end editing when the users clicks outside the text box.
14356         
14357 2005-01-19  Jackson Harper  <jackson@ximian.com>
14358
14359         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
14360         get set in the conversion array.
14361
14362 2005-01-19  Peter Bartok  <pbartok@novell.com>
14363
14364         * Application.cs (ModalRun): Added a call to CreateControl to ensure
14365           focus is properly set
14366         * Button.cs:
14367           - Added missing attributes
14368           - removed styles, those are already set in the base class
14369         * ButtonBase.cs:
14370           - Added missing attributes
14371           - Added clip window styles
14372         * CheckBox.cs: Added missing attributes
14373         * CommonDialog.cs:
14374           - FormParentWindow.CreateParams: Added required clip styles
14375         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
14376           also filters modifier keys
14377         * MessageBox.cs:
14378           - Added assignment of Accept and Cancel button to enable Enter
14379             and Esc keys in MessageBox dialogs
14380           - FormParentWindow.CreateParams: Added required clip styles
14381         * RadioButton.cs: Added missing attributes
14382         * TextControl.cs: No longer draws selection if control does not
14383           have focus
14384         * TextBoxBase.cs:
14385           - Now draws simple rectangle around test area to make it obvious
14386             there's a control. This is a hack until we properly support borders
14387           - A few simple fixes to support selections better, now erases selected
14388             text when typing, and resets selection when using movement keys
14389
14390 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14391
14392         * UpDownBase.cs: Added some new properties.
14393
14394         * DomainUpDown.cs: Implement a lot to get my test working.
14395
14396 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14397
14398         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
14399
14400 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14401
14402         * OSXStructs (WindowAttributes): Fixed csc complaints
14403
14404 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14405
14406         * XplayUIOSX.cs:
14407           OSXStructs.cs: Initial refactor to move enums and consts into
14408           OSXStructs and use them in the driver for greater readability.
14409
14410 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
14411
14412         * XplatUIOSX.cs: Initial support for Standard Cursors.
14413         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
14414
14415 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
14416
14417         * ComboBox.cs: ability to change style when the ctrl is already
14418         created, missing methods and events, bug fixes, signature fixes
14419
14420 2005-01-19  Peter Bartok  <pbartok@novell.com>
14421
14422         * Cursors.cs (ctor): Added ctor to fix signature
14423
14424 2005-01-18  Peter Bartok  <pbartok@novell.com>
14425
14426         * Button.cs: Implemented DoubleClick event
14427         * ButtonBase.cs:
14428           - Fixed keyboard handling to behave like MS, where the press of
14429             Spacebar is equivalent to a mousedown, and the key release is
14430             equivalent to mouseup. Now a spacebar push will give the same
14431             visual feedback like a mouse click.
14432           - Added missing attributes
14433           - Added ImeModeChanged event
14434           - Added support for generating DoubleClick event for derived classes
14435         * CheckBox.cs:
14436           - Implemented DoubleClick event
14437           - Added missing attributes
14438         * CommonDialog.cs: Added missing attribute
14439         * ContextMenu.cs: Added missing attributes
14440         * RadioButton.cs:
14441           - AutoChecked buttons do not allow to be unselected when clicked
14442             (otherwise we might end up with no selected buttons in a group)
14443           - Added missing attributes
14444           - Implemented DoubleClickEvent
14445         * ThreadExceptionDialog.cs: Enabled TextBox code
14446
14447 2005-01-18  Peter Bartok  <pbartok@novell.com>
14448
14449         * Form.cs: Removed debug output
14450         * Button.cs: Added support for DoubleClick method
14451
14452 2005-01-18  Peter Bartok  <pbartok@novell.com>
14453
14454         * Form.cs:
14455           - Added method to parent window that allows triggering size
14456             calculations when a menu is added/removed
14457           - set_Menu: Cleaned up mess from early days of Form and Control,
14458             now properly triggers a recalc when a menu is added/removed
14459           - Added case to select form itself as focused form if no child
14460             controls exist
14461           - Added PerformLayout call when showing dialog, to ensure properly
14462             placed controls
14463         * Control.cs:
14464           - Select(): Made internal so Form can access it
14465           - Focus(): Only call Xplat layer if required (avoids loop), and sets
14466             status
14467         * Application.cs (Run): Removed hack and calls PerformLayout instead
14468           to trigger calculation when Form becomes visible
14469
14470 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
14471
14472         * ComboBox.cs: fixes for ownerdraw
14473
14474 2005-01-18  Peter Bartok  <pbartok@novell.com>
14475
14476         * TextControl.cs:
14477           - Sentinel is no longer static, each Document gets it's own, this
14478             avoids locking or alternatively overwrite problems when more
14479             than one text control is used simultaneously.
14480           - Switched to use Hilight and HilightText brushes for text selection
14481
14482         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
14483
14484 2005-01-18  Peter Bartok  <pbartok@novell.com>
14485
14486         * Control.cs:
14487           - Hooked up the following events:
14488                 o ControlAdded
14489                 o ControlRemoved
14490                 o HandleDestroyed
14491                 o ImeModeChanged
14492                 o ParentChanged
14493                 o TabStopChanged
14494                 o Invalidated
14495                 o SystemColorsChanged
14496                 o ParentFontChanged
14497                 o Move
14498           - Removed debug output
14499           - Added a call to the current theme's ResetDefaults when a color change
14500             is detected
14501         * Form.cs: Now setting the proper ImeMode
14502         * Theme.cs: Defined a method to force recreation of cached resources
14503           and rereading of system defaults (ResetDefaults())
14504         * ThemeWin32Classic.cs: Added ResetDefaults() stub
14505
14506 2005-01-17  Peter Bartok  <pbartok@novell.com>
14507
14508         * Control.cs: Added missing attributes
14509
14510 2005-01-17  Jackson Harper  <jackson@ximian.com>
14511
14512         * TreeNode.cs: Implement editing. Add missing properties selected
14513         and visible.
14514         * TreeView.cs: Implement node editing. Also some fixes to use
14515         Invalidate (invalid area) instead of Refresh when selecting.
14516
14517 2005-01-17  Peter Bartok  <pbartok@novell.com>
14518
14519         * Control.cs:
14520           - Implemented InvokeGotFocus() method
14521           - Implemented InvokeLostFocus() method
14522           - Implemented InvokePaint() method
14523           - Implemented InvokePaintBackground() method
14524           - Implemented InvokeClick() method
14525           - Implemented FindForm() method
14526           - Implemented RectangleToClient() method
14527           - Implemented ClientToRectangle() method
14528           - Implemented ResetBackColor() method
14529           - Implemented ResetCursor() method
14530           - Implemented ResetFont() method
14531           - Implemented ResteForeColor() method
14532           - Implemented ResetImeMode() method
14533           - Implemented ResetLeftToRight() method
14534           - Implemented ResetText() method
14535           - Implemented Scale() methods
14536           - Implemented ScaleCore() method
14537           - Implemented Update() method
14538           - Removed unused variables
14539           - Stubbed AccessibilityNotifyClients and
14540             ControlAccessibleObject.NotifyClients() methods (dunno what to do
14541             with those yet)
14542           - Now setting proper default for RightToLeft property
14543           - Fixed bug in SetClientSizeCore that would cause windows to get
14544             really big
14545           - Now sending Click/DoubleClick events
14546           - Now selecting controls when left mouse button is clicked on
14547             selectable control
14548         * AccessibleEvents.cs: Added
14549         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
14550         * XplatUIOSX.cs: Stubbed UpdateWindow() method
14551         * XplatUIWin32.cs: Implemented UpdateWindow() method
14552         * XplatUIX11.cs: Implemented UpdateWindow() method
14553         * Form.cs: Removed stray semicolon causing CS0162 warning
14554         * ThemeWin32Classic.cs: Fixed unused variable warnings
14555         * ScrollableControl.cs: Now calls base method for ScaleCore
14556         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
14557           style to avoid interference with internal click handler (which is
14558           different than standard Control click handling)
14559         * RadioButton.cs:
14560           - Now unchecks all sibling radio buttons when control is
14561             selected (Fixes #68756)
14562           - Removed internal tabstop variable, using the one inherited from
14563             Control
14564
14565 2005-01-17  Jackson Harper  <jackson@ximian.com>
14566
14567         * NavigateEventArgs.cs: Fix base type.
14568         * LinkLabel.cs: Sig fix
14569         
14570 2005-01-17  Jackson Harper  <jackson@ximian.com>
14571
14572         * TreeView.cs: Only invalidate the effected nodes bounds when
14573         selecting nodes.
14574
14575 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14576
14577         * XplatUIWin32.cs: fixes Win32 marshaling
14578         * XplatUIX11.cs: fixes method signature
14579
14580 2005-01-17  Peter Bartok  <pbartok@novell.com>
14581
14582         * XplatUIX11.cs: Clean up resources when we no longer need them
14583
14584 2005-01-17  Peter Bartok  <pbartok@novell.com>
14585
14586         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
14587           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
14588           and DestroyCursor() methods.
14589         * Cursor.cs: Partially implemented, now supports standard cursors;
14590           still contains some debug code
14591         * Cursors.cs: Implemented class
14592         * Control.cs:
14593           - WndProc(): Added handling of WM_SETCURSOR message, setting the
14594             appropriate cursor
14595           - Implemented Cursor property
14596           - Replaced break; with return; more straightforwar and possibly
14597             faster
14598           - Now properly setting the result for WM_HELP
14599         * X11Structs.cs: Added CursorFontShape enum
14600         * XplatUIStructs.cs:
14601           - Added StdCursor enum (to support DefineStdCursor() method)
14602           - Added HitTest enum (to support sending WM_SETCURSOR message)
14603         * XplatUIX11.cs:
14604           - Now sends the WM_SETCURSOR message
14605           - Implemented new cursor methods
14606         * XplatUIOSX.cs: Stubbed new cursor methods
14607         * XplatUIWin32.cs:
14608           - Implemented new cursor methods
14609           - Added GetSystemMetrics function and associated enumeration
14610
14611 2005-01-15  Peter Bartok  <pbartok@novell.com>
14612
14613         * Control.cs:
14614           - WndProc(): Now handles EnableNotifyMessage
14615           - SelectNextControl(): Fixed bug where if no child or sibling
14616             controls exist we looped endlessly
14617
14618 2005-01-14  Jackson Harper  <jackson@ximian.com>
14619
14620         * TreeView.cs: Recalculate the tab pages when a new one is added
14621         so that the proper bounding rects are created.
14622
14623 2005-01-14  Jackson Harper  <jackson@ximian.com>
14624
14625         * TreeView.cs: Draw a gray box instead of a grip in the lower
14626         right hand corner when there are both horizontal and vertical
14627         scroll bars.
14628
14629 2005-01-14  Jackson Harper  <jackson@ximian.com>
14630
14631         * Control.cs: When erasing backgrounds use FromHwnd instead of
14632         FromHdc when there is a NULL wparam. This occurs on the X driver.
14633         * XplatUIX11.cs: Set the wparam to NULL.
14634
14635 2005-01-13  Jackson Harper  <jackson@ximian.com>
14636
14637         * PictureBox.cs: Implement missing methods (except ToString, need
14638         to test that on windows) and events. When visibility is changed we
14639         need to redraw the image because the buffers are killed. When size
14640         is changed refresh if the sizemode needs it.
14641
14642 2005-01-13  Peter Bartok  <pbartok@novell.com>
14643
14644         * Control.cs (SelectNextControl): Was using wrong method to select
14645           a control
14646
14647 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14648
14649         * ComboBox.cs: fixes dropstyle
14650
14651 2005-01-13  Peter Bartok  <pbartok@novell.com>
14652
14653         * Form.cs:
14654           - Implemented Select() override
14655           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
14656           - Now sets keyboard focus on startup
14657         * Control.cs (SelectNextControl): Now properly handles directed=true
14658         * TextBoxBase.cs:
14659           - WndProc: Now passes tab key on to base if AcceptTabChar=false
14660           - Added (really bad) focus rectangle (mostly for testing)
14661         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
14662           to enforce redraw on focus changes
14663         * ContainerControl.cs:
14664           - Fixed detection of Shift-Tab key presses
14665           - Fixed traversal with arrow keys
14666         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
14667           gonna keep this or if it's complete yet
14668         
14669 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
14670
14671         * ComboBox.cs: missing properties, fixes
14672
14673 2005-01-13  Peter Bartok  <pbartok@novell.com>
14674
14675         * Panel.cs (ctor): Setting Selectable window style to off
14676         * Splitter.cs (ctor): Setting Selectable window style to off
14677         * GroupBox.cs (ctor): Setting Selectable window style to off
14678         * Label.cs (ctor): Setting Selectable window style to off
14679
14680 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
14681
14682         * UpDownBase.cs (InitTimer): If the timer has been already
14683         created, enable it.
14684
14685         Use a TextBox instead of a Label.
14686
14687 2005-01-12  Jackson Harper  <jackson@ximian.com>
14688
14689         * TreeView.cs: Refresh the tree after sorting the nodes. Always
14690         draw the connecting node lines (when ShowLines is true).
14691         * TreeNode.cs: The nodes index can now be updated. This is used
14692         when a node collection is sorted.
14693         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
14694         insert or an existing unsorted node collection can be sorted.
14695         
14696 2005-01-12  Peter Bartok  <pbartok@novell.com>
14697
14698         * ContainerControl.cs: Implemented ProcessDialogKeys()
14699
14700 2005-01-12  Peter Bartok  <pbartok@novell.com>
14701
14702         * Control.cs:
14703           - Implemented SelectNextControl() method
14704           - Several focus related bug fixes
14705           - Fixed Docking calculations to match MS documentation and
14706             behaviour
14707
14708 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
14709
14710         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
14711         bug fixes
14712
14713 2005-01-12  Peter Bartok  <pbartok@novell.com>
14714
14715         * Control.cs:
14716           - Fixed broken Contains() method
14717           - Implemented GetNextControl() method. Finally. This is the pre-
14718             requisite for focus handling.
14719
14720 2005-01-12  Peter Bartok  <pbartok@novell.com>
14721
14722         * OSXStrucs.cs: Added
14723
14724 2005-01-12  Peter Bartok  <pbartok@novell.com>
14725
14726         * XplatUIWin32.cs:
14727           - Removed PeekMessageFlags
14728           - Implemented SetWindowStyle() method
14729         * XplatUIStructs.cs: Added PeekMessageFlags
14730         * X11Structs: Added missing border_width field to XWindowChanges struct
14731         * XplatUIX11.cs:
14732           - PeekMessage: Now throws exception if flags which are not yet
14733             supported are passed
14734           - Implemented SetWindowStyle() method
14735           - Fixed SetZOrder to handle AfterHwnd properly
14736         * XplatUI.cs: Added SetWindowStyle() method
14737         * XplatUIDriver.cs: Added SetWindowStyle() abstract
14738         * Control.cs:
14739           - Implemented UpdateStyles() method
14740           - Implemented UpdateZOrder() method
14741         * XplatUIOSX.cs: Added SetWindowStyle() stub
14742
14743 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
14744
14745         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
14746         button mouse).
14747
14748
14749 2005-01-11  Jackson Harper  <jackson@ximian.com>
14750
14751         * TreeView.cs: Still need to draw lines to siblings even if out of
14752         the current node is out of the clip.
14753
14754 2005-01-11  Jackson Harper  <jackson@ximian.com>
14755
14756         * TreeView.cs: When setting the hbar/vbar/grip position use
14757         SetBounds so that perform layout is only called once. Also suspend
14758         and resume layout so layout is only done once for all controls.
14759         - Removed some debug fluff
14760         * SizeGrip.cs: Call base implmentation in overriding methods.
14761         - When visibility is changed the drawing buffers are killed so we
14762         need to redraw.
14763
14764 2005-01-11  Jackson Harper  <jackson@ximian.com>
14765
14766         * TreeView.cs: Calculate the open node count while drawing. This
14767         saves us an entire tree traversal for every paint operation. Use
14768         a member var for the open node count so less vars are passed around.
14769
14770 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
14771
14772         * MonthCalendar.cs:
14773         - fixed selection to use mousemove, not mouse polling on timer
14774         * ThemeWin32Classic.cs
14775         - removed redundant unused variable "no_more_content"
14776         
14777 2005-01-11  Peter Bartok  <pbartok@novell.com>
14778
14779         * XplatUIX11.cs (DoEvents): Needs to return when no more events
14780           are pending, so it now calls PeekMessage instead of GetMessage;
14781           implemented a incomplete version of PeekMessage
14782         
14783 2005-01-11  Peter Bartok  <pbartok@novell.com>
14784
14785         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
14786           I18n issues
14787         * TextBoxBase.cs: Added sending of TextChanged event
14788
14789 2005-01-10  Jackson Harper  <jackson@ximian.com>
14790
14791         * TreeView.cs: Try not to draw outside the clipping rectangle on
14792         each node element.
14793
14794 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
14795
14796         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
14797
14798 2005-01-10  Jackson Harper  <jackson@ximian.com>
14799
14800         * TreeView.cs:
14801         - Implement fast scrolling. Now only the newly
14802         exposed nodes are drawn and the old image is moved using the
14803         XplatUI::ScrollWindow method.
14804         - Factor in height of nodes when calculating whether or not the
14805         node is in the clipping rect.
14806
14807 2005-01-10  Jackson Harper  <jackson@ximian.com>
14808
14809         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
14810
14811 2005-01-10  Peter Bartok  <pbartok@novell.com>
14812
14813         * Application.cs: Added temporary hack to resolve all our resize
14814           required issues on startup. This will get fixed properly at
14815           some point in the future
14816
14817 2005-01-10  Jackson Harper  <jackson@ximian.com>
14818
14819         * SizeGrip.cs: New internal class that is used as a sizing
14820         grip control...hence the name.
14821
14822 2005-01-10  Peter Bartok  <pbartok@novell.com>
14823
14824         * Control.cs: Implemented proper TabIndex handling, now assigning
14825           a tabindex when a control is added to a container
14826         * GroupBox.cs (ctor): Now sets the Container style bit, required
14827           for Control.GetNextControl()
14828
14829 2005-01-09  Jackson Harper  <jackson@ximian.com>
14830
14831         * TextBoxBase.cs: Clear window when scrolling (fixes build).
14832
14833 2005-01-09  Peter Bartok <pbartok@novell.com>
14834
14835         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14836           XplatUIX11.cs: Added ability to control ScrollWindow expose and
14837           an overload for ScrollWindow to allow only scrolling a rectangle
14838
14839 2005-01-09  Peter Bartok <pbartok@novell.com>
14840
14841         * Form.cs:
14842           - Implemented SetDesktopBounds method
14843           - Implemented SetDesktopLocation method
14844
14845 2005-01-08  Jackson Harper  <jackson@ximian.com>
14846
14847         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
14848         the node count has changed, this removes to VScroll::Refresh calls
14849         when drawing.
14850
14851 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
14852
14853         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
14854
14855 2005-01-07  Jackson Harper  <jackson@ximian.com>
14856
14857         * TreeNode.cs: Just update the single node when it is
14858         checked. Don't refresh after toggling, the Expand/Collapse already
14859         handles this.
14860         * TreeView.cs: Respect clipping a little more when drawing. Try
14861         not to redraw things that don't need to be redrawn. Just hide the
14862         scrollbars when they are no longer needed instead of removing
14863         them, so they don't have to be created again and again.
14864         
14865 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
14866
14867         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
14868         coordinates to window space to place the caret properly, FIXED.
14869         Implement GetWindowState & SetWindowState
14870
14871 2005-01-06  Peter Bartok <pbartok@novell.com>
14872
14873         * Form.cs:
14874           - Implemented ClientSize property
14875           - Implemented DesktopBounds property
14876           - Implemented DesktopLocation property
14877           - Implemented IsRestrictedWindow property
14878           - Implemented Size property
14879           - Implemented TopLevel property
14880           - Implemented FormWindowState property
14881         * Control.cs:
14882           - Implemented GetTopLevel() method
14883           - Implemented SetTopLevel() method
14884         * X11Structs.cs (Atom):
14885           - Added AnyPropertyType definition
14886           - Added MapState definiton and updated XWindowAttribute struct
14887         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
14888         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
14889         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
14890         * XplatUIWin32.cs:
14891           - Implemented GetWindowState() and SetWindowState() methods
14892           - Fixed Win32GetWindowLong return type
14893         * XplatUIX11.cs:
14894           - Introduced central function for sending NET_WM messages
14895           - Implemented GetWindowState() and SetWindowState() methods
14896         * TextBoxBase.cs (set_Lines):
14897           - Now uses Foreground color for text added via Text property (Duh!)
14898           - Added code to remember programmatically requested size (fixes
14899             behaviour when Multiline is set after Size)
14900           - Added AutoSize logic
14901
14902 2005-01-06  Jackson Harper  <jackson@ximian.com>
14903
14904         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
14905
14906 2005-01-06  Jackson Harper  <jackson@ximian.com>
14907
14908         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
14909         set to less then 0.
14910
14911 2005-01-06  Jackson Harper  <jackson@ximian.com>
14912
14913         * ScrollableControl.cs: Lazy init the scrollbars.
14914         
14915 2005-01-06  Jackson Harper  <jackson@ximian.com>
14916
14917         * Theme.cs: Speed up getting pens and solid brushes, by using
14918         their ARGB as a hash instead of tostring and not calling Contains.
14919
14920 2005-01-06  Peter Bartok <pbartok@novell.com>
14921
14922         * Form.cs:
14923           - Implemented OnActivated and OnDeactivate event trigger
14924           - Implemented Activate() method
14925           - Fixed ShowDialog() to activate the form that was active before
14926             the dialog was shown
14927         * XplatUIX11.cs:
14928           - Added global active_window var that tracks the currently active
14929             X11 window
14930           - Now always grabs Property changes from the root window to always
14931             catch changes on the active window property
14932           - Added code to PropertyNotify handler to send Active/Inactive
14933             messages when state changes. This puts X11 and Win32 en par on
14934             WM_ACTIVATE notifications (except for double notifications when
14935             the user clicks away from our modal window to another one of our
14936             windows)
14937
14938 2005-01-05  Jackson Harper  <jackson@ximian.com>
14939
14940         * ImageList.cs: Implment ctor
14941
14942 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14943
14944         * XplatUIOSX.cs: Implement Activate/SetTopmost
14945
14946 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14947
14948         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
14949
14950 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14951
14952         * XplatUIOSX.cs: Implement GetActive/SetFocus.
14953
14954 2005-01-05  Peter Bartok <pbartok@novell.com>
14955
14956         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
14957           XplatUIOSX.cs: Added GetActive method to return the currently
14958           active window for the application (or null, if none is active)
14959         * Form.cs:
14960           - Implemented ActiveForm
14961           - Commented out owner assignment for modal dialogs (causes problems
14962             on Win32, since the owner will be disabled)
14963           - Reworked some Active/Focus handling (still incomplete)
14964         * CommonDialog.cs: Commented out owner assignment for modal dialogs
14965           (causes problems on Win32, since the owner will be disabled)
14966         * IWin32Window: Added ComVisible attribute
14967
14968 2005-01-05  Peter Bartok <pbartok@novell.com>
14969
14970         * ToolTip.cs (WndProc): Enable setting focus now that we have the
14971           required XplatUI functions.
14972
14973 2005-01-05  Peter Bartok <pbartok@novell.com>
14974
14975         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
14976           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
14977           to implement focus and activation handling; still incomplete and
14978           with debug output
14979
14980 2005-01-04  Peter Bartok <pbartok@novell.com>
14981
14982         * TextBoxBase.cs: Changed access level for Document property to
14983           match switch to internal for TextControl
14984
14985 2005-01-04  Peter Bartok <pbartok@novell.com>
14986
14987         * AccessibleObject: Added ComVisible attribute
14988
14989 2005-01-04  Jackson Harper  <jackson@ximian.com>
14990
14991         * X11Keyboard.cs: Remove unneeded var.
14992
14993 2005-01-04  Jackson Harper  <jackson@ximian.com>
14994
14995         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
14996         but PAINT.
14997         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
14998         ClientMessage. This makes apps exit cleanly (more often).
14999         
15000 2005-01-04  Jackson Harper  <jackson@ximian.com>
15001
15002         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
15003         handling focus, return correct colors and fonts,
15004         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
15005         handle selection, horizontal scrolling, and mouse interaction.
15006
15007 2005-01-04  Peter Bartok <pbartok@novell.com>
15008
15009         * ICommandExecutor.cs: Added
15010         * IDataGridColumnStyleEditingNotificationService.cs: Added
15011         * IFeatureSupport.cs: Added
15012         * IFileReaderService.cs: Added
15013         * IDataObject.cs: Added ComVisible attribute
15014         * AmbientProperties.cs: Added
15015         * BaseCollection.cs: Added missing attributes
15016         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
15017         * BaseCollection.cs: Added missing attributes
15018         * Binding.cs: Added TypeConverter attribute
15019         * BindingContext.cs: Added DefaultEvent attribute
15020         * BindingsCollection.cs: Added DefaultEvent attribute
15021         * Button.cs: Added DefaultValue attribute
15022         * DragEventArgs.cs: Added ComVisible attribute
15023         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
15024         * KeyEventArgs.cs: Added ComVisible attribute
15025         * KeyPressEventArgs.cs: Added ComVisible attribute
15026         * MouseEventArgs.cs: Added ComVisible attribute
15027         * NavigateEventArgs.cs: Added
15028         * NavigateEventHandler.cs: Added
15029         * FeatureSupport.cs: Added
15030         * OSFeature.cs: Added
15031         * Theme.cs: Added abstract Version property to support OSFeature
15032         * ThemeWin32Classic.cs: Added Version property to
15033           support OSFeature.Themes
15034         * ProgressBar.cs: Removed OnPaintBackground override, not required since
15035           the proper styles to avoid background drawing are set, also doesn't
15036           match MS signature
15037         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
15038         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
15039         * ScrollEventArgs.cs: Added ComVisible attribute
15040         * SplitterEventArgs.cs: Added ComVisible attribute
15041         * AccessibleSelection.cs: Added Flags attribute
15042         * Appearance.cs: Added ComVisible attribute
15043         * Border3DSide.cs: Added ComVisible attribute
15044         * Border3DStyle.cs: Added ComVisible attribute
15045         * BorderStyle.cs: Added ComVisible attribute
15046         * DragAction.cs: Added ComVisible attribute
15047         * ErrorBlinkStyle.cs: Added
15048         * ScrollEventType.cs: Added ComVisible attribute
15049         * AnchorStyles.cs: Added Editor attribute
15050         * DockStyle.cs: Added Editor attribute
15051         * HorizontalAlignment.cs: Added ComVisible attribute
15052         * HelpEventArgs.cs: Added ComVisible attribute
15053         * PaintEventArgs.cs: Added IDisposable
15054
15055 2005-01-04  Peter Bartok <pbartok@novell.com>
15056
15057         * TextControl.cs: Switched Line, LineTag and Document classes to
15058           internal
15059
15060 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15061
15062         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
15063         Simple mode, fixes, IntegralHeight, etc.
15064
15065 2005-01-04  Peter Bartok <pbartok@novell.com>
15066
15067         * TextBoxBase.cs: Using proper font variable now
15068
15069 2005-01-04  Peter Bartok <pbartok@novell.com>
15070
15071         * Form.cs (ShowDialog): Set parent to owner, if provided
15072         * GroupBox.cs: Removed unused vars
15073         * TextControl.cs:
15074           - Added GetHashCode() for Document and LineTag classes
15075           - Removed unused variables
15076           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
15077             to allow translation between continuous char position and line/pos
15078         * CheckBox.cs: Removed vars that are provided by base class
15079         * RadioButton.cs: Removed vars that are provided by base class, added
15080           new keyword where required
15081         * LinkLabel.cs: Added new keyword where required
15082         * Control.cs (WndProc): Removed unused variable
15083         * TextBoxBase.cs:
15084           - Finished SelectionLength property
15085           - Implemented SelectionStart property
15086           - Implemented Text property
15087           - Removed unused vars
15088         * MessageBox.cs: Added new keyword where required
15089         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
15090           WndProc signature
15091         * MenuAPI.cs: Added new keyword where required
15092         * ButtonBase.cs: Removed vars that are provided by base class, added
15093           new keyword where required
15094         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
15095           argument to double, to allow compiling with csc 2.0 (Atsushi ran
15096           into this)
15097         * Application.cs (Run): Now triggers the ThreadExit event
15098         * CommonDialog.cs: Added new keyword where required; now properly sets
15099           parent (owner) for dialog
15100         * XplatUIX11.cs: Commented out unused vars
15101         * StatusBar.cs: Fixed signature for Text property
15102         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
15103
15104 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
15105
15106         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
15107         TrackBar.cs, MonthCalendar.cs: remove unused vars
15108
15109 2005-01-03  Jackson Harper  <jackson@ximian.com>
15110
15111         * ThemeWin32Classic.cs:
15112         * X11Keyboard.cs: Remove unused vars.
15113
15114 2005-01-03  Peter Bartok  <pbartok@novell.com>
15115
15116         * TextBox.cs:
15117           - set_Text: Tied into TextControl
15118           - set_TextAlignment: Tied into TextControl
15119         * TextControl.cs:
15120           - Added alignment properties and implemented alignment handling
15121             and drawing (still has a bug, not generating proper expose events)
15122           - Added new Line() constructor to allow passing the line alignment
15123           - Fixed selection setting, properly handling end<start now
15124           - Added aligment considerations to RecalculateDocument()
15125         * TextBoxBase.cs:
15126           - Now properly enforces control height for single line controls
15127           - Added support for CharacterCasing
15128           - Added IsInputKey override
15129           - Fixed Keys.Enter logic
15130           - Added SetBoundsCore override
15131           - Fixed mouse selection handling
15132
15133 2005-01-03  Jackson Harper  <jackson@ximian.com>
15134
15135         * TreeView.cs:
15136           - Collapse and uncheck all nodes when CheckBoxes is disabled.
15137           - Checkboxes are always aligned to the bottom of the node,
15138           regardless of item height.
15139           - Use the node bounds to draw the text so we can center it when
15140           the item height is greater then the font height.
15141           - Node::Bounds are only the text part of the node.
15142         * TreeNode.cs: New method to combine collapsing and unchecking all
15143           nodes recursively.
15144
15145 2005-01-02  Jackson Harper  <jackson@ximian.com>
15146
15147         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
15148         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
15149         tree when a check is changed. TODO: Only refresh the checked node.
15150
15151 2004-12-30  Jackson Harper  <jackson@ximian.com>
15152
15153         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
15154         * TreeNode.cs: When collapsing make sure to never collapse the
15155         root node.
15156
15157 2004-12-29  Jackson Harper  <jackson@ximian.com>
15158
15159         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
15160         
15161 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
15162
15163         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
15164
15165 2004-12-28  Peter Bartok  <pbartok@novell.com>
15166
15167         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
15168           not yet assigned
15169
15170 2004-12-28  Peter Bartok  <pbartok@novell.com>
15171
15172         * Control.cs (WndProc): Added WM_HELP handler, now generates
15173           HelpRequested event
15174         * Form.cs: Added HelpButton property and required support code
15175         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
15176
15177 2004-12-28  Peter Bartok  <pbartok@novell.com>
15178
15179         * CommonDialog.cs:
15180           - Made DialogForm.owner variable internal
15181           - Added check to ensure owner form is set before setting
15182             owner properties in CreateParams
15183
15184 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
15185
15186         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
15187           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
15188           GetCursorPos.  Fix major visibility issues.  Rework the windowing
15189           system to support borderless/titleless windows (implements menus).
15190           Fix GetWindowPos.  Implement initial background color support for
15191           views.
15192
15193 2004-12-28  Peter Bartok  <pbartok@novell.com>
15194
15195         * Form.cs (get_CreateParams): Make sure we have an owner before using
15196           the owner variable. Implement proper default if no owner exists
15197
15198 2004-12-28  Peter Bartok  <pbartok@novell.com>
15199
15200         * In preparation for making Managed.Windows.Forms the default build target
15201           for System.Windows.Forms, the following stubbed files were added.
15202           Dialogs are currently being implemented by contributors and are only
15203           short-term place holders.
15204         * ColorDialog.cs: Initial check-in (minmal stub)
15205         * DataGrid.cs: Initial check-in (minimal stub)
15206         * DataGridLineStyle.cs: Initial check-in (minimal stub)
15207         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
15208         * DataGridTableStyle.cs: Initial check-in (minimal stub)
15209         * FontDialog.cs: Initial check-in (minimal stub)
15210         * FileDialog.cs: Initial check-in (minimal stub)
15211         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
15212         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
15213         * OpenFileDialog: Initial check-in (minimal stub)
15214         * IComponentEditorPageSite.cs: Initial check-in
15215         * Splitter.cs: Initial check-in (for Jackson)
15216         * SplitterEventArgs.cs: Initial check-in (for Jackson)
15217         * SplitterEventHandler.cs: Initial check-in (for Jackson)
15218         * TextBox.cs: Initial check-in; still needs some wiring to
15219           TextControl backend
15220         * Form.cs: Implemented ControlBox property
15221         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
15222         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
15223         * TextControl.cs: Added selection functionality; added todo header
15224         * TextBoxBase.cs:
15225           - Implemented Lines property
15226           - Implemented TextHeight property
15227           - Implemented SelectedText property
15228           - Implemented SelectionLength property
15229           - Implemented SelectAll method
15230           - Implemented ToString method
15231           - Removed and cleaned up some debug code
15232           - Implemented (still buggy) mouse text selection
15233
15234 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
15235
15236         * ComboBox.cs: Complete DropDownList implementation, fixes.
15237
15238 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
15239
15240         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
15241         * ComboBoxStyle.cs: ComboBoxStyle enum
15242         * ComboBox.cs: Initial work on ComboBox control
15243
15244 2004-12-21  Peter Bartok  <pbartok@novell.com>
15245
15246         * Control.cs (ctor, CreateParams): Moved setting of is_visible
15247           forward so that anything that creates a window gets the default,
15248           also no longer uses Visible property in CreateParams to avoid
15249           walking up the parent chain and possibly get the wrong visible
15250           status. Fixed IsVisible to no longer walk up to the parent.
15251
15252 2004-12-21  Peter Bartok  <pbartok@novell.com>
15253
15254         * Form.cs (ShowDialog): Unset modality for the proper window
15255  
15256 2004-12-20  Peter Bartok  <pbartok@novell.com>
15257
15258         * CommonDialog.cs: Initial check-in
15259
15260 2004-12-20  Peter Bartok  <pbartok@novell.com>
15261
15262         * Control.cs (Visible): Now uses the parent window instead of the
15263           client area window for the property
15264
15265         * Form.cs
15266           - ShowDialog(): Now uses the proper window for modality
15267           - The default visibility state for the form parent is now false. This
15268             will prevent the user from seeing all the changes to the form and
15269             its controls before the application hits Application.Run()
15270           - Removed some stale commented out code
15271
15272         * NativeWindow.cs:
15273           - Added FindWindow() method to have a method to check for existence
15274             of a window handle
15275           - Added ability to override default exception handling (for example
15276             when debugging with VS.Net; to do this the ExternalExceptionHandler
15277             define must be set
15278           - Removed some useless debug output
15279
15280         * XplatUIX11.cs:
15281           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
15282             not working as expected
15283           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
15284             property to allow switching back to the modal window if focus is
15285             given to another one of our windows (Application Modal)
15286           - Now only sets override_redirect if we create a window
15287             without WS_CAPTION
15288           - Moved EventMask selection before mapping of newly created window
15289             so we can catch the map event as well
15290           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
15291           - Added various Atom related DllImports
15292           - Implemented Exit() method
15293           - .ctor() : No longer shows window if WS_VISIBLE is not defined
15294             in the CreateParams
15295
15296         * MessageBox.cs: Now properly deals with the FormParent window by
15297           providing an override the FormParent CreateParams property to
15298           set as POPUP instead of OVERLAPPED window.
15299
15300 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15301
15302         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
15303         Minor code cleanup.
15304
15305 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
15306         
15307         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
15308
15309 2004-12-18  Peter Bartok  <pbartok@novell.com>
15310
15311         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
15312           implementing SetModal() method
15313
15314 2004-12-18  Peter Bartok  <pbartok@novell.com>
15315
15316         * X11Structs.cs (XGCValues): Fixed type of function element
15317         * XplatUI.cs: Added ScrollWindow() method
15318         * XplatUIDriver.cs: Added ScrollWindow() abstract
15319         * XplatUIWin32.cs: Implemented ScrollWindow() method
15320         * XplatUIX11.cs: Implemented ScrollWindow() method
15321         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
15322
15323 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15324
15325         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
15326         Some more keyboard support (INCOMPLETE)
15327
15328 2004-12-17  Peter Bartok  <pbartok@novell.com>
15329
15330         * TextControl.cs:
15331         - Added color attribute to line tags.
15332         - Added color argument to all functions dealing with tags
15333         - Added color argument support to various functions
15334         - Fixed miss-calculation of baseline/shift in certain circumstances
15335
15336         * TextBoxBase.cs: Added new color option to test code
15337
15338 2004-12-17  Jackson Harper  <jackson@ximian.com>
15339
15340         * TreeNode.cs:
15341         * MonthCalendar.cs: Signature fixes
15342
15343 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15344
15345         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
15346         keyboard event moved it.  Create a new graphics context for each paint resolves this
15347
15348 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
15349
15350         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
15351         Make caret exist and go blink blink.  Initial keyboard support.
15352         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
15353         works.
15354
15355 2004-12-17  Jackson Harper  <jackson@ximian.com>
15356
15357         * XplatUIStructs.cs: Updated set of virtual keycodes.
15358         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
15359
15360 2004-12-17  Jackson Harper  <jackson@ximian.com>
15361
15362         * XplatUIX11.cs: Prune old keyboard code.
15363
15364 2004-12-17  Jackson Harper  <jackson@ximian.com>
15365
15366         * XplatUIX11.cs: When generating mouse wparams get the modifier
15367         keys from the ModifierKeys property.
15368
15369 2004-12-17  Jackson Harper  <jackson@ximian.com>
15370
15371         * X11Keyboard.cs: Send up/down input when generating
15372         messages. Remove some unused vars.
15373
15374 2004-12-17  Jackson Harper  <jackson@ximian.com>
15375
15376         * TabControl.cs:
15377         * TreeView.cs: get rid of warnings.
15378
15379 2004-12-17  Jackson Harper  <jackson@ximian.com>
15380
15381         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
15382
15383 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
15384
15385         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
15386           CheckedListBox.cs: Implementation
15387
15388 2004-12-17  Peter Bartok  <pbartok@novell.com>
15389
15390         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
15391
15392 2004-12-16  Peter Bartok  <pbartok@novell.com>
15393
15394         * TextControl.cs:
15395           - InsertCharAtCaret(): Fixed start pos fixup
15396           - CaretLine_get: No longer derives the line from the tag, the tag
15397             could be stale if lines in the document have been added or deleted
15398           - RebalanceAfterDelete(): Fixed bug in balancing code
15399           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
15400           - Line.Streamline(): Now can also elminate leading empty tags
15401           - DumpTree(): Added a few more tests and prevented exception on
15402             uninitialized data
15403           - Added Debug section for Combining lines
15404           - Delete(): Now copies all remaining properties of a line
15405           
15406         * TextBoxBase.cs:
15407           - Left mousebutton now sets the caret (and middle button still acts
15408             as formatting tester, which must go away soon)
15409           - Added Debug section for Deleting/Combining lines
15410           - Fixed calculations for UpdateView after Combining lines
15411
15412 2004-12-16  Peter Bartok  <pbartok@novell.com>
15413
15414         * TextControl.cs: Now properly aligns text on a baseline, using the
15415           new XplatUI.GetFontMetrics() method. Simplified several calculations
15416         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
15417           defined
15418
15419 2004-12-16  Peter Bartok  <pbartok@novell.com>
15420
15421         * XplatUI.cs: Added GetFontMetrics() method
15422         * XplatUIDriver.cs: Added GetFontMetrics() abstract
15423         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
15424           into libgdiplus, our private GetFontMetrics function
15425         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
15426         * XplatUIWin32.cs: Implemented GetFontMetrics() method
15427
15428 2004-12-16  Jackson Harper  <jackson@ximain.com>
15429
15430         * XplatUIStruct.cs: Add enum for dead keys
15431         * X11Keyboard.cs: Map and unmap dead keys.
15432
15433 2004-12-16  Jackson Harper  <jackson@ximian.com>
15434
15435         * X11Keyboard.cs: Detect and use the num lock mask.
15436
15437 2004-12-16  Peter Bartok  <pbartok@novell.com>
15438
15439         * Control.cs (CreateGraphics): Added check to make sure the
15440           handle of the window exists before calling Graphics.FromHwnd()
15441
15442 2004-12-16  Peter Bartok  <pbartok@novell.com>
15443
15444         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
15445           contains a lot of code that's not supposed to be there for the
15446           real thing, but required for developing/testing the textbox
15447           backend.
15448
15449 2004-12-16  Peter Bartok  <pbartok@novell.com>
15450
15451         * TextControl.cs:
15452         - Fixed Streamline method
15453         - Added FindTag method to Line
15454         - Added DumpTree method for debugging
15455         - Added DecrementLines() method for deleting lines
15456         - Fixed UpdateView to update the cursor to end-of-line on single-line
15457           updates
15458         - Added PositionCaret() method
15459         - Fixed MoveCaret(LineDown) to move into the last line, too
15460         - Added InsertChar overload
15461         - Fixed InsertChar tag offset calculations
15462         - Added DeleteChar() method
15463         - Added Combine() method for folding lines
15464         - Fixed Delete() method, no longer allocates wasted Line object and
15465           now copies all properties when swapping nodes
15466         - Delete() method now updates document line counter
15467
15468 2004-12-15  Jackson Harper  <jackson@ximian.com>
15469
15470         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
15471         * X11Keyboard.cs: Expose the currently selected modifier keys
15472         through a property.
15473
15474 2004-12-15  Peter Bartok  <pbartok@novell.com>
15475
15476         * TextControl.cs: Initial check-in. Still incomplete
15477
15478 2004-12-15  Jackson Harper  <jackson@ximian.com>
15479
15480         * TreeNode.cs:
15481         * TreeView.cs: Fix build on csc (second time today ;-))
15482
15483 2004-12-15  Jackson Harper  <jackson@ximian.com>
15484
15485         * TreeView.cs: Store the treenodes plus/minus box bounds when it
15486         is calculated and use this for click testing.
15487         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
15488
15489 2004-12-15  Jackson Harper  <jackson@ximian.com>
15490
15491         * TreeView.cs: Pass the nodes image index to the image list when
15492         drawing that image.
15493
15494 2004-12-15  Jackson Harper  <jackson@ximian.com>
15495
15496         * X11Keyboard.cs: Set messages hwnd.
15497         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
15498         post_message calls.
15499
15500 2004-12-15  Jackson Harper  <jackson@ximian.com>
15501
15502         * X11Keyboard.cs: Fix to compile with csc.
15503         
15504 2004-12-15  Jackson Harper  <jackson@ximian.com>
15505
15506         * X11Structs.cs: Add key mask values
15507         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
15508         * X11Keyboard.cs: New file - Extrapolates and interpolates key
15509         down/up foo into WM_CHAR foo
15510         * KeyboardLayouts.cs: Common keyboard layouts
15511         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
15512         post messages into the main queue.
15513
15514 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
15515
15516         * Button.cs: implement ProcessMnemonic
15517         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
15518           brushes everytime
15519         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
15520         * ButtonBase.cs: Show HotkeyPrefix (not the &)
15521
15522 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
15523         
15524         * MonthCalendar.cs: Implemented click-hold for next/previous month
15525           and date selection
15526           
15527 2004-12-11  Peter Bartok  <pbartok@novell.com>
15528
15529         * X11Structs.cs:
15530           - Added XKeyboardState (moved from XplatUIX11.cs)
15531           - Added XCreateGC related enums and structures
15532           - Added GXFunction for XSetFunction
15533
15534         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
15535
15536         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
15537           CaretVisible() calls
15538
15539         * ToolTip.cs: Added code to prevent stealing focus from app windows
15540
15541         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
15542           DestroyCaret, SetCaretPos and CaretVisible)
15543
15544         * XplatUIX11.cs:
15545           - Added implementation for caret functions
15546           - Moved hover variables into a struct, to make it a bit easier
15547             on the eyes and to debug
15548           - Removed XKeyboardState (moved to XplatUIX11.cs)
15549           - Moved Keyboard properties into the properties region
15550
15551         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
15552           call to get a graphics context for our control
15553
15554         * XplatUIOSX.cs: Added empty overrides for the new caret functions
15555
15556         * TreeView.cs: Fixed bug. No matter what color was set it would always
15557           return SystemColors.Window
15558
15559         * XplatUIWin32.cs: Implemented caret overrides
15560
15561 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
15562
15563         * ListBox.cs: fire events, implement missing methods and properties,
15564         sorting.
15565
15566 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
15567
15568         * MonthCalendar.cs: invalidation bug fixing
15569         * ThemeWin32Classic.cs: paint fixing
15570
15571 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
15572
15573         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
15574         prepare the CGContextRef there now.
15575
15576 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
15577
15578         * MonthCalendar.cs:
15579           - optimisationL only invalidate areas that have changed
15580         * ThemeWin32Classic.cs:
15581           - only paint parts that intersect with clip_area
15582
15583 2004-12-09  Peter Bartok  <pbartok@novell.com>
15584
15585         * Application.cs: Undid changes from r37004 which cause problems
15586         on X11
15587
15588 2004-12-09  Ravindra  <rkumar@novell.com>
15589
15590         * ToolBar.cs: Added support for displaying ContextMenu
15591         attached to a button on ToolBar.
15592         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
15593         property.
15594
15595 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
15596
15597         * Label.cs: autosize works in text change and removes unnecessary
15598         invalidate
15599
15600 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
15601
15602         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15603         remove warnings
15604
15605 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
15606
15607         * XplatUIOSX.cs: Added mouse move/click/grab support
15608         Remove some debugging WriteLines not needed anymore.
15609         Add window resizing/positioning.
15610         Fix visibility on reparenting.
15611
15612 2004-12-08  Peter Bartok  <pbartok@novell.com>
15613
15614         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
15615
15616 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
15617
15618         * XplatUIOSX.cs: Initial checkin
15619         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
15620
15621 2004-12-03  Ravindra <rkumar@novell.com>
15622
15623         * ListView.cs: Added some keybindings and fixed scrolling.
15624         ScrollBars listen to ValueChanged event instead of Scroll
15625         Event. This would let us take care of all changes being
15626         done in the scrollbars' values programmatically or manually.
15627         * ListView.cs (CanMultiselect): Added a check for shift key.
15628         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
15629         * ListViewItem.cs (Clone): Fixed. We need to make a copy
15630         of ListViewSubItemCollection as well.
15631
15632 2004-12-06  Peter Bartok <pbartok@novell.com>
15633
15634         * Control.cs (Parent): Added check and exception to prevent
15635         circular parenting
15636
15637 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
15638
15639         * ListBox.cs: implemented clipping, selection single and multiple,
15640         bug fixing
15641
15642 2004-12-03  Ravindra <rkumar@novell.com>
15643
15644         * ListView.cs (ListView_KeyDown):
15645         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
15646         when CTRL key is pressed.
15647         * ListViewItem.cs (Selected): Fixed setting the property.
15648
15649 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
15650
15651         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
15652
15653         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
15654         MinimizeBox, ShowInTaskbar, TopMost properties.
15655
15656         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
15657         will be implemented).
15658
15659 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
15660
15661         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
15662
15663         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
15664         tests.
15665         
15666         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
15667         
15668         * TreeView.cs: BackColor is Colors.Window.
15669
15670 2004-12-01  Jackson Harper  <jackson@ximian.com>
15671
15672         * TreeView.cs: When resizing the tree if the user is making it
15673         smaller we don't get expose events, so we need to handle adding
15674         the horizontal scrollbar in the size changed handler as well as
15675         the expose handler.
15676
15677 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
15678
15679         * DrawItemState.cs: fixes wrong enum values
15680
15681 2004-12-01  Jackson Harper  <jackson@ximian.com>
15682
15683         * TreeView.cs: Resize the hbar as well as the vbar on resize.
15684
15685 2004-12-01  Jackson Harper  <jackson@ximian.com>
15686
15687         * NodeLabelEditEventArgs.cs:
15688         * NodeLabelEditEventHandler.cs:
15689         * OpenTreeNodeEnumerator.cs:
15690         * TreeNode.cs:
15691         * TreeNodeCollection.cs:
15692         * TreeView.cs:
15693         * TreeViewAction.cs:
15694         * TreeViewCancelEventArgs.cs:
15695         * TreeViewCancelEventHandler.cs:
15696         * TreeViewEventArgs.cs:
15697         * TreeViewEventHandler.cs: Initial implementation.
15698
15699 2004-12-01  Ravindra <rkumar@novell.com>
15700
15701         * ListView.cs (CalculateListView): Fixed scrolling related
15702         calculations. Also, removed some debug statements from other
15703         places.
15704         * ListViewItem.cs: Changed access to 'selected' instance variable
15705         from private to internal.
15706         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
15707
15708 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
15709
15710         * ThemeWin32Classic.cs: remove cache of brush and pens for
15711         specific controls and use the global system, fixes scrollbutton
15712         bugs (for small sizes, disabled, etc)
15713         
15714         * ScrollBar.cs: does not show the thumb for very small controls
15715         (as MS) and allow smaller buttons that the regular size
15716
15717 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
15718
15719         * UpDownBase.cs: Add abstract methods for the interface.
15720         Add new virtual methods (need to be hooked up to TextEntry when it
15721         exists).
15722         Add override methods for most features.
15723         Computes the size, forces the height of the text entry.
15724
15725         * NumericUpDown.cs: Put here the current testing code.
15726
15727         * Set eol-style property on all files that do not have mixed line
15728         endings, to minimize the future problems.  There are still a few
15729         files with mixed endings, and someone should choose whether they
15730         want to move it or not.
15731
15732 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
15733
15734         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
15735         System.Colors
15736         
15737 2004-11-30  Ravindra <rkumar@novell.com>
15738
15739         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
15740         drawing and replaced use of SystemColors by theme colors.
15741         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
15742         * ListView.cs (ListViewItemCollection.Add): Throw exception when
15743         same ListViewItem is being added more than once.
15744
15745 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
15746
15747         * MonthCalendar.cs:
15748           - ControlStyles love to make the control not flicker
15749           
15750 2004-11-30  Peter Bartok  <pbartok@novell.com>
15751
15752         * CharacterCasing.cs: Added
15753
15754 2004-11-29  Peter Bartok  <pbartok@novell.com>
15755
15756         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15757           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
15758           I am removing these files as they conflict with already completed
15759           work. While it is fantastic to get contributions to MWF, I
15760           respectfully ask that everyone please coordinate their contributions
15761           through mono-winforms-list or #mono-winforms at this time. We're
15762           explicitly avoiding stubbing and don't want controls that don't have
15763           their basic functionality implemented in svn. Please also see
15764           http://www.mono-project.com/contributing/winforms.html
15765
15766
15767 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
15768
15769         * Application.cs (ModalRun): Don't hang after exit.
15770
15771         * Theme.cs: New TreeViewDefaultSize property.
15772
15773         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
15774         with less hardcoded SystemColors constant.
15775         Implemented TreeViewDefaultSize.
15776
15777         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15778         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
15779
15780
15781 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
15782
15783         * MonthCalendar.cs:
15784           - Fix NextMonthDate and PrevMonthDate click moving calendar
15785
15786 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15787
15788         * MonthCalendar.cs:
15789           - Fix usage of ScrollChange Property when scrolling months
15790
15791 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
15792
15793         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
15794          - Fixes menu destroying
15795          - Support adding and removing items on already created menus
15796
15797 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15798
15799         * MonthCalendar.cs:
15800           - Re-worked all bolded dates handling to match win32
15801         * ThemeWin32Classic.cs:
15802           - Fixed rendering with bolded dates
15803
15804 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
15805
15806         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
15807         - Horizontal scroolbar
15808         - Multicolumn
15809         - Fixes
15810
15811
15812 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
15813
15814         * MonthCalendar.cs:
15815           - Fix Usage of MaxSelectionCount from SelectionRange
15816           - Fixed Shift + Cursor Selection
15817           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
15818           - Fixed normal cursor selection to be compat with win32
15819           - Fixed Shift + Mouse Click selection
15820
15821 2004-11-24  Peter Bartok <pbartok@novell.com>
15822
15823         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
15824         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
15825         * XplatUIX11.cs:
15826           - CreatedKeyBoardMsg now updates keystate with Alt key
15827           - Added workaround for timer crash to CheckTimers, Jackson will
15828             develop a proper fix and check in later
15829           - Implemented DispatchMessage
15830           - Removed calling the native window proc from GetMessage (call
15831             now moved to DispatchMessage)
15832
15833         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
15834           the keydata (Fixes bug #69831)
15835
15836         * XplatUIWin32.cs:
15837           - (DispatchMessage): Switched to return IntPtr
15838           - Added DllImport for SetFocus
15839
15840 2004-11-24  Ravindra <rkumar@novell.com>
15841
15842         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
15843         background drawing.
15844         * ListViewItem.cs: Fixed various properties, calculations
15845         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
15846         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
15847         and some internal properties. Fixed MouseDown handler and Paint
15848         method.
15849
15850 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15851
15852         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
15853
15854 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15855
15856         * ContainerControl.cs: correct accidental check in of local changes
15857
15858 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15859
15860         * ThemeWin32Classic.cs:
15861                 - Fixed Drawing Last month in grid (sometimes not showing)
15862         * MonthCalendar.cs:
15863                 - Fixed title width calculation bug (makeing title small)
15864
15865 2004-11-23  Peter Bartok <pbartok@novell.com>
15866
15867         * XplatUIX11.cs:
15868           - Added generation of WM_MOUSEHOVER event
15869           - Added missing assignment of async_method atom
15870           - Fixed WM_ERASEBKGND; now only redraws the exposed area
15871
15872 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15873
15874         * ThemeWin32Classic.cs:
15875                 - Fixed Drawing of today circle when showtodaycircle not set
15876                 - fixed drawing of first and last month in the grid (gay dates)
15877         * MonthCalendar.cs:
15878                 - Fixed Drawing of today circle
15879                 - Fixed drawing of grady dates
15880                 - Fixed HitTest for today link when ShowToday set to false
15881                 - Fixed DefaultSize to obey ShowToday
15882
15883 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15884
15885         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
15886         * System.Windows.Forms/Theme.cs
15887         * MonthCalendar.cs: added for MonthCalendar
15888         * SelectionRange.cs: added for MonthCalendar
15889         * Day.cs: added for MonthCalendar: added for MonthCalendar
15890         * DateRangeEventArgs.cs: added for MonthCalendar
15891         * DateRangeEventHandler.cs: added for MonthCalendar
15892
15893 2004-11-22  Ravindra <rkumar@novell.com>
15894
15895         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
15896         property.
15897
15898 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
15899
15900         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
15901         event handler.
15902         
15903         * NumericUpDown.cs: Added new implementation.
15904         * UpDownBase.cs: Added new implementation.
15905
15906         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
15907         implementations.
15908         
15909         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
15910         implementations.
15911
15912         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
15913         methods.
15914
15915 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
15916
15917         * Timer.cs  (Dispose): Should call the base dispose when
15918         overriding.
15919
15920 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
15921
15922         * ScrollBar.cs: updates thumb position when max, min or increment
15923         is changed
15924
15925 2004-11-21  Ravindra <rkumar@novell.com>
15926
15927         * ListView.cs: Implemented item selection, activation and
15928         column header style. Fixed properties to do a redraw, if
15929         required. Added support for MouseHover, DoubleClick, KeyDown
15930         and KeyUp event handling and some minor fixes.
15931         * ListViewItem.cs: Fixed constructor.
15932         * ThemeWin32Classic.cs: Improved drawing for ListView.
15933
15934 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
15935
15936         * ThemeWin32Classic.cs: initial listbox drawing code
15937         * DrawMode.cs: new enumerator
15938         * ListControl.cs: stubbed class
15939         * ListBox.cs: initial implementation
15940         * Theme.cs: new methods definitions
15941         * SelectionMode.cs: new enumerator
15942
15943 2004-11-17  Peter Bartok  <pbartok@novell.com>
15944
15945         * XplatUIWin32.cs: Added double-click events to the class style
15946         * Control.cs (WndProc):
15947           - Added handling of click-count to MouseDown/ MouseUp events.
15948           - Added handling of middle and right mouse buttons
15949           - Removed old debug code
15950
15951 2004-11-17  Jackson Harper  <jackson@ximian.com>
15952
15953         * XplatUIX11.cs: Use the new Mono.Unix namespace.
15954
15955 2004-11-17  Ravindra <rkumar@novell.com>
15956
15957         * ListView.cs: Added event handling for MouseMove/Up/Down.
15958         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
15959         * ThemeWin32Classic.cs: We need to clear the graphics context and
15960         draw column header in a proper state.
15961
15962
15963 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
15964
15965         *  Menu.cs: fixes signature
15966
15967 2004-11-16  Peter Bartok  <pbartok@novell.com>
15968
15969         * XplatUIX11.cs (GetMessage): Implemented generation of
15970           double click mouse messages
15971
15972 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
15973
15974         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
15975         not by menu
15976
15977 2004-11-11  Peter Bartok  <pbartok@novell.com>
15978
15979         * HandleData.cs: Added Visible property
15980         * XplatUIX11.cs (IsVisible): Now uses Visible property from
15981           HandleData
15982         * XplatUIX11.cs: Removed old debug leftovers
15983         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
15984         * Control.cs (WndProc): Removed old debug leftovers,
15985           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
15986           needed WM_SIZE handling
15987
15988 2004-11-11  Jackson Harper  <jackson@ximian.com>
15989
15990         * OwnerDrawPropertyBag.cs:
15991         * TreeViewImageIndexConverter.cs: Initial implementation
15992
15993 2004-11-10  Jackson Harper  <jackson@ximian.com>
15994
15995         * ThemeWin32Classic.cs:
15996         * TabControl.cs: instead of moving tabs by the slider pos just
15997         start drawing at the tab that is offset by the slider. This way
15998         scrolling always moves by exactly one tab.
15999
16000 2004-11-10  Jackson Harper  <jackson@ximian.com>
16001
16002         * TabControl.cs: You can only scroll left when the slider has
16003         already ben moved right.
16004         
16005 2004-11-10  Jackson Harper  <jackson@ximian.com>
16006
16007         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
16008         the clip area.
16009         
16010 2004-11-10  Jackson Harper  <jackson@ximian.com>
16011
16012         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
16013         clip area.
16014         
16015 2004-11-09  Jackson Harper  <jackson@ximian.com>
16016
16017         * TabControl.cs (CalcXPos): New helper method so we can determine
16018         the proper place to start drawing vertical tabs.
16019         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
16020         
16021 2004-11-09  Jackson Harper  <jackson@ximian.com>
16022
16023         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
16024         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
16025         and Bottom, left and right are illegal values for this and
16026         multiline is enabled when the alignment is set to left or right.
16027         (DrawTab): Each alignment block should draw the text itself now
16028         because Left requires special love. Also add rendering for Left
16029         aligned tabs.
16030         
16031 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
16032
16033         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
16034         does not destroy the windows, removes debugging messages
16035
16036 2004-11-09  jba  <jba-mono@optusnet.com.au>
16037
16038         * ThemeWin32Classic.cs
16039         (DrawButtonBase): Fix verticle text rect clipping in windows
16040         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16041         rendering and incorrect text rect clipping
16042         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
16043         rendering and incorrect text rect clipping
16044         
16045 2004-11-08  Jackson Harper  <jackson@ximian.com>
16046
16047         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
16048         bottom when they are bottom aligned so the bottoms of the tabs get
16049         displayed.
16050         * TabControl.cs (DropRow): Move rows up instead of down when the
16051         tab control is bottom aligned.
16052
16053 2004-11-08 13:59  pbartok
16054
16055         * XplatUIX11.cs:
16056           - Added handling for various window styles
16057           - Added handling for popup windows
16058           - Added SetTopmost handling
16059
16060 2004-11-08 13:55  pbartok
16061
16062         * XplatUIWin32.cs:
16063           - Added argument to SetTopmost method
16064           - Fixed broken ClientToScreen function
16065
16066 2004-11-08 13:53  pbartok
16067
16068         * XplatUIStructs.cs:
16069           - Added missing WS_EX styles
16070
16071 2004-11-08 13:53  pbartok
16072
16073         * XplatUI.cs, XplatUIDriver.cs:
16074           - Added argument to SetTopmost
16075
16076 2004-11-08 13:52  pbartok
16077
16078         * X11Structs.cs:
16079           - Added XSetWindowAttributes structure
16080           - Improved XWindowAttributes structure
16081           - Added SetWindowValuemask enum
16082           - Added window creation arguments enum
16083           - Added gravity enum
16084           - Added Motif hints structure
16085           - Added various Motif flags and enums
16086           - Added PropertyMode enum for property functions
16087
16088 2004-11-08 13:50  pbartok
16089
16090         * Form.cs:
16091           - Fixed arguments for updated SetTopmost method
16092
16093 2004-11-08 13:49  pbartok
16094
16095         * ToolTip.cs:
16096           - Fixed arguments for updated SetTopmost function
16097           - Fixed usage of PointToClient
16098
16099 2004-11-08 13:44  pbartok
16100
16101         * MenuAPI.cs:
16102           - Added Clipping of children and siblings
16103
16104 2004-11-08 13:41  pbartok
16105
16106         * MainMenu.cs:
16107           - Removed SetMenuBarWindow call. We do this in Form.cs
16108
16109 2004-11-08 13:40  jackson
16110
16111         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
16112           scrolling jimmi in the correct location with bottom aligned tabs
16113
16114 2004-11-08 13:36  pbartok
16115
16116         * ContainerControl.cs:
16117           - Implemented BindingContext
16118           - Implemented ParentForm
16119
16120 2004-11-08 12:46  jackson
16121
16122         * TabControl.cs: Put bottom rendered tabs in the right location
16123
16124 2004-11-08 07:15  jordi
16125
16126         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
16127           removes dead code
16128
16129 2004-11-05 17:30  jackson
16130
16131         * TabControl.cs: When selected tabs are expanded make sure they
16132           don't go beyond the edges of the tab control
16133
16134 2004-11-05 14:57  jackson
16135
16136         * TabControl.cs: Reset show_slider so if the control is resized to
16137           a size where it is no longer needed it's not displayed anymore
16138
16139 2004-11-05 13:16  jackson
16140
16141         * TabControl.cs: Make tab pages non visible when added to the
16142           control
16143
16144 2004-11-05 12:42  jackson
16145
16146         * TabControl.cs: Implement SizeMode.FillToRight
16147
16148 2004-11-05 12:16  jackson
16149
16150         * Control.cs: Do not call CreateHandle if the handle is already
16151           created
16152
16153 2004-11-05 11:46  jackson
16154
16155         * TabControl.cs: Remove superflous call to CalcTabRows
16156
16157 2004-11-05 09:07  jackson
16158
16159         * XplatUIX11.cs: Update for Mono.Posix changes
16160
16161 2004-11-05 07:00  ravindra
16162
16163         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
16164           scrolling.
16165
16166 2004-11-04 22:47  jba
16167
16168         * ThemeWin32Classic.cs:
16169           - Fix Button rendering for FlatStyle = Flat or Popup
16170           - Fix RadioButton and CheckBox rendering when Appearance = Button
16171             (normal and flatstyle).
16172           - Correct outer rectangle color when drawing focus rectangle
16173           - Adjust button bounds to be 1 px smaller when focused
16174           - Make button not draw sunken 3d border when pushed (windows compat)
16175           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
16176           - Offset the text in RadioButton and Checkbox when being rendered as
16177           a button.
16178           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
16179           radiobuttons
16180           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
16181           - Fixed disabled text rendering for normally rendered radiobuttons
16182
16183 2004-11-04 10:26  jackson
16184
16185         * TabControl.cs: Recalculate tab rows when resizing
16186
16187 2004-11-04 07:47  jordi
16188
16189         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
16190           collection completion, drawing issues, missing features
16191
16192 2004-11-04 05:03  ravindra
16193
16194         * ScrollBar.cs:
16195                 - We need to recalculate the Thumb area when
16196                 LargeChange/maximum/minimum values are changed.
16197           - We set the 'pos' in UpdatePos() method to minimum, if it's less
16198                 than minimum. This is required to handle the case if large_change is
16199                 more than max, and use LargeChange property instead of large_change
16200                 variable.
16201           - We return max+1 when large_change is more than max, like MS does.
16202
16203 2004-11-04 04:29  ravindra
16204
16205         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
16206                 - Changed default value signatures (prefixed all with ListView).
16207                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
16208                 ListView.
16209           - Fixed calculations for ListViewItem and implemented Clone()
16210           method.
16211
16212 2004-11-04 04:26  ravindra
16213
16214         * Theme.cs, ThemeWin32Classic.cs:
16215                 - Changed default ListView values signatures (prefixed all with
16216                 ListView).
16217           - Fixed default size values for VScrollBar and HScrollBar.
16218                 - Fixed DrawListViewItem method.
16219
16220 2004-11-04 04:05  ravindra
16221
16222         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
16223
16224 2004-11-04 04:04  ravindra
16225
16226         * ImageList.cs: Implemented the missing overload for Draw method.
16227
16228 2004-11-03 19:29  jackson
16229
16230         * TabControl.cs: Handle dropping rows on selection properly
16231
16232 2004-11-03 11:59  jackson
16233
16234         * TabControl.cs: remove debug code
16235
16236 2004-11-03 11:52  jackson
16237
16238         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
16239           the scrolly widgerywoo
16240
16241 2004-11-02 13:52  jackson
16242
16243         * TabControl.cs: Resize the tab pages and tabs when the tab control
16244           is resized
16245
16246 2004-11-02 13:40  jackson
16247
16248         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
16249           selected tab to the bottom
16250
16251 2004-11-02 13:39  jackson
16252
16253         * TabPage.cs: Store the tab pages row
16254
16255 2004-11-02 12:33  jordi
16256
16257         * MenuItem.cs: fixes handle creation
16258
16259 2004-11-02 11:42  jackson
16260
16261         * TabControl.cs: signature fix
16262
16263 2004-11-02 08:56  jackson
16264
16265         * TabControl.cs: Calculate whether the tab is on an edge properly.
16266           Remove top secret debugging code
16267
16268 2004-11-01 19:57  jackson
16269
16270         * TabControl.cs: Add click handling, and proper sizing
16271
16272 2004-11-01 19:47  jackson
16273
16274         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
16275           tab controls
16276
16277 2004-11-01 19:39  jackson
16278
16279         * TabPage.cs: add internal property to store the bounds of a tab
16280           page
16281
16282 2004-10-30 04:23  ravindra
16283
16284         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
16285           values.
16286
16287 2004-10-30 04:21  ravindra
16288
16289         * ListView.cs, ListViewItem.cs: Added support for scrolling and
16290           fixed calculations.
16291
16292 2004-10-30 03:06  pbartok
16293
16294         * XplatUIX11.cs:
16295           - Removed extension of DllImported libs
16296
16297 2004-10-29 09:55  jordi
16298
16299         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
16300           navigation, itemcollection completion, menu fixes
16301
16302 2004-10-27 22:58  pbartok
16303
16304         * XplatUIX11.cs:
16305           - Now throws a nice error message when no X display could be opened
16306
16307 2004-10-26 13:51  jordi
16308
16309         * ListView.cs: removes warning
16310
16311 2004-10-26 03:55  ravindra
16312
16313         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
16314           ThemeWin32Classic.cs: Some formatting for my last checkins.
16315
16316 2004-10-26 03:36  ravindra
16317
16318         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
16319           control and default values.
16320
16321 2004-10-26 03:35  ravindra
16322
16323         * Theme.cs: Added some default values for ListView control.
16324
16325 2004-10-26 03:33  ravindra
16326
16327         * ToolBar.cs: ToolBar should use the user specified button size, if
16328           there is any. Added a size_specified flag for the same.
16329
16330 2004-10-26 03:33  ravindra
16331
16332         * ColumnHeader.cs: Added some internal members and calculations for
16333           ColumnHeader.
16334
16335 2004-10-26 03:32  ravindra
16336
16337         * ListViewItem.cs: Calculations for ListViewItem.
16338
16339 2004-10-26 03:31  ravindra
16340
16341         * ListView.cs: Added some internal members and calculations for
16342           ListView.
16343
16344 2004-10-22 13:31  jordi
16345
16346         * MenuAPI.cs: speedup menus drawing
16347
16348 2004-10-22 13:16  jackson
16349
16350         * XplatUIX11.cs: Make sure to update exposed regions when adding an
16351           expose event
16352
16353 2004-10-22 11:49  jackson
16354
16355         * Control.cs: oops
16356
16357 2004-10-22 11:41  jackson
16358
16359         * Control.cs: Check to see if the window should have its background
16360           repainted by X when drawing.
16361
16362 2004-10-22 11:31  jackson
16363
16364         * XplatUIX11.cs: When invalidating areas only use XClearArea if
16365           clear is true, this way we do not get flicker from X repainting the
16366           background
16367
16368 2004-10-22 11:28  jackson
16369
16370         * XEventQueue.cs: Queue properly
16371
16372 2004-10-21 09:38  jackson
16373
16374         * XEventQueue.cs: Fix access modifier
16375
16376 2004-10-21 09:36  jackson
16377
16378         * XEventQueue.cs: Don't loose messages
16379
16380 2004-10-21 09:22  jackson
16381
16382         * XEventQueue.cs: Don't loose messages
16383
16384 2004-10-20 04:15  jordi
16385
16386         * BootMode.cs: enum need it by SystemInfo
16387
16388 2004-10-19 21:58  pbartok
16389
16390         * XplatUIWin32.cs:
16391           - Small sanity check
16392
16393 2004-10-19 21:56  pbartok
16394
16395         * Form.cs:
16396           - Added private FormParentWindow class which acts as the container
16397             for our form and as the non-client area where menus are drawn
16398           - Added/Moved required tie-ins to Jordi's menus
16399           - Fixed/Implemented the FormStartPosition functionality
16400
16401 2004-10-19 21:52  pbartok
16402
16403         * Control.cs:
16404           - Removed unneeded locals
16405           - Added code to all size and location properties to understand and
16406             deal with the parent container of Form
16407
16408 2004-10-19 21:33  pbartok
16409
16410         * Application.cs:
16411           - Fixed to deal with new Form subclasses for menus
16412
16413 2004-10-19 17:48  jackson
16414
16415         * XEventQueue.cs: commit correct version of file
16416
16417 2004-10-19 16:50  jackson
16418
16419         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
16420
16421 2004-10-19 16:15  jordi
16422
16423         * MenuAPI.cs: MenuBarCalcSize returns the height
16424
16425 2004-10-19 08:31  pbartok
16426
16427         * Control.cs:
16428           - Added missing call to PreProcessMessage before calling OnXXXKey
16429           methods
16430
16431 2004-10-19 00:04  ravindra
16432
16433         * ToolTip.cs: Fixed constructor.
16434
16435 2004-10-18 09:31  jordi
16436
16437         * MenuAPI.cs: menuitems in menubars do not have shortcuts
16438
16439 2004-10-18 09:26  jordi
16440
16441         * MenuItem.cs: fixes MenuItem class signature
16442
16443 2004-10-18 08:56  jordi
16444
16445         * MenuAPI.cs: prevents windows from showing in the taskbar
16446
16447 2004-10-18 00:28  ravindra
16448
16449         * ToolTip.cs: Suppressed a warning message.
16450
16451 2004-10-18 00:27  ravindra
16452
16453         * Control.cs: Default value of visible property must be true.
16454
16455 2004-10-17 23:19  pbartok
16456
16457         * ToolTip.cs:
16458           - Complete implementation
16459
16460 2004-10-17 23:19  pbartok
16461
16462         * XplatUIX11.cs:
16463           - Added EnableWindow method
16464           - Added SetModal stub
16465           - Added generation of WM_ACTIVATE message (still needs testing)
16466           - Added SetTopMost stub
16467           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
16468
16469 2004-10-17 23:17  pbartok
16470
16471         * XplatUIWin32.cs:
16472           - Removed VirtualKeys to XplatUIStructs
16473           - Implemented SetTopMost method
16474           - Implemented EnableWindow method
16475           - Bugfix in ScreenToClient()
16476           - Bugfixes in ClientToScreen()
16477
16478 2004-10-17 22:51  pbartok
16479
16480         * XplatUIStructs.cs:
16481           - Added WS_EX styles to WindowStyles enumeration
16482
16483 2004-10-17 22:50  pbartok
16484
16485         * XplatUI.cs, XplatUIDriver.cs:
16486           - Added method for enabling/disabling windows
16487           - Added method for setting window modality
16488           - Added method for setting topmost window
16489
16490 2004-10-17 22:49  pbartok
16491
16492         * ThemeWin32Classic.cs:
16493           - Added ToolTip drawing code
16494
16495 2004-10-17 22:49  pbartok
16496
16497         * Theme.cs:
16498           - Added ToolTip abstracts
16499
16500 2004-10-17 22:47  pbartok
16501
16502         * Form.cs:
16503           - Fixed Form.ControlCollection to handle owner relations
16504           - Added Owner/OwnedForms handling
16505           - Implemented Z-Ordering for owned forms
16506           - Removed unneeded private overload of ShowDialog
16507           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
16508             so I hope)
16509           - Fixed Close(), had wrong default
16510           - Added firing of OnLoad event
16511           - Added some commented out debug code for Ownership handling
16512
16513 2004-10-17 22:16  pbartok
16514
16515         * Control.cs:
16516           - Fixed/implemented flat list of controls
16517
16518 2004-10-17 22:14  pbartok
16519
16520         * Application.cs:
16521           - Added code to simulate modal dialogs on Win32
16522
16523 2004-10-17 16:11  jordi
16524
16525         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
16526           mouse event
16527
16528 2004-10-17 13:39  jordi
16529
16530         * MenuAPI.cs: menu drawing fixes
16531
16532 2004-10-15 09:10  ravindra
16533
16534         * StructFormat.cs: General Enum.
16535
16536 2004-10-15 09:09  ravindra
16537
16538         * SizeGripStyle.cs: Enum for Form.
16539
16540 2004-10-15 09:08  ravindra
16541
16542         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
16543           in Theme for ListView.
16544
16545 2004-10-15 09:06  ravindra
16546
16547         * ColumnHeader.cs: Flushing some formatting changes.
16548
16549 2004-10-15 09:05  ravindra
16550
16551         * ListViewItem.cs: Implemented GetBounds method and fixed coding
16552           style.
16553
16554 2004-10-15 09:03  ravindra
16555
16556         * ListView.cs: Implemented Paint method and fixed coding style.
16557
16558 2004-10-15 07:34  jordi
16559
16560         * MenuAPI.cs: fix for X11
16561
16562 2004-10-15 07:32  ravindra
16563
16564         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
16565                 - Renamed Paint() method to Draw() for clarity. Also, moved
16566                 DrawImage() to OnPaint().
16567
16568 2004-10-15 07:25  ravindra
16569
16570         * CheckBox.cs, RadioButton.cs:
16571                 - Removed Redraw (), we get it from ButtonBase.
16572                 - Implemented Paint (), to do class specific painting.
16573
16574 2004-10-15 07:16  ravindra
16575
16576         * ButtonBase.cs:
16577                 - Redraw () is not virtual now.
16578                 - Added an internal virtual method Paint (), so that
16579                 derived classes can do their painting on their own.
16580                 - Modified OnPaint () to call Paint ().
16581
16582 2004-10-15 06:43  jordi
16583
16584         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
16585           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
16586
16587 2004-10-15 00:30  ravindra
16588
16589         * MessageBox.cs:
16590                 - MessageBox on windows does not have min/max buttons.
16591                 This change in CreateParams fixes this on Windows. We
16592                 still need to implement this windowstyle behavior in
16593                 our X11 driver.
16594
16595 2004-10-14 05:14  ravindra
16596
16597         * ToolBar.cs:
16598                 - Changed Redraw () to do a Refresh () always.
16599                 - Fixed the MouseMove event handling when mouse is pressed,
16600                 ie drag event handling.
16601                 - Replaced the usage of ToolBarButton.Pressed property to
16602                 ToolBarButton.pressed internal variable.
16603
16604 2004-10-14 05:10  ravindra
16605
16606         * ToolBarButton.cs:
16607                 - Added an internal member 'inside' to handle mouse move
16608                 with mouse pressed ie mouse drag event.
16609                 - Changed 'Pressed' property to return true only when
16610                 'inside' and 'pressed' are both true.
16611                 - Some coding style love.
16612
16613 2004-10-14 00:17  ravindra
16614
16615         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
16616           public method.
16617
16618 2004-10-14 00:15  ravindra
16619
16620         * ButtonBase.cs: Redraw () related improvements.
16621
16622 2004-10-14 00:14  ravindra
16623
16624         * MessageBox.cs: Moved InitFormSize () out of Paint method and
16625           removed unnecessary calls to Button.Show () method.
16626
16627 2004-10-13 17:50  pbartok
16628
16629         * XplatUIX11.cs:
16630           - Formatting fix
16631           - Removed destroying of window until we solve the problem of X
16632             destroying the window before us on shutdown
16633
16634 2004-10-13 16:32  pbartok
16635
16636         * ButtonBase.cs:
16637           - Now Redraws on MouseUp for FlatStyle Flat and Popup
16638
16639 2004-10-13 14:18  pbartok
16640
16641         * XplatUIX11.cs:
16642           - Added code to destroy the X window
16643
16644 2004-10-13 14:18  pbartok
16645
16646         * XplatUIWin32.cs:
16647           - Added code to destroy a window
16648
16649 2004-10-13 14:12  pbartok
16650
16651         * ButtonBase.cs:
16652           - Added the Redraw on Resize that got dropped in the last rev
16653
16654 2004-10-13 09:06  pbartok
16655
16656         * ThemeWin32Classic.cs:
16657           - Path from John BouAntoun:
16658             * Fix check rendering (centre correctly for normal style, offset
16659               correctly for FlatStyle).
16660             * Fix border color usage (use backcolor) for FlatStyle.Popup
16661             * Use checkbox.Capture instead of checkbox.is_pressed when
16662               rendering flatstyle states.
16663
16664 2004-10-12 21:48  pbartok
16665
16666         * ThemeWin32Classic.cs:
16667           - Removed all occurences of SystemColors and replaced them with the
16668             matching theme color
16669
16670 2004-10-12 21:41  pbartok
16671
16672         * ThemeWin32Classic.cs:
16673           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
16674             him using the function for flatstyle drawing
16675           - Changed functions to use the new version of CPDrawBorder3D
16676
16677 2004-10-12 21:15  pbartok
16678
16679         * ControlPaint.cs:
16680           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
16681             match MS documentation. They need to return defined colors if the
16682             passed color matches the configured control color. Thanks to John
16683             BouAntoun for pointing this out.
16684
16685 2004-10-12 20:57  pbartok
16686
16687         * Control.cs:
16688           - Fix from John BouAntoun: Raise ForeColorChanged event when text
16689             color is changed
16690
16691 2004-10-12 20:46  pbartok
16692
16693         * CheckBox.cs:
16694           - Fix from John BouAntoun: Now properly sets the Appearance property
16695
16696 2004-10-12 20:45  pbartok
16697
16698         * ThemeWin32Classic.cs:
16699           - Fixes from John BouAntoun: now handles forecolors and backcolors
16700             for flatstyle rendered controls much better; It also fixes normal
16701             checkbox rendering when pushed or disabled.
16702
16703 2004-10-08 02:50  jordi
16704
16705         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
16706           work
16707
16708 2004-10-07 08:56  jordi
16709
16710         * ThemeWin32Classic.cs: Removes deletion of cached brushes
16711
16712 2004-10-06 03:59  jordi
16713
16714         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
16715           XplatUIWin32.cs: removes warnings from compilation
16716
16717 2004-10-05 12:23  jackson
16718
16719         * RadioButton.cs: Fix ctor
16720
16721 2004-10-05 11:10  pbartok
16722
16723         * MessageBox.cs:
16724           - Partial implementation by Benjamin Dasnois
16725
16726 2004-10-05 10:15  jackson
16727
16728         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
16729           by John BouAntoun
16730
16731 2004-10-05 03:07  ravindra
16732
16733         * ToolBar.cs:
16734                 - Removed a private method, Draw ().
16735                 - Fixed the ButtonDropDown event handling.
16736                 - Fixed MouseMove event handling.
16737
16738 2004-10-05 03:04  ravindra
16739
16740         * ThemeWin32Classic.cs:
16741                 - Added DrawListView method and ListViewDefaultSize property.
16742                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
16743                 - Changed DOS style CRLF to Unix format (dos2unix).
16744
16745 2004-10-05 03:03  ravindra
16746
16747         * Theme.cs:
16748                 - Added DrawListView method and ListViewDefaultSize property.
16749
16750 2004-10-05 02:42  ravindra
16751
16752         * ToolBarButton.cs: Added an internal member dd_pressed to handle
16753           clicks on DropDown arrow.
16754
16755 2004-10-04 22:56  jackson
16756
16757         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
16758           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
16759           Control handle the buffers, derived classes should not have to
16760           CreateBuffers themselves.
16761
16762 2004-10-04 21:20  jackson
16763
16764         * StatusBar.cs: The control handles resizing the buffers now.
16765
16766 2004-10-04 21:18  jackson
16767
16768         * Control.cs: When resizing the buffers should be invalidated. This
16769           should be handled in Control not in derived classes.
16770
16771 2004-10-04 14:45  jackson
16772
16773         * TabPage.cs: oops
16774
16775 2004-10-04 02:14  pbartok
16776
16777         * LeftRightAlignment.cs:
16778           - Initial check-in
16779
16780 2004-10-04 01:09  jordi
16781
16782         * ThemeWin32Classic.cs: fixes right button position causing right
16783           button not showing on horizontal scrollbars
16784
16785 2004-10-02 13:12  pbartok
16786
16787         * XplatUIX11.cs:
16788           - Simplified the Invalidate method by using an X call instead of
16789             generating the expose ourselves
16790           - Added an expose when the window background is changed
16791           - Implemented ClientToScreen method
16792
16793 2004-10-02 13:08  pbartok
16794
16795         * XplatUIWin32.cs:
16796           - Added Win32EnableWindow method (test for implementing modal
16797           dialogs)
16798           - Added ClientToScreen method and imports
16799
16800 2004-10-02 13:07  pbartok
16801
16802         * XplatUI.cs, XplatUIDriver.cs:
16803           - Added ClientToScreen coordinate translation method
16804
16805 2004-10-02 13:06  pbartok
16806
16807         * KeyPressEventArgs.cs:
16808           - Fixed access level for constructor
16809
16810 2004-10-02 13:06  pbartok
16811
16812         * NativeWindow.cs:
16813           - Changed access level for the window_collection hash table
16814
16815 2004-10-02 13:05  pbartok
16816
16817         * Form.cs:
16818           - Added KeyPreview property
16819           - Added Menu property (still incomplete, pending Jordi's menu work)
16820           - Implemented ProcessCmdKey
16821           - Implemented ProcessDialogKey
16822           - Implemented ProcessKeyPreview
16823
16824 2004-10-02 13:02  pbartok
16825
16826         * Control.cs:
16827           - Added private method to get the Control object from the window
16828           handle
16829           - Implemented ContextMenu property
16830           - Implemented PointToScreen
16831           - Implemented PreProcessMessage
16832           - Implemented IsInputChar
16833           - Implemented IsInputKey
16834           - Implemented ProcessCmdKey
16835           - Completed ProcessKeyEventArgs
16836           - Fixed message loop to call the proper chain of functions on key
16837           events
16838           - Implemented ProcessDialogChar
16839           - Implemented ProcessDialogKey
16840           - Implemented ProcessKeyMessage
16841           - Implemented ProcessKeyPreview
16842           - Added RaiseDragEvent stub (MS internal method)
16843           - Added RaiseKeyEvent stub (MS internal method)
16844           - Added RaiseMouseEvent stub (MS Internal method)
16845           - Added RaisePaintEvent stub (MS Internal method)
16846           - Added ResetMouseEventArgs stub (MS Internal method)
16847           - Implemented RtlTranslateAlignment
16848           - Implemented RtlTranslateContent
16849           - Implemented RtlTranslateHorizontal
16850           - Implemented RtlTranslateLeftRight
16851           - Added generation of KeyPress event
16852
16853 2004-10-02 05:57  ravindra
16854
16855         * ListViewItem.cs: Added attributes.
16856
16857 2004-10-02 05:32  ravindra
16858
16859         * ListView.cs: Added attributes.
16860
16861 2004-10-01 11:53  jackson
16862
16863         * Form.cs: Implement the Close method so work on MessageBox can
16864           continue.
16865
16866 2004-09-30 14:06  pbartok
16867
16868         * XplatUIX11.cs:
16869           - Bug fixes
16870
16871 2004-09-30 11:34  jackson
16872
16873         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
16874
16875 2004-09-30 07:26  ravindra
16876
16877         * ListViewItemConverter.cs: Converter for ListViewItem.
16878
16879 2004-09-30 07:26  ravindra
16880
16881         * SortOrder.cs: Enum for ListView control.
16882
16883 2004-09-30 07:25  ravindra
16884
16885         * ColumnHeader.cs: Supporting class for ListView control.
16886
16887 2004-09-30 07:24  ravindra
16888
16889         * ListView.cs, ListViewItem.cs: Initial implementation.
16890
16891 2004-09-30 07:20  ravindra
16892
16893         * ItemActivation.cs: Enum for ListView Control.
16894
16895 2004-09-29 20:29  pbartok
16896
16897         * XplatUIX11.cs:
16898           - Added lookup of pixel value for background color; tries to get a
16899             color 'close' to the requested color, it avoids having to create a
16900             colormap.  Depending on the display this could mean the used color
16901             is slightly off the desired color. Might have to change it to a more
16902             resource intensive colormap approach, but it will work as a
16903           workaround to avoid red screens.
16904
16905 2004-09-29 14:27  jackson
16906
16907         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
16908
16909 2004-09-28 12:44  pbartok
16910
16911         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
16912           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
16913           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
16914           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
16915           TrackBar.cs, VScrollBar.cs:
16916           - Streamlined Theme interfaces:
16917             * Each DrawXXX method for a control now is passed the object for
16918               the control to be drawn in order to allow accessing any state the
16919               theme might require
16920
16921             * ControlPaint methods for the theme now have a CP prefix to avoid
16922               name clashes with the Draw methods for controls
16923
16924             * Every control now retrieves it's DefaultSize from the current
16925             theme
16926
16927 2004-09-28 12:17  jackson
16928
16929         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
16930           drawing
16931
16932 2004-09-24 14:57  jackson
16933
16934         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
16935           Gives us a nice little performance boost.
16936
16937 2004-09-24 12:02  jackson
16938
16939         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
16940           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
16941           Control and supporting classes. Initial checkin
16942
16943 2004-09-23 13:08  jackson
16944
16945         * Form.cs: Temp build fixage
16946
16947 2004-09-23 01:39  ravindra
16948
16949         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
16950           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
16951           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
16952           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
16953           EventHandlers needed by ListView Control.
16954
16955 2004-09-22 14:12  pbartok
16956
16957         * ScrollableControl.cs:
16958           - Implemented DockPadding property
16959           - Implemented AutoScroll property
16960           - Implemented AutoScrollMargin property
16961           - Implemented AutoScrollMinSize property
16962           - Implemented AutoScrollPosition property
16963           - Implemented DisplayRectangle property (still incomplete)
16964           - Implemented CreateParams property
16965           - Implemented HScroll property
16966           - Implemented VScroll property
16967           - Implemented OnVisibleChanged property
16968
16969 2004-09-22 14:09  pbartok
16970
16971         * Form.cs:
16972           - Added Form.ControllCollection class
16973           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
16974             RemoveOwnedForm (still incomplete, missing on-top and common
16975             minimize/maximize behaviour)
16976           - Added StartPosition property (still incomplete, does not use when
16977             creating the form)
16978           - Added ShowDialog() methods (still incomplete, missing forcing the
16979             dialog modal)
16980
16981 2004-09-22 14:05  pbartok
16982
16983         * Application.cs:
16984           - Added message loop for modal dialogs
16985
16986 2004-09-22 14:02  pbartok
16987
16988         * GroupBox.cs:
16989           - Fixed wrong types for events
16990
16991 2004-09-22 14:00  pbartok
16992
16993         * Shortcut.cs, FormWindowState.cs:
16994           - Fixed wrong values
16995
16996 2004-09-22 12:01  jackson
16997
16998         * Control.cs: Text is never null
16999
17000 2004-09-20 22:14  pbartok
17001
17002         * XplatUIWin32.cs:
17003           - Fixed accessibility level for Idle handler
17004
17005 2004-09-20 18:54  jackson
17006
17007         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17008           XplatUIX11.cs: New message loop that uses poll so we don't get a
17009           busy loop
17010
17011 2004-09-17 10:43  pbartok
17012
17013         * ScrollBar.cs:
17014           - Fixed behaviour of arrow buttons. Now properly behaves like
17015             Buttons (and like Microsoft's scrollbar arrow buttons)
17016
17017 2004-09-17 10:14  pbartok
17018
17019         * ScrollBar.cs:
17020           - Added missing release of keyboard/mouse capture
17021
17022 2004-09-17 06:18  jordi
17023
17024         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
17025           Theme.cs: Very early menu support
17026
17027 2004-09-16 17:45  pbartok
17028
17029         * XplatUIWin32.cs:
17030           - Fixed sending a window to the front
17031           - Added overload for SetWindowPos to avoid casting
17032
17033 2004-09-16 17:44  pbartok
17034
17035         * Control.cs:
17036           - Added SendToBack and BringToFront methods
17037
17038 2004-09-16 07:00  ravindra
17039
17040         * Copyright: Added Novell URL.
17041
17042 2004-09-16 07:00  ravindra
17043
17044         * ToolBar.cs: Invalidate should be done before redrawing.
17045
17046 2004-09-15 21:19  ravindra
17047
17048         * ColumnHeaderStyle.cs: Enum for ListView Control.
17049
17050 2004-09-15 21:18  ravindra
17051
17052         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
17053           ListView Control.
17054
17055 2004-09-13 18:26  jackson
17056
17057         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
17058           properly
17059
17060 2004-09-13 18:13  jackson
17061
17062         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
17063           a second thread and post messages into the main threads message
17064           queue. This makes timing much more consistent. Both win2K and XP
17065           have a minimum timer value of 15 milliseconds, so we now do this
17066           too.
17067
17068 2004-09-13 15:18  pbartok
17069
17070         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17071           XplatUIX11.cs:
17072           - Added Z-Ordering methods
17073
17074 2004-09-13 10:56  pbartok
17075
17076         * Form.cs:
17077           - Fixed #region names
17078           - Moved properties and methods into their proper #regions
17079
17080 2004-09-13 10:51  pbartok
17081
17082         * Form.cs:
17083           - Added Accept and CancelButton properties
17084           - Added ProcessDialogKey() method
17085
17086 2004-09-13 08:18  pbartok
17087
17088         * IWindowTarget.cs:
17089           - Initial check-in
17090
17091 2004-09-10 21:50  pbartok
17092
17093         * Control.cs:
17094           - Added DoDragDrop() [incomplete]
17095           - Properly implemented 'Visible' handling
17096           - Added SetVisibleCore()
17097           - Implemented FindChildAtPoint()
17098           - Implemented GetContainerControl()
17099           - Implemented Hide()
17100
17101 2004-09-10 19:28  pbartok
17102
17103         * Control.cs:
17104           - Moved methods into their appropriate #regions
17105           - Reordered methods within regions alphabetically
17106
17107 2004-09-10 18:57  pbartok
17108
17109         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17110           - Added method to retrieve text from window
17111
17112 2004-09-10 18:56  pbartok
17113
17114         * Control.cs:
17115           - Moved some internal functions into the internal region
17116           - Implemented FontHeight
17117           - Implemented RenderRightToLeft
17118           - Implemented ResizeRedraw
17119           - Implemented ShowFocusCues
17120           - Implemented ShowKeyboardCues
17121           - Implemented FromChildHandle
17122           - Implemented FromHandle
17123           - Implemented IsMnemonic
17124           - Implemented ReflectMessage
17125           - All public and protected Static Methods are now complete
17126
17127 2004-09-10 16:54  pbartok
17128
17129         * Control.cs:
17130           - Implemented remaining missing public instance properties
17131           - Alphabetized some out of order properties
17132
17133 2004-09-10 05:51  ravindra
17134
17135         * PictureBox.cs: Added a check for null image.
17136
17137 2004-09-10 00:59  jordi
17138
17139         * GroupBox.cs: remove cvs tag
17140
17141 2004-09-09 05:25  ravindra
17142
17143         * ToolBar.cs: Make redraw accessible from ToolBarButton.
17144
17145 2004-09-09 05:23  ravindra
17146
17147         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
17148           parent redraw.
17149
17150 2004-09-09 02:28  pbartok
17151
17152         * ThemeWin32Classic.cs:
17153           - Improve disabled string look
17154
17155 2004-09-09 01:15  jordi
17156
17157         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
17158           args and handler
17159
17160 2004-09-08 23:56  ravindra
17161
17162         * ItemBoundsPortion.cs: It's enum, not a class!
17163
17164 2004-09-08 23:47  ravindra
17165
17166         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
17167           Enums for Form.
17168
17169 2004-09-08 21:13  ravindra
17170
17171         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
17172           ListView control.
17173
17174 2004-09-08 21:03  ravindra
17175
17176         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
17177           avoid crash.
17178
17179 2004-09-08 21:01  ravindra
17180
17181         * ScrollableControl.cs: Removed unreachable code.
17182
17183 2004-09-08 06:45  jordi
17184
17185         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
17186
17187 2004-09-08 01:00  jackson
17188
17189         * XplatUIX11.cs: Only run the timers when updating the message
17190           queue. This effectively gives X messages a higher priority then
17191           timer messages. Timers still need love though
17192
17193 2004-09-07 14:01  jackson
17194
17195         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
17196           this for us and the handle is no longer valid.
17197
17198 2004-09-07 13:59  jackson
17199
17200         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
17201           loop that manages to not crash. TODO: Add poll and cleanup timers
17202
17203 2004-09-07 11:12  jordi
17204
17205         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
17206
17207 2004-09-07 03:40  jordi
17208
17209         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
17210           fixes, methods, multiple links
17211
17212 2004-09-06 06:55  jordi
17213
17214         * Control.cs: Caches ClientRectangle rectangle value
17215
17216 2004-09-05 02:03  jordi
17217
17218         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
17219           certain situations
17220
17221 2004-09-04 11:10  jordi
17222
17223         * Label.cs: Refresh when font changed
17224
17225 2004-09-02 16:24  pbartok
17226
17227         * Control.cs:
17228           - Added sanity check to creation of double buffer bitmap
17229
17230 2004-09-02 16:24  pbartok
17231
17232         * ButtonBase.cs:
17233           - Fixed selection of text color
17234           - Fixed handling of resize event; now properly recreates double
17235             buffering bitmap
17236           - Added missing assignment of TextAlignment
17237           - Added proper default for TextAlignment
17238
17239 2004-09-02 14:26  pbartok
17240
17241         * RadioButton.cs:
17242           - Added missing RadioButton.RadioButtonAccessibleObject class
17243
17244 2004-09-02 14:26  pbartok
17245
17246         * Control.cs:
17247           - Added missing Control.ControlAccessibleObject class
17248           - Started to implement Select()ion mechanisms, still very incomplete
17249
17250 2004-09-02 14:25  pbartok
17251
17252         * AccessibleObject.cs:
17253           - Added missing methods
17254
17255 2004-09-02 14:23  pbartok
17256
17257         * AccessibleNavigation.cs, AccessibleSelection.cs:
17258           - Initial check-in
17259
17260 2004-09-02 10:32  jordi
17261
17262         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
17263           pool for pens, brushes, and hatchbruses
17264
17265 2004-09-01 15:30  jackson
17266
17267         * StatusBar.cs: Fix typo
17268
17269 2004-09-01 14:44  pbartok
17270
17271         * RadioButton.cs:
17272           - Fixed state
17273
17274 2004-09-01 14:39  pbartok
17275
17276         * Button.cs, RadioButton.cs:
17277           - Functional initial check-in
17278
17279 2004-09-01 14:01  pbartok
17280
17281         * CheckBox.cs:
17282           - Added missing default
17283           - Added missing region mark
17284
17285 2004-09-01 09:10  jordi
17286
17287         * Label.cs: fixes method signatures, new methods, events, fixes
17288           autosize
17289
17290 2004-09-01 07:19  jordi
17291
17292         * Control.cs: Init string variables with an empty object
17293
17294 2004-09-01 04:20  jordi
17295
17296         * Control.cs: fires OnFontChanged event
17297
17298 2004-08-31 20:07  pbartok
17299
17300         * ButtonBase.cs:
17301           - Enabled display of strings
17302
17303 2004-08-31 20:05  pbartok
17304
17305         * Form.cs:
17306           - Added (partial) implementation of DialogResult; rest needs to be
17307             implemented when the modal loop code is done
17308
17309 2004-08-31 19:55  pbartok
17310
17311         * CheckBox.cs:
17312           - Fixed to match the removal of the needs_redraw concept
17313
17314 2004-08-31 19:55  pbartok
17315
17316         * ButtonBase.cs:
17317           - Removed the rather odd split between 'needs redraw' and redrawing
17318           - Now handles the events that require regeneration (ambient
17319             properties and size)
17320
17321 2004-08-31 19:41  pbartok
17322
17323         * Control.cs:
17324           - Added firing of BackColorChanged event
17325           - Added TopLevelControl property
17326           - Fixed handling of WM_ERASEBKGRND message
17327
17328 2004-08-31 12:49  pbartok
17329
17330         * ButtonBase.cs:
17331           - Removed debug
17332           - Minor fixes
17333
17334 2004-08-31 12:48  pbartok
17335
17336         * CheckBox.cs:
17337           - Finished (famous last words)
17338
17339 2004-08-31 04:35  jordi
17340
17341         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
17342           scrolling bugs, adds new methods
17343
17344 2004-08-30 14:42  pbartok
17345
17346         * CheckBox.cs:
17347           - Implemented CheckBox drawing code
17348
17349 2004-08-30 14:42  pbartok
17350
17351         * ButtonBase.cs:
17352           - Made Redraw() and CheckRedraw() virtual
17353           - Improved mouse up/down/move logic to properly track buttons
17354
17355 2004-08-30 09:44  pbartok
17356
17357         * CheckBox.cs:
17358           - Updated to fix broken build. Not complete yet.
17359
17360 2004-08-30 09:28  pbartok
17361
17362         * CheckState.cs:
17363           - Initial checkin
17364
17365 2004-08-30 09:17  pbartok
17366
17367         * Appearance.cs:
17368           - Initial check-in
17369
17370 2004-08-27 16:12  ravindra
17371
17372         * ToolBarButton.cs: Added TypeConverter attribute.
17373
17374 2004-08-27 16:07  ravindra
17375
17376         * ImageIndexConverter.cs: Implemented.
17377
17378 2004-08-27 14:17  pbartok
17379
17380         * Control.cs:
17381           - Removed unneeded stack vars
17382           - First attempt to fix sizing issues when layout is suspended
17383
17384 2004-08-25 15:35  jordi
17385
17386         * ScrollBar.cs: more fixes to scrollbar
17387
17388 2004-08-25 14:04  ravindra
17389
17390         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
17391           Added the missing divider code and grip for ToolBar Control.
17392
17393 2004-08-25 13:20  pbartok
17394
17395         * Control.cs:
17396           - Control now properly passes the ambient background color to child
17397             controls
17398
17399 2004-08-25 13:20  jordi
17400
17401         * ScrollBar.cs: small bug fix regarding bar position
17402
17403 2004-08-25 12:33  pbartok
17404
17405         * Timer.cs:
17406           - Now only calls SetTimer or KillTimer if the enabled state has
17407           changed
17408
17409 2004-08-25 12:33  pbartok
17410
17411         * XplatUIWin32.cs:
17412           - Fixed timer handling, now seems to work
17413           - Improved error message for window creation
17414
17415 2004-08-25 12:32  pbartok
17416
17417         * Control.cs:
17418           - Fixed generation of MouseUp message
17419
17420 2004-08-25 12:29  jordi
17421
17422         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
17423           and fixes for progressbar
17424
17425 2004-08-24 18:43  ravindra
17426
17427         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
17428           in ToolBar control.
17429
17430 2004-08-24 17:15  pbartok
17431
17432         * Panel.cs:
17433           - Added #region
17434           - Added missing events
17435           - Alphabetized
17436
17437 2004-08-24 17:14  pbartok
17438
17439         * StatusBar.cs, PictureBox.cs:
17440           - Now uses Control's CreateParams
17441
17442 2004-08-24 16:36  pbartok
17443
17444         * XplatUIX11.cs:
17445           - Fixed background color handling
17446           - Fixed sending of enter/leave events on a grab
17447
17448 2004-08-24 16:35  pbartok
17449
17450         * X11Structs.cs:
17451           - Refined definitions for CrossingEvent
17452
17453 2004-08-24 12:37  jordi
17454
17455         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
17456           formmating, methods signature, and adds missing events
17457
17458 2004-08-24 12:24  jordi
17459
17460         * Control.cs: fire OnEnabledChanged event
17461
17462 2004-08-24 11:17  pbartok
17463
17464         * XplatUIWin32.cs:
17465           - Implemented SetTimer() and KillTimer()
17466
17467 2004-08-24 11:16  pbartok
17468
17469         * XplatUIX11.cs:
17470           - Now uses Remove instead of Add to kill the timer
17471
17472 2004-08-24 10:16  jackson
17473
17474         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
17475           picture boxes in the theme now. Draw picture box borders and obey
17476           sizing modes
17477
17478 2004-08-24 05:49  jackson
17479
17480         * Timer.cs: Remove top secret debugging code
17481
17482 2004-08-24 05:34  jackson
17483
17484         * PictureBox.cs: Temp hack to make picture boxes draw their full
17485           image
17486
17487 2004-08-24 05:29  jackson
17488
17489         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17490           XplatUIX11.cs: Move timers to the driver level. On X they are
17491           queued by the driver and checked on idle.
17492
17493 2004-08-24 01:07  jackson
17494
17495         * XplatUIX11.cs: Use a queue for async messages instead of passing
17496           them as ClientMessages since that was totally broken. Also simply
17497           check for events and return an idle message if none are found. This
17498           gives us an idle handler, and prevents deadlocking when no messages
17499           are in the queue.
17500
17501 2004-08-23 18:19  ravindra
17502
17503         * XplatUIWin32.cs: Removed the unwanted destructor.
17504
17505 2004-08-23 17:27  pbartok
17506
17507         * ButtonBase.cs:
17508           - Finishing touches. Works now, just needs some optimizations.
17509
17510 2004-08-23 16:53  jordi
17511
17512         * ScrollBar.cs: small fix
17513
17514 2004-08-23 16:45  pbartok
17515
17516         * Application.cs:
17517           - Removed debug output
17518           - Simplifications
17519
17520 2004-08-23 16:43  jordi
17521
17522         * ScrollBar.cs: [no log message]
17523
17524 2004-08-23 16:10  pbartok
17525
17526         * Form.cs:
17527           - Fixed handling of WM_CLOSE message
17528           - Removed debug output
17529
17530 2004-08-23 16:09  pbartok
17531
17532         * Application.cs:
17533           - Added handling of Idle event
17534           - Added handling of form closing
17535           - Fixed reporting of MessageLoop property
17536           - Removed some unneeded code, should provide a bit of a speedup
17537
17538 2004-08-23 15:22  pbartok
17539
17540         * Control.cs:
17541           - Added InitLayout() method
17542           - Added code to properly perform layout when Anchor or Dock property
17543             is changed
17544           - Changed 'interpretation' of ResumeLayout. MS seems to have a
17545             LAMESPEC, tried to do it in a way that makes sense
17546
17547 2004-08-23 14:10  jordi
17548
17549         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
17550           properties and methods
17551
17552 2004-08-23 13:55  pbartok
17553
17554         * Control.cs:
17555           - Properly fixed Jordi's last fix
17556           - Now uses Cursor's Position property instead of calling XplatUI
17557           directly
17558
17559 2004-08-23 13:44  jordi
17560
17561         * PaintEventHandler.cs: Adding missing attribute
17562
17563 2004-08-23 13:39  pbartok
17564
17565         * Cursor.cs:
17566           - Implemented Position property
17567
17568 2004-08-23 13:39  pbartok
17569
17570         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17571           - Added method to move mouse cursor
17572
17573 2004-08-23 13:39  pbartok
17574
17575         * XplatUIX11.cs:
17576           - Fixed setting of background color
17577           - Added method to move mouse cursor
17578
17579 2004-08-23 13:16  jordi
17580
17581         * Control.cs: avoids null exception
17582
17583 2004-08-22 17:46  jackson
17584
17585         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
17586           PictureBox
17587
17588 2004-08-22 17:40  jackson
17589
17590         * XplatUIX11.cs: Add some missing locks
17591
17592 2004-08-22 15:10  pbartok
17593
17594         * Control.cs, Form.cs:
17595           - Removed OverlappedWindow style from Control, instead it's default
17596             now is child
17597           - Made form windows OverlappedWindow by default
17598
17599 2004-08-22 13:34  jackson
17600
17601         * ScrollBar.cs: Update the position through the Value property so
17602           the OnValueChanged event is raised.
17603
17604 2004-08-22 12:04  pbartok
17605
17606         * SWF.csproj:
17607           - Added Cursor.cs and UserControl.cs
17608
17609 2004-08-22 12:03  pbartok
17610
17611         * Cursor.cs:
17612           - Started implementation, not usable yet
17613
17614 2004-08-22 12:00  pbartok
17615
17616         * UserControl.cs:
17617           - Implemented UserControl (complete)
17618
17619 2004-08-21 19:20  ravindra
17620
17621         * ToolBar.cs: Correcting the formatting mess of VS.NET.
17622
17623 2004-08-21 18:49  ravindra
17624
17625         * ToolBar.cs: Probably this completes the missing attributes in
17626           toolbar control.
17627
17628 2004-08-21 18:03  ravindra
17629
17630         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
17631           Fixed toolbar control signatures.
17632
17633 2004-08-21 16:32  pbartok
17634
17635         * LinkLabel.cs:
17636           - Signature Fixes
17637
17638 2004-08-21 16:30  pbartok
17639
17640         * Label.cs:
17641           - Signature fixes
17642
17643 2004-08-21 16:19  pbartok
17644
17645         * Control.cs, Label.cs:
17646           - Signature fixes
17647
17648 2004-08-21 15:57  pbartok
17649
17650         * ButtonBase.cs:
17651           - Added loads of debug output for development
17652           - Fixed typo in method name
17653
17654 2004-08-21 15:52  pbartok
17655
17656         * ToolBarButtonClickEventArgs.cs:
17657           - Added missing base class
17658
17659 2004-08-21 14:53  pbartok
17660
17661         * Control.cs:
17662           - Updated to match new GrabWindow signature
17663
17664 2004-08-21 14:51  pbartok
17665
17666         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17667           - Added method to get default display size
17668
17669 2004-08-21 14:23  pbartok
17670
17671         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17672           - Added method to query current grab state
17673           - Added argument to allow confining a grab to a window
17674
17675 2004-08-21 14:22  pbartok
17676
17677         * Keys.cs:
17678           - Added [Flags] attribute so that modifiers can be used in bitwise
17679           ops
17680
17681 2004-08-21 14:21  pbartok
17682
17683         * TrackBar.cs, ScrollBar.cs:
17684           - Replaced direct XplatUI calls with their Control counterpart
17685
17686 2004-08-21 13:32  pbartok
17687
17688         * Control.cs:
17689           - Implemented Created property
17690
17691 2004-08-21 13:28  pbartok
17692
17693         * Control.cs:
17694           - Implemented ContainsFocus
17695
17696 2004-08-21 13:26  pbartok
17697
17698         * Control.cs:
17699           - Implemented CausesValidation
17700
17701 2004-08-21 13:21  pbartok
17702
17703         * Control.cs:
17704           - Implemented CanFocus
17705           - Implemented CanSelect
17706           - Implemented Capture
17707
17708 2004-08-21 12:35  pbartok
17709
17710         * XplatUIWin32.cs:
17711           - Fixed bug with Async message handling
17712           - Implemented getting the ModifierKeys
17713
17714 2004-08-21 12:32  jackson
17715
17716         * AsyncMethodResult.cs: Make sure we have the mutex before we
17717           release it. Fixes BeginInvoke on windows
17718
17719 2004-08-21 11:31  pbartok
17720
17721         * XplatUIWin32.cs, XplatUIX11.cs:
17722           - Drivers now return proper mouse state
17723
17724 2004-08-21 10:54  jackson
17725
17726         * Control.cs: Implement EndInvoke
17727
17728 2004-08-21 10:48  jackson
17729
17730         * Timer.cs: Remove unneeded finalizer
17731
17732 2004-08-20 19:52  ravindra
17733
17734         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
17735           in mouse event handling in the ToolBar control.
17736
17737 2004-08-20 19:50  ravindra
17738
17739         * ImageList.cs: Changed draw method to use the arguments passed in
17740           to draw the image.
17741
17742 2004-08-20 18:58  pbartok
17743
17744         * XplatUIStructs.cs:
17745           - Added private message for async communication
17746
17747 2004-08-20 17:38  ravindra
17748
17749         * Control.cs: Made RightToLeft property virtual and removed a
17750           Console.WriteLine.
17751
17752 2004-08-20 14:39  jordi
17753
17754         * ThemeGtk.cs: use style_attach
17755
17756 2004-08-20 14:39  pbartok
17757
17758         * XplatUIWin32.cs:
17759           - Added jackson's Async code from X11 to Win32
17760
17761 2004-08-20 14:09  pbartok
17762
17763         * SWF.csproj:
17764           - Added all new files
17765
17766 2004-08-20 14:09  pbartok
17767
17768         * Control.cs:
17769           - Added call to set window background color
17770
17771 2004-08-20 14:03  pbartok
17772
17773         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17774           - Added method for setting the window background
17775
17776 2004-08-20 14:02  pbartok
17777
17778         * XplatUIWin32.cs:
17779           - Added method for setting the background color
17780           - Added handling for erasing the window background
17781
17782 2004-08-20 13:45  jordi
17783
17784         * TrackBar.cs: fixes timer, new properties and methods
17785
17786 2004-08-20 13:34  jackson
17787
17788         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
17789           correct thread
17790
17791 2004-08-20 13:22  jackson
17792
17793         * Timer.cs: Timer Tick events are now handed through Controls Async
17794           mechanism so the callbacks are executed in the same thread as X
17795
17796 2004-08-20 13:19  jackson
17797
17798         * XplatUIDriver.cs: Expose functionality to send async messages
17799           through the driver
17800
17801 2004-08-20 13:18  jackson
17802
17803         * Control.cs: Implement Begininvoke
17804
17805 2004-08-20 13:14  jackson
17806
17807         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
17808           messages through the driver
17809
17810 2004-08-20 13:12  jackson
17811
17812         * XplatUIX11.cs: Lock before all X operations. Also added Async
17813           method functionality through XSendEvent
17814
17815 2004-08-20 13:11  jackson
17816
17817         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
17818           This will screw up on 64 bit systems)
17819
17820 2004-08-20 13:10  jackson
17821
17822         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
17823           Async messages through X/Win32
17824
17825 2004-08-19 19:39  pbartok
17826
17827         * XplatUIX11.cs:
17828           - Updated code to match new HandleData.DeviceContext type
17829
17830 2004-08-19 19:38  pbartok
17831
17832         * HandleData.cs:
17833           - Made DeviceContext a generic object to allow usage from various
17834           drivers
17835           - Added support for queueing Windows messages
17836
17837 2004-08-19 19:37  pbartok
17838
17839         * XplatUIWin32.cs:
17840           - Added generation of MouseEnter, MouseLeave and MouseHover events
17841           - Added cleanup on EndPaint
17842
17843 2004-08-19 19:17  pbartok
17844
17845         * Control.cs:
17846           - Added handling of WM_MOUSEHOVER
17847           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
17848           code
17849
17850 2004-08-19 18:55  jordi
17851
17852         * ThemeGtk.cs: fixes button order
17853
17854 2004-08-19 18:12  jordi
17855
17856         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
17857
17858 2004-08-19 17:09  pbartok
17859
17860         * Control.cs:
17861           - Added Right property
17862           - Added RightToLeft property
17863
17864 2004-08-19 16:27  jordi
17865
17866         * ThemeGtk.cs: experimental GTK theme support
17867
17868 2004-08-19 16:26  jordi
17869
17870         * ITheme.cs, Theme.cs: move themes from an interface to a class
17871
17872 2004-08-19 16:25  jordi
17873
17874         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
17875           theme enhancaments
17876
17877 2004-08-19 16:04  pbartok
17878
17879         * XplatUIX11.cs:
17880           - Added colormap basics
17881           - Added a way to re-initialize with a different display handle
17882           - Fixed setting of the window background color
17883           - Added various X11 imports related to colors and colormaps
17884
17885 2004-08-19 15:51  pbartok
17886
17887         * X11Structs.cs:
17888           - Removed packing hints (Paolo suggested this a while back)
17889           - fixed colormap type
17890           - Added default Atom types
17891           - Added Screen and color structs and enums
17892
17893 2004-08-19 15:39  pbartok
17894
17895         * ImageList.cs:
17896           - Added missing Draw() method
17897           - Added missing RecreateHandle event
17898
17899 2004-08-19 15:30  pbartok
17900
17901         * Form.cs:
17902           - Added handling of WM_CLOSE
17903
17904 2004-08-18 13:16  jordi
17905
17906         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
17907           a table
17908
17909 2004-08-18 09:56  jordi
17910
17911         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
17912
17913 2004-08-17 15:31  ravindra
17914
17915         * SWF.csproj: Updated project.
17916
17917 2004-08-17 15:25  pbartok
17918
17919         * Control.cs:
17920           - Drawing improvement; don't call UpdateBounds if we are not visible
17921             (or have been minimized)
17922
17923 2004-08-17 15:24  pbartok
17924
17925         * XplatUIWin32.cs:
17926           - Finished IsVisible
17927           - Added Win32GetWindowPlacement
17928
17929 2004-08-17 15:08  jackson
17930
17931         * Panel.cs: Initial checkin of the Panel
17932
17933 2004-08-17 14:25  pbartok
17934
17935         * Control.cs:
17936           - Fixed broken handling of default window sizes
17937
17938 2004-08-17 13:29  jackson
17939
17940         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
17941           has a large startup time.
17942
17943 2004-08-17 10:25  jackson
17944
17945         * HandleData.cs: union areas properly
17946
17947 2004-08-17 10:12  jackson
17948
17949         * HandleData.cs: union areas properly
17950
17951 2004-08-16 20:00  ravindra
17952
17953         * ToolBar.cs, ToolBarButton.cs: Added attributes.
17954
17955 2004-08-16 18:48  ravindra
17956
17957         * ToolBar.cs: Added attributes.
17958
17959 2004-08-16 17:17  ravindra
17960
17961         * SWF.csproj: Updated project.
17962
17963 2004-08-16 17:16  jackson
17964
17965         * XplatUIX11.cs: Check for more expose events before sending a
17966           WM_PAINT so they can all be grouped together. This makes dragging a
17967           window across another window redraw in a sane way.
17968
17969 2004-08-16 15:47  pbartok
17970
17971         * Control.cs:
17972           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
17973             support OnMouseEnter/Leave()
17974           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
17975             exposure handling
17976
17977 2004-08-16 15:46  pbartok
17978
17979         * XplatUIStructs.cs, XplatUIX11.cs:
17980           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
17981           OnMouseEnter/Leave()
17982
17983 2004-08-16 15:34  jackson
17984
17985         * XplatUIX11.cs: Group multiple expose events in HandleData, make
17986           sure messages get the message field set to WM_NULL if they are not
17987           handled.
17988
17989 2004-08-16 15:24  jackson
17990
17991         * HandleData.cs: HandleData is used for storing message information
17992           for window handles
17993
17994 2004-08-15 17:23  ravindra
17995
17996         * ColorDepth.cs: Added attribute.
17997
17998 2004-08-15 17:23  ravindra
17999
18000         * SWF.csproj: Updated project for ToolBar Control.
18001
18002 2004-08-15 17:20  ravindra
18003
18004         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
18005           control and also dos2unix format.
18006
18007 2004-08-15 17:13  ravindra
18008
18009         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
18010           ToolBarButtonClickEventArgs.cs,
18011           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
18012           ToolBarTextAlign.cs: First Implementation of ToolBar control.
18013
18014 2004-08-15 15:31  pbartok
18015
18016         * ButtonBase.cs:
18017           - First (mostly) working version
18018
18019 2004-08-13 16:15  pbartok
18020
18021         * Control.cs:
18022           - Fixed Anchor default
18023
18024 2004-08-13 15:43  pbartok
18025
18026         * Control.cs:
18027           - Changed GetCursorPos signature
18028
18029 2004-08-13 15:42  pbartok
18030
18031         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
18032           - Changed signature for GetCursorPos
18033
18034 2004-08-13 15:25  pbartok
18035
18036         * XplatUIX11.cs:
18037           - Cleanup
18038           - Fixed resizing/exposure handling
18039
18040 2004-08-13 15:22  jordi
18041
18042         * ThemeWin32Classic.cs: removes redundant code and fixes issues
18043           with tickposition
18044
18045 2004-08-13 14:55  jordi
18046
18047         * TrackBar.cs: change from wndproc to events
18048
18049 2004-08-13 13:00  jordi
18050
18051         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18052           XplatUIX11.cs: implements PointToClient (ScreenToClient)
18053
18054 2004-08-13 12:53  pbartok
18055
18056         * XplatUIWin32.cs:
18057           - Changed GetWindowPos to also provide client area size
18058           - Fixed broken prototypes for several win32 functions
18059
18060 2004-08-13 12:53  pbartok
18061
18062         * XplatUI.cs, XplatUIDriver.cs:
18063           - Changed GetWindowPos to also provide client area size
18064
18065 2004-08-13 12:52  pbartok
18066
18067         * XplatUIX11.cs:
18068           - Added generation of WM_POSCHANGED
18069           - Changed GetWindowPos to also provide client area size
18070
18071 2004-08-13 12:52  pbartok
18072
18073         * Control.cs:
18074           - Added Dispose() and destructor
18075           - Fixed resizing and bounds calculation
18076           - Fixed Layout
18077           - Added memory savings for invisible windows
18078
18079 2004-08-13 12:46  jordi
18080
18081         * TrackBar.cs: adds timer and grap window
18082
18083 2004-08-13 10:25  jackson
18084
18085         * Timer.cs: SWF Timer
18086
18087 2004-08-12 16:59  pbartok
18088
18089         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18090           - Implemented method to get current mouse position
18091
18092 2004-08-12 14:29  jordi
18093
18094         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
18095           enhancement, fix mouse problems, highli thumb, etc
18096
18097 2004-08-12 13:31  pbartok
18098
18099         * Control.cs:
18100           - Fixed Anchoring bugs
18101
18102 2004-08-12 13:01  jackson
18103
18104         * StatusBar.cs: Don't forget things
18105
18106 2004-08-12 12:54  jackson
18107
18108         * ThemeWin32Classic.cs: Handle owner draw status bars
18109
18110 2004-08-12 12:54  jackson
18111
18112         * StatusBar.cs: Implement missing properties, events, and methods.
18113           Handle mouse clicking
18114
18115 2004-08-12 10:19  jackson
18116
18117         * StatusBarPanelClickEventArgs.cs,
18118           StatusBarPanelClickEventHandler.cs: Classes for handling status
18119           bar panel click events
18120
18121 2004-08-12 10:10  jackson
18122
18123         * Control.cs: Add missing properties
18124
18125 2004-08-12 09:46  pbartok
18126
18127         * BindingsManagerBase.cs:
18128           - Name changed to BindingManagerBase.cs
18129
18130 2004-08-12 09:25  jordi
18131
18132         * ScrollableControl.cs: calls ctrlbase instead of exeception
18133
18134 2004-08-11 16:28  pbartok
18135
18136         * InputLanguageChangingEventArgs.cs:
18137           - Never check in before compiling. Fixes the last check-in
18138
18139 2004-08-11 16:26  pbartok
18140
18141         * InputLanguageChangingEventArgs.cs:
18142           - More signature fixes
18143
18144 2004-08-11 16:20  pbartok
18145
18146         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
18147           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
18148           ImageListStreamer.cs, InputLanguage.cs,
18149           InputLanguageChangedEventArgs.cs,
18150           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
18151           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
18152           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
18153           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18154           - Signature fixes
18155
18156 2004-08-11 16:16  pbartok
18157
18158         * Application.cs:
18159           - Fixed Signature
18160           - Added .Net 1.1 method
18161
18162 2004-08-11 15:25  pbartok
18163
18164         * SWF.csproj:
18165           - Fixed BindingManagerBase.cs filename
18166
18167 2004-08-11 15:22  pbartok
18168
18169         * BindingManagerBase.cs:
18170           - Was checked in with wrong filename
18171
18172 2004-08-11 14:50  pbartok
18173
18174         * SWF.csproj:
18175           - Updated
18176
18177 2004-08-11 13:41  jordi
18178
18179         * XplatUIWin32.cs: Fixes ClientRect
18180
18181 2004-08-11 13:19  pbartok
18182
18183         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18184           XplatUIX11.cs:
18185           - We had SetWindowPos and MoveWindow to set window positions and
18186             size, removed MoveWindow. We have GetWindowPos, so it made sense to
18187             keep SetWindowPos as matching counterpart
18188           - Added some X11 sanity checking
18189
18190 2004-08-11 12:59  pbartok
18191
18192         * Control.cs:
18193           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
18194             (It seems that SetBounds is just a front for SetBoundsCore and
18195              SetBoundsCore updates the underlying window system and
18196              UpdateBounds is responsible for updating the variables associated
18197              with the Control and sending the events)
18198           - Major cleanup of Size handling; we now have two sizes, client_size
18199             and bounds. Bounds defines the window with decorations, client_size
18200             without them.
18201
18202 2004-08-11 12:55  pbartok
18203
18204         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18205           - Added method to calculate difference between decorated window and
18206             raw client area
18207
18208 2004-08-11 12:54  pbartok
18209
18210         * Label.cs:
18211           - Forcing redraw on resize
18212
18213 2004-08-11 11:43  pbartok
18214
18215         * ImageList.cs:
18216           - Removed disposing of the actual images when the list is disposed
18217
18218 2004-08-11 09:13  pbartok
18219
18220         * Control.cs:
18221           - Now properly reparents windows
18222
18223 2004-08-11 08:37  pbartok
18224
18225         * Control.cs:
18226           - Duh!
18227
18228 2004-08-11 07:47  pbartok
18229
18230         * Control.cs:
18231           - Rewrote the collection stuff. Might not be as fast now, not
18232             keeping the number of children around and accessible directly, but
18233             it's more straightforward
18234
18235 2004-08-11 07:44  pbartok
18236
18237         * AccessibleObject.cs:
18238           - Fixed to match ControlCollection rewrite
18239
18240 2004-08-11 07:43  pbartok
18241
18242         * ImageList.cs:
18243           - Added missing creation of the collection list
18244
18245 2004-08-10 20:08  jackson
18246
18247         * StatusBar.cs: Get the paint message from WndProc
18248
18249 2004-08-10 19:31  jackson
18250
18251         * ThemeWin32Classic.cs: Create Brushes as little as possible
18252
18253 2004-08-10 19:20  jackson
18254
18255         * UICues.cs: Add Flags attribute
18256
18257 2004-08-10 19:19  jackson
18258
18259         * StatusBarPanel.cs: Signature cleanup
18260
18261 2004-08-10 19:10  jackson
18262
18263         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
18264           Initial implementation of status bar item drawing
18265
18266 2004-08-10 17:27  jordi
18267
18268         * TrackBar.cs: add missing methods, properties, and restructure to
18269           hide extra ones
18270
18271 2004-08-10 16:24  jackson
18272
18273         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
18274           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
18275           attribute
18276
18277 2004-08-10 13:21  jordi
18278
18279         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
18280           enhancements and standarize on win colors defaults
18281
18282 2004-08-10 12:52  jackson
18283
18284         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
18285           ThemeWin32Classic.cs: Implement DrawItem functionality
18286
18287 2004-08-10 12:47  jordi
18288
18289         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
18290
18291 2004-08-10 12:32  jordi
18292
18293         * Control.cs: throw ontextchange event
18294
18295 2004-08-10 11:43  pbartok
18296
18297         * Control.cs:
18298           - Added more to the still unfinished Dock/Anchor layout code
18299
18300 2004-08-10 11:39  pbartok
18301
18302         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
18303           - Added GetWindowPos method
18304
18305 2004-08-10 11:36  pbartok
18306
18307         * XplatUIWin32.cs:
18308           - Implemented several methods
18309
18310 2004-08-10 09:47  jackson
18311
18312         * TrackBar.cs: Allow control to handle buffering
18313
18314 2004-08-10 09:41  jackson
18315
18316         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
18317
18318 2004-08-10 09:24  jackson
18319
18320         * Label.cs, LinkLabel.cs: Let Control handle buffering.
18321
18322 2004-08-10 09:09  jackson
18323
18324         * StatusBar.cs: Let Control handle all the buffering.
18325
18326 2004-08-10 09:08  jackson
18327
18328         * Control.cs: Control will now handle the buffering code, so each
18329           control does not have to implement this.
18330
18331 2004-08-10 08:34  jackson
18332
18333         * XplatUIDriver.cs: Use default colors from the theme
18334
18335 2004-08-09 17:12  pbartok
18336
18337         * ImageList.cs:
18338           - Fixed several bugs Ravindra pointed out
18339
18340 2004-08-09 16:11  pbartok
18341
18342         * Control.cs:
18343           - Added incomplete dock layout code
18344           - Added support for mouse wheel
18345
18346 2004-08-09 16:09  pbartok
18347
18348         * XplatUIX11.cs:
18349           - Added handling for middle and right mousebutton
18350           - Added handling for mouse wheel
18351           - Added handling for key state and mouse state and position
18352           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
18353           messages
18354
18355 2004-08-09 15:40  jackson
18356
18357         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
18358           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
18359           checkin
18360
18361 2004-08-09 15:37  jackson
18362
18363         * StatusBar.cs: Initial implementation of StatusBar
18364
18365 2004-08-09 15:36  jackson
18366
18367         * ITheme.cs: Add support for drawing status bar and getting status
18368           bar item sizes
18369
18370 2004-08-09 15:35  pbartok
18371
18372         * MouseButtons.cs:
18373           - Fixed values
18374
18375 2004-08-09 15:34  jackson
18376
18377         * ThemeWin32Classic.cs: Add support for drawing status bar and get
18378           status bar item sizes
18379
18380 2004-08-09 15:21  jackson
18381
18382         * ThemeWin32Classic.cs: Use known colors for default control
18383           colours
18384
18385 2004-08-09 15:12  jackson
18386
18387         * ThemeWin32Classic.cs: Make the default font static, it is static
18388           in control so this doesn't change functionality and creating fonts
18389           is sloooooow.
18390
18391 2004-08-09 14:56  pbartok
18392
18393         * X11Structs.cs:
18394           - Added GrabMode enum
18395
18396 2004-08-09 14:55  pbartok
18397
18398         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18399           - Removed Run method, was only required for initial development
18400
18401 2004-08-09 14:51  pbartok
18402
18403         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
18404           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
18405           capture
18406
18407 2004-08-09 13:48  pbartok
18408
18409         * XplatUIX11.cs:
18410           - Fixed default sizing for child windows
18411
18412 2004-08-09 12:56  pbartok
18413
18414         * XplatUIX11.cs:
18415           - Added generation of WM_DESTROY message
18416           - Added handling of window manager induced shutdown
18417
18418 2004-08-09 11:31  jackson
18419
18420         * ThemeWin32Classic.cs: New names for control properties
18421
18422 2004-08-09 11:25  jackson
18423
18424         * Control.cs: Use new color names
18425
18426 2004-08-09 11:02  jackson
18427
18428         * XplatUI.cs: Get default window properties from the theme
18429
18430 2004-08-09 11:01  jackson
18431
18432         * ITheme.cs: The theme engine now controls default window
18433           properties
18434
18435 2004-08-09 11:00  jackson
18436
18437         * ThemeWin32Classic.cs: Add default window color properties
18438
18439 2004-08-09 10:17  jackson
18440
18441         * ThemeWin32Classic.cs: Use correct default back color
18442
18443 2004-08-09 10:05  jackson
18444
18445         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
18446           the theme now.
18447
18448 2004-08-09 09:56  jackson
18449
18450         * XplatUI.cs: Remove defaults, these are handled by the theme now.
18451
18452 2004-08-09 09:54  jackson
18453
18454         * Control.cs: Get default properties from the theme.
18455
18456 2004-08-09 09:53  jackson
18457
18458         * ITheme.cs: Themes now handle default control properties
18459
18460 2004-08-09 09:53  jackson
18461
18462         * ThemeWin32Classic.cs: Themes now handle default control
18463           properties so coloring will be consistent
18464
18465 2004-08-08 16:54  jordi
18466
18467         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
18468
18469 2004-08-08 15:08  jordi
18470
18471         * XplatUIX11.cs: fixes keyboard crash
18472
18473 2004-08-08 13:47  jordi
18474
18475         * Label.cs: add cvs header info
18476
18477 2004-08-08 12:09  jackson
18478
18479         * ThemeWin32Classic.cs: Add pen_buttonface
18480
18481 2004-08-08 11:52  jordi
18482
18483         * Label.cs, LinkLabel.cs: [no log message]
18484
18485 2004-08-08 11:34  jordi
18486
18487         * ThemeWin32Classic.cs: Use Windows Standard Colours
18488
18489 2004-08-07 17:32  jordi
18490
18491         * TrackBar.cs: throw exceptions of invalid enums values
18492
18493 2004-08-07 17:31  jordi
18494
18495         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
18496           draw method name
18497
18498 2004-08-07 16:56  jackson
18499
18500         * HorizontalAlignment.cs: Initial checkin
18501
18502 2004-08-07 13:16  jordi
18503
18504         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
18505           methods
18506
18507 2004-08-07 13:05  jordi
18508
18509         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
18510           GetSysColor defines
18511
18512 2004-08-06 18:01  pbartok
18513
18514         * ThemeWin32Classic.cs:
18515           - Fixed some rounding issues with float/int
18516
18517 2004-08-06 18:00  jackson
18518
18519         * DockStyle.cs, AnchorStyles.cs:
18520
18521                   Add flags and serializable attributes.
18522
18523 2004-08-06 17:46  pbartok
18524
18525         * XplatUIX11.cs:
18526           - Implemented GetParent
18527
18528 2004-08-06 17:18  pbartok
18529
18530         * TrackBar.cs:
18531           - Fixed some rounding issues with float/int
18532
18533 2004-08-06 17:17  pbartok
18534
18535         * X11Structs.cs, XplatUIX11.cs:
18536           - Fixed Refresh and Invalidate
18537
18538 2004-08-06 15:30  pbartok
18539
18540         * Control.cs, X11Structs.cs, XplatUIX11.cs:
18541           - Fixed recursive loop when resizing
18542           - Improved/fixed redrawing on expose messages
18543
18544 2004-08-06 09:53  jordi
18545
18546         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
18547           keyboard navigation
18548
18549 2004-08-06 08:02  pbartok
18550
18551         * X11Structs.cs, XplatUIX11.cs:
18552           - Fixed reparenting
18553           - Fixed window border creation
18554
18555 2004-08-05 15:38  pbartok
18556
18557         * XplatUIX11.cs:
18558           - Attempted fix for reparenting problems
18559
18560 2004-08-04 15:14  pbartok
18561
18562         * Control.cs:
18563           - Fixed Invalidation bug (calculated wrong client area)
18564           - Added ClientSize setter
18565
18566 2004-08-04 15:13  pbartok
18567
18568         * Form.cs:
18569           - Added AutoScale properties
18570
18571 2004-08-04 15:13  pbartok
18572
18573         * SWF.csproj:
18574           - Added latest files
18575
18576 2004-08-04 14:11  pbartok
18577
18578         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
18579           XplatUIX11.cs:
18580           - Added Invalidate handling
18581
18582 2004-08-03 17:09  jordi
18583
18584         * XplatUIDriver.cs: fixes spelling mistake
18585
18586 2004-07-27 09:53  jordi
18587
18588         * TrackBar.cs: fixes trackbar events, def classname, methods
18589           signature
18590
18591 2004-07-27 09:29  jordi
18592
18593         * ScrollBar.cs: fixes scrollbar events
18594
18595 2004-07-27 04:38  jordi
18596
18597         * Control.cs: changes to be able to run winforms samples
18598
18599 2004-07-26 11:42  jordi
18600
18601         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
18602           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
18603
18604 2004-07-26 05:41  jordi
18605
18606         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
18607           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
18608           implementation
18609
18610 2004-07-22 09:22  jordi
18611
18612         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
18613           check link overlapping, implement events, and fixes
18614
18615 2004-07-21 10:28  jordi
18616
18617         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
18618
18619 2004-07-21 10:19  jordi
18620
18621         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
18622           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
18623           LinkLabelLinkClickedEventArgs.cs,
18624           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
18625           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
18626           implementation
18627
18628 2004-07-19 13:09  jordi
18629
18630         * Control.cs, Label.cs: label control re-written: added missing
18631           functionlity, events, and properties
18632
18633 2004-07-19 10:49  jordi
18634
18635         * Control.cs: fixes SetBounds logic
18636
18637 2004-07-19 01:29  jordi
18638
18639         * Control.cs: Call RefreshWindow only if the window has created
18640
18641 2004-07-15 14:05  pbartok
18642
18643         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
18644           - Implemented ImageList and ImageList.ImageCollection classes
18645           - Added ColorDepth enumeration
18646           - Updated SWF VS.Net project
18647
18648 2004-07-15 11:06  jordi
18649
18650         * XplatUIStructs.cs: added MsgButons enum
18651
18652 2004-07-15 11:03  jordi
18653
18654         * Control.cs: added basic mouse handeling events
18655
18656 2004-07-15 03:38  jordi
18657
18658         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
18659           Vertical TrackBar control implementation
18660
18661 2004-07-13 09:33  jordi
18662
18663         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
18664
18665 2004-07-13 09:31  jordi
18666
18667         * Control.cs, Form.cs: commit: new properties and fixes form size
18668           problems
18669
18670 2004-07-09 14:13  miguel
18671
18672         * ProgressBar.cs: Spelling
18673
18674 2004-07-09 11:25  pbartok
18675
18676         * ProgressBar.cs:
18677           - Removed usage of Rectangle for drawing. Miguel pointed out it's
18678           faster
18679
18680 2004-07-09 11:17  miguel
18681
18682         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
18683
18684                 * ProgressBar.cs: Fixed spelling for `block'
18685
18686                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
18687                 style guidelines.
18688
18689                 Avoid using the += on rect.X, that exposed a bug in the compiler.
18690
18691 2004-07-08 23:21  pbartok
18692
18693         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
18694           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
18695           BaseCollection.cs, Binding.cs, BindingContext.cs,
18696           BindingMemberInfo.cs, BindingsCollection.cs,
18697           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
18698           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
18699           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
18700           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
18701           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
18702           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
18703           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
18704           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
18705           FrameStyle.cs, GiveFeedbackEventArgs.cs,
18706           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
18707           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
18708           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
18709           InputLanguageChangedEventArgs.cs,
18710           InputLanguageChangedEventHandler.cs,
18711           InputLanguageChangingEventArgs.cs,
18712           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
18713           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
18714           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
18715           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
18716           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
18717           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
18718           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
18719           QueryAccessibilityHelpEventArgs.cs,
18720           QueryAccessibilityHelpEventHandler.cs,
18721           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
18722           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
18723           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
18724           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
18725           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
18726           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
18727           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
18728           XplatUIX11.cs, lang.cs:
18729           - Initial check-in
18730