2006-12-15 Daniel Nauck <dna@mono-project.de>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2
3         * ListView.cs: fixed ListViewItemCollection AddRange and
4                         implemented ListViewItemCollection AddRange 2.0 support.
5
6 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7
8         * ListViewGroup.cs: Add.
9         * ListViewGroupCollection.cs: Add
10         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
11         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
12                                 stub for ImageKey 2.0 support.
13
14 2006-12-14  Mike Kestner  <mkestner@novell.com>
15
16         * ListView.cs: add text padding to the autocalculation for columns
17         of width -2.  Fixes #80207.
18  
19 2006-12-14  Mike Kestner  <mkestner@novell.com>
20
21         * ListView.cs: add some index guarding for partial row navigation 
22         logic.  Fixes #80250.
23
24 2006-12-14  Mike Kestner  <mkestner@novell.com>
25
26         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
27         are added or inserted to the collection.  Fixes #81099.
28
29 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
30
31         * MenuAPI.cs: Closes menu when right click out side of popup
32         it fix problem in ContextMenu and MainMenu. Fixes #80252.
33
34 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
35
36         * ListViewItem.cs: Fix dumb error.
37
38         * ListView.cs: Add Find and ContainsKey methods in 
39         ListViewItemCollection, and also return true for IsReadOnly
40         and IsFixedSize (changes for 2.0). 
41
42 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
43
44         * Control.cs: Allow Region to be set to null.
45
46 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
47
48         * MdiWindowManager.cs: Remove unused (commented out) code.
49         * Form.cs: When the MdiChild is maximized, the form needs 
50         WM_NCMOUSELEAVE, so request it.
51         * InternalWindowManager.cs: 
52         - Added tooltips to control buttons.
53         - Removed duplicated control button handling code.
54         - Removed unused (commented out) code.
55         
56 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
57
58         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
59         was used because we must set cursor without trigger ChangeCursor event
60         and without change Cursor control property. Fixes #79963.
61
62 2006-12-12  Andreia Gaita  <avidigal@novell.com>
63         
64         * Control.cs: Check if Region setter value is null, and ignore
65
66 2006-12-12  Jackson Harper  <jackson@ximian.com>
67
68         * TextControl.cs: We were almost always drawing one more line then
69         needed, since the GetLineByPixel will return the last line found
70         at that pixel. In most cases though, we were invalidating up to
71         the junction between two lines.
72         - Improve debug code.
73
74 2006-12-12  Chris Toshok  <toshok@ximian.com>
75
76         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
77         and FillReversibleRectangle.
78
79         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
80         and FillReversibleRectangle.
81
82         * XplatUIWin32.cs: add stubs which do nothing for
83         DrawReversibleFrame, DrawReversibleLine, and
84         FillReversibleRectangle.
85
86         * XplatUIOSX.cs: add stubs which raise NIE for
87         DrawReversibleFrame, DrawReversibleLine, and
88         FillReversibleRectangle.
89
90         * XplatUIX11.cs: add working implementation for
91         DrawReversibleFrame, DrawReversibleLine, and
92         FillReversibleRectangle.
93         
94         * ControlPaint.cs: implement DrawReversibleFrame,
95         DrawReversibleLine, and FillReversibleRectangle, by calling into
96         the appropriate XplatUI method.
97
98 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
99
100         * Form.cs: Make MdiClient have the focus even if it's
101         not selectable, since it should receive WM_KEY* and WM_MOUSE 
102         messages. Fixes #79907.
103         
104 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
105
106         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
107         queried after the window is created.
108         
109         * XplatUIX11.cs: Added SendParentNotify to implement 
110         WM_PARENTNOTIFY logic. Fixes #79965.
111         
112         * Control.cs: Added MakeParam.
113         
114 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
115
116         * MdiClient.cs: Resume Layout before setting window
117         states (fixes #80201).
118
119 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
120
121         * MenuAPI.cs: Deselect a menu item after performing
122         the click (fixes #80197).
123
124 2006-12-11  Jackson Harper  <jackson@ximian.com>
125
126         * TextBoxBase.cs: We need to cap this value, since Maximum -
127         ViewPortHeight can be less than zero.
128         - Only do selection with the left mouse button.
129         * TextBox.cs: Don't tell the world that we have a context menu.
130         * Control.cs: New method so that we can control whether or not the
131         context menu is visible outside MWF.
132
133 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
134
135         * ToolBarButton.cs: Fix text positon. 
136
137 2006-12-11  Miguel de Icaza  <miguel@novell.com>
138
139         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
140
141         * Control.cs (DoubleBuffered): Add implementation.
142
143         * Application.cs (OpenForms): Add.
144
145 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
146
147         * Form.cs: Use opacity instead of Opactiy to determine if we need
148         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
149
150 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
151
152         * Control.cs: Fix NRE if Control.Site was set to null.
153
154 2006-12-11  Chris Toshok  <toshok@ximian.com>
155
156         * Control.cs: ControlCollection.Remove should return if the arg is
157         null, and ControlCollection.SetChildIndex should raise a ANE.
158
159 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
160
161         * Control.cs: Verify value set for Dock property. Code formatting
162         updates.
163
164 2006-12-11  Jackson Harper  <jackson@ximian.com>
165
166         * TextControl.cs: Draw the caret and the selection when a flag is
167         set on the owner.
168         * TextBoxBase.cs: We want to draw the caret and the selection for
169         TextBox but not for TextBoxBase.
170         - If the window is resized and scrolling is no longer needed (the
171         whole doc is visible) set the scroll position to zero.
172         - The default SelectWord (the one TextBox uses) should move the
173         caret to the end of the word.
174         - SelectAll moves the caret to the end of the selection.
175         * TextBox.cs: We don't selectall on focus, we just do it when the
176         control is created.
177         
178 2006-12-11  Mike Kestner  <mkestner@novell.com>
179
180         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
181
182 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
183
184         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
185         2.0 support.
186         * ListViewItem.cs: Add Name 2.0 property.
187
188 2006-12-11  Andreia Gaita  <avidigal@novell.com>
189
190         * TabControl.cs: Set visibility on selected or default tab 
191         when tabcontrol handle is created, so that it's contents
192         actually show up (duh). Fixes #80193
193         Don't redraw the control if there is no handle created, as
194         the selected index might be completely invalid. Added some tests
195         to check for this.
196
197 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
198
199         * ToolBar.cs: Uses maximun width and height of all buttons as 
200         button rectangle when ButtonSize specified, it looks strange but
201         is what happens in Win32. Fixes #80189.
202
203 2006-12-11  Jackson Harper  <jackson@ximian.com>
204
205         * TextControl.cs: Need to track undo levels ourself, since
206         compound actions will mess them up.
207
208 2006-12-10  Andreia Gaita  <avidigal@novell.com>
209
210         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
211         SelectedIndex value is changed (even if it's not valid).
212         Reset SelectedIndex to 0 when the handle is created and if
213         the current index is invalid.
214         Fixes SelectdeIndex unit tests and #80128
215
216 2006-12-08  Chris Toshok  <toshok@ximian.com>
217
218         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
219         calls EndEdit, it needs to be called before we set current_cell to
220         its new value.  Otherwise, we end up committing the value in the
221         textbox to the new cell as well.  Fixes bug #80160.
222
223 2006-12-08  Chris Toshok  <toshok@ximian.com>
224
225         * Form.cs (set_CancelButton): if the button's DialogResult is
226         None, set it to Cancel.  Fixes bug 80180.
227
228 2006-12-08  Jackson Harper  <jackson@ximian.com>
229
230         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
231         to watch ourselves when setting the canvas size and setting the
232         scrollbar values.
233
234 2006-12-08  Chris Toshok  <toshok@ximian.com>
235
236         * DataGrid.cs: comment out the two MakeTransparent calls for the
237         time being so people using trunk (and not 1.2.2) on windows can
238         actually use the datagrid.  This deals with bug #80151.
239
240 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
241
242         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
243         Graphics.DrawImage (image, int, int, int, int) overload instead
244         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
245         the dpi difference and was blurring images it drew.
246         [Fixes bug #79960]
247
248 2006-12-08  Chris Toshok  <toshok@ximian.com>
249
250         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
251         rowcnt is 0 (such as with an empty datasource), and make sure we
252         initialize not_usedarea.Y to cells.Y, so we don't draw over the
253         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
254
255 2006-12-08  Chris Toshok  <toshok@ximian.com>
256
257         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
258         grid.
259
260 2006-12-08  Chris Toshok  <toshok@ximian.com>
261
262         [ Fixes bug #80167 ]
263         
264         * ThemeWin32Classic.cs: don't draw the image if the button's flat
265         style is FlatStyle.System.
266
267         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
268         ButtonBase.flat_style private, and switch uses of it to the public
269         property.
270         
271 2006-12-08  Chris Toshok  <toshok@ximian.com>
272
273         [ Fixes bug #80121 ]
274         
275         * ThemeWin32Classic.cs: center the caption text in the datagrid
276         when we draw it.
277
278         * DataGrid.cs: lessen the amount we add to the caption height from
279         6 to 2.  6 was making it huge.
280
281 2006-12-08  Andreia Gaita  <avidigal@novell.com>
282
283         * UpDownBase: Handle MouseWheel call directly instead of capturing
284         the inner textbox's OnMouseWheel. Fixes #80166
285
286 2006-12-08  Jackson Harper  <jackson@ximian.com>
287
288         * TextControl.cs: We need to invalidate the textbox when we empty
289         it (how had this not been discovered before?)
290
291 2006-12-08  Jackson Harper  <jackson@ximian.com>
292
293         * TextBoxBase.cs: Reworked the mouse down code so I could get it
294         to behave like MS, we now ignore the eventargs.Click and just
295         track state ourself, which we were already doing anyways.
296         - Constrain the double click handler to the double click size.
297         
298 2006-12-08  Chris Toshok  <toshok@ximian.com>
299
300         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
301         direction if that scrollbar isn't shown.  fixes bug #80158.
302
303 2006-12-08  Andreia Gaita  <avidigal@novell.com>
304
305         * NumericUpDown.cs: Update value on getter. Fixes #79950
306
307 2006-12-08  Chris Toshok  <toshok@ximian.com>
308
309         * MenuItem.cs: add back in the event cloning code.  I didn't know
310         how to do it in the face of the EventHandlerList work i'd done
311         last week.  Fixes bug #80183.
312
313 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
314
315         * Control.cs: Add an invalidate to the BackgroundImage setter.
316         [Fixes 80184]
317
318 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
319
320         * ToolStrip*: Add some small properties reported by MoMA, fix event
321         firing and default properties based off of unit tests, and add some
322         attributes based off of the class status page.
323
324 2006-12-07  Jackson Harper  <jackson@ximian.com>
325
326         * TextBoxBase.cs: Take HideSelection into account when determining
327         whether or not to show the selection.
328         * RichTextBox.cs: After inserting the RTF into the document move
329         the cursor to the beginning of the document.
330
331 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
332
333         * Control.cs: Remove static ArrayList "controls" which maintained
334         a reference to every control created.
335         * Application.cs: Create a static FormCollection to maintain a reference
336         to every form created.  Use it in places that formerly enumerated through
337         the controls one looking for forms.
338         * Form.cs: Add and remove self from above FormCollection.
339
340 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
341
342         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
343           not libgdk (though it makes me wonder why I didn't have any
344           problems)
345
346 2006-12-07  Chris Toshok  <toshok@ximian.com>
347
348         [ you had to know this was coming after that last commit...]
349         
350         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
351         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
352         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
353         XCopyArea).
354
355 2006-12-07  Chris Toshok  <toshok@ximian.com>
356
357         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
358         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
359         all the behavior we need for double buffering.
360
361         * XplatUIDriver.cs: implement the 3 double buffer methods using a
362         client side Bitmap, just like the old Control-based double buffer
363         code did.  The methods are virtual, so each XplatUI driver
364         subclass can replace the implementation to use a faster, platform
365         specific approach.
366
367         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
368         double buffer code, and clean things up a bit in the process.
369
370 2006-12-06  Chris Toshok  <toshok@ximian.com>
371
372         * Control.cs: reindent WndProc.
373
374 2006-12-06  Chris Toshok  <toshok@ximian.com>
375
376         [ I wanna be like BenM when I grow up ]
377         
378         * Hwnd.cs: create a single static Graphics object on the static
379         Bitmap we create.  use this for our text measurements.
380
381         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
382         This was causing us to allocate a backbuffer for every control,
383         even when it wasn't flagged as double buffered.  Instead use the
384         single graphics instance.  This might have implications for
385         multithreaded applications.  If we run into problems we can switch
386         to creating 1 Graphics per control, on the static Hwnd bitmap.
387
388         this change nets us a 7M savings in private dirty mappings when
389         running FormsTest.exe.
390
391 2006-12-06  Chris Toshok  <toshok@ximian.com>
392
393         * ListView.cs: the BackgroundImage override is just to set
394         attributes.  chain up to base.BackgroundImage.
395
396         * RichTextBox.cs: same.
397
398         * ToolBar.cs: same, but we need to also redraw the toolbar when it
399         changes, so instead a handler for BackgroundImageChanged.
400         
401         * Control.cs: make background_image private.
402
403 2006-12-06  Chris Toshok  <toshok@ximian.com>
404
405         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
406         sure we even need this assignment, but roll with it for now.
407
408         * Control.cs: make the cursor field private.
409
410 2006-12-06  Chris Toshok  <toshok@ximian.com>
411
412         * Form.cs: we don't need to explicitly set ImeMode to
413         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
414         behavior in the face of ImeMode.Inherit.
415
416         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
417         change the ctor's assignment to use ImeMode instead of ime_mode.
418
419         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
420         ImeModeInherit.  Only check for the parent's imemode (and return
421         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
422         This fixes the button unit test, which sets both ImeMode and
423         DefaultImeMode to ImeMode.Disable.
424
425         also make the ime_mode field private.
426
427 2006-12-06  Chris Toshok  <toshok@ximian.com>
428
429         * Control.cs: make control_style private.
430
431         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
432         setting the styles to true, then setting them to false instead of
433         reverting to their previous values.
434
435         also, call SetStyle on the scrollbars instead of using
436         control_style directly.
437
438 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
439
440         * FormCollection.cs: Implement. [2.0]
441
442 2006-12-06  Chris Toshok  <toshok@ximian.com>
443
444         * Control.cs: make tab_stop private.
445
446         * Label.cs: set TabStop, not tab_stop.  reformat some event
447         add/remove methods to make them more compact.
448
449 2006-12-06  Chris Toshok  <toshok@ximian.com>
450
451         * RadioButton.cs: fix TabStop handling.
452
453 2006-12-06  Chris Toshok  <toshok@ximian.com>
454
455         * TextBox.cs: remove the explicit assignments to has_focus.
456         Control does that.
457
458         * ButtonBase.cs: remove the assignment to has_focus.  Control will
459         manage that.
460         
461 2006-12-06  Chris Toshok  <toshok@ximian.com>
462
463         * ButtonBase.cs: remove all uses of is_enabled from this code.
464         it's always true when any of the code containing the checks is
465         executed.
466
467 2006-12-06  Chris Toshok  <toshok@ximian.com>
468
469         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
470         with different semantics (some are present in both 1.1 and 2.0
471         profiles) so that we match MS's behavior in our unit tests.
472
473 2006-12-06  Jackson Harper  <jackson@ximian.com>
474
475         * TextControl.cs: Make this operation undoable.
476         * TextBoxBase.cs: Factor the border width into the preferred
477         height.
478         - implement Modified as per the spec.
479
480 2006-12-06  Chris Toshok  <toshok@ximian.com>
481
482         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
483
484 2006-12-06  Chris Toshok  <toshok@ximian.com>
485
486         * Control.cs: make right_to_left and context_menu fields private.
487
488 2006-12-06  Chris Toshok  <toshok@ximian.com>
489
490         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
491         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
492         Control.child_controls private.  switch all uses over to
493         Control.Controls.
494
495 2006-12-06  Chris Toshok  <toshok@ximian.com>
496
497         * System.Windows.Forms/GroupBox.cs,
498         System.Windows.Forms/AccessibleObject.cs,
499         System.Windows.Forms/ErrorProvider.cs,
500         System.Windows.Forms/Control.cs,
501         System.Windows.Forms/UpDownBase.cs,
502         System.Windows.Forms/ScrollBar.cs,
503         System.Windows.Forms/DateTimePicker.cs,
504         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
505         System.Windows.Forms/ToolTip.cs,
506         System.Windows.Forms/RadioButton.cs,
507         System.Windows.Forms/LinkLabel.cs,
508         System.Windows.Forms/Splitter.cs,
509         System.Windows.Forms/TextBoxBase.cs,
510         System.Windows.Forms/ToolStripTextBox.cs,
511         System.Windows.Forms/ContainerControl.cs,
512         System.Windows.Forms/ThemeWin32Classic.cs,
513         System.Windows.Forms/SizeGrip.cs,
514         System.Windows.Forms/ToolStripDropDown.cs,
515         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
516         private.  switch all uses over to Control.Parent.
517
518 2006-12-06  Chris Toshok  <toshok@ximian.com>
519
520         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
521         Control does this before calling emitting these events.
522
523         * TabControl.cs: same.
524
525         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
526         Control.client_rect.
527
528         * ButtonBase.cs: use the ClientSize property instead of the
529         client_size field.
530
531         * ScrollableControl.cs: same.
532
533         * Control.cs: another pass at making properties private.  also,
534         move the initialization of tab_stop to the ctor.
535
536 2006-12-05  Andreia Gaita <avidigal@novell.com>
537
538         * TabControl.cs: Let the selected index be set freely if the 
539         control handle is not yet created.
540
541 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
542
543         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
544         internal until I can rewrite DefaultLayout.
545         * ToolStrip.cs: Fix build error and some general cleaning.
546         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
547         Fix build errors caused by making some of Control's fields private.
548
549 2006-12-05  Jackson Harper  <jackson@ximian.com>
550
551         * TextControl.cs: Redo Insert a little so that it use IndexOf
552         instead of Split, this prevents it from messing up on things like
553         \n\n\n. Also more effecient since the split array doesn't need to
554         be created.
555         * TextBoxBase.cs: AppendText doesnt handle multiline and non
556         multiline text differently, this is the first of many fixes that
557         will make multiline/non-multiline the same thing as far as the
558         TextBoxBase is concerned.
559         - Don't split the text and insert lines, this can lose some line
560         endings (like is the last line a soft or hard break). Instead use
561         the new Insert.
562         - Fix an off by one when combining all the lines in the Text
563         getter.
564         - Remove separate multiline handling from the Text getter/setter.
565
566 2006-12-05  Chris Toshok  <toshok@ximian.com>
567
568         * ButtonBase.cs: a few changes:
569
570         - don't reinitialize internal Control fields in the ctor when they
571         have the same values as Control sets them.
572
573         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
574         this before calling those methods.
575
576         - we don't need to call Refresh for anything.  use Invalidate
577         instead.
578
579         - OnEnabledChanged doesn't need to redraw at all - Control.cs
580         calls Refresh in its OnEnabledChanged.
581         
582         - several of the events we were registered for in the ctor to
583         redraw ourselves already include calls to Invalidate in the
584         property setters that raise the events.  remove the extra
585         invalidation.
586
587         - reformat a switch statement that was 83274658 columns wide.
588         
589 2006-12-05  Mike Kestner  <mkestner@novell.com>
590
591         * ComboBox.cs: fix a unit test regression from a TextBox
592         SelectionLength return of -1 when there's no selection.  
593
594 2006-12-05  Chris Toshok  <toshok@ximian.com>
595
596         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
597         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
598         cleaning up some of the internal Control fields being used by
599         subclasses.
600
601 2006-12-05  Mike Kestner  <mkestner@novell.com>
602
603         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
604         listbox after AddImplicit calls since it defaults to hidden. Add a 
605         hack to preserve requested heights across DropDownStyle changes.
606
607 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
608
609         * PropertyGrid.cs: Hide FindFirstItem method from public API.
610
611 2006-12-05  Chris Toshok  <toshok@ximian.com>
612
613         * DataGridView.cs: fix compiler warnings.
614
615         * PrintControllerWithStatusDialog.cs: same.
616
617         * ToolBar.cs: same.
618
619         * FolderBrowserDialog.cs: same.
620
621         * Splitter.cs: same.
622
623         * DataGridViewComboBoxCell.cs: same.
624
625         * XplatUIWin32.cs: same.
626
627         * PictureBox.cs: same.
628
629         * Win32DnD.cs: same.
630
631         * PageSetupDialog.cs: same.
632
633         * FileDialog.cs: same.
634
635         * PrintDialog.cs: same.
636
637         * DataGridTextBoxColumn.cs: same.
638
639         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
640
641 2006-12-05  Chris Toshok  <toshok@ximian.com>
642
643         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
644         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
645         System.ComponentModel.EventHandlerList work.
646
647 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
648
649         * DrawTreeNodeEventArgs.cs: Added.
650
651 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
652         
653         * InternalWindowManager.cs: Remove an unused field.
654         
655 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
656
657         * InternalWindowManager.cs:
658         - Save the point where the title bar is clicked.
659         
660         * MdiWindowManager.cs:
661         - Only allow moving of the window as long as the 
662         clicked point on the title bar does not get out of
663         MdiClient's rectangle. Fixes #79982.
664         
665         * MdiClient.cs:
666         - Added Horizontal/VerticalScrollbarVisible.
667         - Simplified the scrollbar sizing algorithm.
668         - Cache the difference in scrolled value in
669         H/VBarValueChanged and move the calculation out
670         of the for loop.
671
672 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
673
674         * Control.cs: Make the Console.WriteLine in WndProc 
675         write more info.
676
677 2006-12-05  Chris Toshok  <toshok@ximian.com>
678
679         * ToolStripManager.cs, ToolStripButton.cs,
680         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
681         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
682         ToolStripSplitButton.cs, ToolStripSeparator.cs,
683         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
684         ToolStripProgressBar.cs, ToolStripContainer.cs,
685         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
686         to using System.ComponentModel.EventHandlerList.
687
688 2006-12-04  Chris Toshok  <toshok@ximian.com>
689
690         * LinkLabel.cs: fix up compiler warnings.
691
692         * TableLayoutSettings.cs: same.
693
694         * TreeView.cs: same.
695
696         * ToolBar.cs: same.
697
698         * TabControl.cs: same.
699
700         * RichTextBox.cs: same.
701
702         * ListViewItem.cs: same.
703
704         * PropertyGrid.cs: same.
705
706         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
707
708         * ToolTip.cs same.
709
710         * TextRenderer.cs: fix up compiler warnings.
711
712         * Label.cs: same.
713
714         * Form.cs: corcompare fixes.
715
716         * PictureBox.cs: fix up compiler warnings.
717
718         * ImageListStreamer.cs: same.
719
720         * TrackBar.cs: corcompare fix.
721
722         * Control.cs: fix up compiler warnings.
723
724         * SplitterPanel.cs: same.
725
726         * NumericTextBox.cs: same.
727
728         * ImageList.cs: same.
729
730         * StatusStrip.cs: same.
731
732         * ProgressBar.cs: corcompare fix.
733
734         * ToolStripButton.cs: fix up compiler warnings.
735
736         * ToolStripStatusLabel.cs: same.
737
738         * ToolStripSplitButton.cs: same.
739
740         * ToolStripSeparator.cs: same.
741
742         * ToolStripProgressBar.cs: same.
743
744         * ToolStripDropDownMenu.cs: same
745
746         * ToolStripDropDown.cs: same.
747
748         * ToolStripDropDownButton.cs: same.
749
750         * ToolStrip.cs: same.
751
752         * ToolStripControlHost.cs: same.
753
754         * ToolStripContentPanel.cs: same.
755
756         * ToolStripDropDown.cs: same.
757
758         * ToolStripContainer.cs: same.
759
760         * ToolStripPanel.cs: same, and add "new" where we need it to work
761         with the new ArrangedElementCollection.
762
763         * ToolStripItemCollection.cs: add "new" where we need it to work
764         with the new ArrangedElementCollection.
765
766 2006-12-04  Andreia Gaita <avidigal@novell.com>
767
768         * TabControl.cs: Fix default tab selection to after TabControl
769         gets focus and not before. Fixes #80128
770
771 2006-12-04  Chris Toshok  <toshok@ximian.com>
772
773         * DataGridTableStyle.cs: remove the gross calling of
774         datagrid.Refresh from here.  It's a broken idea and it doesn't
775         work anyway.
776
777         * DataGrid.cs: instead, just register/unregister from the
778         DataGridTableStyle events in CurrentTableStyle.  we play it
779         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
780         even though some would most likely not require it.  Fixes bug
781         #80115 (and one portion of #80117 as a side effect).
782
783 2006-12-04  Chris Toshok  <toshok@ximian.com>
784
785         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
786         so the textbox (if any) goes away.  Fixes bug #80117.
787
788 2006-12-04  Chris Toshok  <toshok@ximian.com>
789
790         * DataGridColumnStyle.cs: set the column's readonly property
791         initially based on the property descriptor's IsReadOnly.  Fixes
792         bug #80044.
793
794 2006-12-04  Chris Toshok  <toshok@ximian.com>
795
796         * ComboBox.cs: wrap the dropdown style changing work in
797         SuspendLayout/ResumeLayout.  Fixes bug #79968.
798
799 2006-12-04  Jackson Harper  <jackson@ximian.com>
800
801         * TextBoxBase.cs: Fix off by one, since these are one-based.
802         * TextBox.cs: Select all the text when we get focus.  The TextBox
803         does this but the RTB does not.
804
805 2006-12-04  Chris Toshok  <toshok@ximian.com>
806
807         * DataGridTextBoxColumn.cs: remove some spew.
808
809         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
810         but some part of me is saying "it shouldn't be here.."  At any
811         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
812         setting the value.
813
814 2006-12-04  Chris Toshok  <toshok@ximian.com>
815
816         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
817         to reassign the propertydescriptor.
818
819 2006-12-04  Jackson Harper  <jackson@ximian.com>
820
821         * TextBoxBase.cs:
822         * TextControl.cs: Remove some unused variables.  Maybe this will
823         patch things up between mike and I.
824         - don't split lines less then one char wide, if the viewport is
825         that small text won't be visible anyways.
826         
827 2006-12-04  Jackson Harper  <jackson@ximian.com>
828
829         * TextBoxBase.cs: Default selection length is -1, need to do some
830         more testing on windows to see when this is used for the property.
831         - Redid the Lines [] property to that we properly remove soft line
832         breaks
833         - added support for preserving carriage returns
834         -  CanUndo is not a variable like 'is undo enabled' it just returns
835         true if there is undo operations available.
836         - AppendText doesn't need to grab the last tag itself anymore,
837         this happens automatically when we move the cursor.
838         * TextControl.cs: Add CompoundActions to the undo class. This
839         allows combining the other operations into one big option.  ie a
840         paste will combine { delete old, insert new, move cursor }
841         - Add InsertString undo operation
842         - New method for deleting multiline text
843         - Add carriage returns to lines. So we can preserve carriage
844         returns when text is 'roundtripped'
845
846 2006-12-04  Chris Toshok  <toshok@ximian.com>
847
848         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
849         minimum 0.  Fixes the scrollbar exception in bug #80136.
850
851 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
852
853         * MdiClient.cs: 
854         * MdiWindowManager: Removed unused fields and methods.
855         
856 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
857         
858         * StatusBar.cs: Update all panels when a AutoSize=Contents
859         panel needs updating.
860         
861         * StatusBarPanel.cs: Remove twidth and only use initialize.
862         Fixes #80031.
863                 
864 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
865
866         * Form.cs: When a form's MdiParent is set add it directly
867         on top of the z-order in stead of relying on MdiClient's
868         ActivateChild to do it. Fixes #80135.
869         
870         * MdiClient.cs: 
871         - Remove original_order, mdi_child_list is already doing
872         the same thing.
873         - Create mdi_child_list on construction in
874         stead of first use (avoids a few null checks).
875
876         * MenuItem.cs: Use an already existing list of mdi children
877         to get the correct order of children and remove the other
878         redundant list.
879
880 2006-12-04  Chris Toshok  <toshok@ximian.com>
881
882         * PropertyGridView.cs: cached_splitter_location is only used in
883         !DOUBLEBUFFER code.
884
885         * PropertyGrid.cs: implement the ComComponentNameChanged event
886         using Events, hoping that would fix the warning.  Looks like a
887         compiler bug instead (#80144).
888
889         * PropertyManager.cs: remove unused method.
890
891 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
892
893         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
894         include parentesis to fix expression evaluation. Fixes #79634.
895
896 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
897         
898         * MenuAPI.cs:
899         - Changes to fix behavior in Menu control, some reported in #80097
900         and other detected during behavior refactory like a select event
901         problems.
902         - Remove unneded "if's" conditions.
903         - Created an internal to flag when popup is active in control, we need 
904         it because in .NET you can have menu active but without popup active
905         when you active menu using popup without visible items.
906         - Mimic win32 behavior for Select and Popup events.  
907         - Dont open popup menu when you dont have visible subitems.
908         - Do nothing when click on disabled menu item.
909         - Some small changes to follow the coding style guidelines.
910         - Unselect menu only when another control gives focus. Fixes #80097.
911         - Remove unused code.
912         
913         * MenuItem.cs: internal VisibleItems method to check if menu
914         theres visible subitems, it will be usefull to fix some 
915         behavior in Menu control.
916         
917 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
918         
919         * Timer.cs: Tag property for 2.0 profile.
920         
921 2006-12-01  Chris Toshok  <toshok@ximian.com>
922
923         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
924         
925         * Win32DnD.cs: comment out some unused fields.
926
927         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
928         some unused properties/methods.
929
930         * XplatUIX11.cs: fix MousePosition so we override the base class's
931         property instead of conflicting with it.
932
933         * PictureBox.cs: comment out some unused fields
934
935         * OSXStructs.cs: make some struct fields public.
936
937         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
938         MousePosition so we override the base class's property instead of
939         conflicting with it.
940
941         * X11Dnd.cs: comment out some unused fields
942
943         * X11DesktopColors.cs: fix some struct field visibility to quiet
944         the compiler.
945
946         * X11Dnd.cs: remove some debug code.
947
948         * ThemeClearlooks.cs: comment out unused field.
949
950         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
951
952         * ThemeGtk.cs: comment out some unused pinvokes.
953
954         * Timer.cs: remove some unused fields.
955
956         * ThemeClearlooks.cs: comment out unused field.
957
958         * UpDownBase.cs: comment out unused field.
959
960         * DataObject.cs: comment out unused field.
961
962         * DataGridBoolColumn.cs: reomve unused field.
963
964         * DataGrid.cs: remove unused field.
965
966         * Cursor.cs: remove old ToBitmap code.
967
968         * ControlPaint.cs: remove unused method.
969
970         * ScrollBar.cs: remove unused fields.
971
972         * ComboBox.cs: remove unused field, and chain up to
973         AccessibleObject ctor.
974
975         * ListBox.cs: remove unused field.
976
977         * ButtonBase.cs: wrap a couple fields in NET_2_0.
978
979         * GridEntry.cs: remove unused fields.
980
981         * Binding.cs: remove unused fields.
982
983         * AxHost.cs: remove unused method.
984
985         * ContainerControl.cs: remove unused field.
986
987         * ScrollableControl.cs: remove unused fields.
988
989 2006-12-01  Chris Toshok  <toshok@ximian.com>
990
991         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
992         the Where/WhereString stuff.  it's easy enough to CWL
993         Environment.StackTrace.
994
995         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
996         unused private fields.
997
998 2006-12-01  Jackson Harper  <jackson@ximian.com>
999
1000         * TextControl.cs: Do not update the view while inserting multiline
1001         text. If we update the view we might wrap lines, before entering
1002         the new lines, which causes the new line insertion calculations to
1003         be totally fubared.
1004         - Remove an old TODO
1005         - Make debug output a little nicer
1006         
1007 2006-12-01  Chris Toshok  <toshok@ximian.com>
1008
1009         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
1010
1011 2006-12-01  Chris Toshok  <toshok@ximian.com>
1012
1013         [ fix the majority of the CS0108 warnings we've been suppressing ]
1014         
1015         * TreeView.cs: mark BackgroundImageChanged as 'new'.
1016
1017         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
1018         to "LayoutToolBar" to quiet mcs.
1019         
1020         * TabControl.cs: mark our ControlCollection class as 'new'.
1021
1022         * TextBoxBase.cs: mark some events as 'new'.
1023
1024         * Splitter.cs: TabStop is 'new'.
1025
1026         * ControlBindingsCollection.cs: mark a few methods as new since
1027         they change the visibility from protected to public.
1028
1029         * RadioButton.cs: DoubleClick -> base class, and remove unused
1030         HaveDoubleClick.
1031
1032         * MonthCalendar.cs: ImeMode property -> base class, and mark many
1033         events as new.
1034
1035         * NumericUpDown.cs: TextChanged -> base class.
1036
1037         * CheckedListBox.cs: mark our ObjectCollection class as new to
1038         quiet mcs.
1039
1040         * FolderBrowserDialog.cs: make HelpRequest event new and have it
1041         muck with the base class.
1042
1043         * StatusBar.cs: fix some mcs warnings about Update being the same
1044         name as a base class method.
1045
1046         * RichTextBox.cs: mark some events as new, and make them do things
1047         to the base class impl.
1048
1049         * UserControl.cs: mark TextChanged as new, and have it manipulate
1050         base.TextChanged.
1051
1052         * UpDownBase.cs: mark some things new.
1053
1054         * CheckBox.cs: mark DoubleClick "new", and add some text about
1055         what we need to look at.
1056
1057         * Panel.cs: make the events "new", and manipulate the base
1058         version.  these are just here for attributes.
1059
1060         * AccessibleObject.cs: make owner private.
1061
1062         * Control.cs: deal with AccessibleObject.owner being private.
1063         cache our own copy if we need it.
1064
1065         * Button.cs: add "new" to the DoubleClickEvent.
1066
1067         * ListBox.cs: no need to track our own has_focus here.  let
1068         Control.has_focus do it for us.  Also some other work to clear up
1069         warnings about not overriding base class methods of the same name.
1070         
1071         * ComboBox.cs: clear up some warnings about not override base
1072         class methods of the same name.
1073
1074 2006-12-01  Chris Toshok  <toshok@ximian.com>
1075
1076         * Form.cs: flag a few things as "new" to quiet some of the mcs
1077         warnings.
1078
1079         * AxHost.cs: same.
1080
1081         * PrintPreviewDialog.cs: same.
1082
1083         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
1084         now DGV isn't so horrible on the class status page.  also, move
1085         all events to using System.ComponentModel.EventHandlerList.  my
1086         wrists hurt.
1087
1088 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1089
1090         * MdiWindowManager.cs:
1091         - Set form to active mdi child if shown,
1092         and update the active mdi child to the next 
1093         remaining child in the z-order if the form is hidden.
1094
1095         * Form.cs: 
1096         - Track if the form has been visible and if its 
1097         visibility is beeing changed, so that the MdiClient
1098         can properly decide the ActiveMdiChild. The MdiClient 
1099         cannot track this since the form can change visibility 
1100         before MdiClient is created.
1101
1102         * MdiClient.cs:
1103         - Don't activate anything of the parent form is changing
1104         its visibility.
1105         - Rework ActiveMdiChild to only return visible mdi 
1106         children and take into account several other corner 
1107         cases.
1108
1109 2006-12-01  Chris Toshok  <toshok@ximian.com>
1110
1111         * IBindableComponent.cs: new 2.0 interface.
1112
1113 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
1114
1115         * DataGrid.cs: Font for caption area is bold by default.
1116
1117 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
1118
1119         * Menu.cs: Tag property for 2.0.
1120         
1121 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1122
1123         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
1124         
1125 2006-12-01  Chris Toshok  <toshok@ximian.com>
1126
1127         * TreeView.cs: doh, the Begin* events should be
1128         TreeViewCancelEventHandler.
1129
1130 2006-12-01  Chris Toshok  <toshok@ximian.com>
1131
1132         * Form.cs: Form.ControlCollection already stores off the
1133         form_owner field.  don't access the base class's internal "owner"
1134         field.
1135
1136         * Control.cs: make all the fields in Control.ControlCollection
1137         private.  there's no need for any internal fields here.
1138
1139 2006-12-01  Chris Toshok  <toshok@ximian.com>
1140
1141         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
1142         OnHandleCreated.  Fixes bug #80109.
1143
1144 2006-12-01  Chris Toshok  <toshok@ximian.com>
1145
1146         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
1147         SplitContainer.cs, Control.cs, StatusStrip.cs,
1148         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
1149         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
1150         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
1151         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
1152         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
1153         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
1154         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
1155         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
1156         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
1157         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
1158
1159         do most of the work to convert our code over to use
1160         System.ComponentModel.Component.Events for
1161         adding/removing/dispatching events.
1162
1163
1164 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1165
1166         * DataGridView.cs: Fix an ArgumentNullException reported 
1167         twice today in IRC.
1168
1169 2006-11-30  Mike Kestner  <mkestner@novell.com>
1170
1171         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
1172         grabbed listbox.  Fixes #80036 and #80101.
1173
1174 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1175
1176         * Message.cs: Changed ToString() to match MS.
1177         
1178 2006-11-30  Jackson Harper  <jackson@ximian.com>
1179
1180         * TextBoxBase.cs: You can still change the selected text on a read
1181         only textbox.
1182         * TextControl.cs: Lower magic number for wrap calculations. This
1183         lets text get closer to the right (far) edge.
1184
1185 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1186
1187         * Control.cs: Tweak 2.0 layout properties.
1188         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
1189         * TextRenderer.cs: Add a new overload.
1190         * ToolStrip*: Huge amount of changes and new features.
1191
1192 2006-11-30  Mike Kestner  <mkestner@novell.com>
1193
1194         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
1195         scroll range correct.  Fixes #79994.
1196
1197 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1198
1199         * MdiWindowManager.cs: Update main form's text when
1200         a form is closed. (fixes #80038)
1201         
1202 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
1203
1204         * ToolBar.cs:
1205         - Fix an regression in ButtonSize.
1206         - Get ImeMode default value change to "Disable".
1207         - Get ShowTooltips default value change to true, default value is 
1208         "false" but after make a test in .NET we get "true" result as default.
1209         
1210 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
1211
1212         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
1213
1214 2006-11-29  Chris Toshok  <toshok@ximian.com>
1215
1216         * XplatUIWin32.cs (GetWindowTransparency): check return value of
1217         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
1218         SetWindowTransparency hasn't been called.
1219
1220 2006-11-29  Chris Toshok  <toshok@ximian.com>
1221
1222         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
1223         if it's supported.
1224         (set_AllowTransparency): reorder things a little so that the
1225         WS_EX_LAYERED style is removed properly.
1226
1227 2006-11-29  Chris Toshok  <toshok@ximian.com>
1228
1229         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
1230         
1231         * Form.cs: only call the XplatUI transparency method (get/set) if
1232         SupportsTransparency says it's supported. Otherwise fallback to
1233         doing nothing (in the set case) or returning the instance field we
1234         cache (in the get case).
1235
1236         * XplatUIStructs.cs: add TransparencySupport flag enum.
1237         
1238         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
1239         change to SupportsTransparency.
1240
1241         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
1242         TransparencySupport.None from SupportsTransparency.
1243
1244         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
1245         TransparencySupport.Set from SupportsTransparency.
1246
1247         * XplatUIWin32.cs: implement GetWindowTransparency calling
1248         GetLayeredWindowAttributes, and implement SupportsTransparency by
1249         checking whether or not both
1250         GetWindowTransparency/SetWindowTransparency are available
1251         entrypoints.  We need to do this since SetWindowTransparency is
1252         available as of win2k, but GetWindowTransparency requires winxp.
1253         yay win32 api.
1254
1255         * XplatUI.cs: Add GetWindowTransparency, and change
1256         SupportsTransparency to allow for either/both Get/Set.
1257
1258 2006-11-29  Chris Toshok  <toshok@ximian.com>
1259
1260         * DataGrid.cs: keep from going into an infinite loop redrawing a
1261         datagrid that has no datasource.  Fixes bug #80033.
1262
1263 2006-11-29  Chris Toshok  <toshok@ximian.com>
1264
1265         * MenuItem.cs: fix the NRE when we assign text (and therefore call
1266         Invalidate) before the mainmenu has been assigned to a control.
1267
1268 2006-11-29  Chris Toshok  <toshok@ximian.com>
1269
1270         * DataGrid.cs: detect when we should be double the double click
1271         row/column autosize stuff, although that codepath has yet to be
1272         written.  part of the work for bug #79891.
1273
1274 2006-11-29  Chris Toshok  <toshok@ximian.com>
1275
1276         * Binding.cs (SetControl): fix unit test.
1277
1278 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1279
1280         * PageSetupDialog.cs: Validate the margins and set them in
1281         PageSettings. 
1282         * NumericTextBox.cs: New class to mimic the behavior of the
1283         textboxes used in the printing dialogs.
1284
1285 2006-11-29  Andreia Gaita  <avidigal@novell.com>
1286         
1287         * Form.cs: Revert previous change (remove call UpdateBounds
1288         from form constructor), because it messes with the handle creation
1289         order, and that one needs lots and lots of love.
1290         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
1291         for valid printer and throw InvalidPrinterException if document
1292         is set but printer not valid), adding a MonoTODO. Once 
1293         handle creation is done properly, we can put this back in.
1294
1295 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1296
1297         * MenuItem.cs: Create a invalidate method for menu item, to be
1298         calling from set text, it make text changes to imadiate update
1299         on screen. Fixes #80013. 
1300         
1301 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1302
1303         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
1304         fixes bug #80070 and some other problem on toolbar buttons
1305         layout.
1306
1307 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1308
1309         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
1310         with dotted brush.      Fixes #79564
1311         
1312 2006-11-28  Andreia Gaita  <avidigal@novell.com>
1313
1314         * Form.cs: Removed call to UpdateBounds on Form
1315         constructor, it was causing a call to CreateHandle
1316         before it was supposed to.
1317         * PrintControllerWithStatusDialog: Applied patch
1318         by Chris Toshok to hide controller when there are
1319         no printers available.
1320         PrintDialog.cs: initialize printer settings to 
1321         null - correct DefaultValues test #5
1322         * PrintPreviewControl.cs: Move PrintController
1323         initialization to GeneratePreview
1324         * PrintPreviewDialog.cs: 
1325         - Remove Preview generation     from Document_set(). It is 
1326         called on OnPaint
1327         - Throw InvalidPrinterException on CreateHandle if
1328         a Document is set but there are no printers or 
1329         printer is not valid.
1330         * ThemeWin32Classic: don't paint PrintPreviewControl
1331         if there is nothing to paint    
1332
1333 2006-11-28  Miguel de Icaza  <miguel@novell.com>
1334
1335         * Form.cs: Add another popular method.
1336
1337         * TabPage.cs: ditto.
1338
1339 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1340
1341         * MenuItem.cs: Fixed a warning.
1342         * InternalWindowManager: Fixed a warning.
1343
1344 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1345
1346         * MenuItem.cs:
1347         - When cloning a menu also clone MdiList and clone the 
1348           window menu items properly (as the forms and menuitems
1349           are kept in an internal hashtable, these need updating 
1350           as well)
1351         - Rewrote the window menu code, menu items are added in the
1352           order the forms were added to their parent, and they are
1353           updated every time the window menu is shown (before the
1354           list was only generated once, in the current order of the
1355           forms, and would never be updated). A checkmark is shown
1356           next to the item corresponding to the active mdi child.
1357
1358 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1359
1360         * XplatUIStructs.cs: 
1361         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
1362         
1363         * XplatUIWin32.cs: 
1364         - Added TME_NONCLIENT to TMEFlags.
1365         - Handles WM_NCMOUSEMOVE in GetMessage to 
1366           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
1367
1368         * MdiWindowManager:
1369         - Now merges mdi child menu to parent menu when maximized.
1370         - Recalculate NC areas of both mdi child and mdi parent. 
1371           Fixes #79757 (4).
1372           on window state and size changes.Fixes #79844 (3).
1373         - Handle WM_NCCALCSIZE to properly calculate borders.
1374
1375         * Form.cs:
1376         - Add/remove to the mdi containers list of mdi children 
1377           in the order they are added.
1378         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
1379           to the maximized mdi child.
1380         
1381         * InternalWindowManager.cs:
1382         - Only execute a click on the control buttons on the mouse up,
1383           not on the mouse down. Show the state of the button 
1384           (was only showing Normal state, never Pressed state). The
1385           pressed button now follows the mouse (if you click the Close 
1386           button and move the mouse over the Maximize button, the 
1387           Maximize button will be shown as pressed). Since Win32 does
1388           not generate WM_NCLBUTTONUP if you release the button outside
1389           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
1390           it as a mouse up.
1391         
1392         * ThemeWin32Classic.cs:
1393         - Draw a missing border around mdi child forms. Fixes #79844 (2).
1394
1395         * MdiClient.cs:
1396         - Added a list of forms which contains the order the forms are
1397           added to the mdi parent.
1398         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
1399         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
1400         - If the active form changes set the scrollbars to the top
1401           of the Z order, otherwise the form could hide them.
1402         - Scrollbars are now sized according to ClientSize, not 
1403           to Size, and they take into account the other scrollbar
1404           to determine maximum.
1405         
1406 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
1407         
1408         * XplatUI.cs:
1409         * XplatUIDriver.cs:
1410         * XplatUIX11.cs:
1411         * XplatUIWin32.cs:
1412         * XplatUIOSX.cs:
1413         - Added RequestAdditionalWM_NCMessages for windows to 
1414           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
1415           Currently only implemented in XplatUIWin32.
1416
1417 2006-11-27  Chris Toshok  <toshok@ximian.com>
1418
1419         * Hwnd.cs: only add the hwnd to the windows hash in
1420         set_WholeWindow and set_ClientWindow if whole_window/client_window
1421         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
1422
1423 2006-11-27  Mike Kestner  <mkestner@novell.com>
1424
1425         * ComboBox.cs: remove redundant OnDropDown call.  It is called
1426         from the ComboListBox.ShowWindow code. Fixes #79969.
1427
1428 2006-11-27  Chris Toshok  <toshok@ximian.com>
1429
1430         * Hwnd.cs: remove the setters for ExposePending and
1431         NCExposePending - noone uses them.
1432
1433 2006-11-27  Jackson Harper  <jackson@ximian.com>
1434
1435         * TextControl.cs: new param for ReplaceSelection which determines
1436         whether we select the new selection, or set the cursor to the end
1437         of the new selection.
1438         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
1439         pasting, select the new text.
1440         * RichTextBox.cs: Use new param for ReplaceSelection.
1441
1442 2006-11-27  Jackson Harper  <jackson@ximian.com>
1443
1444         * TextBoxBase.cs: Set the selection to the caret after the caret
1445         is moved, otherwise they get out of sync.
1446
1447 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1448
1449         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
1450         it fixes #80015
1451
1452 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1453
1454         * ThemeWin32Classic.cs: 
1455         - Fix toolbar drop down arrow position.
1456         - Fix drop down appearance when ToolBar.Appearance is normal,
1457         it fixes #80018.
1458         
1459 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
1460
1461         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
1462         * Control.cs: Same.
1463         * UpDownBase.cs: Same.
1464         * ButtonBase.cs: Same.
1465         * ScrollBar.cs: Same.
1466         * TrackBar.cs: Same.
1467         * PictureBox.cs: Same.
1468         * UserControl.cs: Same.
1469         * Label.cs: Same.
1470         * ListControl.cs: Same.
1471         * TextBoxBase.cs: Same.
1472         * ListView.cs: Same.
1473         * RichTextBox.cs: Same.
1474         * TreeView.cs: Same.
1475
1476 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
1477
1478         * PrintDialog.cs:
1479         - Text label for where 
1480         - Text label comment was not shown
1481
1482 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
1483
1484         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
1485
1486 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1487
1488         * InternalWindowManager.cs: 
1489         - Handle WM_PARENTNOTIFY to activate the form
1490         if any child control is clicked.
1491         - The form is only sizable if not minimized.
1492
1493         * MdiWindowManager.cs:
1494         - Save the IconicBounds if the form is moved.
1495         - Rework SetWindowState, now the window bounds 
1496         are stored only if the old window state is Normal.
1497         
1498         * MdiClient.cs:
1499         - In SetWindowStates store the old window state if 
1500         the window is maximized and restore window state if
1501         the window looses focus.
1502         - Don't handle any scrollbar value changes if 
1503         initializing the scroll bars. Fixes #79771.
1504         - Reworked ArrangeIconicWindows. Current algorithm
1505         tests bounds agains all other minimized windows, if
1506         any intersections create new bounds (going left to 
1507         right, bottom to top) and then test again. When 
1508         successful the bounds are saved and never computed
1509         again. Fixes #79774.
1510
1511 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1512
1513         * InternalWindowManager.cs: Added HandleTitleBarUp.
1514
1515 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1516
1517         * NumericUpDown.cs: In .NET 1.1, user entered text is still
1518         hexadecimal in ParseUserEdit.
1519
1520         
1521 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1522
1523         * MdiWindowManager.cs: 
1524         - Handle a click on the form's icon to show the 
1525         system menu (when maximized). Fixes #79775.
1526         - Change the existing click handler for the form's
1527         icon when not maximized to show on MouseUp.
1528         Fixes #79776.
1529
1530         * Form.cs: In OnResize only layout the mdi child's
1531         parent if it actually has a parent. Might not if
1532         the window is closing.
1533
1534
1535 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1536
1537         * MdiClient.cs: Ignore active MDI client for text of parent, if
1538         child has no text set.
1539
1540 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1541
1542         * ToolBar.cs: Fixed ToString to match MS.
1543
1544 2006-11-22  Andreia Gaita  <avidigal@novell.com>
1545
1546         * NumericUpDown: 
1547         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
1548         update inner values on set. Fixes #79966.
1549         - Override OnLostFocus to update value on NET 2. Fixes #79950.
1550         - Fix hexadecimal parsing.
1551         
1552         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
1553         parent. Fixes #79957
1554
1555 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1556
1557         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
1558         the actual size has to be queried, since if height /
1559         width is negative Win32 changes it to 0. 
1560         Fixes #79999 on Windows.
1561         
1562         * XplatUIX11.cs: Set height / width to 0 if negative
1563         in SetWindowPos. Fixes #79999 on Linux.
1564         
1565 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1566
1567         * ThemeWin32Classic.cs: Fix text redenring when button is
1568         pressed.
1569
1570 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1571
1572         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
1573         and later navigate by mouse. Fixes #79528.
1574
1575 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1576
1577         * ToolBar.cs: Set default value for TabStop to false in
1578         constructor, it fixes remaining behavior of bug #79863.
1579
1580 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1581
1582         * MdiWindowManager.cs:
1583         * InternalWindowManager.cs:
1584         - Moved a few methods specific to Mdi from 
1585         InternalWindowManager to MdiWindowManager.
1586         Fixes #79996.
1587         
1588 2006-11-21  Chris Toshok  <toshok@ximian.com>
1589
1590         * XplatUIOSX.cs: stub out InvalidateNC.
1591
1592         * XplatUIWin32.cs: implement InvalidateNC using the call I found
1593         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
1594
1595         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
1596
1597         * XplatUIDriver.cs: add InvalidateNC abstract method.
1598
1599         * XplatUI.cs: add InvalidateNC.
1600
1601 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1602
1603         * ToolBar.cs: Invalidate complete button area when pressed status 
1604         was changed.
1605         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
1606         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
1607         by 1 when button is pressed.
1608
1609 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1610
1611         * ToolButton.cs: Invalidate middle of DropDown button when
1612         ToolBar theres DropDownArrows.
1613         * ThemeWin32Classic.cs: Change position of DropDown arrow and
1614         fix DropDown drawing operations.
1615
1616 2006-11-20  Chris Toshok  <toshok@ximian.com>
1617
1618         * NativeWindow.cs: fix the formatting of functions ('{' on the
1619         following line), and enable the thread exception dialog.
1620
1621         * Application.cs: remove the duplicate exception catching from
1622         here.
1623
1624 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1625
1626         * Toolbar.cs: Triggers button click event when click on icon
1627         of dropdown ToolBarButton. Fixes #79912.
1628         
1629 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1630
1631         * Theme.cs:
1632         * ThemeWin32Classic.cs:
1633         - Added a property WindowBorderFont to enable themeing
1634           of mdi child windows' Text.
1635           
1636 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1637
1638         * InternalWindowManager.cs:
1639         * Form.cs:
1640         * MdiClient.cs:
1641         * MdiWindowManager.cs: 
1642         - If mdi child is maximized, set mdi parent's
1643           text to "Parent - [Child]". Fixes #79770.
1644         - If there is any maximized mdi child windows, only the active 
1645           window (and any new windows) is maximized, the rest are normal.
1646         - On a WindowState change only save mdi child's window bounds 
1647           if the old window state was normal. Fixes #79774.
1648         - The scroll bars are now calculated on hopefully all
1649           necessary events. Fixed #79771 / #79844->6 / #79906.
1650         - MdiClient.SizeScrollBars() now takes into account docked 
1651           controls in the parent when calculating available space.
1652         - InternalWindowManager now always repaints the entire title
1653           area. Fixes #79844->1/4/5.
1654         - Added RequestNCRecalc on mdi child windowstate changes.
1655           Fixes #79772.
1656
1657 2006-11-20  Mike Kestner  <mkestner@novell.com>
1658
1659         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
1660         in the MouseUp handler of the listbox and move the return handling
1661         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
1662
1663 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1664
1665         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
1666
1667 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1668
1669         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
1670           working in 1.2.x anymore. So, updated.
1671
1672 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
1673
1674         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
1675         NumberGroupSeparator of current culture instead of assuming en-US.
1676         Fixed bug #79967.
1677
1678 2006-11-17  Mike Kestner  <mkestner@novell.com>
1679
1680         * Control.cs: Add the concept of implicit bounds setting so that
1681         dock/undock round trips preserve explicitly set size/locations.
1682         Fixes #79313.
1683
1684 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1685
1686         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
1687           can't handle those filters. (Fixes bug #79961)
1688
1689 2006-11-17  Chris Toshok  <toshok@ximian.com>
1690
1691         [ fixes the exit/crashes associated with #79835.  it's clearly
1692         suboptimal though, we need to figure out a better way to solve
1693         this. ]
1694         
1695         * PrintPreviewControl.cs: deal with the new invalid printer
1696         exceptions.
1697
1698         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
1699         and return false (so CommonDialog.ShowDialog doesn't actually show
1700         the form.)
1701
1702         * PrintDialog.cs: enable/disable the Ok button depending on
1703         whether or not the printer is valid.
1704
1705         * CommonDialog.cs (ShowDialog): only actually show the form if
1706         RunDialog returns true.
1707
1708 2006-11-17  Jackson Harper  <jackson@ximian.com>
1709
1710         * TextControl.cs: When soft splitting a line, mark it as a soft
1711         split line. Also carry over the current line break to the next
1712         line.
1713
1714 2006-11-17  Chris Toshok  <toshok@ximian.com>
1715
1716         * XplatUIX11.cs: when scrolling a window with an invalid area, we
1717         only want to shift the part of the invalid area that overlaps the
1718         area we're scrolling.  we also don't want to clear the invalid
1719         area unless the invalid area was entirely contained within the
1720         scrolling area.
1721
1722 2006-11-16  Chris Toshok  <toshok@ximian.com>
1723
1724         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
1725         also make sure to free the memory returned by XGetWindowProperty
1726         in GetText().
1727
1728         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
1729
1730 2006-11-16  Chris Toshok  <toshok@ximian.com>
1731
1732         * XplatUI.cs: add a new super secret way to get at the totally
1733         unsupported X11 backend.
1734
1735 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
1736
1737         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
1738
1739 2006-11-16  Jackson Harper  <jackson@ximian.com>
1740
1741         * TreeView.cs: Allow more explicit setting of top node position
1742         for scrollbars. Slower algo, but more accurate.
1743         - CollapseAll should maintain the current top node.
1744         * TextBoxBase.cs: When positioning the caret, use the line, pos
1745         method, since the x, y method does not grab the correct tag, and
1746         the caret height never gets set correctly. (Maybe I should just do
1747         away with the caret having its own height, and always use the
1748         carets current tag for height).
1749
1750 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
1751
1752         [Fixes 79778, 79923]
1753
1754         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
1755         Parent to the FosterParent instead.
1756
1757 2006-11-16  Jackson Harper  <jackson@ximian.com>
1758
1759         * TreeView.cs: Need to recalc the topnode when we expand or
1760         collapse. The scrolling methods can't handle this on their own,
1761         since they use differences between the last scroll position, and
1762         those difference get completely messed up since we are expanding
1763         nodes.  This problem should probably be fixed in the scrolling
1764         methods, so they can figure out exactly where they are, but this
1765         will slow things down a little.
1766         * ThemeWin32Classic.cs: Special case for groupboxes with empty
1767         strings, makes nunit-gui look a lot nicer.
1768
1769 2006-11-16  Chris Toshok  <toshok@ximian.com>
1770
1771         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
1772         the broken multithreaded event handling we have in here.  File
1773         this entry under "Why we should move to the new X11 backend".
1774
1775         Any thread can make it into UpdateMessageQueue, which gets events
1776         from the X socket - some of which could belong to hwnds being
1777         managed by a different thread.  We can also have multiple threads
1778         in UpdateMessageQueue at the same time, with each one reading from
1779         the X socket.  This leads to many problems, with the following
1780         solutions:
1781
1782         We can't use hwnd.Queue.Enqueue anywhere in here and must use
1783         EnqueueLocked.
1784
1785         The MotionNotify compression we do can't work across threads
1786         (without locking the entire queue, perhaps) since we call
1787         hwnd.Queue.Peek, so we just punt and don't compress motion events
1788         unless the owning thread is the one which got the X event.
1789
1790         ConfigureNotify is another fun one, since it modifies the hwnd's
1791         bounds and then enqueues the event.  We add a lock to Hwnd which
1792         is held when setting configure_pending to true (and enqueuing the
1793         event).
1794
1795         There is a race wrt the wake socket.  we need to make sure that
1796         only 1 thread is waiting on that socket, or else a thread could
1797         sleep waiting for data that never comes.  It's difficult (but not
1798         impossible) to make happen, because it seems to require something
1799         like the following:
1800
1801             1. Thread 1 polls on wake_receive
1802         
1803             2. poll returns saying there's data to be read on
1804                wake_receive.
1805         
1806             3. Thread 2 polls on wake_receive and immediately returns
1807                saying there's data to be read.
1808
1809             4. Thread 2 reads the wakeup byte from wake_receive
1810
1811             5. Thread 1 attempts to read the wakeup byte from
1812                wake_receive.
1813
1814             6. Thread 2 exits (due to a form closing, perhaps).
1815
1816             7. Thread 1 blocks forever.
1817         
1818         Fun, eh?
1819
1820         Fixing the Expose handling isn't done yet, and the races inherent
1821         in that piece of code are responsible for the drawing mistakes you
1822         see when generating expose events in a MT app (like NPlot).  This
1823         one is the likely to be the hardest to bandaid, and it doesn't
1824         appear to cause anything but drawing problems.  The other issues
1825         caused apps to exit or hang.
1826
1827         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
1828         called from a different thread than the one that should be calling
1829         these functions.
1830
1831         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
1832
1833 2006-11-15  Chris Toshok  <toshok@ximian.com>
1834
1835         * Application.cs: null out the context's MainForm when we exit
1836         RunLoop.  Fixes a newly checked in unit test as well as the last
1837         ODE from bug #79933.
1838
1839 2006-11-15  Chris Toshok  <toshok@ximian.com>
1840
1841         * Form.cs (set_Owner): allow a null value so we can clear the
1842         form's owner.
1843         (Dispose): set all our owned_form's Owner properties to null, and
1844         clear the owned_forms collection.
1845         (WM_CLOSE): clean up this a little bit.. still not right though.
1846
1847         * ApplicationContext.cs: OnMainFormClosed should only call
1848         ExitThreadCore if the main form isn't recreating.  Fixes unit
1849         test.
1850
1851 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1852
1853         [Fixes 78346]
1854
1855         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
1856
1857 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1858
1859         [Fixes 79433]
1860
1861         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
1862         keep popup window types from stealing focus from the main form
1863         on Windows.
1864
1865         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
1866
1867         * MenuAPI.cs: Set above flag to true.
1868
1869 2006-11-15  Chris Toshok  <toshok@ximian.com>
1870
1871         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
1872         the button being released is not in wParam.
1873
1874 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1875
1876         * Form.cs: Add the released button to MouseEventArgs.Button
1877         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
1878         on Win32.
1879
1880 2006-11-15  Chris Toshok  <toshok@ximian.com>
1881
1882         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
1883         GetText().  untested because it's unused in our implementation.
1884         Control.Text always caches the text, even if
1885         ControlStyles.CacheText is not set.
1886
1887         fixes bug #79939.
1888
1889 2006-11-15  Chris Toshok  <toshok@ximian.com>
1890
1891         [ fixes #79933 ]
1892         
1893         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
1894         message.  no hiding, no disposing.
1895
1896         in the WM_CLOSE handler, hide the form if it's modal.
1897
1898 2006-11-15  Chris Toshok  <toshok@ximian.com>
1899
1900         * XplatUIX11.cs: use AddExpose instead of sending a message.
1901         fixes textbox border drawing.
1902
1903 2006-11-15  Chris Toshok  <toshok@ximian.com>
1904
1905         * PropertyGridView.cs: keep from crashing on mouse move/down when
1906         the property grid is empty.
1907
1908 2006-11-14  Jackson Harper  <jackson@ximian.com>
1909
1910         * TextControl.cs: Make PageUp and PageDown more like the MS
1911         versions.
1912         * TextBoxBase.cs: When we set the text property position the
1913         cursor at the beginning of the document.
1914
1915 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1916
1917         * Form.cs: if a mdi child's WindowState has changed
1918         before it's creation, it would display wrong control
1919         buttons.
1920         
1921 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
1922
1923         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
1924           (Fixes bug #79927)
1925
1926 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1927
1928         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
1929         the window gets to paint its borders even if the window is
1930         getting smaller.
1931         
1932         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
1933         otherwise the old control buttons would still be painted 
1934         if the window gets bigger.
1935         
1936         * PaintEventArgs.cs: add an internal method so that the clip 
1937         rectangle can be changed.
1938         
1939 2006-11-13  Chris Toshok  <toshok@ximian.com>
1940
1941         [ fixes bug #79745 ]
1942         
1943         * NotifyIcon.cs: lots of cleanup.
1944
1945         * X11Structs.cs: add an enum for XEMBED messages.
1946
1947         * XplatUIX11.cs: reindent one of the giant switch statements, it
1948         was taking up an additional tab stop, and this file is already way
1949         too wide for my laptop's screen.
1950
1951         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
1952         we get it, resize the hwnd to the WMNormalHints max_width/height.
1953
1954 2006-11-13  Jackson Harper  <jackson@ximian.com>
1955
1956         * TextBoxBase.cs: Compute the value changes for the mouse wheel
1957         teh simple way.
1958
1959 2006-11-13  Chris Toshok  <toshok@ximian.com>
1960
1961         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
1962         #79898.  force a reference to the Region to stick around so the
1963         unmanaged object isn't collected (rendering our handle in the MSG
1964         stale).
1965
1966 2006-11-13  Chris Toshok  <toshok@ximian.com>
1967
1968         * XplatUIX11.cs: fix #79917 for window managers which support
1969
1970         using XStoreName on the raw utf8, and we need to convert to
1971         COMPOUND_TEXT if it's non-latin1.
1972
1973 2006-11-13  Chris Toshok  <toshok@ximian.com>
1974
1975         * Form.cs (set_DialogResult): we need to set closing to false if
1976         we're setting our result to None.  fixes bug #79908.
1977
1978 2006-11-13  Jackson Harper  <jackson@ximian.com>
1979
1980         * TextControl.cs: When formatting text, compute the adjusted tag
1981         lengths correctly, using FindTag for the end tag instead of trying
1982         to figure it out outselves.
1983         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
1984         the item, ItemHeight doesn't work, because trees with large
1985         imagelists use those for their height
1986         * TreeView.cs: ActualItemHeight factors in the image height
1987         - compute left edge of checkboxes correctly
1988         - when expanding/collapsing move the bottom down one pixel, so we
1989         aren't moving part of the node
1990
1991 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1992
1993         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
1994         stack in PaintEventStart so that it won't get disposed by the gc
1995         before reaching PaintEventEnd.
1996
1997 2006-11-13  Jackson Harper  <jackson@ximian.com>
1998
1999         * TextBoxBase.cs: Don't select the word if we are on a line with
2000         no text.
2001         - We don't need to position the caret on mouse up, since the mouse
2002         move handler should be doing this
2003         - When double clicking a blank line, the caret is advanced to the
2004         next line.
2005
2006 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
2007
2008         * TreeNodeCollection.cs: Avoid duplicating indexer code.
2009
2010 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
2011
2012         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
2013         Fixes part of bug #79910.
2014
2015 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
2016
2017         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
2018           (bug #79903). Some minor string updates to match ms.
2019
2020 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2021
2022         * FileDialog.cs: Don't add an extension if the filename
2023           already ends with that extension.
2024
2025 2006-11-10  Jackson Harper  <jackson@ximian.com>
2026
2027         * TreeView.cs: Use the currently highlighted node for the
2028         BeforeSelect event.
2029         * TextBoxBase.cs: There is no need to expand selection on
2030         MouseMove.
2031         - CanUndo means 'is there any undo operations', not 'is undo
2032         allowed on this textcontrol. Fixed ClearUndo unit test.
2033
2034 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
2035
2036         * Button.cs: only perform click when button is Selectable (so as 
2037         not to activate default buttons when they're disabled)
2038         
2039         * Control.cs: Rewrite of the SelectNextControl and related 
2040         methods. HandleClick now selects next control if the current one
2041         is being disabled.
2042         
2043         * Form.cs: OnActivated selects next active control only if Load 
2044         has already occurred. If Load hasn't run, there's no point in 
2045         selecting here, Load might change the state of controls.
2046         
2047         * FocusTest.cs: Tests marked as working again for these fixes
2048
2049 2006-11-10  Chris Toshok  <toshok@ximian.com>
2050
2051         * XplatUIX11.cs: a couple of fixes.
2052
2053         - use XInternAtoms with almost all the atoms we need to register,
2054         instead of many, many calls to XInternAtom.  should help a bit on
2055         startup time, at the expense of making the code look a little
2056         worse.
2057
2058         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
2059         isn't reparented (which seems to be a clue that we're running fon
2060         compiz) and they have an Owner form.  This fixes the tool windows
2061         in paint.net when running under compiz.
2062
2063         - when setting the opacity of a window, support both the case
2064         where the window has been reparented and also when it hasn't been.
2065         Since compiz/beryl doesn't seem to reparent windows, and these are
2066         the only window managers which support translucency, I'm not sure
2067         why we need the hwnd.reparented case at all.. but leave it in.
2068         now we get translucent windows in paint.net under compiz/beryl.
2069
2070 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2071
2072         * FileDialog.cs: Always return the value for FilterIndex that
2073           was set. Internally convert it to values that make sense.
2074
2075 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2076         
2077         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
2078
2079 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2080
2081         * Toolbar.cs: Change default value of DropDownArrows to true, the 
2082         signature still using false to make it compatible with MS but the 
2083         initial value is true. Fixes #79855.
2084
2085 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2086
2087         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
2088           only available on Linux.
2089
2090 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
2091
2092         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
2093         reduce number of calls to redraw method during toolbar creation.
2094
2095 2006-11-09  Mike Kestner  <mkestner@novell.com>
2096
2097         * ListView.cs : raise SelectedIndexChanged when an item is selected
2098         programmatically via the Item.Selected property.  Gert's nice 
2099         ListViewSelectedIndexChanged test fixture now runs clean.
2100
2101 2006-11-09  Mike Kestner  <mkestner@novell.com>
2102
2103         * ListView.cs : raise SelectedIndexChanged when a selected item is
2104         removed from the item collection using Remove or RemoveAt.
2105
2106 2006-11-09  Mike Kestner  <mkestner@novell.com>
2107
2108         * ListView.cs : raise SelectedIndexChanged once per selected item
2109         for compat with MS.  Fixes #79849+.
2110
2111 2006-11-09  Chris Toshok  <toshok@ximian.com>
2112
2113         * TabControl.cs: initialize row_count to 0, and set it to 1 when
2114         we need to (if we have any tab pages).  Fixes unit test.
2115
2116 2006-11-09  Chris Toshok  <toshok@ximian.com>
2117
2118         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
2119         width is 0, not 3.  Fixes a unit test.
2120
2121 2006-11-09  Mike Kestner  <mkestner@novell.com>
2122
2123         * ListView.cs : use Implicit scrollbars so that focus isn't 
2124         stolen from the listview when they are clicked. Fixes #79850.
2125
2126 2006-11-09  Chris Toshok  <toshok@ximian.com>
2127
2128         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
2129         have a root item.  Fixes #79879.
2130
2131 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
2132
2133         * FileDialog.cs:
2134           - Fix ToString ()
2135           - An ArgumentException is now thrown if a wrong filter
2136             is applied (matches ms). The previous filter doesn't change
2137             anymore if an exception is thrown.
2138           - Changing the FileName property also affects FileNames
2139         * ColorDialog.cs: The length of the CustomColors array is always
2140           16. It doesn't matter if we use a smaller array or null to update
2141           or change the custom colors property.
2142         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
2143           for RootFolder if we get a undefined value.
2144
2145 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2146
2147         * StatusBarPanel.cs: 
2148         - Width is set to MinWidth if Width is smaller than
2149         MinWidth. Fixes #79842.
2150         - MinWidth now always overrides Width (MSDN says MinWidth
2151         is set to Width when AutoSize = None, but they do not 
2152         behave like that).
2153         - Style has now the the correct default value.
2154         
2155 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2156  
2157         * TrackBar.cs: 
2158         - The control is completely invalidated on 
2159         Got/LostFocus to draw the focus rectangle correctly.
2160         - When AutoSize then height is always 45 (width for 
2161         vertical controls).
2162         
2163         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
2164         on the mouse when moved and it doesn't move when grabbed
2165         until the mouse moves as well. Also fixed some wrong 
2166         calculations when clicking on the thumb (control thought
2167         click was outside of thumb and didn't grab it).
2168         Fixes some of the issues in #79718.
2169
2170 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
2171
2172         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
2173
2174 2006-11-08  Chris Toshok  <toshok@ximian.com>
2175
2176         * PropertyGridView.cs: only call ToggleValue if the item is not
2177         readonly.
2178
2179 2006-11-08  Jackson Harper  <jackson@ximian.com>
2180
2181         * TextBoxBase.cs: The RichTextBox and textbox have very different
2182         word selection methods.  Implement the textbox's simple word
2183         selection here, and let the RichTextBox override and provide it's
2184         own.
2185         - Don't do extra selection on mouseup
2186         * RichTextBox.cs: Use the documents word selection algorithm, I
2187         think ideally, this function will be pulled into the
2188         RichTextBox.cs code someday.
2189
2190 2006-11-08  Chris Toshok  <toshok@ximian.com>
2191
2192         * RootGridEntry.cs: new class to represent GridItemType.Root.
2193
2194         * CategoryGridEntry.cs: reformat, and add boilerplate.
2195         
2196         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
2197         returns the UI parent anyway, and we need special handling to
2198         implement the GetTarget method in the face of it.  Also, implement
2199         Select().
2200
2201         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
2202         a root grid item, and use that instead of PropertyGrid.grid_items.
2203         Also, make use of TypeConverters (and add limitted support for
2204         ICustomTypeDescriptors) when initially populating the grid.
2205         Arrays now show up more or less properly.
2206
2207 2006-11-08  Chris Toshok  <toshok@ximian.com>
2208
2209         * Application.cs: set the modal dialog to non modal after we close
2210         it.  Fixes bug #79866.
2211
2212 2006-11-08  Jackson Harper  <jackson@ximian.com>
2213
2214         * TextControl.cs: When combining lines carry over the line end
2215         style from the end line.
2216         - Invalidate the selected area when setting it, if it is visible.
2217         * TextBoxBase.cs: Only rich text box can do full line selects.
2218         - Make sure to set the cursor position when there is a click,
2219         otherwise two clicks in separate areas could cause a large chunk
2220         to be selected.
2221
2222 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2223
2224         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
2225         Fixes #79863.
2226
2227 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2228
2229         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
2230         time. Remove tooltips when ToolButton click events.  Fixes #79856.
2231
2232 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2233
2234         * MenuAPI.cs: Ignore right click for menu actions and fixes
2235         menu border when clicked.  Fixes #79846.
2236
2237 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2238
2239         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
2240         MouseState after create wParam for message, this fixes mouse button 
2241         equal none in mouse up events.
2242         
2243 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
2244
2245         * Control.cs : Focus() now calls Select to set the Container's
2246         Active Control and to give it focus. To avoid infinite recursion
2247         (because ActiveControl also calls Focus at one point), a check 
2248         is made in Focus with the help of a new internal variable
2249         is_focusing.
2250
2251 2006-11-07  Mike Kestner  <mkestner@novell.com>
2252
2253         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
2254         if there's a selection.  Fixes #79849.
2255
2256 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
2257
2258         * PropertyGrid.cs: Avoid fixed height of help description label.
2259         Fixes part of bug #79829.
2260
2261 2006-11-07  Chris Toshok  <toshok@ximian.com>
2262
2263         * XplatUIX11.cs: fix #79790 again, by using the
2264         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
2265
2266 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2267
2268         * ToolBar.cs: Fix left click checking.
2269
2270 2006-11-07  Chris Toshok  <toshok@ximian.com>
2271
2272         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
2273
2274 2006-11-07  Chris Toshok  <toshok@ximian.com>
2275
2276         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
2277         PropertyManager unit tests.
2278
2279         * PropertyManager.cs: make property_name internal.
2280
2281 2006-11-07  Chris Toshok  <toshok@ximian.com>
2282
2283         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
2284         pass a unit test.  Also, don't set image_index to anything in
2285         response to setting the ImageList property.
2286
2287 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2288
2289         * ToolBar.cs: Ignore click events when mouse button is not a
2290         left button, only accepts other button for dropdown menus.  
2291         Fixes #79854.
2292
2293 2006-11-07  Chris Toshok  <toshok@ximian.com>
2294
2295         * DataGrid.cs: make the back and parent row buttons a little less
2296         ugly.
2297
2298 2006-11-07  Jackson Harper  <jackson@ximian.com>
2299
2300         * TextBoxBase.cs: When converting to Text don't put line breaks in
2301         for soft line breaks.
2302         * TextControl.cs: There is an initial "fake" line in the document,
2303         this is now a soft break line, so that an extra line feed doesn't
2304         get added to the end of documents.
2305
2306 2006-11-07  Chris Toshok  <toshok@ximian.com>
2307
2308         [ fix bug #79778 ]
2309         
2310         * CurrencyManager.cs: if the list is readonly, don't bother
2311         checking if IBindingList.AllowNew is true.
2312
2313         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
2314         for non-DataRowView datasources..  or rather, make it not crash.
2315         (DataGridPaintRelationRow): make sure we limit the row painting to
2316         the area not covered by the row header, and make our cell width at
2317         least large enough to cover the relation area.  This allows grids
2318         that have relations but no rows to render correctly.
2319         (DataGridPaintRowContents): same type of changes here.
2320         (SetDataSource): move back to always calling
2321         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
2322         navigating back through relations.
2323         (HitTest): handle the case where we have no cells but have
2324         relations.  Right now we generate a hit in cell 0 of whatever the
2325         row is, not sure if this is strictly correct, but it works for our
2326         purposes.
2327         
2328         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
2329         bother doing anything.
2330
2331 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
2332
2333         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
2334         early version of StatusStrip.  Not responsible for eaten
2335         application or firstborn children.
2336
2337 2006-11-06  Chris Toshok  <toshok@ximian.com>
2338
2339         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
2340         call GetTabRect with a -1 index.  Fixes #79847.
2341
2342 2006-11-06  Jackson Harper  <jackson@ximian.com>
2343
2344         * TreeNodeCollection.cs: Update scrollbars after clearing.
2345
2346 2006-11-06  Chris Toshok  <toshok@ximian.com>
2347
2348         * NumericUpDown.cs: fix the ToString method for some unit test
2349         love.
2350
2351 2006-11-06  Chris Toshok  <toshok@ximian.com>
2352
2353         * PropertyGrid.cs:
2354         - set the initial SelectedGridItem if we can.
2355
2356         - Exclude non-mergable properties only if we're merging > 1
2357         object.  Merging 1 object isn't really merging, obviously.
2358
2359         - Handle PropertySort.NoSort just like Alphabetical, which is
2360         wrong of course, but at least gets things on the screen.
2361         
2362         * PropertyGridView.cs:
2363         - Add method "FindFirstItem" which finds the first property grid
2364         item, so we can select it by default.
2365
2366         - make use of GridEntry.CanResetValue.
2367
2368         - Don't call RedrawBelowItemOnExpansion here anymore, the
2369         individual GridEntry's will do that.
2370
2371         - Remove the ITypeDescriptorContextImpl internal class.
2372         
2373         * GridEntry.cs:
2374         - this class needs to implement ITypeDescriptorContext, as it's
2375         what MS's PropertyDescriptorGridEntry does, which means we can
2376         remove the ITypeDescriptorContextImpl internal class from
2377         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
2378
2379         - keep a reference to our PropertyGridView, and move the call to
2380         RedrawBelowItemOnExpansion here from PGV.  This means
2381         programmaticly setting Expanded actually does something visible.
2382
2383         - add a CanResetValue() function which takes into account our
2384         possibly multiple "selected_objects" in the merged case.  Shifting
2385         PropertyGridView to use this method fixes another unreported
2386         crasher found running the test for #79829.
2387
2388         - when Top or Bounds is updated, make sure the PropertyGridTextBox
2389         is updated to reflect this.
2390
2391         * CategoryGridEntry.cs: the ctor takes the PGV now.
2392         
2393 2006-11-06  Jackson Harper  <jackson@ximian.com>
2394
2395         * TextControl.cs: These are 1 based.
2396         * TextBoxBase.cs: When setting the selected text, don't change the
2397         selected text tags, this is done by ReplaceText, just position the
2398         cursor at the end of the new text.
2399
2400 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2401
2402         * ListView.cs: Allow label edit only when, when LabelEdit is
2403           set to true.
2404
2405 2006-11-06  Jackson Harper  <jackson@ximian.com>
2406
2407         * TextControl.cs: If a suitable wrapping position isn't found,
2408         just wrap right in the middle of a word.
2409
2410 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2411
2412         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
2413           bug #79820.
2414
2415 2006-11-06  Jackson Harper  <jackson@ximian.com>
2416
2417         * TreeView.cs: Can't use the VisibleCount property when setting
2418         scrollbar heights, because this doesn't take into account whether
2419         or not the horz scrollbar just came visible.
2420
2421 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
2422
2423         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
2424         activated.  Fixes #79369, #79832.
2425
2426 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
2427
2428         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
2429           had to remove support for links that point to a directory. FileInfo
2430           returns no usefull information (means, the directory they point to)
2431           for such links. Replaced some empty string ("") with String.Empty.
2432
2433 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2434
2435         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
2436         NullReferenceException when attempting to remove node that is not in
2437         collection. Throw NullReferenceException when null is passed to 
2438         Remove. Allow first element of the collection to be removed. Fixes
2439         bug #79831.  In GetEnumerator ().Current return null if positioned 
2440         before the first element of the collection. In GetEnumerator ().Reset,
2441         position before first element of the collection.
2442
2443 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2444
2445         * PropertyGrid.cs: To match MS, remove default title and description
2446         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
2447         buttons.
2448
2449 2006-11-04  Chris Toshok  <toshok@ximian.com>
2450
2451         * Theme.cs: add a Clamp method, just for kicks.
2452
2453         * ThemeWin32Classic.cs: clamp all color components to [0..255].
2454
2455 2006-11-04  Chris Toshok  <toshok@ximian.com>
2456
2457         * Form.cs: if the form isn't visible, Close() does nothing.
2458
2459 2006-11-03  Chris Toshok  <toshok@ximian.com>
2460
2461         * Form.cs (Close): if the form is modal, don't Dispose of it, only
2462         Hide it.
2463         (WndProc): don't Dispose after handling the WM_CLOSE message.
2464
2465         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
2466         them as such, instead of using casts from Control to Form.  Also,
2467         don't Dispose of the modal dialog when we fall out of the loop -
2468         Close() it instead.
2469
2470         fixes bug #79813.
2471
2472 2006-11-03  Chris Toshok  <toshok@ximian.com>
2473
2474         * Control.cs (Dispose): only go through the dispose thing if we're
2475         @disposing, and we haven't already been disposed.  Fixes bug
2476         #79814.
2477
2478         * Form.cs: no reason to call "base.Dispose()" here instead of
2479         "Dispose()".
2480
2481 2006-11-03  Mike Kestner  <mkestner@novell.com>
2482
2483         * ComboBox.cs : use ToString instead of casts in AddItem for
2484         sorting functionality.  Fixes #79812.
2485
2486 2006-11-03  Chris Toshok  <toshok@ximian.com>
2487
2488         * Application.cs: pave the way for actually using the thread
2489         exception dialog.  it's ifdefed out at the moment.
2490
2491 2006-11-03  Chris Toshok  <toshok@ximian.com>
2492
2493         * ThreadExceptionDialog.cs: until we get a better layout, actually
2494         hide the details textbox and label when we shouldn't see them.
2495
2496 2006-11-03  Jackson Harper  <jackson@ximian.com>
2497
2498         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
2499         multiline textboxes anymore.  This method also determines the
2500         width/height of a textboxes canvas area.
2501         - Sorta a revert of the last patch.  For multiline just position
2502         the controls, then bail.  This way the scrollbar width won't be
2503         altered.
2504
2505 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
2506
2507         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
2508         it dont need.  Fixes #79537.
2509
2510 2006-11-02  Jackson Harper  <jackson@ximian.com>
2511
2512         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
2513         send the status after firing the DndOver event.
2514
2515 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2516
2517         * TrackBar.cs: Now orientation only switches height / width if
2518         the control's handle is created (Win32 does it like this). Also 
2519         fixed a typo in ToString() for a test to pass, changed the 
2520         exception thrown in set_LargeChange and set_SmallChange to 
2521         match Win32 behaviour, and added TrackBar tests to the unit 
2522         tests.
2523
2524 2006-11-02  Chris Toshok  <toshok@ximian.com>
2525
2526         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
2527         not _NET_WM_STATE_NO_TASKBAR.
2528
2529 2006-11-02  Jackson Harper  <jackson@ximian.com>
2530
2531         * TextControl.cs: Increment count by one, since in the update view
2532         count - 1 is used.
2533
2534 2006-11-02  Jackson Harper  <jackson@ximian.com>
2535
2536         * TextBoxBase.cs: Use client rectangle not bounds for checking if
2537         the mouse is in the client rectangle (duh).
2538
2539 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2540         
2541         * TrackBar.cs: Fixed trackbar jumping around when clicking
2542         on it - the trackbar was not detecting correctly at which
2543         side of the thumb the click was done. (fixes #79718)
2544
2545 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
2546
2547         * ListBox.cs: scroll visible area when change SelectedIndex to
2548         a non visible area.  Fixes #79481.
2549
2550 2006-11-01  Jackson Harper  <jackson@ximian.com>
2551
2552         * TextControl.cs: When replacing the selection move the selection
2553         start/end/anchor to the end of the new text.
2554
2555 2006-11-01  Jackson Harper  <jackson@ximian.com>
2556
2557         * XplatUIWin32.cs: When setting the parent change the controls
2558         visibility to it's visibility flag, not to it's old parents
2559         visibility (.Visible walks the parent chain).
2560
2561 2006-11-01  Chris Toshok  <toshok@ximian.com>
2562
2563         * XplatUIX11.cs: revert the #79790 fix, as the simple.
2564         XSetTransientForHint fix breaks paint .net's tool windows.  more
2565         work needed for that one.
2566
2567 2006-11-01  Chris Toshok  <toshok@ximian.com>
2568
2569         * ScrollBar.cs: throw ArgumentException instead of Exception in
2570         LargeChange/SmallChange setters.  fixes unit tests.
2571
2572 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2573
2574         * ContainerControl.cs: reverted rev.67183 (which was itself
2575         a reversion of rev.66853... eh).
2576         
2577         * Control.cs: Fixes Reflector hang by changing Focus() call
2578         to what it was before rev.66643 (calling Select() here sets 
2579         ActiveControl, which in some situations calls back Focus and 
2580         eventually does a stack overflow). Temp fix.    
2581         Changes to GetNextControl() to not look for children to select when
2582         parent cannot be selectable (so it looks for siblings instead)  
2583         
2584 2006-10-31  Mike Kestner  <mkestner@novell.com>
2585
2586         * CheckedListBox.cs : off by one error in returned index from
2587         ObjectCollection.Add.  Fixes #79758.
2588
2589 2006-10-31  Chris Toshok  <toshok@ximian.com>
2590
2591         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
2592         calls for the textbox/spinner, to keep from recursing to the point
2593         where we crash.  Fixes #79760.
2594
2595 2006-10-31  Chris Toshok  <toshok@ximian.com>
2596
2597         * ListControl.cs (set_SelectedValue): don't throw exceptions on
2598         null/"" value, just return.  matches ms's behavior and fixes some
2599         failing tests.
2600
2601 2006-10-31  Chris Toshok  <toshok@ximian.com>
2602
2603         * Control.cs (set_Capture): make a logic a little easier to
2604         follow.
2605
2606         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
2607         if it's being destroyed.  A necessary fix surely, but a bandaid
2608         also, to fix the stuck capture problem in bug #78413.
2609
2610 2006-10-31  Chris Toshok  <toshok@ximian.com>
2611
2612         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
2613         convention of clearing hwnd.ClientRect when we set the
2614         width/height (so it'll be recalculated by Hwnd).
2615
2616 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2617
2618         * ContainerControl.cs: reversed Contains check from
2619         ActiveControl due to hanging problems. This fix
2620         partly regresses #79667 (button does not have
2621         initial focus), so this might be a symptom for 
2622         a larger parenting problem (set_ActiveControl
2623         is being called but the child control does
2624         not have the parent set yet?)   
2625         
2626 2006-10-31  Mike Kestner  <mkestner@novell.com>
2627
2628         * MenuAPI.cs : fix keynav when menu is click activated.
2629
2630 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
2631
2632         * ToolStrip*: Version 0.2.
2633
2634         * MenuStrip.cs: Version 0.1.
2635
2636         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
2637
2638 2006-10-30  Chris Toshok  <toshok@ximian.com>
2639
2640         [ fixes the oversized notify icon issue in bug #79745 ]
2641         
2642         * NotifyIcon.cs: scale the icon down to the size we're given by
2643         the XplatUI layer (this would be faster if we did it once instead
2644         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
2645         since it's never invoked.
2646
2647         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
2648         pixels high by default, so let's hardcode our systray icon to that
2649         size.  The SYSTEM_TRAY protocol should really have a way for
2650         client apps to query for the correct icon size.. but oh well.  A
2651         couple of patches to deal with the screwy client_window ==
2652         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
2653         instance, and also make sure we don't XSelectInput twice).
2654
2655 2006-10-30  Chris Toshok  <toshok@ximian.com>
2656
2657         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
2658         recreating forms.  Control recreation is the bane of my existence.
2659         Fix it in a way that keeps everyone happy.
2660
2661 2006-10-30  Chris Toshok  <toshok@ximian.com>
2662
2663         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
2664         just non-CHILD ones.  otherwise sometimes scrollbars end up with
2665         client_windows not being resized to the proper size (ReportBuilder
2666         shows this extremely well).
2667
2668 2006-10-30  Chris Toshok  <toshok@ximian.com>
2669
2670         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
2671         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
2672         showing up in the gnome taskbar.  Fixes bug #79790.
2673
2674 2006-10-30  Chris Toshok  <toshok@ximian.com>
2675
2676         * ApplicationContext.cs: guard against a NRE.
2677
2678         * Application.cs: null out the old MainForm for the context, so we
2679         don't try to use it again once it's disposed.  Fixes bug #79783.
2680
2681 2006-10-30  Chris Toshok  <toshok@ximian.com>
2682
2683         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
2684         BindingContext, set the data source directly, otherwise do the
2685         lazy approach - the actual ListManager will be created when we get
2686         a BindingContext. Fixes bug #79700.
2687
2688 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2689
2690         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
2691           XplatUIX11.cs: Remove old 2 parameter SetVisible.
2692
2693         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
2694
2695 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2696
2697         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
2698         of SetVisible that allows a window to be shown, but not activated.
2699         This is needed on Windows for MenuStrip, and can probably be used
2700         with MainMenu and ComboBox to fix the focus stealing issues on
2701         Windows.
2702
2703         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
2704
2705 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
2706
2707         * PictureBox.cs: Fix the output of the ToString method.
2708
2709 2006-10-29  Chris Toshok  <toshok@ximian.com>
2710
2711         * Control.cs (get_TopLevelControl): fix bug #79781.
2712
2713 2006-10-29  Chris Toshok  <toshok@ximian.com>
2714
2715         * ListControl.cs (set_DataSource): throw Exception here, not
2716         ArgumentException, to match MS behavior.
2717
2718 2006-10-29  Chris Toshok  <toshok@ximian.com>
2719
2720         * Form.cs: remove the try-catch's around calls to GetWindowState.
2721         We can just check the return value.
2722
2723         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
2724         Instead return -1.
2725
2726         * XplatUI.cs: Add note about additional return value for
2727         GetWindowState.
2728
2729 2006-10-29  Chris Toshok  <toshok@ximian.com>
2730
2731         * Control.cs (CreateHandle): when we create our handle, we also
2732         create the handles of our child controls.  Fixes one of the
2733         Control unit tests (CH11).
2734
2735 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2736
2737         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
2738
2739 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2740
2741         * ThemeClearlooks.cs: A little speedup.
2742
2743 2006-10-27  Chris Toshok  <toshok@ximian.com>
2744
2745         * Control.cs: implement Control.FromChildHandle in a way that
2746         matches the docs (and fixes the failed test.)
2747
2748 2006-10-27  Chris Toshok  <toshok@ximian.com>
2749
2750         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
2751         comments).
2752
2753         * DataGrid.cs: implement ResetForeColor such that the tests
2754         succeed.
2755         
2756 2006-10-27  Chris Toshok  <toshok@ximian.com>
2757
2758         * ToolBarButton.cs: setting text/tooltiptext to null results in it
2759         being set to "".  Fixes bug #79759.
2760
2761 2006-10-27  Jackson Harper  <jackson@ximian.com>
2762
2763         * TextControl.cs: We need to clear the entire selection area when
2764         setting the start, otherwise multiline selections are still
2765         visible.
2766
2767 2006-10-26  Chris Toshok  <toshok@ximian.com>
2768
2769         * PropertyGridView.cs: 
2770
2771         - ifdef all the code specific to the double
2772         buffer case, and provide some alternatives in the non-doublebuffer
2773         code, which makes heavy use of XplatUI.ScrollWindow to move things
2774         around without having to invalidate (and cause flicker).  There
2775         are still some drawing problems in the non-doublebuffered case, so
2776         DOUBLEBUFFER is defined by default.
2777
2778         - Fix the way dropdowns are handled.  now we explicitly watch for
2779         the events which might cause the dropdown to close, and break out
2780         of the nested event loop there.  This gets rid of all Capture
2781         code, at the expense of the Msg special casing.  Seems to work,
2782         though, and fixes bug #79743.
2783
2784 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
2785         * Control.cs: SetIsRecreating now recreates implicitly added
2786         child controls as well. Finally fixes #79629. The flag passed to 
2787         SetIsRecreating has also been removed since it wasn't used.
2788         
2789 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2790
2791         * PageSetupDialog.cs: Clean some code, fix some bits, 
2792         add some checks, and add a printer sub-dialog.
2793
2794 2006-10-26  Chris Toshok  <toshok@ximian.com>
2795
2796         * PropertyGrid.cs: make set_SelectedObject call
2797         set_SelectedObjects, and move the duplicate logic to the
2798         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
2799
2800         * PropertyGridView.cs: hide the textbox when we get a
2801         SelectedObjectsChanged event.
2802
2803         Fixes bug #79748.
2804
2805 2006-10-26  Chris Toshok  <toshok@ximian.com>
2806
2807         * PropertyGridView.cs: deal with the type converter not supporting
2808         GetStandardValues() or GetStandardValues() returning null, which
2809         is does in the default case.  Fixes #79742.
2810
2811 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
2812
2813         * CheckedListBox.cs: nunit no longer crashes when selecting 
2814         Project/Edit menu option
2815         
2816 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
2817
2818         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
2819         is no menu selected. fixes #79739
2820
2821 2006-10-25  Chris Toshok  <toshok@ximian.com>
2822
2823         * PropertyGridView.cs: factor out the splitter invalidation code
2824         into the SplitterPercent setter, and for kicks implement the
2825         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
2826         amount in either direction.
2827
2828 2006-10-25  Chris Toshok  <toshok@ximian.com>
2829
2830         * PropertyGridView.cs: do some cleanup of the brush used to draw
2831         text - read only fields should be grayed out.  not sure how to do
2832         this with the textbox, though.  but the textbox's should also be
2833         readonly now at least.  Also, hide/show the textbox when resizing
2834         the control.
2835         
2836         * CursorConverter.cs: use System.Reflection when getting the
2837         properties of Cursors, as TypeDescriptor.GetProperties isn't
2838         returning static properties.
2839
2840 2006-10-25  Chris Toshok  <toshok@ximian.com>
2841
2842         * PropertyGridView.cs: factor out the up/down handling, and reuse
2843         it for page up/down.  also add End/Home support.
2844
2845 2006-10-25  Chris Toshok  <toshok@ximian.com>
2846
2847         * PropertyGridView.cs:
2848
2849         - ensure the selected grid item is visible in the scrolled area,
2850         fixes bug #79572.
2851
2852         - fix Keys.Down handling when you're on the last item in the
2853         propertygrid.
2854
2855 2006-10-25  Mike Kestner  <mkestner@novell.com>
2856
2857         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
2858         clicks too.  Fixes #79725.
2859
2860 2006-10-24  Chris Toshok  <toshok@ximian.com>
2861
2862         * PropertyGrid.cs: use property.Converter instead of
2863         TypeDescriptor.GetConverter(property.PropertyType), so we catch
2864         TypeConverters declared on the property as well as on the
2865         PropertyType.  Fixes bug #79678.
2866
2867 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
2868
2869         * MimeIcon.cs, Mime.cs:
2870           Fallback to the default platform handler if no shared mime info
2871           stuff exists (fixes #79693).
2872
2873 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
2874         * ContainerControl.cs: Incorrect contains check in ActiveControl 
2875         from previous fix (duh).
2876
2877 2006-10-20  Chris Toshok  <toshok@ximian.com>
2878
2879         * PropertyGridView.cs: the dropdown should be MIN(number of items
2880         in list, 15).  Fixes #79551.
2881
2882 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
2883         Fixes #79384, #79394, #79652, #79667
2884         * Application.cs: 
2885         
2886         - Modal windows are now destroyed in the proper order for windows
2887         
2888         * ContainerControl.cs:
2889         
2890         - ActiveControl setter has more conditions on when to return:
2891                 - if we're reselecting the active control, but it actually
2892                 didn't have focus (window hidden or some such), it runs
2893                 - if the active control being selected doesn't actually 
2894                 exist in the container, it returns
2895         
2896         * Form.cs
2897         
2898         - The ShowDialog now gets the current form as the owner when
2899         invoking without parameters, and correctly activates the owner 
2900         when returning
2901         
2902         * MessageBox.cs
2903         
2904         - MessageBox now catches the Escape key to exit
2905
2906 2006-10-20  Chris Toshok  <toshok@ximian.com>
2907
2908         * PropertyGridView.cs: fix a number of issues (bug #78565, and
2909         most of bug #79676):
2910
2911         - you can navigate around the property grid with the arrow keys.
2912
2913         - the dropdown is sized properly when the pg has a vertical
2914         scrollbar.
2915
2916         - fix the indentation for subentries, and properly select the
2917         entire label rect.
2918
2919         - fix the gray bar's drawing (only draw it to the last element,
2920         not for the height of the control.  Also make sure we draw that
2921         last horizontal grid line.
2922
2923         - use the same mechanism the datagrid uses wrt the editing textbox
2924         when scrolling/resizing/etc.  Namely, we hide it first, do the
2925         operation, then show it again (if it's still visible).
2926         
2927         - aggressively remove a lot of unnecessary refreshes (and also
2928         calls to Invalidate(). call more limited variants, and only redraw
2929         what we need.)
2930         
2931         * PropertyGrid.cs:
2932
2933         - when we're populating the merged collection, fill in the UI
2934         parent with either the passed in item, or the category item we
2935         create.
2936
2937         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
2938
2939         * GridItem.cs: drop some fully qualified names.
2940         
2941         * GridEntry.cs: add a "UIParent", which is basically the parent
2942         treenode.
2943
2944         * GridItemCollection.cs: add an IndexOf method.
2945
2946 2006-10-20  Mike Kestner  <mkestner@novell.com>
2947
2948         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
2949         a working win32 NC invalidation mechanism, we can't invalidate
2950         menus.  [Fixes #79705]
2951
2952 2006-10-20  Mike Kestner  <mkestner@novell.com>
2953
2954         * ListBox.cs : don't update the VScrollbar if the list is empty,
2955         just hide it.  [Fixes #79692]
2956
2957 2006-10-20  Jackson Harper  <jackson@ximian.com>
2958
2959         * RichTextBox.cs: Handle some special chars better, and don't skip
2960         the entire group when we encounter a special char that we don't
2961         handle correctly.
2962
2963 2006-10-18  Chris Toshok  <toshok@ximian.com>
2964
2965         * PropertyGridView.cs: address a number of issues from bug #79676,
2966         mostly of the cosmetic variety.
2967
2968         - The highlight rectangle for indented items not extends all the
2969         way to the left.
2970
2971         - Indented items aren't indented so much.
2972
2973         - the dropdown is properly sized width-wise if the pg has a
2974         vertical scrollbar.
2975
2976 2006-10-18  Chris Toshok  <toshok@ximian.com>
2977
2978         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
2979         systray stuff is rather convoluted to begin with.
2980
2981         systray icons are a single window for some reason (that I haven't
2982         figured out yet), and for them, client_window == whole_window.
2983         Given the way the tests are structured elsewhere to determine
2984         which paints are pending (client vs. nc), that situation will
2985         always yield PAINT, not NCPAINT.  So, if we have a pending
2986         nc_expose and no pending expose, remove the hwnd from the paint
2987         queue, and also set nc_expose_pending to false, to keep us from
2988         blocking further expose's adding the hwnd to the paint queue.
2989
2990         phew.  like i said, a rather convoluted change.  Fixes the
2991         notifyicon repaint issues in bug #79645.
2992
2993 2006-10-18  Chris Toshok  <toshok@ximian.com>
2994
2995         * Form.cs: when getting the backcolor of the form, don't get
2996         base.BackColor, as this allows parents to influence the background
2997         color.  This breaks mdi forms.  Instead, if the background_color
2998         is empty, return the default.
2999
3000 2006-10-18  Chris Toshok  <toshok@ximian.com>
3001
3002         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
3003         to being private instead of internal static.
3004
3005         * Control.cs: remove all the stupid ParentWaitingOnRecreation
3006         crap, it wasn't working for more deeply nested controls anyway,
3007         and we already have the is_recreating flag - use that instead.
3008         Before calling DestroyHandle in RecreateHandle, recurse through
3009         the control tree setting it to true.  this returns the recreate
3010         code to much of its original simplicity, while now guaranteeing we
3011         actually recreate everything we're supposed to.  This change gets
3012         fyireporting actually showing mdi children.
3013
3014 2006-10-17  Chris Toshok  <toshok@ximian.com>
3015
3016         * Form.cs: remove some debug spew, and collapse some duplicate
3017         code at the end of SetClientSizeCore.
3018
3019         * XplatUIX11.cs: 
3020         - add some more debug spew here too wrt Destroy handling.
3021         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
3022         in Control's handling of WM_DESTROY.
3023         - Remove the handling of zombie window DestroyNotifies from the
3024         event loop - we don't need it.  Now the only DestroyNotifies we
3025         actually handle are ones generated by X.
3026         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
3027         match gtk's (functioning) handling of this. This keep metacity
3028         from leaving droppings in the form of wm borders with no window
3029         contents all over the place.
3030
3031         * Control.cs:
3032         - add a bunch of debug spew wrt control recreation.
3033         - fix a bug where we weren't tracking Visible properly on
3034         recreated hwnds.
3035         - fixed the WM_PAINT double buffer handling to support re-entrant
3036         calls (yes, i know it's gross, but it's happening to us).
3037
3038 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3039         * ThemeWin32Classic.cs: changed drawing of selected days
3040         to make them look better.
3041
3042 2006-10-16  Chris Toshok  <toshok@ximian.com>
3043
3044         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
3045         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
3046
3047         * XplatUIX11.cs: move away from using hwnd.client_dc and
3048         hwnd.non_client_dc and on to a stack of dc's (and in window's
3049         case, PAINTSTRUCT's), so we can deal with nested Paint calls
3050         without puking or not disposing of Graphics objects.
3051
3052         * XplatUIOSX.cs: same.
3053
3054         * XplatUIWin32.cs: same.
3055
3056 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3057
3058         * FileDialog.cs: Don't call on_directory_changed inside
3059           OnSelectedIndexChanged (it changes the SelectedIndex too).
3060           Instead move it to OnSelectionChangeCommitted.
3061
3062 2006-10-13  Chris Toshok  <toshok@ximian.com>
3063
3064         * XplatUIX11.cs: more Destroy work.  the current code does the
3065         following things, in order:
3066
3067         1. Enumerates all handles of all controls at or below the one
3068         being destroyed, in pre-order.  As it is doing this, it marks the
3069         handles as zombie and clears all references to them.
3070         
3071         2. calls XDestroyWindow on the window passed in.
3072
3073         3. SendMessage's WM_DESTROY to all he handles in the accumulated
3074         list.
3075
3076 2006-10-13  Chris Toshok  <toshok@ximian.com>
3077
3078         * XplatUIX11.cs: set hwnd.zombie to true before calling
3079         SendMessage (WM_DESTROY).  this keeps us from marking the new
3080         window a zombie, and also keeps us from calling sendmessage at
3081         all.
3082
3083 2006-10-13  Jackson Harper  <jackson@ximian.com>
3084
3085         * TextControl.cs: Do not show the caret and selection at the same
3086         time.  Reduces ugliness by 35%.
3087
3088 2006-10-13  Chris Toshok  <toshok@ximian.com>
3089
3090         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
3091         zombie after we do the recursive call, so we actually do call
3092         SendMessage on the children controls.
3093         (GetMessage): if we find a pending paint event for a zombie hwnd,
3094         remove the hwnd from the paint queue, or else it will always be
3095         there (and we'll effectively loop infinitely)
3096
3097 2006-10-13  Mike Kestner  <mkestner@novell.com>
3098
3099         * MenuItem.cs : add Selected format under keynav too.
3100         Fixes #79528.
3101
3102 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
3103
3104         * PropertyGrid.cs: Fixed some NRE's and small difference between our
3105         implementation and that of MS.
3106
3107 2006-10-13  Chris Toshok  <toshok@ximian.com>
3108
3109         * Control.cs (OnInvalidated) only futz with the invalid_region if
3110         the control is double buffered.  this fixes the apparent hang in
3111         the ListView unit tests.  Someone needs to make the
3112         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
3113
3114 2006-10-13  Chris Toshok  <toshok@ximian.com>
3115
3116         * PropertyGridView.cs:
3117
3118         - do a little refactoring so that only one place calls
3119         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
3120         else call that.  Also make it Refresh, since there are redraw bugs
3121         otherwise (we should take a look at that...)
3122
3123         - do a little more refactoring work to share the body of code
3124         involved with the drop down.  it was duplicated in the code
3125         dealing with the listbox handling and in the code dealing with the
3126         UITypeEditors.
3127
3128         - add a Capture to the dropdown form's control once it's
3129         displayed, and add a MouseDown handler that checks to make sure
3130         the position is inside the control.  If it's not, close the
3131         dropdown.  This fixes #78190.
3132
3133         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
3134         if the value is different than the initial value.
3135         
3136 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
3137
3138         * Control.cs: see #78650
3139         - Fixed GetNextControl for several cases:
3140                 - Changed FindFlatForward to return 
3141                 correct sibling control when more than one
3142                 control has same TabIndex as the currently 
3143                 focused one.
3144                 - Changed FindFlatBackward to loop children
3145                 from last to first and apply same logic as in
3146                 FindFlatForward
3147                 - Changed FindControlForward to search for
3148                 children when control is not a container
3149                 but has children, or search for siblings if
3150                 control is a container...
3151                 - Changed FindControlBackward   to continue
3152                 searching for child controls when hitting 
3153                 Panel-like parents
3154                 
3155         - Fixed Focus method to update ActiveControl
3156         (FocusTest.FocusSetsActive failure)
3157         
3158         * TabControl.cs:
3159         - Focus rectangle now refreshes when gaining
3160         or losing focus
3161         - Removed grab for Tab key on IsInputKey that 
3162         was keeping tab navigation from working (#78650)
3163
3164 2006-10-13  Chris Toshok  <toshok@ximian.com>
3165
3166         * PropertyGridView.cs:
3167         - Rewrite SetPropertyValue to loop over SelectedGridItem's
3168         SelectedObjects.
3169
3170         - Deal with GridItem.Value == null a few places.
3171
3172         * PropertyGrid.cs: 
3173         - replace the PopulateGridItemCollection with a pair of methods
3174         which compute the intersection of all the properties in the
3175         SelectedObjects array.  Fixes #79615.
3176
3177         - Throw ArgumentException from set_SelectedObjects if there's a
3178         null in the array.
3179
3180         - Add GetTarget method which can be used to traverse up the
3181         GridItem.Parent chain.  It depends on the assumption that
3182         selected_objects for different GridEntries are always in the same
3183         order (a safe assumption).  Use this method and loop over all the
3184         selected objects in the entry when calling RemoveValueChanged and
3185         AddValueChanged.
3186         
3187         * GridEntry.cs: Make this handle multiple selected objects.
3188         .Value returns null if not all the selected objects share the same
3189         value.
3190
3191 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
3192         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
3193           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
3194           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
3195           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
3196           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
3197         add additional functionality.
3198
3199 2006-10-12  Mike Kestner  <mkestner@novell.com>
3200
3201         * ErrorProvider.cs : new ToolTipWindow ctor sig.
3202         * HelpProvider.cs : new ToolTipWindow ctor sig.
3203         * ToolTip.cs : remove ToolTip param from Window sig since it is
3204         not used.
3205         * ToolBar.cs : add tooltip support.  Fixes #79565.
3206
3207 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3208
3209         * ComboBox.cs: move the events in set_SelectedIndex to 
3210         after the call to HighlightIndex in order to avoid 
3211         possible recursion and subsequent problems with the call
3212         to HighlightIndex and include a range check in 
3213         set_HighlightIndex. Fixes #79588
3214         
3215 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3216
3217         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
3218         to ui thread's settings instead of sunday. 
3219         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
3220
3221 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3222
3223         * DateTimePicker.cs
3224         * MonthCalendar.cs
3225         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
3226         and implement missing functionality (selecting different parts 
3227         of the date and edit them individually with the keyboard).
3228         
3229 2006-10-11  Chris Toshok  <toshok@ximian.com>
3230
3231         * Control.cs (OnInvalidated): fix NRE relating to last change.
3232
3233 2006-10-11  Chris Toshok  <toshok@ximian.com>
3234
3235         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
3236         atoms in _NET_WM_STATE here if the window is maximized.  We need
3237         to do this because we're *replacing* the existing _NET_WM_STATE
3238         property, so those atoms will be lost otherwise, and any further
3239         call to GetWindowState will return Normal for a window which is
3240         actually maximized.  Fixes #79338.
3241
3242 2006-10-11  Jackson Harper  <jackson@ximian.com>
3243
3244         * TextControl.cs: Special case for setting selection end to
3245         selection start, we basically kill the anchor.
3246         - some todo comments.
3247
3248 2006-10-11  Chris Toshok  <toshok@ximian.com>
3249
3250         * Control.cs: switch to using an "invalid_region" to track which
3251         parts of the image buffer need updating.  This is more code than
3252         the simple fix from r66532.  That version just attempted to always
3253         fill the entire buffer on redraw, which turns out to be
3254         inefficient when invalidating small rectangles.  This version
3255         simply adds the invalid rectangle to the invalid region.  When we
3256         get any WM_PAINT message we see if it can be filled using the
3257         image buffer, and if it can't (if the paint event's clip rectangle
3258         is visible in the invalid region) we first fill the image buffer.
3259         So, the image buffer is still a cache, we just fill it lazily.
3260
3261         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
3262         need it any longer.
3263
3264 2006-10-11  Chris Toshok  <toshok@ximian.com>
3265
3266         * XplatUIX11.cs (SetWindowPos): we need to update both position as
3267         well as size after calling XMoveResizeWindow.  This keeps us from
3268         ignoring future SetWindowPos calls.  Fixes the disappearing
3269         DateTimePicker in the ToolBarDockExample from bug #72499.
3270
3271 2006-10-11  Chris Toshok  <toshok@ximian.com>
3272
3273         * TextBoxBase.cs: reorder things a bit when it comes to
3274         resizing-causing-recalculation.  we were recalculating the
3275         document when our position was changed, which shouldn't happen.
3276         We only care about size changes.  Clear up some more redundant
3277         recalculation calls while I'm at it.  This makes the toolbar dock
3278         example snappy when you're just dragging toolbars around (since it
3279         causes a relayout whenever you move one.)
3280
3281 2006-10-11  Chris Toshok  <toshok@ximian.com>
3282
3283         * ToolBarButton.cs (get_Rectangle): this only returns
3284         Rectangle.Empty if Visible == false, or Parent == null.
3285         Parent.Visible doesn't matter.
3286
3287 2006-10-10  Chris Toshok  <toshok@ximian.com>
3288
3289         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
3290         by .net 1.1, so switch to an internal method instead.
3291
3292 2006-10-10  Chris Toshok  <toshok@ximian.com>
3293
3294         * Control.cs (WM_PAINT): when a control is double buffered we draw
3295         initially to the ImageBuffer and then copy from there.  But when a
3296         parent control which has child controls is double buffered, the
3297         initial drawing doesn't encompass the entire ClientRectangle of
3298         the parent control, so we end up with uninitialized bits (this is
3299         easily seen by dragging the top toolbar in
3300         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
3301         manually set the ClipRectangle of the paint_event (only the one we
3302         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
3303         of the nastiness in bug #72499.
3304
3305         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
3306         which we use in Control.cs's WM_PAINT handling.
3307
3308 2006-10-10  Jackson Harper  <jackson@ximian.com>
3309
3310         * TextBoxBase.cs: Finish off the autoscrolling stuff.
3311
3312 2006-10-10  Chris Toshok  <toshok@ximian.com>
3313
3314         * Cursor.cs: Apply a slightly different patch to the one suggested
3315         in #79609.
3316
3317 2006-10-10  Jackson Harper  <jackson@ximian.com>
3318
3319         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
3320         not the parent form.
3321         * TextControl.cs: use difference in old line count vs new count to
3322         calculate how many lines were added, this takes into account soft
3323         line breaks properly.
3324
3325 2006-10-10  Chris Toshok  <toshok@ximian.com>
3326
3327         * LinkLabel.cs: don't call MeasureCharacterRanges against a
3328         rectangle located at 0,0 and the size of the text.  Use
3329         ClientRectangle instead.  This fixes rendering of non-left aligned
3330         link labels.
3331
3332 2006-10-10  Jackson Harper  <jackson@ximian.com>
3333
3334         * TextBoxBase.cs: When we set the selection start position the
3335         caret.
3336         * TextControl.cs: Need to update the caret when we decrement it to
3337         zero.
3338         - Make sure that the selection_visible flag gets reset to false if
3339         the selection isn't visible.  Before this you could get it set to
3340         visible by changing the selection start, then changing the end to
3341         equal the start.
3342
3343 2006-10-09  Jackson Harper  <jackson@ximian.com>
3344
3345         * TreeView.cs: Don't update scrollbars when we aren't visible.
3346         * TreeNodeCollection.cs: Only need to update scrollbars if being
3347         added to an expanded visible node or the root node.
3348
3349 2006-10-09  Chris Toshok  <toshok@ximian.com>
3350
3351         * XplatUIX11.cs (SendMessage): fix NRE.
3352
3353 2006-10-09  Jackson Harper  <jackson@ximian.com>
3354
3355         * TextBoxBase.cs: Implement horizontal autoscrolling.
3356         * TextControl.cs: Add a movement types that allows moving forward
3357         and backwards without wrapping.
3358
3359 2006-10-09  Mike Kestner  <mkestner@novell.com>
3360
3361         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
3362         with focus "expansion" of labels.  Fixes #79532 and then some.
3363         * ThemeWin32Classic.cs : add LineLimit to ListView label format
3364         when wrapping.
3365
3366 2006-10-09  Jackson Harper  <jackson@ximian.com>
3367
3368         * TextBoxBase.cs: Set the default max values to MaxValue since
3369         we use the scrollbar for autoscrolling and the default value is
3370         100.  If we don't do this the caret won't keep up with typing
3371         after about 18 characters.
3372         * TextControl.cs: Make sure the selection is offset by the
3373         viewport x.  This fixes selection when using auto scrolling.
3374
3375 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
3376         
3377         * Form.cs: The active control should be selected after the 
3378         OnLoad so that any child control initialization that affects
3379         the selection is done. Fixes #79406
3380
3381 2006-10-06  Chris Toshok  <toshok@ximian.com>
3382
3383         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
3384         to have no evil effects.
3385
3386         - Stop selecting StructureNotifyMask on non-toplevel windows.
3387
3388           The only way children should be resized is by using the SWF api,
3389           and we already send WM_WINDOWPOSCHANGED messages in those cases.
3390           Toplevel windows can be interacted with via the window manager,
3391           and so we keep the input mask there.
3392
3393           The other event StructureNotifyMask gives us (that we care
3394           about) is DestroyNotify.  The code is already structured such
3395           that it assumes we won't be getting a DestroyNotify event for
3396           the window we pass to XDestroyWindow (which is what
3397           StructureNotifyMask is supposed to guarantee.)  So, that code
3398           shouldn't be affected by this either.
3399
3400         - Stop selecting VisibilityChangeMask altogether.
3401
3402           We weren't doing anything with the resulting events anyway.
3403         
3404         This vastly reduces the number of X requests and events we see
3405         when resizing/laying out a large ui.
3406
3407 2006-10-06  Chris Toshok  <toshok@ximian.com>
3408
3409         * ScrollableControl.cs (DisplayRectangle): we need to take into
3410         account the DockPadding regardless of whether or not auto_scroll
3411         == true.  rework this slightly to this effect, and fix bug #79606,
3412         and part of #72499 (you can now see the drag handles and drag
3413         toolbars around).
3414
3415 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
3416
3417         * ListViewItem.cs: Collections of selected and checked items are now
3418         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
3419         we mark the collection "dirty".
3420         * ListView.cs: Marked collections readonly. Modified UpdateSelection
3421         to only clear SelectedItems when a new item is selected and MultiSelect
3422         is enabled. CheckedItems and SelectedItems now subscribe to Changed
3423         event of ListViewItemCollection, and mark its list dirty whenever
3424         that event is fire. This allows us to return selected/checked items 
3425         in the same order as they are in the Items collection. This matches
3426         the MS behavior.
3427
3428 2006-10-06  Chris Toshok  <toshok@ximian.com>
3429
3430         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
3431         right mouse clicks.  Fixes bug #79593.
3432
3433 2006-10-06  Chris Toshok  <toshok@ximian.com>
3434
3435         * Splitter.cs: doh, fix splitters that don't want to cancel the
3436         movement when you drag them.  Also, impose the limits on the
3437         values we send to the SplitterMovingEvent.  Fixes #79598.
3438
3439 2006-10-06  Jackson Harper  <jackson@ximian.com>
3440
3441         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
3442         since we use this for auto scrolling also.
3443
3444 2006-10-05  Chris Toshok  <toshok@ximian.com>
3445
3446         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
3447         beginning to think that most datagrid column types don't need this
3448         method.  Fixes bug #79392.
3449
3450 2006-10-05  Chris Toshok  <toshok@ximian.com>
3451
3452         * DataGrid.cs: move back to a more lazy scheme for creating the
3453         CurrencyManager, so we aren't updating it every time you set
3454         either DataSource or DataMember.  Also, don't call
3455         RecreateDataGridRows if the currency manager hasn't changed.
3456
3457 2006-10-05  Chris Toshok  <toshok@ximian.com>
3458
3459         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
3460         emitted, SelectedIndex should already be updated.  Fixes bug
3461         #78929.
3462
3463 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
3464
3465         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
3466           ToolStripTextBox.cs: Initial commit.
3467         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
3468
3469 2006-10-05  Jackson Harper  <jackson@ximian.com>
3470
3471         * TabControl.cs: We need to invalidate the tab control area when
3472         new ones are added (duh).
3473
3474 2006-10-03  Chris Toshok  <toshok@ximian.com>
3475
3476         * Form.cs (ProcessDialogKey): if the focused control is in this
3477         form and is a button, call its PerformClick method here.  Fixes
3478         #79534.
3479
3480 2006-10-04  Jackson Harper  <jackson@ximian.com>
3481
3482         * TabPage.cs: Ignore setting of Visible, and add an internal
3483         method for setting the controls visibility.  TabPage's Visible
3484         property is a little strange on MS, this seems to make us
3485         compatible, and fixes cases where people set all the tab pages to
3486         visible.
3487         * TabControl.cs: Use the new internal setting on tab pages
3488         visibility.
3489
3490 2006-10-03  Mike Kestner  <mkestner@novell.com>
3491
3492         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
3493
3494 2006-10-03  Mike Kestner  <mkestner@novell.com>
3495
3496         * ListView.cs : use is_visible instead of Visible to check if 
3497         scrollbars should be placed/sized.  Also some max_wrap_width
3498         love for LargeIcon view.  [Fixes #79533]
3499
3500 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
3501
3502         * TextControl.cs :
3503           Make set_TextAlign() do actually update the align. Fixed #78403.
3504
3505 2006-10-03  Chris Toshok  <toshok@ximian.com>
3506
3507         * DataGrid.cs: fix a crash when switching datasources if the
3508         vertical scrollbar is at someplace other than Value = 0.  Also,
3509         reduce the number of recalculation passes we do in SetDataSource
3510         from 2 to 1.
3511
3512 2006-10-03  Jackson Harper  <jackson@ximian.com>
3513
3514         * TextBoxBase.cs: Move the if value the same bail check up, we
3515         don't want to empty the document if it is already empty, this
3516         seems to severly mess up the caret.  TODO: I should probably fix
3517         the empty statement to update teh caret somehow.
3518
3519 2006-10-03  Chris Toshok  <toshok@ximian.com>
3520
3521         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
3522         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
3523         reflection, an internal row type, properties on said type, etc.)
3524         will work with our datagrid.  Fixes #79531.
3525
3526 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3527
3528         * FileDialog.cs: Don't crash if a path is not accessible
3529           (System.UnauthorizedAccessException). Fixes #79569.
3530         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
3531           a ':' too. Return unknown icon for those paths/files.
3532
3533 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
3534
3535         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
3536         GetContainerControl returns null.
3537
3538 2006-10-02  Chris Toshok  <toshok@ximian.com>
3539
3540         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
3541         call to XGetWindowAttributes instead of "handle".  fixes an X
3542         error using notifyicon after the NotifyIconWindow to Form base
3543         class switch.
3544
3545 2006-10-02  Chris Toshok  <toshok@ximian.com>
3546
3547         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
3548         server grab and looping we need to do to get down to the most
3549         deeply nested child window.
3550         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
3551         QueryPointer again after the WarpPointer so we can generate a
3552         proper (fake) MotionNotify event to be enqueued in the destination
3553         window's queue.
3554         (GetCursorPos): call QueryPointer.
3555
3556         Fixes #79556.
3557
3558 2006-10-02  Jackson Harper  <jackson@ximian.com>
3559
3560         * NotifyIcon.cs: Derive the notify icon from a form, so things
3561         like FindForm work on it.
3562         - Swallow the WM_CONTEXTMENU message, since that is generated on
3563         mouse down, and context menu is a mouse up kinda guy.  I believe
3564         the correct fix here is probably to make the notify icon entirely
3565         NC area, but this seems to work fine for anyone not manipulating
3566         WndProc.
3567
3568 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
3569
3570         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
3571           ToolStripItemCollection.cs, ToolStripLabel.cs,
3572           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
3573           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
3574           Initial implementation.
3575         * TextRenderer.cs: Provide padding to MeasureText.
3576
3577 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
3578
3579         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
3580         of ButtonBaseAccessibleObject. Fix bug #79552.
3581
3582 2006-10-02  Jackson Harper  <jackson@ximian.com>
3583
3584         * MdiWindowManager.cs: When maximizing use the containers client
3585         rect, not it's bounds, so nc area is accounted correctly.
3586         - Use the parent form's size for the menu position, since the
3587         client isn't always the full form size.
3588
3589 2006-10-01  Chris Toshok  <toshok@ximian.com>
3590
3591         * ScrollableControl.cs: make sure neither right_edge or
3592         bottom_edge are < 0, since they're used as LargeChange for the
3593         horiz/vert scrollbars respectively.  Fixes #79539.
3594
3595 2006-10-01  Chris Toshok  <toshok@ximian.com>
3596
3597         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
3598         the xplatuix11 code can cause us to destroy/recreate our handle.
3599
3600         * XplatUIX11.cs
3601         (SystrayAdd):
3602         - this code can be invoked many times for the same Hwnd.  Make
3603           sure we only destroy the client window once (the first time this
3604           method is called).  This fixes bug #79544.
3605         - Remove the call to the improperly bound XSync.  why we had two
3606           bindings to this, I will never know, but this call resulted in
3607           events being discarded from the queue(!).
3608         - correct a misunderstanding of _XEMBED_INFO - the second atom is
3609           not our current state but the state we wish to be in.  So, 0 if
3610           we don't want to be mapped.  Change it to 1.
3611         (SystrayRemove): The XEMBED spec makes mention of the fact that
3612         gtk doesn't support the reparent of client windows away from the
3613         embedder.  Looking at gtksocket-x11.c seems to agree with this.
3614         The only avenue we have for removing systray icons is to destroy
3615         them.  We don't want the handle to go away for good, though, so
3616         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
3617         #79545.
3618         
3619 2006-10-01  Chris Toshok  <toshok@ximian.com>
3620
3621         * Form.cs (WndProc): inline the native_enabled variable usage into
3622         the cases in which it's used.  Fixes #79536.
3623
3624 2006-09-29  Mike Kestner  <mkestner@novell.com>
3625
3626         * ListView.cs : toggle the selection state for ctrl clicks in 
3627         multiselect mode. [Fixes #79417]
3628
3629 2006-09-29  Mike Kestner  <mkestner@novell.com>
3630
3631         * ListView.cs : kill CanMultiSelect and refactor the selection
3632         code to support multiselection in the absence of mod keys. Steal
3633         arrow/home/end keys by overriding InternalPreProcessMessage to
3634         restore regressed keynav behavior.
3635         [Fixes #79416]
3636
3637 2006-09-29  Jackson Harper  <jackson@ximian.com>
3638
3639         * MdiClient.cs: Repaint the titlebars when the active window is
3640         changed.
3641
3642 2006-09-29  Chris Toshok  <toshok@ximian.com>
3643
3644         * Application.cs: when entering a runloop with a modal, make sure
3645         the hwnd is enabled.  Fixes #79480.
3646
3647 2006-09-29  Chris Toshok  <toshok@ximian.com>
3648
3649         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
3650         when ListManager.CanAddRows == false, bump us back one.
3651
3652         * DataGridColumnStyle.cs (ParentReadOnly): remove the
3653         listmanager.CanAddRows check.  This makes ArrayLists uneditable
3654         using a datagrid, which is not right.
3655         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
3656         is an IEditable, but call property_descriptor.SetValue regardless.
3657         fixes #79435.
3658
3659 2006-09-29  Chris Toshok  <toshok@ximian.com>
3660
3661         * DataGridBoolColumn.cs: we need to test equality in the face of
3662         possible null values (as is the case with the default NullValue).
3663         This patch keeps us from crashing in that case.
3664
3665 2006-09-29  Jackson Harper  <jackson@ximian.com>
3666
3667         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
3668         here, since it will get called for every node collection in the
3669         tree. This is now done in the treeview once the sorting is
3670         finished.
3671         * TreeView.cs: Recalculate the visible order, and update the
3672         scrollbars after sorting, set the top nope to the root so that the
3673         recalc actually works.
3674
3675 2006-09-29  Chris Toshok  <toshok@ximian.com>
3676
3677         * LinkLabel.cs: more handling of the default link collection in
3678         the face of LinkArea manipulation.  The default link collection
3679         contains 1 element (start=0,length=-1).  If the user sets LinkArea
3680         to anything and the links collection is the default, clear it.
3681         Then only add the link if its nonempty.  Fixes #79518.
3682
3683 2006-09-29  Chris Toshok  <toshok@ximian.com>
3684
3685         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
3686         piece correctly when we hit a '\n'.  Fixes #79517.
3687
3688 2006-09-29  Chris Toshok  <toshok@ximian.com>
3689
3690         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
3691         change the binding of gdk_init_check to take two IntPtr's, and
3692         pass IntPtr.Zero for both of them.  Fixes #79520.
3693
3694 2006-09-29  Mike Kestner  <mkestner@novell.com>
3695
3696         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
3697         [Fixes #78779]
3698
3699 2006-09-28  Jackson Harper  <jackson@ximian.com>
3700
3701         * XplatUIX11.cs: When translating NC messages make sure we go from
3702         whole window to screen, not client window to screen.
3703         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
3704         method doesn't exist
3705         - Skip over controls that aren't forms when arranging.
3706
3707 2006-09-28  Jackson Harper  <jackson@ximian.com>
3708
3709         * XplatUIWin32.cs: Clip the rect to the parent window.
3710         * XplatUIStructs.cs: Add clipping modes struct.
3711         * InternalWindowManager.cs: New private method that factors title
3712         bar heights in when calculating the pos of an NC mouse message.
3713         - Use SendMessage to force a paint when the form's size is changed
3714         instead of painting the decorations immediately.
3715         - Don't let the NC button click messages get to DefWndProc,
3716         because they will attempt to handle windowing themself, and this
3717         messes up z-order (it will put them in front of the scrollbars).
3718         * XplatUIX11.cs: Make sure that we don't reset window managers if
3719         we already have one (ie the window is an MDI window).
3720
3721 2006-09-28  Chris Toshok  <toshok@ximian.com>
3722
3723         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
3724         menu code really needs going over.
3725
3726 2006-09-27  Chris Toshok  <toshok@ximian.com>
3727
3728         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
3729         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
3730         window is maximizable.  So, we need to make sure that even if we
3731         clear the border/wm frame of those functions, they're still
3732         available (basically, we remove the decoration without removing
3733         the function).  Half the fix for #79338.
3734
3735 2006-09-27  Chris Toshok  <toshok@ximian.com>
3736
3737         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
3738         Fixes bug #79515.
3739
3740 2006-09-27  Chris Toshok  <toshok@ximian.com>
3741
3742         * Splitter.cs: reorder things a bit so that we don't actually
3743         draw/move the splitter until after calling OnSplitterMoving.  This
3744         lets users cancel/disallow the movement by explicitly setting
3745         event.SplitX/SplitY.  Fixes #79372.
3746
3747 2006-09-27  Jackson Harper  <jackson@ximian.com>
3748
3749         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
3750         because it is most likely on a window being destroyed, and that
3751         will give us an X11 error.
3752
3753 2006-09-27  Chris Toshok  <toshok@ximian.com>
3754
3755         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
3756         the dropdown button now toggles between showing and hiding the
3757         dropdown.  Also, get rid of dropdown_form_showing and just use
3758         dropdown_form.Visible.  We still don't do a grab, but I'll leave
3759         that part to someone who has handled Capture-fu before.
3760
3761 2006-09-27  Chris Toshok  <toshok@ximian.com>
3762
3763         * DataGrid.cs: return false if alt isn't pressed when '0' is
3764         pressed.  this keeps the '0' key from being swallowed, and fixes
3765         bug #79350.
3766
3767 2006-09-27  Chris Toshok  <toshok@ximian.com>
3768
3769         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
3770         Calling Refresh (in response to a scrollbar event) screws up the
3771         scrollbar painting.  Fixes bug #78923.
3772
3773 2006-09-27  Chris Toshok  <toshok@ximian.com>
3774
3775         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
3776         then insert into hashtable" blocks threadsafe.
3777
3778 2006-09-27  Chris Toshok  <toshok@ximian.com>
3779
3780         * MessageBox.cs (CreateParams): the styles should be |'ed with our
3781         baseclass's, since otherwise the
3782         ControlBox/MinimizeBox/MaximizeBox assignments above have no
3783         effect.  This gets the close button back in messageboxes.
3784
3785 2006-09-27  Chris Toshok  <toshok@ximian.com>
3786
3787         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
3788         flag, not just != 0.  this makes flags that are actually multiple
3789         bits (like WS_CAPTION) work.  fixes bug #79508.
3790
3791 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
3792
3793         * PageSetupDialog.cs: add support for getting and settings the 
3794         paper size, source and orientation.
3795
3796 2006-09-26  Chris Toshok  <toshok@ximian.com>
3797
3798         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
3799         and caption == "", we need to remove the resize handles as well as
3800         the title bar.
3801
3802         * Control.cs (set_Text): turns out that setting Text on a form
3803         should change the WM styles on the window, since if ControlBox ==
3804         false, the only way to get a window border is to have a non-""
3805         Text property.  check winforms/forms/text.cs for an example.  so,
3806         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
3807         update both window styles and title.  This fixes a lot of dialogs
3808         (including the preferences dialog in MonoCalendar.)
3809
3810 2006-09-26  Chris Toshok  <toshok@ximian.com>
3811
3812         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
3813         control isn't a Form), call Win32ShowWindow to hide the window,
3814         but don't update the control Visible property.  When we reparent
3815         back to a parent control, call SetVisible in order for the
3816         window's visibility to be reinstated.
3817
3818         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
3819         the FosterParent.
3820
3821         * Control.cs (ControlCollection.Remove): remove that value.Hide()
3822         call for good, since it breaks MonoCalendar (and other things I'm
3823         sure.) Also, set all_controls to null *after* the owner calls,
3824         which end up regenerating it.
3825         (ChangeParent): allow new_parent to be == null, passing
3826         IntPtr.Zero down to XplatUI.
3827
3828         this fixes #79294 the right way.
3829
3830 2006-09-26  Mike Kestner  <mkestner@novell.com>
3831
3832         * GridEntry.cs : internal SetParent method.
3833         * PropertyGrid.cs : attach to property changed on the proper
3834         target if we have a hierarchical grid with subobjects. Setup
3835         GridItem.Parent for hierarchical items.
3836         * PropertyGridView.cs : Set value on the correct target for
3837         hierarchical grids. [Fixes #78903]
3838
3839 2006-09-26  Chris Toshok  <toshok@ximian.com>
3840
3841         * Control.cs (ChildNeedsRecreating): this should return true if
3842         either we're being recreated and the child is in our list, or our
3843         parent is waiting for our recreation.
3844
3845 2006-09-26  Chris Toshok  <toshok@ximian.com>
3846
3847         * Control.cs (ControlCollection.Remove): reinstate the
3848         value.Hide() call as suggested in bug #79294.
3849
3850 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
3851
3852         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
3853         coordinates (versus a relative move).
3854
3855 2006-09-26  Chris Toshok  <toshok@ximian.com>
3856
3857         * Control.cs: rework child recreation a little bit.  It turns out
3858         that we race between the DestroyNotify the WM_DESTROY message.  If
3859         the parent gets its DestroyNotify before the child gets the
3860         WM_DESTROY message, the child ends up not recreating (since the
3861         parent finishes its recreation on DestroyNotify, and the child
3862         checks ParentIsRecreating.)
3863
3864         So, instead we store off a list of all the child controls which
3865         need to be recreated when the parent control starts to recreate
3866         itself.  Then, when child controls get their WM_DESTROY message we
3867         check to see if they're in the parent's pending recreation list,
3868         and if so, we recreate.  This removes all dependency on ordering
3869         from the code and fixes the initial MonoCalendar upgrade dialog.
3870         
3871 2006-09-26  Jackson Harper  <jackson@ximian.com>
3872
3873         * TextControl.cs: Use the Line to get the length of the line,
3874         since soft line breaks can change the end line.
3875
3876 2006-09-26  Chris Toshok  <toshok@ximian.com>
3877
3878         * Control.cs (ControlCollection.AddImplicit): don't add the
3879         control again if it's already in one of our lists.  This keeps us
3880         from adding controls over and over again for comboboxes when their
3881         handle gets recreated (as the combobox adds implicit controls in
3882         OnHandleCreated).  Fixes the X11 errors in bug #79480.
3883
3884 2006-09-26  Jackson Harper  <jackson@ximian.com>
3885
3886         * TextControl.cs: When deleting characters make sure that any
3887         orphaned zero lengthed tags get deleted.
3888         - Fix ToString for zero lengthed tags.
3889
3890 2006-09-25  Jackson Harper  <jackson@ximian.com>
3891
3892         * TextControl.cs: When getting a tag at the location there can be
3893         multiple tags at the same spot, these are 0-lengthed tags that
3894         appear when extra formatting has been stuck in a location.  We
3895         need to pull out the last of these 0 lengthed tags.
3896
3897 2006-09-25  Jackson Harper  <jackson@ximian.com>
3898
3899         * TextControl.cs: Fix print out in debug method.
3900         * TextBoxBase.cs: When text is set bail if we are setting to the
3901         previous value.
3902         
3903 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
3904
3905         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
3906           It is now possible to change the selected index in a FontXXXListBox
3907           with the up and down arrow keys from the FontXXXTextBoxes.
3908           Also, send the FontXXXTextBox mouse wheel event to the corresponding
3909           FontXXXListBoxes to match ms.
3910
3911 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
3912
3913         * SystemInformation.cs: Return a clone of the theme's MenuFont because
3914         anyone can dispose it, anytime. All other properties returns enums, 
3915         structs or basic types so they don't need such tricks.
3916
3917 2006-09-22  Jackson Harper  <jackson@ximian.com>
3918
3919         * XplatUI.cs:
3920         * XplatUIWin32.cs:
3921         * Clipboard.cs:
3922         * DataFormats.cs:
3923         * XplatUIOSX.cs:
3924         * XplatUIDriver.cs: Update interface to add a primary selection
3925         flag, so the driver can use the primary selection buffer if
3926         needed.
3927         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
3928
3929         * RichTextBox.cs: We need to supply the data object to paste now
3930         (so we can choose to supply CLIPBOARD or PRIMARY).
3931         * TextBoxBase.cs: Supply data object to paste (see above).
3932         - Middle click uses the primary selection data object.
3933         
3934 2006-09-21  Chris Toshok  <toshok@ximian.com>
3935
3936         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
3937         of SetWMStyles.  It's still a rat's nest and is largely
3938         order-dependent which I dislike immensely.  This also fixes the X
3939         button disappearing from toplevel forms.
3940
3941 2006-09-21  Mike Kestner <mkestner@novell.com>
3942
3943         * ListBox.cs: move Jordi's click/dblclick raising code to the
3944         mouse up handler.
3945
3946 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
3947
3948         * ListBox.cs: Fixes 79450
3949
3950 2006-09-21  Mike Kestner <mkestner@novell.com>
3951
3952         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
3953         to deal with people updating the TreeNodeCollection after the tree
3954         is disposed.  "Fixes" 79330.
3955
3956 2006-09-20  Jackson Harper <jackson@ximian.com>
3957
3958         * TextControl.cs: Push the cursor record onto the undo stack
3959         before the delete action. This fixes 78651.
3960
3961 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
3962
3963         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
3964         CreateParams. Fixes 79329.
3965
3966 2006-09-19  Chris Toshok  <toshok@ximian.com>
3967
3968         * XplatUIX11.cs: a couple of blanket code massage passes to clean
3969         things up a bit.  First, get rid of the NetAtoms array (and the NA
3970         enum), and just embed the atoms as static fields.  Also, add a
3971         couple of functions (StyleSet and ExStyleSet) to clean up all the
3972         bitmask testing of styles.
3973
3974         * X11Structs.cs: remove the NA enum, not needed anymore.
3975         
3976 2006-09-19  Chris Toshok  <toshok@ximian.com>
3977
3978         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
3979         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
3980         added cleanup to get MessageBox titles appearing again, which were
3981         broken by my earlier fix for caption-less/ControlBox-less windows.
3982
3983 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
3984
3985         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
3986           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
3987           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
3988           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
3989           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
3990           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
3991           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
3992           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
3993           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
3994           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
3995           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
3996             Inital import.
3997         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
3998           ToolStripButton.cs: Stubs needed for above.
3999         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
4000
4001 2006-09-15  Chris Toshok  <toshok@ximian.com>
4002
4003         * XplatUIX11.cs:
4004         - make the MessageQueues hashtable Synchronized.
4005         
4006         - SendMessage: if the Hwnd is owned by a different thread, use the
4007         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
4008         thread.  Fixes bug #79201.
4009
4010 2006-09-15  Chris Toshok  <toshok@ximian.com>
4011
4012         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
4013         ControlBox == false, we disallow maximize/minimize/close.  If the
4014         form Caption is "" we also disallow move (and get rid of the Title
4015         decoration).  Unfortunately, regardless of how things are set,
4016         we're stuck with the Title and WM menu.
4017
4018 2006-09-15  Chris Toshok  <toshok@ximian.com>
4019
4020         * Application.cs: add locking around the static message_filters
4021         ArrayList, part of #79196.
4022
4023 2006-09-15  Chris Toshok  <toshok@ximian.com>
4024
4025         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
4026         Form.ControlBox == false, the window has no titlebar nor resize
4027         handles.  fixes bug #79368.
4028
4029 2006-09-15  Chris Toshok  <toshok@ximian.com>
4030
4031         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
4032         >= 0.  Fixes bug #79370.
4033
4034 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
4035         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
4036         * Control.cs:
4037             Add properties: LayoutEngine, Margin, DefaultMargin.
4038             Add method: GetPreferredSize.
4039             Move layout logic from PerformLayout to layout engines. 
4040
4041 2006-09-13  Chris Toshok  <toshok@ximian.com>
4042
4043         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
4044         fix for #79326 broke #78718, so this change addresses that.
4045
4046         - in SendWMDestroyMessages remove the call to
4047         CleanupCachedWindows, since we might be recreating the control and
4048         need to maintain the references to right Hwnd handles.  Also, set
4049         the zombie flag to true for each of the children in the hierarchy
4050         instead of calling hwnd.Dispose.  This will cause GetMessage to
4051         ignore all events for the window except for DestroyNotify.
4052
4053         - In GetMessage, ignore messages except for DestroyNotify for
4054         zombie hwnds.
4055         
4056         * Control.cs: revert the is_recreating fix from the last
4057         ChangeLog.  It's definitely "right", but it breaks switching from
4058         an MDI form to a non-MDI form.  Will need to revisit that.
4059
4060         * Hwnd.cs: add a zombie flag, which means "the
4061         client_window/whole_window handles are invalid, but we're waiting
4062         for the DestroyNotify event to come in for them".  Set the flag to
4063         false explicitly if setting WholeWindow/ClientWindow, and also
4064         when Disposing.
4065         
4066 2006-09-13  Chris Toshok  <toshok@ximian.com>
4067
4068         * XplatUIX11.cs: rework window destruction slightly.
4069
4070         - when destroying the windows associated with a control, we don't
4071         need 2 separate XDestroyWindow calls.  Just the one for the
4072         whole_window (or for client_window if whole_window is somehow
4073         IntPtr.Zero -- can this happen?) is enough.
4074
4075         - reworked SendWMDestroyMessages slightly, so we always dispose
4076         the child control hwnd's after sending the messages.
4077         
4078         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
4079         the two places it was used (one was even using hwnd.Handle and the
4080         other hwnd.client_window.  ugh), adding another call in
4081         SendWMDestroyMessages.  We need this new call because now the
4082         DestroyNotify events in the queue will be ignored for the child
4083         controls (as their hwnd's were disposed, and the window id's
4084         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
4085
4086         - this fixes bug #79326.
4087
4088 2006-09-13  Chris Toshok  <toshok@ximian.com>
4089
4090         * Control.cs: don't always set is_recreating to false at the end
4091         of RecreateHandle, since sometimes we're not done (and won't be
4092         until WndProc handles the WM_DESTROY message).  Also, set
4093         is_recreating to false in the WM_DESTROY handling code.  Part of
4094         the fix for bug #79326.
4095
4096 2006-09-13  Miguel de Icaza  <miguel@novell.com>
4097
4098         * X11DesktopColors.cs: Start the droppage of debugging messages.
4099
4100         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
4101
4102 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
4103
4104         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
4105
4106 2006-09-12  Chris Toshok  <toshok@ximian.com>
4107
4108         * DataGrid.cs (get_ListManager): if the list_manager is null, try
4109         to create it using SetDataSource.  Fixes bug #79151.
4110
4111 2006-09-11  Chris Toshok  <toshok@ximian.com>
4112
4113         * XEventQueue.cs: add a DispatchIdle property.
4114
4115         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
4116         either the queue is null, or the queue has DispatchIdle set to
4117         true.
4118         (DoEvents): set queue.DispatchIdle to false around the
4119         peek/translate/dispatch message loop in this method.  This keeps
4120         Application.Doevents from emitting idle events.  Part of the fix
4121         for #78823.
4122
4123 2006-09-11  Chris Toshok  <toshok@ximian.com>
4124
4125         * DataGrid.cs (set_DataSource): make this work for both the
4126         winforms/datagrid test and ReportBuilder.  It seems as though when
4127         we've created a ListManager (or maybe it's if we have a
4128         BindingContext?), when we set the DataSource it clears the
4129         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
4130         #79333.
4131
4132 2006-09-11  Chris Toshok  <toshok@ximian.com>
4133
4134         * XplatUIX11.cs: deal with queue being null, which happens in all
4135         the Clipboard functions.  Fixes one of the two problems mentioned
4136         in #78612.
4137
4138 2006-09-11  Chris Toshok  <toshok@ximian.com>
4139
4140         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
4141         button on various spots (including outside the menu) works closer
4142         to MS, and doesn't crash.  Fixes #79343.
4143
4144 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
4145
4146         * ListView.cs: Do not initialize item_sorter in init. To match MS,
4147         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
4148         and the internal comparer is set. When a new ListViewItemSorter is set,
4149         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
4150         was specified. No further processing is necessary if SortOrder is set
4151         to it's current value. If Sorting is modified to None, and View is
4152         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
4153         (either custom or our internal ItemComparer) to null, on 1.0 profile
4154         only set item_sorter to null if its our internal IComparer. If Sorting
4155         is modified to Ascending or Descending, then use our internal IComparer
4156         if none is set, and if the current IComparer is our internal one then:
4157         on 2.0 profile always replace it with one for new Sorting, and on 1.0
4158         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
4159         Enum.IsDefined to verify whether a valid View value is specified in
4160         its setter. Automatically sort listview items when listview is
4161         created. In Sort, do nothing if ListView is not yet created, or if
4162         no item_sorter is set (no Sorting was set, Sorting was explicitly set
4163         to None or ListViewItemSorter was set to null). Added Sort overload
4164         taking a bool to indicate whether the ListView should be redrawn when
4165         items are sorted (we use this in ListViewItemCollection to avoid double
4166         redraws). Modified our internal IComparer to take the sort order into
4167         account. In Add and AddRange methods of ListViewItemCollection, also
4168         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
4169         view), but use overload with noredraw option to avoid double redraw.
4170         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
4171         true when View is Tile, and do the same when attempting to set View to
4172         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
4173         for selected/checked indices, as it involves overhead when sorting is
4174         done while these collections are not used all that often. Instead
4175         we'll build the indices on demand. Modified IList implementation of
4176         CheckedIndexCollection to use public methods if object is int.
4177         Modified CheckedListViewItemCollection to hide checked items if
4178         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
4179         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
4180         IList implementation in SelectedIndexCollection to use public methods
4181         if object is int. Modified SelectedListViewItemCollection to hide
4182         selected items if listview is not yet created.
4183         * ListViewItem.cs: CheckedIndices list no longer needs to be
4184         maintained separately (see ListView changes). Also clone font, fixes
4185         test failure.
4186
4187 2006-09-11  Mike Kestner  <mkestner@novell.com>
4188
4189         * ComboBox.cs: if we are updating the contents of the currently
4190         selected index, refresh the control or the textbox selection.
4191         [Fixes #79066]
4192
4193 2006-09-11  Mike Kestner  <mkestner@novell.com>
4194
4195         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
4196         the 'specified' logic has been moved there.  This seems like a bug 
4197         in Control.cs, since our current SetBoundsCore completely ignores 
4198         the specified parameter.  Peter's commit seems to indicate that is 
4199         the way the MS control implementation works.  [Fixes #79325]
4200
4201 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
4202
4203         * XplatUI.cs: Set default_class_name to be composed
4204         of current domain id. This allows MWF to be loaded in multiple
4205         domains on Win32.
4206
4207 2006-09-09  Miguel de Icaza  <miguel@novell.com>
4208
4209         * X11Keyboard.cs: If we are unable to obtain the input method, do
4210         not call CreateXic to create the input context.   Should fix
4211         #78944/79276.
4212
4213 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
4214
4215         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
4216           Simplified gnome support by adding more pinvokes to get the
4217           icon for a file or mime type.
4218
4219 2006-09-08  Jackson Harper  <jackson@ximian.com>
4220
4221         * MenuAPI.cs: Deslect popup context menu items before closing the
4222         window, so that you don't see the previously selected item
4223         selected when you reopen the menu.
4224         * TextControl.cs: Update the cursor position even if we don't have
4225         focus.  This fixes typing in things like the ComboBox.  I'm not
4226         totally sure we should always set the visibility if we don't have
4227         focus, but couldn't find any corner cases where the cursor showed
4228         up when it shouldn't.
4229
4230 2006-09-08  Chris Toshok  <toshok@ximian.com>
4231
4232         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
4233         our arrays are length 256.  & 0xff before indexing.  Fixes the
4234         crash in bug #78077.
4235         
4236 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4237
4238         * ThemeWin32Classic.cs: 
4239         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
4240         is true. Handle that check box too.
4241
4242 2006-09-07  Chris Toshok  <toshok@ximian.com>
4243
4244         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
4245         79244.
4246
4247 2006-09-07  Chris Toshok  <toshok@ximian.com>
4248
4249         * Control.cs: in set_BackColor only do the work if
4250         background_color != value.
4251
4252         * XplatUIX11.cs: move the clearing of invalid areas (both client
4253         and nc) to the same block of code where we set (nc_)expose_pending
4254         to false.  That is, move it from PaintEventEnd to PaintEventStart,
4255         so things that cause invalidates from within OnPaint will trigger
4256         another call to OnPaint.  Fixes bug #79262.
4257
4258 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
4259
4260         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
4261         * FileDialog.cs: Fix typo
4262
4263 2006-09-07  Jackson Harper  <jackson@ximian.com>
4264
4265         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
4266         for tab pages if they have any.
4267
4268 2006-09-06  Mike Kestner  <mkestner@novell.com>
4269
4270         * Splitter.cs: use the "current" rect when finishing drag handle
4271         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
4272
4273 2006-09-06  Mike Kestner  <mkestner@novell.com>
4274
4275         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
4276         support offset splitters. [Fixes #79298]
4277
4278 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
4279
4280         * Mime.cs: Fixed a bug that could override the global mime type
4281           result.
4282
4283 2006-09-05  Jackson Harper  <jackson@ximian.com>
4284
4285         * TabControl.cs: Better calculation method for setting the slider
4286         pos. Prevents crashes on really wide tabs.
4287         - Draw Image on tab pages if an image list is used.
4288
4289 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4290
4291         * MonthCalendar.cs: When Font changes, the Size should be
4292         updated to fit the new font's space requirements.
4293
4294 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
4295
4296         * ListBox.cs: If the items are cleared with Items.Clear set
4297           top_index to 0.
4298
4299 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4300
4301         * MonthCalendar.cs: Handle arrow keys as input keys. Also
4302         fire DateChanged event instead of DateSelected event when
4303         the date was changed by keyboard interaction.
4304
4305 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4306
4307         * DateTimePicker.cs: Handle DateChanged for the associated
4308         month_calendar control, and set month_calendar.Font from 
4309         OnFontChanged method, as well as resize the height of the
4310         control when needed. Make PreferredHeight proportional.
4311
4312 2006-09-01  Chris Toshok  <toshok@ximian.com>
4313
4314         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
4315         properties.
4316
4317         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
4318
4319 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
4320
4321         * FileDialog.cs: Set ClientSize instead of window size, to allow space
4322           for decorations (Fixes #79219)
4323
4324 2006-09-01  Mike Kestner  <mkestner@novell.com>
4325
4326         * ComboBox.cs: first stab at sorting plus some selection handling
4327         fixes to bring us more in line with MS behavior.  Also switches back
4328         to index based selection.  Alternative patches for index-based 
4329         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
4330         and latency@gmx.de on bug 78848.  I assume they were similar to this
4331         code I've had simmering in my tree forever.
4332         [Fixes #78848]
4333
4334 2006-09-01  Chris Toshok  <toshok@ximian.com>
4335
4336         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
4337         when setting list position guard against ending up with a -1 index
4338         (the other part of the fix for #78812).  Should probably make sure
4339         we don't need the analogous fix in the ItemDeleted case.
4340
4341         * DataGrid.cs:
4342         - in SetDataSource, work around the fact that the way
4343         OnBindingContextChanged is invoked will cause us to re-enter this
4344         method.  I'll remove the hack once I investigate
4345         OnBindingContextChanged.
4346
4347         - fix the logic in set_DataSource and set_DataMember (basically
4348         what to do if the other of the two is null.)
4349         
4350         - in OnListManagerItemChanged, we need to take into account the
4351         edit row when deciding whether or not to call RecreateDataGridRows
4352         (part of the fix for #78812).
4353
4354 2006-09-01  Jackson Harper  <jackson@ximian.com>
4355
4356         * Splitter.cs: Don't do anything if there is no control to affect
4357         (prevents us from crashing in weird tet cases).
4358         * TreeView.cs: Bounding box for the mouse movement reverting
4359         focus/selection back to previously selected node.  This matches
4360         MS, and makes the tree a lot more useable.
4361         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
4362         use clipping so they are not drawn.  This fixes when the control
4363         is set to have a transparent background, or if it was over an
4364         image.
4365
4366 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
4367
4368         * MimeIcon.cs: Improved handling for reading default icons when
4369           using gnome (2.16 made it necessary). Check and read svg icons
4370           first, then 48x48 and then 32x32 icons.
4371
4372 2006-08-31  Chris Toshok  <toshok@ximian.com>
4373
4374         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
4375         visible.
4376
4377         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
4378         ProcessKeyPreview.  Fixes part of #77806.
4379
4380         * DataGrid.cs: big patch.
4381
4382         - revert the queueing up of DataSource/DataMember if inside
4383         BeginInit/EndInit calls.  That's not the way the datagrid achieves
4384         its delayed databinding.  Instead, call SetDataSource in
4385         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
4386         #78811.
4387
4388         - Also, it wasn't mentioned in #78811, but the test case exhibits
4389         behavior that was lacking in our datagrid implementation - Columns
4390         that have mapping names that don't exist in the datasource's
4391         properties aren't shown.  Yuck.  To fix this I added the bound
4392         field to the column style, and basically any calculation to figure
4393         out anything about columns uses a loop to find the bound columns.
4394         still need to investigate if I can cache an array of the bound
4395         columns or if the indices must be the same.
4396
4397         - When setting CurrentCell, we no longer abort if the cell being
4398         edited was in the add row.  This fixes the other part of #77806.
4399
4400         - The new code also fixes #78807.
4401         
4402         * ThemeWin32Classic.cs: perpetrate the same disgusting
4403         column.bound field hack, and only render bound fields.
4404
4405 2006-08-31  Chris Toshok  <toshok@ximian.com>
4406
4407         * DataGridColumnStyle.cs: add bound field.  this field is true if
4408         the datasource has a property corresponding to the mapping name.
4409
4410         * DataGridTableStyle.cs: set the bound field on the column styles
4411         depending on whether or not we have a column for that property.
4412
4413 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
4414
4415         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
4416           splitter control (fixes #79228)
4417
4418 2006-08-31  Chris Toshok  <toshok@ximian.com>
4419
4420         * DataGridColumnStyle.cs: we need to delay the assignment of
4421         property descriptor until the last possible moment due to the lazy
4422         databinding stuff in the datagrid.  Also, fix the exceptions
4423         thrown by CheckValidDataSource to match MS.
4424
4425 2006-08-31  Jackson Harper  <jackson@ximian.com>
4426
4427         * Form.cs: When activated select the active control, if there is
4428         no active control, we select the first control.
4429         * XplatUIX11.cs: If there is no focus control when we get a
4430         FocusIn event, find the toplevel form and activate it.  This
4431         occurs when you popup a window, it becomes the focus window, then
4432         you close that window, giving focus back to the main window.
4433
4434 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4435
4436         * MonthCalendar.cs: 
4437         * ThemeWin32Classic.cs: Cache Font in bold style, as well
4438         as StringFormat with Center alignments in MonthCalendar,
4439         instead of creating new ones when drawing the control. 
4440         Also, draw the month name in bold style.
4441
4442 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4443
4444         * Control.cs:
4445           - PerformLayout(): It would seem MS performs the fill even if the 
4446             control is not visible (part of #79218 fix)
4447           - ResetBackColor(): Use the setter to reset the color, to allow
4448             overriders to catch the change.
4449         * Form.cs:
4450           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
4451           - CreateHandle(): dito (part of $79218 fix)
4452           - Don't set an icon if we have a dialog
4453         * ScrollableControl.cs:
4454           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
4455           - ScrollIntoView(): No need to scroll if control is already visible
4456             (resolves fixme and fixes #79218)
4457
4458 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4459
4460         * MonthCalendar.cs: Change proportions in SingleMonthSize
4461         to match the aspect of the original control.
4462
4463 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
4464
4465         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
4466           get updated when they get maximized.
4467
4468 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
4469
4470         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
4471
4472 2006-08-29  Chris Toshok  <toshok@ximian.com>
4473
4474         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
4475
4476 2006-08-29  Jackson Harper  <jackson@ximian.com>
4477
4478         * TreeView.cs: Need to track selected node and highlighted node,
4479         they aren't always the same thing, when the mouse is down on a
4480         node it is hilighted, but not selected yet.
4481         - Do the HideSelection stuff right
4482         - Need to focus on rbutton mouse down. And redraw selection when
4483         right click is mouse upped.
4484
4485 2006-08-29  Mike Kestner  <mkestner@novell.com>
4486
4487         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
4488         when SubItems.Count < Columns.Count.  [Fixes #79167]
4489
4490 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
4491
4492         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
4493
4494 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
4495
4496         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
4497           from X. Only send based on ConfigureNotify if we don't have the
4498           correct location in hwnd (if the window manager moved us)
4499
4500 2006-08-28  Mike Kestner  <mkestner@novell.com>
4501
4502         * ListView.cs: remove a TODO. 
4503         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
4504         [Fixes ListView part of #79166]
4505
4506 2006-08-28  Mike Kestner  <mkestner@novell.com>
4507
4508         * ListView.cs: move wheel handler to parent since it is focused
4509         instead of the item_control now.  [Fixes #79177]
4510
4511 2006-08-28  Mike Kestner  <mkestner@novell.com>
4512
4513         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
4514         when the control is focused. [Fixes #79171]
4515
4516 2006-08-28  Mike Kestner  <mkestner@novell.com>
4517
4518         * ListView.cs: size the item and header controls for empty and
4519         unscrollable views.
4520         * ThemeWin32Classic.cs: draw disabled backgrounds.
4521         [Fixes #79187]
4522
4523 2006-08-28  Chris Toshok  <toshok@ximian.com>
4524
4525         * Form.cs: remove unused "active_form" static field.
4526
4527         * Hwnd.cs: lock around accesses to static windows collection.
4528
4529         * Application.cs: lock threads in Exit ().
4530
4531 2006-08-28  Chris Toshok  <toshok@ximian.com>
4532
4533         * NativeWindow.cs: lock around accesses to window_collection.
4534         
4535 2006-08-28  Chris Toshok  <toshok@ximian.com>
4536
4537         * Control.cs: err, fix this the right way, by locking on controls
4538         when using it.  not by making it synchronized.
4539
4540 2006-08-28  Chris Toshok  <toshok@ximian.com>
4541
4542         * Control.cs: make the static "controls" field synchronized, as it
4543         gets updated from multiple threads.
4544
4545 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4546
4547         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
4548           Prevent other threads from exiting when calling thread sets quit state.
4549         * XEventQueue.cs: Added PostQuitState property
4550
4551 2006-08-27  Chris Toshok  <toshok@ximian.com>
4552
4553         * AsyncMethodData.cs: add a slot for the window handle.
4554
4555         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
4556         window (the destination control's window, not the foster window).
4557
4558         * Control.cs (BeginInvokeInternal): store the window's handle in
4559         the AsyncMethodData.
4560         
4561
4562 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4563
4564         * XplatUIX11.cs:
4565           - PostQuitMessage: Removed resetting S.D display handle, we might have
4566             another loop started after calling PostQuitMessage (Fixes #79119)
4567           - Created destructor to reset S.D handle
4568
4569 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
4570
4571         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
4572
4573 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4574
4575         * TextControl.cs (Insert): Update the caret position even if we don't
4576           have a handle yet, just don't call the driver in that case.
4577         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
4578           to the end of the new selection text (Fixes #79184)
4579
4580 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4581
4582         * Form.cs (Activate): Only activate if the handle is created)
4583         * Control.c:
4584           - Mark window as invisible when it's disposed
4585           - Check if window handle is created when setting window visible, 
4586             instead of relying just on the is_created variable
4587           - Check if object is disposed when creating the control (Fixes #79155)
4588
4589 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4590
4591         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
4592           when allowing layout again. Otherwise we re-generate the anchoring 
4593           distance to the border again and actually alter what the user wanted
4594           This is ugly, it'd be better if we used DisplayRectangle instead of
4595           ClientRectangle for Control.UpdateDistances, but that causes us to
4596           have other problems (initial anchoring positons would be wrong)
4597           (Fixes #78835)
4598
4599 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4600
4601         * Control.cs:
4602           - The size and location setters shouldn't go directly to 
4603             SetBoundsCore, but to SetBounds, which triggers layout on the
4604             parent, then calls SetBoundsCore. (Related to fix for #78835)
4605           - SetBounds: Moved actual location update code into this function
4606             from SetBoundsCore, to match MS. Added call to PerformLayout if
4607             we have a parent (to trigger resizing of anchored parents if the 
4608             child size has changed (see testcase for #78835) 
4609         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
4610           new control code
4611         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
4612
4613 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4614
4615         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
4616           System.Drawing when a toplevel window gets closed; there might
4617           be other toplevel windows belonging to the same app (Fixes #78052)
4618
4619 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
4620
4621         * FileDialog.cs: After reading FileDialog settings from mwf_config
4622           use Desktop prefix only if a real folder doesn't exist anymore.
4623         * FontDialog.cs: Added char sets.
4624           It is now possible to select the font, size or style with the
4625           textboxes.
4626
4627 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
4628
4629         * PrintPreviewDialog.cs: Use assembly name constants.
4630
4631 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4632
4633         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
4634           scrollbar from whacking it's buttons)
4635
4636 2006-08-24  Chris Toshok  <toshok@ximian.com>
4637
4638         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
4639         in this patch (aggregating setting Left/Top/Width/Height to
4640         setting Bounds on the scrollbars), but the crux of the fix is in
4641         Recalculate, where we scroll by the remaining scroll_position if
4642         we're hiding a scrollbar.  The 2*$5 reward in the comment is
4643         serious.
4644
4645 2006-08-24  Jackson Harper  <jackson@ximian.com>
4646
4647         * MdiClient.cs:
4648         * MdiWindowManager.cs: If the form is made a non-mdi window we
4649         need to remove the form closed event so that closing forms works
4650         correctly.
4651
4652 2006-08-24  Jackson Harper  <jackson@ximian.com>
4653
4654         * Control.cs: Make IsRecreating internal so that the driver can
4655         check it
4656         - Temporarily remove the Hide when controls are removed, its
4657         making a whole bunch of things not work because visibility isn't
4658         getting reset elsewhere correctly
4659         * Form.cs: Need to do a full handle recreation when the mdi parent
4660         is set.
4661         * XplatUIX11.cs: If we are recreating handles don't dispose the
4662         HWNDs.  What was happening is the handles were being recreated in
4663         SendWMDestroyMessages, but then flow continued on in that method
4664         and destroyed the new handles.
4665
4666 2006-08-23  Jackson Harper  <jackson@ximian.com>
4667
4668         * Form.cs: MdiClient is always at the back of the bus
4669         * Control.cs: When the order of items in the collection is changed
4670         we need to reset the all_controls array
4671         - do the same sorta setup thats done when adding a control when a
4672         control is set on the collection.
4673
4674 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4675
4676         * TextBoxBase.cs (get_Text): Return an empty array if our document
4677           is empty (fixes #79052)
4678
4679 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4680
4681         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
4682           on WM_SYSCHAR messages (fixes #79053)
4683
4684 2006-08-23  Chris Toshok  <toshok@ximian.com>
4685
4686         * DataGrid.cs: fix flickering when scrolling vertically.
4687
4688 2006-08-23  Chris Toshok  <toshok@ximian.com>
4689
4690         * DataGrid.cs (EndEdit): only invalidate the row header when we
4691         need to.
4692
4693 2006-08-23  Chris Toshok  <toshok@ximian.com>
4694
4695         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
4696         methods.  fixes the flicker when scrolling around.
4697
4698 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4699
4700         * FileDialog.cs: Making sure the control is created before we get a 
4701           chance to use it with BeginInvoke (Fixes #79096)
4702
4703 2006-08-23  Chris Toshok  <toshok@ximian.com>
4704
4705         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
4706         width to use when painting the rows.
4707
4708 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4709
4710         * TextBoxBase.cs:
4711           - Throw ArgumentException if a negative value is passed to SelectionLength
4712           - Update the selection end if start is moved. end needs to be always
4713             after start. (Fixes #79095)
4714           - Track selection length; MS keeps the selection length even if start
4715             is changed; reset on all other operations affection selection
4716
4717 2006-08-22  Jackson Harper  <jackson@ximian.com>
4718
4719         * TreeView.cs: Make sure both scrollbars get displayed and sized
4720         correctly when the other bar is visible.
4721         - Use the original clip rectangle for checking if the area between
4722         the two scrollbars is visible, not the viewport adjusted clipping
4723         rectangle.
4724
4725 2006-08-22  Jackson Harper  <jackson@ximian.com>
4726
4727         * Binding.cs: We don't use IsBinding because it requires the
4728         control to be created, which really shouldn't be necessary just to
4729         set a property on the control.
4730
4731 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4732
4733         * ComboBox.cs: Some CB.ObjectCollection methods must throw
4734         ArgumentNullReferenceException when the argument is null.
4735
4736 2006-08-21  Jackson Harper  <jackson@ximian.com>
4737
4738         * Timer.cs: Track the thread that the timer is started in (NOT
4739         CREATED), this way messages for it will only be triggered on its
4740         queue.
4741         * XEventQueue.cs: Track the timers here, this makes timers per
4742         thread, like MS.
4743         * XplatUIX11.cs: The timers are moved to the XEventQueue.
4744
4745 2006-08-19  Chris Toshok  <toshok@ximian.com>
4746
4747         * XplatUIX11.cs: after further communication with pdb, we get the
4748         best of both worlds.  SetZOrder working for un-Mapped windows, and
4749         no X errors for un-mapped windows.
4750
4751 2006-08-19  Chris Toshok  <toshok@ximian.com>
4752
4753         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
4754         as it was causing pdn toolbars to not have the correct stacking.
4755
4756 2006-08-18  Mike Kestner  <mkestner@novell.com> 
4757
4758         * ListView.cs : guard against negative ClientArea.Width in scrollbar
4759         calculation.  Not sure why control should ever be setting a negative
4760         width though.  Fixes #78931.
4761
4762 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4763
4764         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
4765         null items in ObjectCollection class.
4766         * ListBox.cs.: Likewise.
4767
4768 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
4769
4770         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
4771           as the base method in ThemeWin32Classic should work fine.
4772           Fixed bug #78607.
4773
4774 2006-08-18  Jackson Harper  <jackson@ximian.com>
4775
4776         * Binding.cs: When validating if the value entered doesn't convert
4777         properly reset to the old value.
4778         * RadioButton.cs: Don't fire click when we get focus.
4779
4780 2006-08-18  Jackson Harper  <jackson@ximian.com>
4781
4782         * FileDialog.cs: Paint the selection on the directory combobox the
4783         same way as on MS. 
4784
4785 2006-08-17  Jackson Harper  <jackson@ximian.com>
4786
4787         * ErrorProvider.cs: Don't allow the error control to be selected.
4788         * Control.cs: Don't send the SetFocus messages, the control
4789         activation will do this, and if we do it blindly here validation
4790         does not work.
4791
4792 2006-08-17  Jackson Harper  <jackson@ximian.com>
4793
4794         * Control.cs:
4795         * ContainerControl.cs: Make validation events fire in the correct
4796         order.  TODO: For some reason the first validation event is not
4797         getting fired.
4798
4799 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4800
4801         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
4802
4803 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4804
4805         * ComboBox.cs : implement scroll wheel support for popped-down
4806         state. Fixes #78945. 
4807
4808 2006-08-17  Jackson Harper  <jackson@ximian.com>
4809
4810         * TreeView.cs: Specify treeview actions (old patch that didn't get
4811         committed for some reason).
4812         - Don't let the mouse wheel scroll us too far.  Just want to make
4813         the bottom node visible, not scroll it all the ways to the top.
4814
4815 2006-08-17  Jackson Harper  <jackson@ximian.com>
4816
4817         * XplatUIX11.cs: Mouse wheel events go to the focused window.
4818
4819 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4820
4821         * ComboBox.cs : don't do mouseover selection in simple mode.
4822
4823 2006-08-16  Jackson Harper  <jackson@ximian.com>
4824
4825         * Form.cs: Fire the closing events for all the mdi child windows
4826         when a window is closed.  If the cancel args are set to true, the
4827         main window still gets the event fired, but it doesn't not close.
4828         * MdiWindowManager.cs: Do this closing cleanup in a Closed
4829         handler, instead of when the button is clicked, so cancelling the
4830         close works correctly.
4831         * ComboBox.cs: Send the mouse down to the scrollbar.
4832
4833 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4834
4835         * ListBox.cs: When passing 'null' to SelectedItem,
4836         set SelectedIndex to -1, to unselect items. This is the
4837         observed behaviour in .Net.
4838
4839 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
4840
4841         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
4842           MS flags saying there won't be any. (fixes #78800)
4843         * Control.cs (HandleClick): Made virtual
4844
4845 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4846
4847         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
4848           cultures. Fixed bug #78399.
4849
4850 2006-08-16  Jackson Harper  <jackson@ximian.com>
4851
4852         * Form.cs: Use the MdiClients MdiChildren property to access
4853         MdiChildren instead of creating the array from the child controls.
4854         * MdiClient.cs: Maintain a separate array of the mdi children, so
4855         that insertion order is maintained when the Z-order is changed.
4856
4857 2006-08-16  Mike Kestner  <mkestner@novell.com> 
4858
4859         * ListView.cs : add an ItemComparer and default to it for sorting.
4860         Fixes #79076, but sorting needs a complete overhaul to be compat with
4861         MS.
4862
4863 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
4864
4865         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
4866
4867 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4868
4869         * Hwnd.cs (Mapped): Properly traverse the tree
4870
4871 2006-08-15  Chris Toshok  <toshok@ximian.com>
4872
4873         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
4874         pass manager.Current.GetType() to ParseData.  It has to be the
4875         property type.  So, hold off doing the ParseData until we're in
4876         SetPropertyValue where we know the type.  This fixes the crash in
4877         #78821 but the textbox is still empty.
4878
4879 2006-08-15  Chris Toshok  <toshok@ximian.com>
4880
4881         * DataGrid.cs:
4882         - when we're scrolling, only call Edit() again if the
4883         current cell is still unobscured. Fixes bug #78927.
4884         - when handling mousedown on a cell, ensure the cell is visible
4885         before calling Edit.
4886         - remove the properties from DataGridRow, and remove the
4887         DataGridParentRow class altogether.
4888         
4889
4890 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4891
4892         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
4893           fire OnTextChanged by ourselves. There's no point calling base,
4894           we don't set the base value anywhere else. Fixes #78773.
4895
4896 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4897
4898         * ListBox.cs: Call CollectionChanged when modifying
4899         an item from Items indexer, to update the actual items
4900         in the list box.
4901
4902 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4903
4904         * PrintDialog.cs: Small fixes for focus and a pair of checks,
4905         to match .Net behaviour.
4906
4907 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4908
4909         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
4910
4911 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
4912
4913         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
4914
4915 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4916
4917         * MessageBox.cs: Prevent potential NRE exception.
4918         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
4919
4920 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
4921
4922         * MessageBox.cs: Calculate the owner of a messagebox, also make
4923           it topmost. Fixes #78753
4924
4925 2006-08-14  Chris Toshok  <toshok@ximian.com>
4926
4927         * XplatUIX11.cs: A couple of fixes so that metacity will let us
4928         programmatically move windows.  first, set the PPosition hint as
4929         well as the USPosition hint.  Second include some code from pdb
4930         that sets the window type to NORMAL when we set the transient for
4931         hint.  This is because, in the absence of a window type, metacity
4932         thinks any window with TransientFor set is a dialog, and refuses
4933         to let us move it programmatically.  fascists.
4934
4935 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
4936
4937         * XplatUIX11.cs: When setting normal hints, take into consideration
4938           an different hints previously set so we don't delete them (fixes #78866)
4939
4940 2006-08-12  Chris Toshok  <toshok@ximian.com>
4941
4942         * ToolBarButton.cs: make Layout return a boolean, if something to
4943         do with the button's layout changed.
4944
4945         * ToolBar.cs:
4946         - add another parameter to Redraw, @force, which all existing
4947           calls set to true.
4948         - make the Layout function return a boolean which is true if the
4949           layout has actually changed.  Redraw now uses this (and @force)
4950           to determine when to invalidate.  At present the only place
4951           where @force can be false is the call from OnResize, when
4952           background_image == null.  So, resizing a toolbar when the
4953           layout doesn't change results in no drawing.
4954
4955 2006-08-12  Chris Toshok  <toshok@ximian.com>
4956
4957         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
4958         the VScrollBar and HScrollbar reversed.  oops.
4959
4960         * DataGrid.cs: fix the logic that assigns sizes to the implicit
4961         scrollbars.  we were assigning them twice (once in
4962         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
4963         therefore causing two scrollbar resizes (and redraws?) to happen
4964         per grid resize.
4965
4966 2006-08-12  Chris Toshok  <toshok@ximian.com>
4967
4968         * ToolBarButton.cs: redraw the entire button if the theme tells us
4969         to.
4970
4971         * Theme.cs: add ToolBarInvalidateEntireButton.
4972
4973         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
4974         buttons, just the border.
4975
4976         * ThemeNice.cs: redraw the entire toolbar button since we need to
4977         draw the highlight image.
4978
4979         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
4980         we need to redraw the entire button (not just the border).
4981
4982 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
4983
4984         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
4985           for vertical bars. Fixes the mismatches shown by #78513
4986
4987 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
4988
4989         * FileDialog.cs: If a saved/remembered path doesn't exist
4990           anymore, fall back to "Desktop".
4991
4992 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
4993
4994         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
4995           parent. It's apparently legal to not have one
4996         * XplatUIX11.cs:
4997           - SetZOrder: Don't try to set Z-Order on an unmapped window
4998           - CreateWindow: 0,0 are legal coordinates for a window. don't move
4999             it unless the coordinates are negative
5000
5001 2006-08-10  Mike Kestner  <mkestner@novell.com>
5002
5003         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
5004         when setting to null per msdn docs.  Fixes #78854.
5005
5006 2006-08-10  Chris Toshok  <toshok@ximian.com>
5007
5008         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
5009         flickering by setting a clip rectangle on the Graphics when we
5010         need to redraw just a particular menuitem.  Also, rename "OnClick"
5011         to "OnMouseDown" to reflect what it actually is.
5012         
5013         * Form.cs: track the OnMouseDown change.
5014
5015 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
5016
5017         * CommonDialog.cs: Properly inherit the CreateParams from the form
5018           and only change what we need. Fixes #78865
5019
5020 2006-08-10  Chris Toshok  <toshok@ximian.com>
5021
5022         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
5023         flickering in flat mode (and most of the flickering in general) by
5024         only invalidating the button border (and not the entire rectangle)
5025         when the state changes.  A couple of cases still flicker:
5026         ToggleButtons, and the dropdown arrow case when the user mouse
5027         ups.
5028
5029 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
5030
5031         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
5032           for german keyboards. Numlock state shouldn't affect the behaviour
5033           of the Del key. Fixes bug #78291.
5034
5035 2006-08-10  Chris Toshok  <toshok@ximian.com>
5036
5037         * ListControl.cs: remove the items.Clear line from BindDataItems,
5038         as this is the first thing done by both subclasses in their
5039         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
5040         passed -1, refresh the list.  This gets databinding working when
5041         the datasource is set on the list before the datasource is
5042         populated (as in wf-apps/ReportBuilder.)
5043
5044         * ComboBox.cs: remove the argument to BindDataItems.  This call
5045         should really go away, and be initiated by the ListControl code.
5046
5047         * ListBox.cs: same.
5048
5049 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5050
5051         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
5052           if no data is in the document when the control is displayed
5053
5054 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
5055
5056         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
5057           yes (fixes #78806)
5058         * TextControl.cs: 
5059           - PositionCaret: Allow positioning of caret but don't call methods 
5060             requiring a handle if the window isn't created yet
5061           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
5062           - owner_HandleCreated: Don't position the caret, just update it's 
5063             location. User might have already set a different position
5064
5065 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5066
5067         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
5068           windows. Screws up the returned coordinates for child windows. 
5069           Fixes #78825. I'm hoping this doesn't break something, since the
5070           code was explicitly put in 8 months ago, but no bug was attached.
5071           Menus still seem to work properly.
5072
5073 2006-08-08  Chris Toshok  <toshok@ximian.com>
5074
5075         * DataGrid.cs: make BeginInit/EndInit actually do what they're
5076         supposed to do - delay data binding until the EndInit call.  Also,
5077         make the table style collection's CollectionChangeAction.Refresh
5078         work properly.
5079
5080         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
5081         (with action = Refresh) when a consituent table's MappingName is
5082         changed.
5083
5084 2006-08-08  Chris Toshok  <toshok@ximian.com>
5085
5086         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
5087         Invalidate, since changing the text can change the size of the all
5088         toolbar buttons.
5089
5090 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5091
5092         * Form.cs (AddOwnedForm): Still need to add the form to our listif
5093           we don't have it yet
5094
5095 2006-08-08  Chris Toshok  <toshok@ximian.com>
5096
5097         * PrintControllerWithStatusDialog.cs: don't .Close() the status
5098         dialog, as this causes X errors later on, since we actually
5099         destroy the window.  Instead, .Hide() it.
5100
5101 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5102
5103         * ComboBox.cs: Added focus reflection for popup window
5104         * XplatUIX11.cs: 
5105           - Removed transient setting for non-app windows for now, not sure it
5106             was needed
5107           - Fixed logic checking if we have captions when deciding 
5108             override_redirect, WS_CAPTION is two bits and a 0 check was not
5109             sufficient
5110           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
5111             complicated
5112         * Form.cs: 
5113           - AddOwnedForm: Don't just add the form to the list, call the property
5114             to ensure the driver is informed about the ownership as well
5115           - CreateHandle: Set the TopMost status in the driver if we have an owner
5116         * XplatUI.cs: Fixed debug statement
5117
5118 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
5119         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5120           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
5121           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
5122           TrackBarRenderer.cs: Make constructor private.
5123         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
5124         * ProfessionalColorTable.cs: Make properties virtual.
5125
5126 2006-08-06  Duncan Mak  <duncan@novell.com>
5127
5128         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
5129         is not changing.
5130
5131 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5132         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5133           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
5134           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
5135           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
5136           Initial import of new 2.0 classes.
5137
5138 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5139         * Application.cs: Add 2.0 VisualStyles properties.
5140
5141 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5142         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
5143           XplatUIX11.cs: Create property to allow access to existing private
5144           variable "themes_enabled"
5145
5146 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5147
5148         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
5149         file size, as otherwise our class libraries fail using windows. Fixes
5150         bug #78759.
5151
5152 2006-08-04  Jackson Harper  <jackson@ximian.com>
5153
5154         * Form.cs:
5155         * XplatUIX11.cs: Move the toolwindow window manager creation into
5156         the X11 driver, this way on win32 we can let windows create/handle
5157         the toolwindows.
5158
5159 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5160
5161         * PrintDialog.cs: Remove some redundant checks, add some others,
5162         clean some code, and move the focus to the text boxes when the
5163         values are incorrect.
5164
5165 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
5166
5167         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
5168
5169 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5170
5171         * NumericUpDown.cs: Setting the Minimum and Maximum is now
5172           handled correctly. Fixes bug #79001.
5173
5174 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5175
5176         * PrintDialog.cs: The "Copies" numeric up down must have
5177         set the Minimum property to 1; only if the value is bigger
5178         than 1, activate "Collate" check box. This is the behaviour of .Net.
5179         Also modify the Document elements only if it is not null.
5180
5181 2006-08-03  Jackson Harper  <jackson@ximian.com>
5182
5183         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
5184         length. (We have a larger array then actual node count).
5185                 
5186 2006-08-03  Jackson Harper  <jackson@ximian.com>
5187
5188         * ComboBox.cs: Don't show selection by default.
5189         - The SelectAll isn't needed here, since the focus code should do
5190         that
5191         - DDL style lists to manual selection drawing, so when they
5192         get/lose focus they have to invalidate.
5193
5194 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
5195
5196         * TextBoxBase.cs: Don't always show all selections by default.
5197
5198 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
5199         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
5200           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
5201           Fixed various typos.
5202
5203 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5204
5205         * Control.cs: Removing the controls in a ControlCollection with
5206           Clear now hides the controls as expected. Fixes bug #78804. 
5207
5208 2006-08-03  Jackson Harper  <jackson@ximian.com>
5209
5210         * Control.cs: Revert previous focus patch, it breaks reflector.
5211
5212 2006-08-03  Jackson Harper  <jackson@ximian.com>
5213
5214         * ComboBox.cs: Cleanup selection and focus with the combobox.
5215         This also eliminates some duplicated keyboard code, since now
5216         everything is handled by the main class.
5217         - Make list selection work on mouse up instead of down, to match
5218         MS.
5219
5220 2006-08-02  Jackson Harper  <jackson@ximian.com>
5221
5222         * Control.cs: Setting focus needs to go through the whole
5223         selection mechanism.
5224
5225 2006-08-02  Chris Toshok  <toshok@ximian.com>
5226
5227         * PrintPreviewDialog.cs: change MinimumSize to use
5228         base.MinimumSize so it works.
5229
5230 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
5231
5232         * TextControl.cs:
5233           - UpdateCaret: Added sanity check in case caret isn't defined yet
5234           - Line.Delete: Now updating selection and caret markers if we're
5235             transfering a node (Properly fixes #78323)
5236           - SetSelectionEnd: Added sanity check
5237         * TextBoxBase.cs: Removed broken attempt to fix #78323
5238
5239 2006-08-01  Chris Toshok  <toshok@ximian.com>
5240
5241         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
5242         Close() call is handled in Form, not here.
5243
5244 2006-08-01  Chris Toshok  <toshok@ximian.com>
5245
5246         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
5247         layout/rendering.
5248
5249         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
5250         for sizes < 100% zoom.  The code now aggressively attempts to keep
5251         from calling document.Print (), and tries not to use the scaling
5252         g.DrawImage whenever possible (it still does if you scale to >
5253         100%, since usually that involves huge images).
5254
5255         * PrintPreviewControl.cs: hook up the close button.
5256
5257 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
5258         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
5259           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
5260           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
5261           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
5262           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
5263           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
5264           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
5265           Removed [Serializable] for 2.0 Event Handlers.
5266
5267 2006-07-31  Jackson Harper  <jackson@ximian.com>
5268
5269         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
5270         * TextControl.cs: Uncomment out the body of this method.
5271
5272 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
5273
5274         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
5275           standard cursors.
5276
5277 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5278
5279         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
5280           that embed TextBox and need selections visible even if textbox is not
5281           focused to enforce that behaviour.
5282         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
5283           selection drawing
5284
5285 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5286
5287         * TextControl.cs:
5288           - Added new SetSelectionStart/SetSelectionEnd overloads
5289           - Fixed viewport width assignment to be accurate
5290           - Adjusted alignment line shift calculations to allow cursor on right
5291             aligned lines to be always visible at the right border (like MS)
5292         * TextBoxBase.cs:
5293           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
5294           - TextBoxBase_SizeChanged: recalculating canvas on size changes
5295           - CalculateScrollBars: Use ViewPort size instead of window size, to
5296             properly consider space occupied by the border and scrollbars 
5297             (Fixes #78661)
5298           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
5299             calculations; no longer leaves artifacts
5300           - CaretMoved: Adjusted window scrolling to match MS and fixed several
5301             calculation bugs (Still missing right/center align calculations)
5302
5303 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
5304
5305         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
5306           use of both scroll rect and clip rect, as they do the same.
5307
5308 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5309
5310         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
5311           in the event handler (fixes #78912)
5312
5313 2006-07-31  Chris Toshok  <toshok@ximian.com>
5314
5315         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
5316         grid.ListManager.Count, since grid.ListManager might be null.
5317         This of course begs the question "why are we drawing rows for a
5318         grid with no list manager (and therefor no rows)?"  Fixes the
5319         crash in bug #78929.
5320
5321 2006-07-31  Chris Toshok  <toshok@ximian.com>
5322
5323         * RelatedPropertyManager.cs: Don't always chain up to the parent
5324         ctor.  instead, call SetDataSource if the parent's position is !=
5325         -1.  Fixes the crash in #78822.
5326
5327 2006-07-31  Chris Toshok  <toshok@ximian.com>
5328
5329         * DataGrid.cs (get_ListManager): use field instead of property
5330         accessors for datasource and datamember.
5331         (RowsCount): make internal again.
5332         (OnMouseDown): end edits before resizing columns/rows.
5333         (OnMouseUp): restart edits after resizing columns/rows.
5334
5335 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
5336
5337         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
5338           This fixes the situation where the last set cursor is displayed
5339           whenever the mouse is over scrollbars.
5340
5341 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5342
5343         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
5344         Document properties, as well as initial values.
5345
5346 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
5347
5348         * XplatUIWin32.cs (SetBorderStyle): Setting both border
5349           and ClientEdge results in a 3-pixel border, which is
5350           wrong.
5351
5352 2006-07-28  Jackson Harper  <jackson@ximian.com>
5353
5354         * TreeNodeCollection.cs: Fix the clear method.
5355         - Fix the Shrink also
5356
5357 2006-07-27  Jackson Harper  <jackson@ximian.com>
5358
5359         * TreeView.cs: Make sure the visible order is computed when we
5360         attempt to size the scrollbars (for trees that mess with the
5361         scrolling when they shouldn't.
5362         - Make sure to give the scrollbars valid values.
5363
5364 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5365
5366         * XplatUIX11.cs: Move motion compression code to where it
5367           has less performance impact
5368
5369 2006-07-26  Jackson Harper  <jackson@ximian.com>
5370
5371         * UpDownBase.cs: When the control is selected make the child
5372         controls non selectable, so that a click on them won't do a
5373         focus/unfocus cycle.
5374         - Don't give focus to the text box when the spinner is selected.
5375         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
5376
5377 2006-07-26  Chris Toshok  <toshok@ximian.com>
5378
5379         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
5380         satisfied with this solution.  If the bitmaps are small, we should
5381         just cache them in the PrintPreviewDialog and draw them here.
5382         Also, the layout is broken for the 2-up and 3-up cases.
5383
5384         * Theme.cs: add PrintPReviewControlPaint.
5385
5386         * PrintPreviewDialog.cs: first pass implementation.
5387
5388         * PrintPreviewControl.cs: first pass implementation.  No
5389         scrollbars yet.
5390
5391         * PrintDialog.cs: only validate fields if that particular portion
5392         of the UI is enabled.  Also, set the document's controller to a
5393         PrintControllerWithStatusDialog wrapping the document's print
5394         controller.
5395
5396         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
5397         bring up a SaveFileDialog (i hope we don't want to match the
5398         behavior of the crappy windows file entry) and set the
5399         PrinterSettings.PrintFileName accordingly.
5400
5401 2006-07-26  Jackson Harper  <jackson@ximian.com>
5402
5403         * ContainerControl.cs: Add a field that disables auto selecting
5404         the next control in a container when the container is activated.
5405         * UpDownBase.cs: Don't select the text box when the up down is
5406         selected.
5407
5408 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5409
5410         * XEventQueue.cs: Added methods for peeking (used for compression
5411           of successive events)
5412         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
5413           mouse move events (fixes #78732)
5414
5415 2006-07-25  Jackson Harper  <jackson@ximian.com>
5416
5417         * UpDownBase.cs: Use an internal class for the textbox so that we
5418         can control focus.  the updown control should always have focus,
5419         if either the text area or the buttons are clicked.
5420         - Send the key messages to the textbox, since it never actually
5421         has focus
5422         - Activate and decativate the textbox caret.
5423
5424 2006-07-24  Jackson Harper  <jackson@ximian.com>
5425
5426         * Control.cs: Use the directed select when selecting a control,
5427         this way the container controls override will get called and the
5428         whole ActiveControl chain will get triggered.  TODO: probably need
5429         to make sure this gets done everywhere instead of the old
5430         Select(Control).
5431         * ContainerControl.cs: Implement the directed Select method to
5432         find and activate the correct child control.    
5433         
5434 2006-07-22  Mike Kestner  <mkestner@novell.com>
5435
5436         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
5437         menu handling code so that clicks without a grab work too.
5438         [Fixes #78914]
5439
5440 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
5441
5442         * FileDialog.cs: Enable the BackButton when dirstack has one element.
5443           Added some small optimizations.
5444
5445 2006-07-21  Matt Hargett  <matt@use.net>
5446
5447         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
5448
5449 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
5450
5451         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
5452           tests pass and match MS in some strange border cases.
5453
5454 2006-07-21  Chris Toshok  <toshok@ximian.com>
5455
5456         * ThemeWin32Classic.cs: handle drawing of the relation links and
5457         parent row buttons.
5458
5459         * Theme.cs: change args to DataGridPaintParentRow.
5460
5461         * DataGrid.cs: Don't use controls for the relation links and
5462         parent buttons, so we have to handle all their interactions in
5463         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
5464         when we're navigating through child tables, so we can reinstate
5465         selection, expanded state, current cell, etc.
5466
5467 2006-07-20  Chris Toshok  <toshok@ximian.com>
5468
5469         * ToolBar.cs: When we redraw a button, for whatever reason,
5470         there's no reason to redraw the entire toolbar.  Also, don't call
5471         Control.Refresh from within Redraw, as it's much heavier than
5472         Invalidate (which is really what we want).
5473
5474 2006-07-20  Chris Toshok  <toshok@ximian.com>
5475
5476         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
5477         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
5478         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
5479         traces from within a debug IBindingList datasource
5480         (in mono/winforms/datagrid) for *days*, I've finally gotten things
5481         to work in a similar fashion.
5482
5483 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5484
5485         * ListBox.cs: Don't call Sort () when setting 
5486         the Sorted property to false (avoid an unnecessary sort).
5487
5488 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5489
5490         * ListControl.cs: DataSource should throw an ArgumentException
5491         instead of a normal exception when the argument is not of the 
5492         correct type.
5493
5494 2006-07-20  Mike Kestner  <mkestner@novell.com>
5495
5496         * Control.cs: add InternalPreProcessMessage to allow us to steal
5497         key events before MWF gets its paws on them.  Adapted from a
5498         suggestion by eno.
5499         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
5500         up/down/left/right navigation. Override the new internal control
5501         method to steal the events since they never make it to WndProc.
5502         * ToolBarButton.cs: don't worry about pushed when setting hilight
5503         since the drawing code prefers pushed to hilight. Invalidate on 
5504         Hilight changes. Fixes #78547 and #78525.
5505
5506 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5507
5508         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
5509           the canvas size. Fixes #78868
5510
5511 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
5512
5513         * Splitter.cs: Track requested split position until first layout
5514           is performed. Fixes #78871
5515
5516 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5517
5518         * Application.cs: Removed code that forces 1.x for the version
5519           number if the version started with 0. Not sure why that code was
5520           there and I couldn't find any bugs that indicated we needed it.
5521           Fixes #78869
5522
5523 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
5524
5525         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
5526           ResetDefaults(), just write some output to the console until it's
5527           implemented. Fixes bug #78907 for now. Eliminated two warnings.
5528
5529 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
5530
5531         * PropertyGridView.cs: set StartPosition of drop down forms
5532         so they appear in correct initial spot.  Fixes #78190.
5533
5534 2006-07-19  Mike Kestner  <mkestner@novell.com>
5535
5536         * ThemeWin32Classic.cs: use parent background color when drawing
5537         flat toolbars.  Restructure the conditionals to make sure non-flat
5538         non-Divider toolbars are filled too.  Fixes #78837.
5539
5540 2006-07-19  Mike Kestner  <mkestner@novell.com>
5541
5542         * ListBox.cs: Sort on collection changes even if the handle
5543         isn't created yet.  Fixes #78813.
5544
5545 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5546
5547         * ListControl.cs: DisplayMember should never be null,
5548         and now we assign String.Empty when null is passed to it (this
5549         is the .Net way).
5550
5551 2006-07-17  Mike Kestner  <mkestner@novell.com>
5552
5553         * ListViewItem.cs: restructure Font and subitem Font handling 
5554         to hold a specific font and refer back to owner on null.
5555         Fixes #78761.
5556
5557 2006-07-17  Mike Kestner  <mkestner@novell.com>
5558
5559         * ToolBar.cs: bandaid for side-effect of previous patch which was
5560         discarding explicit heights for non-AutoSize toolbars.  Need to
5561         extend my format tester to deal with AutoSize=false. Fixes #78864.
5562
5563 2006-07-15  Jackson Harper  <jackson@ximian.com>
5564
5565         * LabelEditTextBox.cs:
5566         * TreeView.cs: Use a new LabelEdit class for node editing, this
5567         class automatically 'closes' itself when it gets the enter key or
5568         loses focus.
5569         - Use the client rectangle when setting the trees scrollbars, so
5570         border style is taken into account.
5571         
5572 2006-07-14  Jackson Harper  <jackson@ximian.com>
5573
5574         * TreeNode.cs:
5575         * TreeView.cs: Make the editing work similar to MSs, firing the
5576         events correctly and ending edits correctly.
5577
5578 2006-07-14  Mike Kestner  <mkestner@novell.com>
5579
5580         * ToolBarButton.cs:
5581         * ToolBar.cs: layout restructuring and redraw enhancements to support
5582         formatting changes gracefully, like setting TextAlign, ImageList, 
5583         ButtonSize, and Appearance.  Handles explicit button sizing quirks
5584         of the MS controls.  Things like flat toolbars ignoring button size
5585         but becoming constant sized at the largest button's size.  Normal
5586         toolbars with an image set cannot be shrunk smaller than the image,
5587         but text can be clipped/ignored.
5588         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
5589         is zero.  Seems like DrawString should be smart enough to not put
5590         anything on screen though. Also trim labels and ellipsize at the char
5591         boundary, not word.
5592         Fixes #78711 and #78483.
5593
5594 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5595
5596         * FolderBrowserDialog.cs: Disable "New Folder" button and
5597           "New Folder" contextmenu menuitem if a folder like "My Computer"
5598           is selected.
5599
5600 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5601
5602         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
5603         * FolderBrowserDialog.cs:
5604           - Use MWFConfig to store and read size and position settings
5605           - Added code to create a new folder (button or context menu).
5606             Use TreeView labeledit to change the name of the new folder.
5607
5608 2006-07-14  Jackson Harper  <jackson@ximian.com>
5609
5610         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
5611         when the tree is scrolled we end editing.
5612
5613 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5614
5615         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
5616           Down arrows
5617
5618 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
5619
5620         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
5621         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
5622         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
5623         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
5624         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
5625         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
5626         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
5627         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
5628         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
5629         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
5630         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
5631         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
5632         ListViewItemSelectionChangedEventHandler.cs,
5633         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
5634         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
5635         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
5636         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
5637         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
5638         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
5639         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
5640         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
5641         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
5642         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
5643         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
5644         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
5645         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
5646         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
5647         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
5648         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
5649         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
5650         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
5651         WebBrowserNavigatingEventHandler.cs, 
5652         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
5653
5654 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
5655
5656         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
5657         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
5658         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
5659         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
5660         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
5661         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
5662         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
5663         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
5664         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
5665         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
5666         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
5667         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
5668         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
5669         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
5670         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
5671         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
5672         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
5673         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
5674         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
5675         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
5676         ListViewItemStates.cs, MaskFormat.cs: Added
5677
5678 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
5679
5680         * PropertyGridView.cs: Fix keyboard navigation of drop down.
5681         Patch from eno for bug 78558.
5682         
5683 2006-07-13  Jackson Harper  <jackson@ximian.com>
5684
5685         * TreeView.cs: When an edit is finished make sure that the
5686         selected node is visible.
5687         - When setting the top/bottom use the scrollbars is_visible, so
5688         everything will be set correctly even if the tree isn't visible
5689         yet.
5690
5691 2006-07-13  Jackson Harper  <jackson@ximian.com>
5692
5693         * ComboBox.cs: Revert the item->index part of my previous patch.
5694         * TreeView.cs: Use LostFocus instead of Leave for detecting when
5695         the edit box has lost focus (duh).
5696         - Just make the edit box not visible when we get return, that will
5697         take the focus, which will call EndEdit
5698         * TreeNode.cs When we start editing, notify the treeview.
5699
5700 2006-07-12  Jackson Harper  <jackson@ximian.com>
5701
5702         * ComboBox.cs: Clear out old items before setting the item list.
5703         This prevents databound controls from having their items added
5704         twice.
5705         - Switch the combobox to use indices whereever possible instead of
5706         using Item's.  This allows usto navigate through lists that have
5707         more then one item with the same string value (ie a, b, b, a).
5708         - Scroll the listboxes scrollbar when a non visible item is
5709         highlighted
5710         - Allow keypress to cycle through all the possible values. For
5711         example if you have b1, b2, b3 and hold down the B key all the
5712         values will be cycled through.
5713         
5714 2006-07-12  Jackson Harper  <jackson@ximian.com>
5715
5716         * TextBoxBase.cs:
5717         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
5718         this using the internal methods.
5719         * Control.cs: Add OnGotFocusInternal.  A new method that allows
5720         controls to "override" OnGotFocus and change focus behavior if
5721         needed.
5722         - Same thing for LostFocus
5723         * ComboBox.cs: Pass off focus to the text control properly.
5724
5725 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
5726
5727         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
5728         * FolderBrowserDialog.cs: Almost a complete rewrite.
5729           - Better support for Environment.Specialfolders
5730           - Added support for MWFVFS
5731           - Made setting SelectedPath work
5732
5733 2006-07-12  Jackson Harper  <jackson@ximian.com>
5734
5735         * Control.cs: Optimze getting all the controls.
5736
5737 2006-07-11  Jackson Harper  <jackson@ximian.com>
5738
5739         * ContainerControl.cs: Override SETFOCUS in the container control,
5740         so that it is not selected on mouse click.
5741
5742 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
5743
5744         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
5745           Hopefully we will have a better way once all of focus is complete.
5746
5747 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
5748
5749         * ThemeWin32Classic.cs: Commented out some debug code and fixed
5750           a compile error with csc.
5751
5752 2006-07-11  Jackson Harper  <jackson@ximian.com>
5753
5754         * Control.cs: When hiding a control only select the next control
5755         if the current control was focused.
5756         - Don't handle enter/leave when setting/killing focus, this is
5757         done by the container control.
5758         - Remove is_selected, it's not needed anymore.
5759         - Add utility methods for selecting a child control, and for
5760         firing the Enter/Leave events.
5761         * ContainerControl.cs: When a control is activated fire the
5762         enter/leave events.
5763         - Don't wrap when processing the tab key, so that focus can be
5764         moved outside of the container.
5765         - Use the correct active control
5766
5767 2006-07-11  Jackson Harper  <jackson@ximian.com>
5768
5769         * ComboBox.cs: Remove some debug code that was blinding me.
5770         * UpDownBase.cs: These controls actually aren't implicit, they are
5771         visible to the user.
5772
5773 2006-07-10  Chris Toshok  <toshok@ximian.com>
5774
5775         * DataGrid.cs: move back to the is_adding boolean field.  god i
5776         hate this is_editing/is_adding/is_changing stuff.
5777
5778 2006-07-10  Chris Toshok  <toshok@ximian.com>
5779
5780         * DataGridTableStyle.cs: just check if the property type is bool.
5781         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
5782         Don't use CanRenderType.
5783
5784         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
5785         if our text == NullText.  Remove CanRenderType.
5786
5787         * DataGridBoolColumn.cs: nuke CanRenderType.
5788
5789         * DataGrid.cs: reenable some code to end the current edit inside
5790         of set_CurrentCell.  This fixes the other 1.1.16 regression.
5791         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
5792         Also, remove the visible_row_count arg from CalcRowHeaders, since
5793         we don't need to worry about the actual height of the area.
5794
5795 2006-07-10  Chris Toshok  <toshok@ximian.com>
5796
5797         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
5798         mode, just return.
5799
5800         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
5801         the real sense of the IsInEditOrNavigateMode property (true =
5802         navigate, false = edit).  Also, update OnKeyPress to reflect this.
5803
5804         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
5805         column style exists, we still need to set its property descriptor
5806         to match up with our list manager.
5807
5808 2006-07-10  Chris Toshok  <toshok@ximian.com>
5809
5810         * ThemeWin32Classic.cs: implement the new row/header painting
5811         approach.  The parent row painting will likely go away and
5812         replaced with label controls, but the rest seems to work ok (and
5813         efficiently).
5814
5815         * Theme.cs: change the way we draw datagrid rows.  we don't draw
5816         the row headers as a block now.  Instead we draw them in the
5817         normal draw-row loop.  Add some calls for drawing parent rows and
5818         relation rows.
5819
5820         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
5821         a default table style.  Set the defaults from ThemeEngine.Current,
5822         not SystemColors.  Fix lots of misc issues with property setters.
5823
5824         * DataGrid.cs: move loads of style information out of this class
5825         as it's being duplicated with DataGridTableStyle.  keep track of a
5826         special DataGridTableStyle for the properties we used to mirror
5827         here.  Switch all the style properties to access this table style
5828         instead of instance fields of this class.  Also add a internal
5829         class to represent parent rows (more needs to be stored here, like
5830         the selection state from the parent table, as well as the
5831         expansion state.)  Also, for datasources with relations, do the
5832         right thing for collapse/expand, and add support for the
5833         navigation/parent row buttons.
5834
5835         Lastly, fix the crash in the 1.1.16 build.
5836
5837         * GridTableStylesCollection.cs: make the explicit interface
5838         implementations call the class's methods as opposed to duplicating
5839         them.
5840
5841         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
5842         0 so the text doesn't jump around when we move the cursor.
5843
5844 2006-07-10  Jackson Harper  <jackson@ximian.com>
5845
5846         * TextBoxBase.cs:
5847         * ListBox.cs: Match MS's ToString (this makes debugging focus
5848         stuff infinitely easier).
5849
5850 2006-07-10  Jackson Harper  <jackson@ximian.com>
5851
5852         * Control.cs (SelectNextControl): When checking the control's
5853         parent use this instead of ctrl.parent so that null can be passed
5854         to SelectNextControl. (I have unit tests for this).
5855         - Remove unused var.
5856
5857 2006-07-10  Chris Toshok  <toshok@ximian.com>
5858
5859         * CurrencyManager.cs: correct one regression, the removal of the
5860         finalType field.  Also, add a MonoTODO on CanAddRows, implement
5861         Refresh() correctly, and fix some event emission in
5862         ListChangedHandler.
5863
5864 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
5865
5866         * FileDialog.cs: Don't use brackets for new folders if they exist
5867           under *nix. Instead use -(number of existing folders +1).
5868
5869 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
5870
5871         * FileDialog.cs:
5872           - Fixed really nasty bug #78771
5873           - Don't block the whole GUI when reading directories with a lot of
5874             entries. Use an other thread instead and call BeginInvoke to
5875             update the ListView in MWFFileView
5876
5877 2006-07-07  Chris Toshok  <toshok@ximian.com>
5878
5879         * Control.cs (Dispose): release any Capture when disposing.
5880
5881 2006-07-07  Chris Toshok  <toshok@ximian.com>
5882
5883         * LinkLabel.cs (Select): if we chain up to the parent, set
5884         focused_index to -1 so we'll search for the first available link
5885         the next time the user tabs into us.  Also, if the direction is
5886         backward and focused_index == -1, start the search from the last
5887         element.
5888
5889 2006-07-07  Chris Toshok  <toshok@ximian.com>
5890
5891         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
5892         is beyond the end of the text, don't do anything.
5893         (CreateLinkPieces): set our ControlStyles.Selectable based on
5894         whether or not we have any links.
5895         (Link.Invalidate): use a loop instead of foreach.
5896         (Link.set_Start): null out owner.sorted_links so it'll be
5897         recreated by CreateLinkPieces.
5898
5899 2006-07-06  Chris Toshok  <toshok@ximian.com>
5900
5901         * LinkLabel.cs: revert the SetStyle change.
5902
5903 2006-07-06  Chris Toshok  <toshok@ximian.com>
5904
5905         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
5906         (OnEnableChanged): s/Refresh/Invalidate
5907         (OnGotFocus): if we have a focused index already, refocus it (so
5908         if we mouse out/in to the window it'll focus the right link).
5909         (OnKeyDown): move the tab handling out of here.
5910         (OnLostFocus): don't set focused_index to -1, so we can refocus it
5911         when we lose focus.
5912         (OnMouseDown): don't Capture here - Control handles it.  Also,
5913         focus the active link.
5914         (OnMouseUp): don't deal with Capture.
5915         (OnPaintBackgroundInternal): remove.
5916         (OnTextAlignChanged): CreateLinkPieces before calling the
5917         superclass's method.
5918         (OnTextChanged): call CreateLinkPieces before calling superclass's
5919         method.
5920         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
5921         move around.
5922         (Select): implement this, moving the selection between different
5923         links, and call parent.SelectNextControl if we don't have another
5924         link to focus in the given direction.
5925         (CreateLinkPieces): call Invalidate instead of Refresh.
5926         
5927 2006-07-06  Chris Toshok  <toshok@ximian.com>
5928
5929         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
5930         new LinkLabel internals.
5931
5932         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
5933         over pieces looking for active/focused/etc links.  also, deal with
5934         runs of text (and links) with embedded \n's in them, and use
5935         MeasureCharacterRanges instead of MeasureString to figure out the
5936         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
5937         two-step.
5938
5939 2006-07-04  Jackson Harper  <jackson@ximian.com>
5940
5941         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
5942         XKB or key auto repeat, do it manually.  Without key auto repeat,
5943         when a key is held down we get key press, key release, key press,
5944         key release, ... with auto repeat we get key press, key press, key
5945         press ..., and then a release when the key is actually released.
5946
5947 2006-07-03  Jackson Harper  <jackson@ximian.com>
5948
5949         * TabControl.cs:
5950         * ThemeWin32Classic.cs: Tabs do not obey normal background color
5951         rules, they are always control color regardless of the background
5952         color.
5953
5954 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
5955
5956         * FileDialog.cs: Added internal class MWFConfig.
5957           Removed Registry support and replaced it with support for the new
5958           MWFConfig class. See MWFConfig comments for more information.
5959
5960 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
5961
5962         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
5963           rectangle. Added some patches from eno from bug #78490 and fixed
5964           the arrow position for small up and down CPDrawScrollButtons.
5965
5966 2006-06-30  Jackson Harper  <jackson@ximian.com>
5967
5968         * InternalWindowManager.cs: Remove some debug code.
5969         * Form.cs: When an MdiParent is set to null, the window is
5970         "detatched" and becomes a normal window.
5971         * MdiClient.cs: Don't bring the new child form to the front until
5972         it is activated (setting it as active does this), this makes the
5973         previously active forms titlebar get redrawn as inactive.
5974
5975 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
5976
5977         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
5978           with later controls
5979
5980 2006-06-29  Mike Kestner  <mkestner@novell.com>
5981
5982         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
5983         arrow in keynav state.  Fixes #78682.
5984
5985 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
5986
5987         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
5988           order (fixes #78393)
5989
5990 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
5991
5992         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
5993           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
5994           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
5995           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
5996           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
5997           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
5998           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
5999           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
6000           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
6001           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
6002           enumerations (FlagsAttribute, SerializableAttribute, added/removed
6003           values)
6004
6005 2006-06-28  Mike Kestner  <mkestner@novell.com>
6006
6007         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
6008
6009 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6010
6011         * PropertyGrid.cs,
6012           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
6013           item lines from other area (It also makes BackColor consistent and
6014           compatible with .NET). Fixed bug #78564.
6015
6016 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
6017
6018         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
6019         Patch from Eno for #78555.
6020
6021 2006-06-27  Chris Toshok  <toshok@ximian.com>
6022
6023         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
6024
6025         * DataGridColumnStyle.cs: same.
6026
6027         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
6028         
6029         * DataGridDrawingLogic.cs: nuke.
6030
6031 2006-06-27  Chris Toshok  <toshok@ximian.com>
6032
6033         * DataGridTableStyle.cs: clean up the constructors, and build the
6034         list of child relations for this table.  I have no idea if this is
6035         where we should be doing it (it probably isn't), but since we're
6036         already iterating over the properties..
6037
6038         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
6039         struct and array for keeping track of row information, similar to
6040         what's shown in a hack on
6041         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
6042
6043         * Theme.cs: be consistent about the naming of DataGrid methods,
6044         prefering ColumnWidths and RowHeights over columnsWidths and
6045         RowsHeights.
6046
6047         * ThemeWin32Classic.cs: same, and also add support for variable
6048         sized rows (and the +/- expansion icons for related rows).
6049
6050 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6051
6052         * TextBoxBase.cs: Applied Eno's patch from #78660
6053
6054 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6055
6056         * Form.cs (ScaleCore): We don't want to scale our form if it's
6057           state is minimized or maximized, but we still need to scale our
6058           child windows. Also, added try/finally block to ensure layout
6059           gets reset (Fixes #78697)
6060
6061 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6062
6063         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
6064
6065 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6066
6067         * Form.cs: Fixed c+p error and added check to resize form if minimum
6068           size is bigger than current size (Fixes #78709)
6069
6070 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
6071
6072         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
6073
6074 2006-06-26  Mike Kestner  <mkestner@novell.com>
6075
6076         * ComboBox.cs: only do Keypress handling in the combo when there  
6077         are items in the collection. Fixes #78710.
6078
6079 2006-06-26  Chris Toshok  <toshok@ximian.com>
6080
6081         * Binding.cs: make this work bi-directionally.  also, clear up
6082         other mixups between Push/Pull Data (e.g. we're supposed to pull
6083         data when validating).
6084
6085         * BindingManagerBase.cs: trim some fully qualified collection
6086         types.
6087
6088         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
6089
6090 2006-06-23  Chris Toshok  <toshok@ximian.com>
6091
6092         * PropertyManager.cs: It appears (according to the unit tests)
6093         that PropertyManager doesn't use
6094         PropertyDescriptor.AddValueChanged to track propery value changes
6095         in its datasource, but uses the same scheme as Binding, where it
6096         looks for a <Property>Changed event and binds to it.
6097
6098         Also, according to the docs, IsSuspended always returns false for
6099         a property manager with a non-null datasource.
6100
6101 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
6102
6103         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
6104           need to update the actual DialogResult. (Fixes #78613)
6105
6106 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
6107
6108         * Form.cs (ShowDialog): Release any captures before running the
6109           new message pump (fixes #78680)
6110
6111 2006-06-22  Mike Kestner  <mkestner@novell.com>
6112
6113         * ListView.cs: Layout column widths properly in details mode even 
6114         if HeaderStyle.None is set.  Fixes #78691.
6115
6116 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
6117
6118         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
6119
6120 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
6121
6122         * Control.cs (ContainsFocus): Using new driver method to get focused
6123           window, instead of trying to use internal tracking var, which can
6124           recursion issues (Fixes #78685)
6125         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
6126           XplatUIWin32.cs: Added GetFocus method to return focused window
6127
6128 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6129
6130         * ColorDialog.cs: when the mouse button is pressed inside the color
6131         matrix, don't let the cursor move out of it until the button is
6132         released, which is the behavior on windows. Changed 'colours' by
6133         'colors' to use the same word consistently.
6134
6135 2006-06-21  Chris Toshok  <toshok@ximian.com>
6136
6137         * DataGrid.cs: add in some basic navigation stuff (navigating to a
6138         child relation and back, using a stack).  Also, remove
6139         GetDataSource and the code that calls it - it's not needed.  Also,
6140         track CurrencyManager.ListName's removal.
6141
6142 2006-06-21  Chris Toshok  <toshok@ximian.com>
6143
6144         * CurrencyManager.cs: push some of the original type checking from
6145         BindingContext.CreateBindingManager to here, and remove some of
6146         the finalType stuff.  Need more tests to make sure I've got the
6147         ListName part right, and we might need more in SetDataSource.
6148
6149         * PropertyManager.cs: add a ctor that takes just the datasource,
6150         and no property name.  Make SetDataSource work with a null
6151         property_name, and make Current return the data_source if the
6152         property descriptor is null.  this makes 'string foo = "hi";
6153         BindingContext[foo].Current' return "hi" as it should.
6154
6155         * RelatedCurrencyManager.cs: make this code more generic - there's
6156         no reason the parent manager has to be CurrencyManager, and
6157         there's no reason to pass the DataRelation.  It suffices to use a
6158         BindingManagerBase and PropetyDescriptor.
6159
6160         * RelatedPropertyManager.cs: make a similar change here.
6161         
6162         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
6163         flower I knew it could be.
6164
6165 2006-06-20  Chris Toshok  <toshok@ximian.com>
6166
6167         * PropertyManager.cs: the PropertyChangedHandler is invoked when
6168         data in the source has changed and we need to update the control,
6169         so s/PullData/PushData.
6170
6171         * CurrencyManager.cs: Refresh is meant to update the control from
6172         data in the datasource.  So, s/PullData/PushData.
6173
6174         * BindingContext.cs: add more ugliness (we weren't handling the
6175         case where data_source = DataTable and data_member = column_name).
6176
6177         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
6178         from the perspective of the datasource.  PullData pulls from the
6179         control, PushData pushes to the control.
6180
6181 2006-06-20  Chris Toshok  <toshok@ximian.com>
6182
6183         * BindingContext.cs: rewrite the CreateBindingManager code to
6184         handle navigation paths more or less properly.  This could
6185         definitely stand some more work, in particular to push the
6186         recursion up to the toplevel.  But that relies on fixes in other
6187         places (System.Data comes to mind).
6188
6189         Also, move to a flat hashtable (and encode the twolevel nature of
6190         the dictionary into the hash key).  This lets us implement the
6191         IEnumerable.GetEnumerator method.
6192
6193         * RelatedCurrencyManager.cs: new class.  Update our view based on
6194         our relation and our parent CurrencyManager's position.
6195
6196         * CurrencyManager.cs: split out some logic from the ctor into
6197         SetView, so it can be called from the new RelatedCurrencyManager
6198         subclass.
6199
6200         * RelatedPropertyManager.cs: new class.  Update our datasource
6201         based on the position of our parent CurrencyManager.
6202
6203         * PropertyManager.cs: split out some logic from the ctor into
6204         SetDataSource, so it can be called from the new RelatedDataSource
6205         subclass.  Also, make the Current getter return the value
6206         of the PropertyDescriptor, not the data_source.
6207
6208         * Binding.cs: no need to duplicate the string splitting code here.
6209
6210 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6211
6212         * Control.cs:
6213           - set_Enabled: OnEnabledChanged is not called if the inherited state 
6214             of the control is not altered, even though  we might be changing the
6215             internal state of the control (#78458)
6216           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
6217             OnEnabledChanged, to allow easy altering of any child window state
6218           - OnEnabledChanged: Added code to enable/disable driver window state
6219           - OnParentEnabledChanged: Instead of firing the event, call 
6220             OnEnabledChanged, which will fire the event and also a) set driver
6221             window state and pass the enabled state to any grandchildren (#78458)
6222
6223 2006-06-19  Jackson Harper  <jackson@ximian.com>
6224
6225         * InternalWindowManager.cs: We don't set the cursor explicitly
6226         thats done via the response to NCHITTESTs.
6227         - Don't need to adjust for titlebar heights anymore, the
6228         coordinates are coming in the correct coordinates now (see peters
6229         last patch).
6230
6231
6232 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6233
6234         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
6235           being translated relative to whole window, instead of client window.
6236           That caused broken offsets on mouseclick (and caused gas for our
6237           InternalWindowManager)
6238
6239 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6240
6241         * TextControl.cs:
6242           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
6243           - Undo(): Added replay of cursor move on DeleteChars action; added
6244             calling Undo() again if a recorded cursor move is invalid (to
6245             ensure that some action is performed on Undo)
6246         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
6247
6248 2006-06-16  Jackson Harper  <jackson@ximian.com>
6249
6250         * MdiClient.cs: Instead of just sizing maximized windows when
6251         there is a resize we also have to adjust the Y of minimized
6252         windows, so they stay pinned to the bottom of the mdi container.
6253         - Eliminate separate tracking of the active control, we can just
6254         get this from the controls collection.
6255         - Paint the decorations for the newly activated titlebar so we get
6256         a pretty blue bar.
6257         * InternalWindowManager.cs:
6258         * ThemeWin32Classic.cs: Minimized windows get all three buttons
6259         even if they are a tool window.
6260         
6261 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6262
6263         * TextControl.cs (Undo): Handle non-existent cursor locations in the
6264           undo buffer, these can happen when text was deleted and the cursor
6265           was recorded first. Since we will also have a recorded cursor
6266           after the delete this is not an issue. (Fixes #78651)
6267
6268 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
6269
6270         * AccessibleObject.cs: Remove dependence on Control.is_selected;
6271           instead properly track control states internally (allows us to
6272           remove is_selected from Control)
6273
6274 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6275
6276         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
6277         whose width is not a multiple of 8.
6278
6279 2006-06-13  Jackson Harper  <jackson@ximian.com>
6280
6281         * MdiClient.cs:  Only maximize the next child if the current one
6282         is maximized.
6283
6284 2006-06-13  Chris Toshok  <toshok@ximian.com>
6285
6286         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
6287         modified.  Also, guard against grid or grid_drawing being null in
6288         Invalidate.
6289
6290         * DataGrid.cs: Reformat tons of getters/setters.  In the
6291         DataMember setter, just call SetNewDataSource instead of
6292         duplicating some of its functionality.  In SetNewDataSource, don't
6293         check ListManager for null, since the property getter creates the
6294         object if needed.
6295
6296         * DataGridTableStyle.cs: don't set TableStyle or call
6297         SetDataGridInternal on the column here, it's done in
6298         GridColumnStylesCollection.Add.
6299
6300         * GridColumnStylesCollection.cs: fix all the explicit interface
6301         implementations to just call our methods.  Nuke AddInternal() and
6302         move the body of it to Add().  Also, add a call to
6303         column.SetDataGridInternal to Add().
6304
6305         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
6306         base()+duplicate code.  Also, use the Format property instead of
6307         format to generate an Invalidate ala MS.  Lastly, create the
6308         textbox here, unconditionally.
6309         (set_Format): call Invalidate.
6310         (get_TextBox): no need to call EnsureTextBox.
6311         (Commit): remove the message box.
6312         (Edit) remove the call to EnsureTextBox.
6313         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
6314         (EnterNullValue): no need to check textbox for null.
6315         (HideEditBox): no need to check textbox for null.
6316         (SetDataGridInColumn): add the textbox to the grid's controls.
6317         (EnsureTextBox): nuke.
6318         
6319 2006-06-13  Jackson Harper  <jackson@ximian.com>
6320
6321         * MdiWindowManager.cs: Hook up to the maximized menus paint event
6322         and redraw the buttons when needed. Unhook when the window is
6323         unmaximized.
6324         * MainMenu.cs: Add an internal Paint event, the mdi window manager
6325         needs this so that it can redraw its buttons when the menu is
6326         repainted.
6327         * InternalWindowManager.cs:
6328         * Form.cs: The method order has changed for DrawMaximizedButtons,
6329         so that it can be a PaintEventHandler.
6330         
6331 2006-06-13  Jackson Harper  <jackson@ximian.com>
6332
6333         * MdiClient.cs: When we close a maximized mdi window, the next mdi
6334         window is activated and maximized, even if it wasn't before.
6335         - When  a new window is activated repaint the decorations of the
6336         old one, so that it no longer has the Active "look" (the blue
6337         titlebar).
6338         * InternalWindowManager.cs: Open up CreateButtons to base classes
6339         so they can recreate the buttons on state changes.
6340         - If a window is maximized give it all three buttons
6341         * MdiWindowManager.cs: Create the titlebar buttons when the state
6342         is changed, this is needed because a toolwindow will not have all
6343         three buttons until it is maximized.
6344
6345 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
6346
6347         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
6348           Fixed bug #78609.
6349
6350 2006-06-12  Jackson Harper  <jackson@ximian.com>
6351
6352         * KeysConverter.cs: Make sure we handle the Ctrl special case
6353         if its the only key.
6354         
6355 2006-06-12  Jackson Harper  <jackson@ximian.com>
6356
6357         * Theme.cs: Add a method to get the size of a managed window
6358         toolbar button.
6359         * InternalWindowManager.cs: Remove the ButtonSize property, this
6360         should be retrieved from the theme.
6361         * MdiWindowManager.cs: Get the button size from the theme
6362         * ThemeWin32Classic.cs: Make the method to get the managed window
6363         titlebar button size public.
6364         - Handle the different button sizes of maximized toolwindows
6365         (should match any maximized window).
6366         - Get the titlebar height from the theme, not the WM (which gets
6367         it from the theme).
6368
6369 2006-06-12  Jackson Harper  <jackson@ximian.com>
6370
6371         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
6372         event down to the mdi window manager.
6373         - Expose some extra stuff to base classes
6374         - Make sure to end the Capture on an NC Mouse up, so that we can
6375         get double clicks properly, and the sizing doens't stick.
6376         - When doing PointToClient contain it in the workable desktop
6377         area, this prevents windows from changing size when the cursor is
6378         pulled outside of the working area while sizing.
6379         * MdiWindowManager.cs: When we get a double click maximize the
6380         window.
6381         - Reset the cursor after handling mode changes.
6382
6383 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
6384
6385         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
6386           current desktop, instead of just assuming a 0, 0 origin. This
6387           is needed for our internal window manager, to know the top
6388           margin of the desktop
6389
6390 2006-06-12  Chris Toshok  <toshok@ximian.com>
6391
6392         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
6393         we need this to get rid of the selected background in the bool
6394         column.
6395         (CancelEditing): move the ConcedeFocus call to above the Abort
6396         call.  Also, set is_changing to false and invalidate the row
6397         header if we were changing before.
6398         (ProcessKeyPreviewInternal): remove, since noone outside this
6399         class calls it anymore.  Roll the code into ProcessKeyPreview.
6400         (EndEdit): remove the internal version.
6401         (InvalidateCurrentRowHeader): make private.
6402
6403         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
6404         Keys.Escape handling (and with it the last call to
6405         DataGrid.EndEdit from outside the class.)
6406
6407
6408 2006-06-12  Chris Toshok  <toshok@ximian.com>
6409
6410         * DataGridTextBox.cs (.ctor): isedit defaults to false.
6411         (OnKeyPress): set isedit to true.
6412         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
6413         already handled by the grid.
6414
6415         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
6416         right.  ugh.
6417         (set_DataSource): SetDataSource always returns true, so stop
6418         putting it in an if statement.
6419         (EndEdit): get rid of some {}'s
6420         (ProcessGridKey): return true in case Keys.Escape.
6421         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
6422         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
6423         PositionChanged, stopped connecting to CurrentChanged.
6424         (GetDataSource): simplify this a bunch.
6425         (SetDataSource): change return type from bool to void.
6426         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
6427         to this, and make sure we don't set ListManager.Position inside
6428         set_CurrentCell.
6429         (OnListManagerItemChanged): if we're passed an actual index,
6430         redraw that row.
6431
6432         * CurrencyManager.cs (set_Position): don't call PullData here.
6433
6434 2006-06-09  Jackson Harper  <jackson@ximian.com>
6435
6436         * TreeNode.cs:  Recalculate the visible order before doing the
6437         Expand/Collapse Below calls, because those calls generate an
6438         expose.
6439         - Reduce calls to the TreeView property, which is mildly expensive
6440         by using a local var.
6441         * Form.cs: Layout the MDI child windows when creating the parent
6442         form.
6443         - Don't use the internal constructor anymore
6444         * MdiClient.cs: use the parent form width/height (if available)
6445         when laying out the child windows, we do this because the
6446         mdiclient isn't docked yet when the initial layout is done.
6447         - Don't need an internal constructor anymore.
6448
6449 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6450
6451         * FileDialog.cs: handle access errors when trying to create a folder
6452         or changing to a directory. No need to initialize out parameters.
6453
6454 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6455
6456         * FileDialog.cs: Append a number when creating a new folder if the
6457           folder already exists (use parenthesis instead of square brackets)
6458
6459 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6460
6461         * FileDialog.cs:
6462           - Disabled registry support for windows and added better registry
6463             error checking for other systems (need to investigate why it
6464             works perfectly on my system)
6465           - If a folder already exist show an error MessageBox instead of
6466             trying to create an indexed name.
6467           - Fixed a non intentional typo.
6468
6469 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6470
6471         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
6472
6473 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6474
6475         * FileDialog.cs: When creating a new folder don't crash if the
6476           folder already exists.
6477
6478 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6479
6480         * FileDialog.cs: Allmost a complete rewrite.
6481           - added a "virtual" file system that handles the differences
6482             between unix and windows file systems (especially the directory
6483             structure). Moved most of the directory and file handling code
6484             into the vfs.
6485             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
6486             UnixFileSystem and FSEntry.
6487           - Recently used folder/directory, size, location and used file names
6488             (file name ComboBox) are now stored in the registry and get read
6489             before the dialog shows up (fixes part 6 of bug #78446).
6490           - Creation of new folders/directories is now possible (context menu
6491             or ToolBar). Added TextEntryDialog for this that fills in the gap
6492             until ListView.LabelEdit works.
6493           - Fixed cursor handling (bug #78527) and focus handling for
6494             PopupButtonPanel
6495           - Various "Search in" ComboBox enhancements. The content of the
6496             dropdown listbox now almost matches ms.
6497           - Changed the behaviour when the user switches to SpecialFolder
6498             Recent to show the ListView in View.Details.
6499           - Beside using the ToolBar to change the View property of the
6500             file ListView it is now possible to use the context menu too.
6501
6502 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6503
6504         * ComboBox.cs: Don't create a new ObjectCollection when an item
6505           gets inserted. Just insert the item in the existing object_items
6506           ArrayList.
6507
6508 2006-06-08  Jackson Harper  <jackson@ximian.com>
6509
6510         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
6511         that the treeview and root node checks are done also, this fixes a
6512         regression i caused in the unit tests.
6513
6514 2006-06-07  Wade Berrier <wberrier@novell.com> 
6515
6516         * RichTextBox.cs: More ISO8859-1 -> unicode
6517
6518 2006-06-07  Mike Kestner  <mkestner@novell.com>
6519
6520         * ComboBox.cs : use items to hold highlight/selection so that
6521         collection insertions don't require synchronization.
6522
6523 2006-06-07  Jackson Harper  <jackson@ximian.com>
6524
6525         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
6526         routine.  We now always keep the sized edge at the cursor instead
6527         of computing movement and adjusting rects.  There is one buglet
6528         with this method though when the cursor is moved over area that
6529         the window can not expand too (such as the toolbars on the desktop).
6530
6531 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6532
6533         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
6534         here. Fixes crash on startup in AlbumSurfer.
6535
6536 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
6537
6538         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
6539           values
6540
6541 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6542
6543         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
6544         statement to avoid calling XNextEvent which will block if another thread
6545         took the event that we were expecting. Fixes bug #78605.
6546
6547 2006-06-07  Mike Kestner  <mkestner@novell.com>
6548
6549         * ListView.cs : isolated checkbox clicking from the selection logic.
6550         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
6551
6552 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6553
6554         * Form.cs: Check that the value passed to Form.DialogResult
6555         is a valid enum value.
6556
6557 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6558
6559         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
6560         Computer'. Clicking it in the network view goes to 'My Computer'.
6561         Added CIFS filesystem type. Display the mount point of filesystems.
6562         Avoid duplicate mount points (happens for me with CIFS);
6563
6564 2006-06-06  Jackson Harper  <jackson@ximian.com>
6565
6566         * InternalWindowManager.cs: Draw the maximized windows buttons
6567         when resizing.
6568
6569 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6570
6571         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
6572         all other dialogs. Fixes bug #78585.
6573
6574 2006-06-06  Mike Kestner  <mkestner@novell.com>
6575
6576         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
6577         Only invalidate checkbox on checkstate changes to avoid flicker.
6578         * ListBox.cs : avoid unselect/select when clicking selected item.
6579         avoid reselection flicker for already multiselected items.
6580         Fixes #78382.
6581
6582 2006-06-06  Jackson Harper  <jackson@ximian.com>
6583
6584         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
6585         the parent form so that the menu is removed if needed.
6586
6587 2006-06-06  Mike Kestner  <mkestner@novell.com>
6588
6589         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
6590         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
6591
6592 2006-06-06  Mike Kestner  <mkestner@novell.com>
6593
6594         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
6595
6596
6597 2006-06-06  Jackson Harper  <jackson@ximian.com>
6598
6599         * Control.cs: Use the property (instead of the field) to get the
6600         default cursor so it is instantiated correctly.
6601         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
6602         resizes so we need to manually repaint the window decorations here.
6603         - Set the titlebar button locations as soon as they are created,
6604         otherwise they are not set correctly on win32.
6605         
6606 2006-06-06  Chris Toshok  <toshok@ximian.com>
6607
6608         * CurrencyManager.cs (set_Position): call PullData before
6609         OnCurrentChanged.
6610         (AddNew): after calling IBindingList.AddNew, update our
6611         listposition, and call OnCurrentChanged/OnPositionChanged (without
6612         calling PullData).
6613         (OnCurrentChanged): remove the call to PullData from here.
6614         (OnItemChanged): remove the call to PushData from here.
6615         (OnPositionChanged): change the test from == null to != null to
6616         match the other methods.
6617         (ListChangedHandler): the grossest part of the patch.  Implement
6618         this such that it passes the unit tests in CurrencyManagerTest and
6619         the output more or less matches that of MS's implementation.
6620  
6621 2006-06-06  Mike Kestner  <mkestner@novell.com>
6622
6623         * ListView.cs : only update check state on single click.
6624         * ThemeWin32Classic.cs : fix focus drawing for details view without
6625         fullrowselect.  Fixes #78454.
6626         * XplatUIX11.cs : fix for double click emission.
6627
6628 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6629
6630         * PropertyGridView.cs : Applied Atsushi's patch to fix
6631         font dialog bug  (#78197).
6632
6633 2006-06-05  Jackson Harper  <jackson@ximian.com>
6634
6635         * TreeNode.cs: Compute the next node for expanding/collapsing
6636         correctly. We now factor in nodes without a NextNode
6637         correctly. (Fixes somes cases in nunit-gui).
6638         * InternalWindowManager.cs: Set the bounds when updating the
6639         virtual position of a tool window.
6640         
6641 2006-06-05  Chris Toshok  <toshok@ximian.com>
6642
6643         * DataGrid.cs: rename cached_currencymgr to list_manager.
6644         (set_CurrentCell): move SetCurrentCell code here, and clean it up
6645         some.
6646         (CurrentRow, CurrentColumn): single accessors so we can make the
6647         cursor movement code a lot easier to understand.
6648         (CurrentRowIndex): implement this in terms of CurrentRow.
6649         (BeginEdit): clean this up a bit.
6650         (CancelEditing): sort out the is_editing/is_changing/is_adding
6651         stuff a little.
6652         (EndEdit): minor changes.
6653         (OnKeyDown): add a comment about a (most likely) unnecessary
6654         check.
6655         (OnMouseDown): cancel editing when we click on a row header.  And
6656         use the CurrentRow setter, not CurrentCell.
6657         (ProcessDialogKey): directly call ProcessGridKey.
6658         (UpdateSelectionAfterCursorMove): factor out this common block of
6659         code (it's used everywhere that we move the cursor by updating row
6660         or column).
6661         (ProcessGridKey): pretty substantial overhaul.  Use the
6662         CurrentRow/CurrentColumn properties to make the code a lot more
6663         readable.  Only use the CurrentCell property when we have to
6664         modify both row and column at once.  Tab behavior is still broken,
6665         and Delete is untested.
6666         (Select): if we have no selected rows, set selection_start to
6667         @row.
6668         (EditCurrentCell): rename EditCell this.  It was only ever invoked
6669         with CurrentCell as the arg, so drop the arg and rename it.
6670
6671         * DataGridColumnStyle.cs: clean up the constructors a little, and
6672         drop CommonConstructor().
6673
6674         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
6675         actually get notified when the user hits it.
6676         (ProcessKeyMessage): *substantially* simplify this method.
6677         There's no reason (that I can see) for the textbox to be making
6678         calls into the datagrid at all.  Remove all of them but the ones
6679         for Enter handling.  those will take some more work.
6680
6681         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
6682         calling HideEditBox.
6683         (HideEditBox): if we have an active textbox, render it invisible
6684         without causing a re-layout of the datagrid.
6685
6686 2006-06-05  Mike Kestner  <mkestner@novell.com>
6687
6688         * ListView.cs : fix NRE crasher when focuseditem is cleared by
6689         collection changes by resetting it to Items[0].  Fixes #78587.
6690
6691 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6692
6693         * MessageBox.cs: if the height of the text is larger than the icon_size,
6694         use that. Fixes bug #78575.
6695
6696 2006-06-05  Jackson Harper  <jackson@ximian.com>
6697
6698         * TreeView.cs: Fix line drawing when scrolling.  To do this each
6699         node is basically responsible for drawing its entire horizontal
6700         area.  When drawing a node it draws its parent node lines if
6701         needed.
6702         - Adjust the clip area to the viewport rectangle
6703         - Fix Left/Right key handling to match MS. (It expand/collapses
6704         and moves to parents/first child but does not move selection to
6705         sibling nodes).
6706         - Fix SetTop to work with new bound calculation code
6707         - When scrollbars are no longer needed we need to reset scrolling
6708         vars and recalculate the visible order so the redraw is correct
6709         * TreeNode.cs: We can't expand/collapse nodes with no children.
6710
6711 2006-06-03  John Luke  <john.luke@gmail.com> 
6712
6713         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
6714         so the colors work without dev packages
6715         
6716 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
6717
6718         * Control.cs 
6719           - Select: Implemented to just use activate. Seems to match MS 
6720             behaviour closest. Documented to only do actual control walking 
6721             based on it's parameters if in a container control so I moved 
6722             the code there.
6723           - Removed selection check logic from our internal Select() method
6724         * ContainerControl.cs:
6725           - Select: Moved selection logic from Control here, since MS documents
6726             that containers obey the bool arguments. No longer calling base
6727
6728 2006-06-02  Jackson Harper  <jackson@ximian.com>
6729
6730         * TreeView.cs: If the selected node isn't changed when we get
6731         focus update the previously selected node so that we see the
6732         selection box.
6733
6734 2006-06-02  Mike Kestner  <mkestner@novell.com>
6735
6736         * ComboBox.cs: restructure grab and general mouse event handling.
6737         Make the composite control raise mouse events like it was a single
6738         control for leaves/enters/motion/up/down events.  fix dropdown list
6739         coordinate mangling and refactor it into the scrollbar subclass to
6740         reduce code duplication.  Fixes #78282 #78361 and #78457.
6741
6742 2006-06-02  Mike Kestner  <mkestner@novell.com>
6743
6744         * ScrollBar.cs: remove Capture setting/clearing, as it happens
6745         automatically in the Control.WndProc.
6746
6747 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6748
6749         * FileDialog.cs: fix crash when running SharpChess, which sets the
6750         FilterIndex to 2 with only one Filter.
6751
6752 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6753
6754         * ToolBar.cs: add SizeSpecified property.
6755         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
6756         try to figure out our real size, otherwise fallback to what the
6757         container says.
6758
6759 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6760
6761         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
6762         * Control.cs (WndProc): MS always calls the DefWndProc to pass
6763           up the event
6764
6765 2006-06-01  Mike Kestner  <mkestner@novell.com>
6766
6767         * ListView.cs: revamp the focus management in ListView.  It still
6768         causes churn of LostFocus/GotFocus emissions on clicks, but it's
6769         better than not handling focus at all.  Will revisit when pdb feels
6770         the general focus handling is solid.  Fixes #78526.
6771
6772 2006-06-01  Jackson Harper  <jackson@ximian.com>
6773
6774         * TreeView.cs: Set the default border style in the constructor.
6775         - Move painting to use OnPaintInternal instead of capturing
6776         WM_PAINT, this is the correct way of doing things
6777         - UpdateBelow shouldn't invalidate the scrollbar area
6778         - Cap the top on update below in case the node was above the top
6779         of the viewport rectangle.
6780         - ExpandBelow and Collapse below need to obey Begin/End Update.
6781         * TreeNode.cs: Make is_expanded internal so the treenode
6782         collection can change it without firing the whole event chain.
6783         * TreeNodeCollection.cs: When clearing all the child nodes make
6784         sure to recalc the visible order.
6785         - Improve algo for remove the top node
6786
6787 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6788
6789         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
6790           SendMessage directly calling window procedures, which in turn might
6791           call SetFocus()
6792
6793 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
6794
6795         * Control.cs: Don't handle WM_SETFOCUS if the same window already
6796           has focus (works around X11 sending a FocusIn after our SetFocus)
6797         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
6798
6799 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
6800
6801         * Mime.cs: Fix for the NET_2_0 build.
6802           NameValueCollection needs StringComparer now.
6803
6804 2006-05-31  Chris Toshok  <toshok@ximian.com>
6805
6806         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
6807         return (via an out parameter) the starting X of the column.
6808         (UpdateVisibleColumn): track change to FromPixelToColumn.
6809         (HitTest): add a ColumnResize case here.
6810         (DrawResizeLine): new function, probably poorly named.
6811
6812         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
6813         only need to keep one reference.
6814         (set_ListManager): same.
6815         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
6816         Also, add support for HitTestType.ColumnResize.
6817         (OnMouseMove): add column resize behavior here, and change the
6818         cursor to the correct one as we move around the datagrid.
6819         (OnMouseUp): terminate the column resize if we're resizing.
6820         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
6821         for the current cell.
6822         (ConnectListManagerEvents): use cached_currencymgr.
6823         (DisconnectListManagerEvents): fill this in, using
6824         cached_currencymgr.
6825         (SetCurrentCell): remove cached_currencymgr_events handling.
6826         (SetDataMember): only call DisconnectListManagerEvents if
6827         cached_currencymgr is != null.
6828         (SetDataSource): same.
6829         (OnListManagerCurrentChanged): cached_currencymgr_events ->
6830         cached_currencymgr.
6831
6832 2006-05-31  Jackson Harper  <jackson@ximian.com>
6833
6834         * BindingManagerBase.cs: Remove somedebug code that creeped into
6835         SVN.
6836         * TreeNode.cs: We get the indent level dynamically right now, so
6837         don't track it as a member.
6838         * TreeNodeCollection.cs: Make sure all nodes added to the list
6839         have parents, treeviews/topnodes setup properly.
6840         - Don't attempt to track indent level.
6841
6842 2006-05-30  Jackson Harper  <jackson@ximian.com>
6843
6844         * BindingContext.cs: Create the currency manager tables here.
6845         This allows us to more easily create null tables (when bad data
6846         members are used), and more easily create related currency
6847         managers.
6848         * CurrencyManager.cs: All the table creation stuff is done by the
6849         binding context now.
6850         - Current should throw an exception if listposition is -1.
6851         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
6852         been bound yet.
6853
6854 2006-05-30  Mike Kestner  <mkestner@novell.com>
6855
6856         * ListView.cs: allow reexpansion of zero-width column headers.
6857         Fixes #78528.
6858
6859 2006-05-28  Chris Toshok  <toshok@ximian.com>
6860
6861         * CurrencyManager.cs (get_Current): after the late binding
6862         listposition = -1 fix, we need to guard against it here and return
6863         null, otherwise we raise an exception (which is swallowed
6864         elsewhere, and breaks datagrid databinding.)
6865
6866 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
6867
6868         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
6869           than WM_SYSKEY, don't throw if get something unexpected (#78507)
6870
6871 2006-05-26  Jackson Harper  <jackson@ximian.com>
6872
6873         * ControlPaint.cs:
6874         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
6875         values, it's faster and it's all we care about (we don't care if
6876         the names aren't equal).
6877         * KeyboardLayouts.cs: Eliminate some dead code.
6878         - Lazy init things
6879         * X11Keyboard.cs: Lazy init keyboard detection.
6880         - Cleanup access modifiers a little.
6881
6882 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
6883
6884         * XplatUIX11.cs: Once again, attempting to get layout just right.
6885
6886 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
6887
6888         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
6889           the sizes of each link section, that will result in sizes that
6890           match DrawString's layout (Fixes #78391)
6891
6892 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
6893
6894         * FileDialog.cs: If AddExtension property is true autocomplete the
6895           extensions in SaveFileDialog correctly. Fixes bug #78453.
6896           Set MyNetwork and MyComputer to "C:\" for windows. This should
6897           fix part 8 of bug #78446 for now.
6898
6899 2006-05-26  Chris Toshok  <toshok@ximian.com>
6900
6901         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
6902         invalidate the current row header if we need to, but presumably
6903         we'll invalidate the row corrsponding to the bounds or
6904         editingControl.
6905         (GridHScrolled): switch back to this method, as it's part of the
6906         public api.  *sigh*.
6907         (GridVScrolled): same.
6908         (OnMouseWheel): hack up something that more or less works.  Call
6909         GridHScrolled/GridVScrolled directly, instead of duplicating much
6910         of their code here.
6911         (EnsureCellVisibility): reinstate a bunch of this code, since we
6912         can't just set the scrollbar Value and expect to do all the work
6913         in the ValueChanged handler.  Also, Call Update() after scrolling
6914         in one direction so the other XplatX11.ScrollWindow call has the
6915         proper stuff in the proper places.
6916         (EditCell): set is_editing to true before calling .Edit.
6917
6918         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
6919         don't bother comparing first.
6920         (OnKeyPress): call grid.ColumnStartedEditing before calling
6921         base.OnKeyPress.  this will set is_changing and invalidate the row
6922         header if necessary.
6923         (ProcessKeyMessage): for WM_CHAR messages, call
6924         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
6925         and WM_KEYDOWN.
6926         
6927         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
6928         it's done in the DataGrid.
6929         (NextState): call grid.ColumnStartedEditing, which takes care of
6930         invalidating the row header (and setting is_changing).
6931
6932         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
6933         here.  it's done in the DataGrid.
6934
6935 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6936
6937         * Control.cs: allow changing the cursor when the mouse position is
6938         out of bounds but Capture is set.
6939         * LinkLabel.cs: handle the case when the mouse button is pressed on the
6940         linklabel but released somewhere else.
6941
6942 2006-05-25  Jackson Harper  <jackson@ximian.com>
6943
6944         * TreeView.cs: When we get focus if there is no selected node make
6945         it the top node
6946         - Remove some uneeded setup code from Draw.
6947         * TreeNodeCollection.cs: If the tree doesn't have a top node when
6948         a new node is inserted make the new node the top.
6949         * XplatUIX11.cs:
6950         * Timer.cs: Use Utc time so that no local time zone stuff needs to
6951         be used (should be faster).
6952         
6953 2006-05-25  Chris Toshok  <toshok@ximian.com>
6954
6955         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
6956         problem with the last commit.
6957
6958 2006-05-25  Chris Toshok  <toshok@ximian.com>
6959
6960         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
6961         need the invalidate call here, while scrolling right-to-left via
6962         the left arrow key (i.e. moving the editing cell while scrolling).
6963
6964         * DataGrid.cs (.ctor): remove the initialization of
6965         ctrl_pressed/shift_pressed.  We no longer track them using key
6966         up/down handlers, but by using Control.ModifierKeys.  Also, switch
6967         to using ValueChanged handlers on the scrollbars instead of
6968         Scrolled event handlers.  This simplifies a bunch of the scrolling
6969         code.
6970         (GridHValueChanged): rename from GridHScrolled, and change it to
6971         work with the new event args.
6972         (GridVValueChanged): same.
6973         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
6974         (OnMouseWheel): actually scroll the datagrid.  Don't change the
6975         selected cell.
6976         (ProcessGridKey): correct all the keyboard navigation stuff I
6977         could find.  Ctrl up/down/left/right/home/end work now.
6978         (EnsureCellVisibility): correct method name spelling.  Also,
6979         simplify this a touch by not explicitly calling the
6980         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
6981         scrollbar value.
6982         (OnKeyUpDG): no need for this method now.
6983         
6984 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6985
6986         * LinkLabel.cs: display the OverrideCursor when hovering the label.
6987         Fixes bug #78392.
6988
6989 2006-05-25  Chris Toshok  <toshok@ximian.com>
6990
6991         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
6992         r61019.
6993
6994 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
6995
6996         * Application.cs: Moved setting of is_modal and closing to before
6997           we create the control, to allow the event handlers called as a
6998           result of creation affect closing. Also removed Gonzalo's previous
6999           change to setting DialogResult, the behaviour has been moved to 
7000           Form.ShowDialog()
7001         * Form.cs: 
7002           - ShowDialog(): Removed explicit creation of the form, let RunLoop
7003             handle it instead
7004           - ShowDialog(): If no dialog result is set, we need to return Cancel
7005           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
7006             the close is cancelled
7007
7008 2006-05-25  Jackson Harper  <jackson@ximian.com>
7009
7010         * StatusBar.cs: We only need to update the sizes of the other
7011         panels when we have auto size contents.  Also we are only updating
7012         the contents of the panel, not the borders, so compensate for the
7013         border width (TODO: get this width from the theme somehow).
7014         * TreeView.cs: Scrollable is true by default
7015         - Use invalidate instead of refresh where needed
7016         - Factor the scrollable value into scrollbar updating
7017         - Update the scrollbars if the Scrollable property is altered
7018         - Update the selected node if its ImageIndex is changed
7019         - Handle null nodes in UpdateNode (mainly so we don't have to
7020         check if selected is null when updating it
7021         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
7022         are factored into the visible count
7023         - Use VisibleCount for clarity in the code
7024         - When the font is changed we need to recurse through all the
7025         nodes and invalidate their sizes
7026         
7027 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7028
7029         * Application.cs: set the DialogResult to fixed when the main form is
7030         hidden or destroyed while being modal.
7031
7032 2006-05-25  Miguel de Icaza  <miguel@novell.com>
7033
7034         * Theme.cs: Use Tangoified messagebox icons. 
7035
7036         (GetSizedResourceImage): Also cope with width = 0 and do not
7037         trigger a warning in that case (0 means "give me your icon from
7038         the resouce, no special size needed).
7039
7040 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7041
7042         * Application.cs: Leave runloop if the the main modal form is 
7043           hidden (fixes #78484)
7044
7045 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7046
7047         * BindingContext.cs : reject null datasource in Contains() and
7048           Item[].
7049         * CurrencyManager.cs : check data_member validity when data_source
7050           is dataset. When it is late binding, the initial position is -1.
7051
7052 2006-05-24  Jackson Harper  <jackson@ximian.com>
7053
7054         * TreeNodeCollection.cs: Dont't recalculate the visible order on
7055         inserted nodes that aren't visible.  This changes the
7056         max_visible_order which confuses scrollbar settings.
7057         - Use the enumerator to get the prev node instead of duplicating
7058         code.
7059         * TreeView.cs: Use new method for setting scrollbar values
7060         - Don't set the bounds every time the scrollbar is updated
7061         - When updating below the root node use an invalidate instead of a
7062         refresh to prevent the child controls (scrollbars) from being
7063         refreshed. (UpdateBelow still needs to be reworked anyways).
7064         - Reenable SetBottom now that visible orders are set correctly,
7065         added some debug code incase we ever get bad values there again.
7066         - Set the scrollbar max to 2 less then the max value, this
7067         compensates for the max value being one above the node count, and
7068         for scrollbars adding one extra "notch".
7069         - When drawing image nodes if there is an imagelist we draw the
7070         first image in the list if the supplied image index is out of the
7071         image list's bounds.
7072         
7073 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7074
7075         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
7076           we receive a size change from the WM (Fixes #78503)
7077
7078 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
7079
7080         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
7081           rectangle (Fixes #78501)
7082
7083 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7084
7085         * ButtonBase.cs: 
7086           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
7087             as a bitfield.
7088           - Fixed MouseMove to no longer switch pressed state unless the left
7089             mouse button is pressed. Atsushi provided the original patch (#78485)
7090           
7091 2006-05-24  Jackson Harper  <jackson@ximian.com>
7092
7093         * ScrollBar.cs: New internal methods that allow us to change a
7094         couple values on the scrollbar (the most common case is maximum
7095         and large change) without getting multiple invalidates.
7096
7097 2006-05-24  Chris Toshok  <toshok@ximian.com>
7098
7099         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
7100         (Edit): save off the original state in oldState, and set
7101         grid.is_editing to true.
7102         (OnKeyDown): abort editing if escape is pressed.  also, call
7103         NextState if space is pressed.
7104         (OnMouseDown): call NextState.
7105         (NextState): factor out shared code from OnKeyDown and OnMouseDown
7106         here.  Also, only invalidate the row header once (on the initial
7107         is_changing switch) to save on redraws.
7108
7109 2006-05-24  Chris Toshok  <toshok@ximian.com>
7110
7111         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
7112         if the value in the cell is different than it was before.  This
7113         keeps us from triggering a layout when we move around a datarid
7114         with a highlighted cell.
7115         (Edit): suspend layout when creating/positining the text box, and
7116         resume passing false so we don't ever actually re-layout.
7117         (ReleaseHostedControl): same.
7118         (EnsureTextBox): reformat slightly, and set WordWrap to false.
7119
7120         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
7121         control-key sequences should go to the datagrid - remove that
7122         lock.  Also, modify the conditions under which we move between
7123         cells when moving the cursor within a cell, and remove the "this"
7124         and "base" from field accesses.  We weren't even consistent, given
7125         they all were in the base class.
7126
7127 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
7128
7129         * Binding.cs : (.ctor)
7130           An obvious NRE fix for BindingTest.CtorNullTest().
7131
7132 2006-05-23  Chris Toshok  <toshok@ximian.com>
7133
7134         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
7135         them between lines.  This fixes some quirks editing cells in the
7136         datagrid.
7137
7138 2006-05-23  Jackson Harper  <jackson@ximian.com>
7139
7140         * TreeView.cs: Use begin/end update when doing expand/collapse all
7141         so that we don't get flicker on the scrollbar.
7142
7143 2006-05-23  Jackson Harper  <jackson@ximian.com>
7144
7145         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
7146         treenode calculations to be independant of the painting code. To
7147         do this nodes track a visible order which is calculated by the
7148         treeview.
7149         - Call new methods for expanding/collapsing nodes.  These methods
7150         use scrollwindow so we don't have to update everything below the
7151         node.
7152         * TreeView.cs: Refactored drawing and scrolling code.  We don't
7153         need to update nodes when drawing anymore or calculate scrollbar
7154         stuff.
7155         - Added new methods for expanding/collapsing nodes. These methods
7156         use ScrollWindow so as to not have to redraw all the nodes below.
7157         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
7158         we add/remove nodes or sort.
7159         - Handle removing the selected and the top node properly.
7160
7161 2006-05-23  Chris Toshok  <toshok@ximian.com>
7162
7163         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
7164         maybe this should actually happen in the datagrid code?
7165         (EndEdit): no need to invalidate anything, given that
7166         ReleaseHostedControl causes the datagrid to relayout, which
7167         invalidates everything anyway.
7168
7169         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
7170         in SetCurrentCell).
7171         (set_SelectionBackColor): call InvalidateSelection instead of
7172         Refresh.
7173         (set_SelectionForeColor): same.
7174         (BeginEdit): Flesh this out a bit.
7175         (CancelEditing): only do any of this if we're editing/adding.
7176         (EndEdit): same.
7177         (OnMouseDown): there's no need to cancel editing here, it's done
7178         in SetCurrentCell.
7179         (SetCurrentCell): only invalidate the current row header if it's a
7180         different row than the new one.
7181         (ShiftSelection): fix this to work like MS does.
7182         (ResetSelection): factor out the invalidation of selected_rows to
7183         InvalidateSelection.
7184         (SetDataSource): cancel any editing that's going on.
7185
7186         * DataGridColumnStyle.cs
7187         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
7188         call the non-interface version.
7189
7190         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
7191         header rectangle with the clip rectangle so we don't redraw the
7192         entire header for just a small area.  Gets rid of the last flicker
7193         when horizontally scrolling.
7194         (DataGridPaintRow): same.
7195
7196 2006-05-23  Mike Kestner  <mkestner@novell.com>
7197
7198         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
7199         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
7200         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
7201         Critical bug report.
7202
7203 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7204
7205         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
7206           and this fixes #78493
7207
7208 2006-05-23  Miguel de Icaza  <miguel@novell.com>
7209
7210         * Theme.cs (GetSizedResourceImage): Scale images if the proper
7211         size is not found.  
7212         
7213         * FileDialog.cs: Do not change the background for the side bar as
7214         it wont work nicely with the theme, and also reduces the artifacts
7215         in rendering the icons (which I want to fix too).
7216
7217         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
7218         resources, not resgen resources. 
7219
7220         (PlatformDefaultHandler): Pull images using the new API.
7221
7222 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7223
7224         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
7225           a reference to the hwnd and will not remove it unless there are
7226           no pending exposures (fixes #78341)
7227         * XplatUI.cs: Improved debug
7228
7229 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
7230
7231         * MenuAPI.cs : don't handle OnClick event when it was not the left
7232           button. Fixed bug #78487.
7233
7234 2006-05-23  Mike Kestner  <mkestner@novell.com>
7235
7236         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
7237         prefer submenus to the top menu for item lookup, to avoid popping down
7238         top-row items.
7239
7240 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
7241
7242         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
7243           Graphics.FillRectangle as the visual results are really bad (even
7244           on win). We now draw perfect arrows (and perfect shadows when the
7245           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
7246           Pen.DashPattern to draw the dots of each line.
7247
7248 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
7249
7250         * FileDialog.cs: Update the filename combobox when navigating through
7251           the ListView with the cursor keys. Fixes part 7 of bug #78446.
7252
7253 2006-05-22  Mike Kestner  <mkestner@novell.com>
7254
7255         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
7256         Fixes #78463.
7257
7258 2006-05-22  Mike Kestner  <mkestner@novell.com>
7259
7260         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
7261         requests. Fix a misspelled parameter and a copy paste exception error
7262         in Select.
7263
7264 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
7265
7266         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
7267           to get the same width/height (5/13) on X11 as the default font has on
7268           win32. This means that our DefaultFont emSize is smaller than the 
7269           the MS SWF equivalent (even thought the width/height stays the same)
7270
7271 2006-05-20  Jackson Harper  <jackson@ximian.com>
7272
7273         * MdiClient.cs:
7274         * MdiWindowManager.cs:
7275         * InternalWindowManager.cs: Make sure to use the border width from
7276         the theme.
7277
7278 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
7279
7280         * PrintDialog.cs: Implements printer details
7281
7282 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
7283
7284         * FileDialog.cs: Added focus handling for PopupButtonPanel.
7285           Fixes part 1 and 2 of bug #78446
7286
7287 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
7288
7289         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
7290           instead of sticking to the first ever calculated value
7291
7292 2006-05-19  Mike Kestner  <mkestner@novell.com>
7293
7294         * ComboBox.cs: fix mouse motion selection to use MousePosition and
7295         PointToClient, since Capture is set. Fixes #78344.
7296
7297 2006-05-19  Mike Kestner  <mkestner@novell.com>
7298
7299         * ListView.cs: match MS behavior in Details view where items are not
7300         drawn if Columns.Count == 0. 
7301         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
7302         Use a separate pen to draw the check, since changing the width affects
7303         the box as well.  Fixes #78454.
7304
7305 2006-05-18  Miguel de Icaza  <miguel@novell.com>
7306
7307         * ListView.cs: ArgumentOutOfRangeException, single versions of the
7308         exception should throw the name of the invalid argument.
7309
7310         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
7311         there are no files listed. 
7312
7313 2006-05-18  Jackson Harper  <jackson@ximian.com>
7314
7315         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
7316         up.
7317
7318 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7319
7320         * Control.cs: Brought back our old UpdateZOrder method as a private
7321           function and switched our calls from UpdateZOrder to the new one.
7322           This fixes the Paint.Net canvas disappearing bug.
7323
7324 2006-05-18  Jackson Harper  <jackson@ximian.com>
7325
7326         * Theme.cs:
7327         * ThemeWin32Classic.cs:
7328         * InternalWindowManager.cs: Move the drawing into the theme,
7329         expose everything the theme should need from the window manager.
7330
7331 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7332
7333         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
7334           from the call to NativeWindow to avoid walking up the parent chain
7335           further than needed (speeds up setting cursors and avoids setting
7336           the wrong cursor if a parent has another cursor defined)
7337         * Cursor.cs: When loading an icon as cursor, MS uses the center of
7338           the icon as hotspot, not what's contained as hotspot in the icon
7339           file. This fixes the perceived drawing offset seen with Paint.Net
7340         
7341 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7342
7343         * XplatUIX11.cs: 
7344           - Store the calculated rectangle in Hwnd object and use it when 
7345             setting the client size
7346           - Force Toolwindows to always be type Dock, to ensure they're on top
7347
7348 2006-05-18  Mike Kestner  <mkestner@novell.com>
7349
7350         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
7351         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
7352         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
7353         Substantial refactoring to remove confusing nested classes. Coding
7354         standard and Get+Set->property refactorings.  Shift to index based
7355         highlighting in ComboListBox instead of constantly using IndexOf and
7356         Items[]. Add invalidations on resize for DropDownList to fix ugliness
7357         in FileDialog growth.  Draw borders manually since Simple mode needs
7358         to look like two independent controls.  Make listbox border
7359         conditional to DropDownStyle.  Improved OwnerDraw support.
7360
7361 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
7362
7363         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
7364         Don't set the disposed graphics to null, so we can throw the "right"
7365         exception if the graphics is reused later (added a flag to avoid 
7366         double disposing). Some behaviours are different under 2.0 and are
7367         filled under bug #78448.
7368
7369 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7370
7371         * Control.cs: When double-buffering is enabled, we need to reset
7372           our graphics context between paint calls. Otherwise, any 
7373           transformations and other alterations on the context will 
7374           become cumulative (#77734)
7375
7376 2006-05-18  Mike Kestner  <mkestner@novell.com>
7377
7378         * ListView.cs: do focused item selection like MS on clicks. 
7379         Rework focus handling for ItemControl so LostFocus invalidates as
7380         well.
7381         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
7382         the ListView ItemControl has focus.
7383
7384 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
7385
7386         * XplatUIX11.cs: If client_window ends up being width or height zero
7387           due to border settings, move it off window inside whole_window (#78433)
7388
7389 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7390
7391         * Mime.cs: Shrink the mime file cache correctly.
7392
7393 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7394
7395         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
7396
7397 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7398
7399         * XplatUIX11.cs (AddExpose): More sanity checks
7400
7401 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7402
7403         * XplatUIX11.cs:
7404           - AddExpose: Don't add expose ranges outside the size of our
7405             window
7406           - Cast opacity values to Int32 to avoid crashes with certain
7407             values
7408           - Added disabled code paths that protect against illegal cross-
7409             thread painting (Developers.exe)
7410
7411 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7412
7413         * ProgressBar.cs: Invalidate the control when it's resized
7414           since block size is based on control size. (#78388)
7415
7416 2006-05-16  Miguel de Icaza  <miguel@novell.com>
7417
7418         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
7419         of setting the incoming argument to the "reset" value, we set the
7420         this.datamember to string.empty (before we were invalidating the
7421         incoming data).   
7422
7423         Fixes 78420
7424
7425 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7426
7427         * Form.cs: Only apply transparency settings after the form
7428           is created. (Fixes #77800)
7429
7430 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7431
7432         * ApplicationContext.cs: Grab the HandleDestroyed event so
7433           we know when to fire OnMainFormClosed 
7434
7435 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7436
7437         * Application.cs: Introduced sub-class to allow tracking of
7438           threads and centralized triggering of the event mess for
7439           ThreadExit, AppExit, etc..  (#76156)
7440
7441 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
7442
7443         * MimeIcon.cs:
7444           - Do not return a null icon index value for a mime subclass.
7445             Instead try the main mime type class too.
7446           - Seems that some newer distributions don't have a link to some
7447             gnome default icons anymore. So check the default gnome dir too.
7448           
7449
7450 2006-05-16  Jackson Harper  <jackson@ximian.com>
7451
7452         * MdiClient.cs: Don't paint the parent background image if we have
7453         our own background image.
7454
7455 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7456
7457         * Control.cs:
7458           - PerformLayout: Do not shrink space filled by DockStyle.Fill
7459             controls, all filled controls are supposed to overlap (#78080)
7460           - UpdateZOrder is supposed to update the control's z-order in the
7461             parent's z-order chain. Fixed to behave like that
7462           - BringToFront: Removed obsolete code
7463           - SendToBack: Simplyfied
7464           - SetChildIndex: Trigger layout calculations when Z-order changes
7465             since layout is done by z-order
7466
7467 2006-05-16  Chris Toshok  <toshok@ximian.com>
7468
7469         [ fixes bug #78410 ]
7470         * DataGrid.cs (set_AlternatingBackColor): use
7471         grid_drawing.InvalidateCells instead of Refresh().
7472         (set_BackColor): call grid_drawing.InvalidateCells.
7473         (set_BackgroundColor): use Invalidate instead of Refresh.
7474
7475         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
7476         invalidate the cell area.
7477
7478 2006-05-15  Chris Toshok  <toshok@ximian.com>
7479
7480         [ fixes bug #78011 ]
7481         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
7482         on to DataGridPaintRow.
7483         (DataGridPaintRow): take a clip argument, and only draw the cells
7484         which intersect it.  same with the not_usedarea.
7485
7486         * Theme.cs (DataGridPaintRow) add @clip parameter.
7487
7488         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
7489         XplatUI.ScrollWindow.
7490         (ScrollToRow): same.
7491
7492         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
7493         with last column which was causing a gray swath to appear with the
7494         XplatUI.ScrollWindow code.
7495
7496 2006-05-15  Chris Toshok  <toshok@ximian.com>
7497
7498         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
7499         use XplatUI.ScrollWindow.
7500         (VerticalScrollEvent): use XplatUI.ScrollWindow.
7501
7502 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
7503
7504         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
7505
7506 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7507
7508         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
7509           file since there are no equivalent X11 cursors
7510
7511 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7512
7513         * MonthCalendar.cs : DateTimePicker should reflect selected date
7514           on mouse*up*, not mouse*down*. Fixed originally reported part of
7515           bug #76474.
7516
7517 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7518
7519         * TabControl.cs : When argument index is equal or more than tab
7520           count, just ignore. Fixed bug #78395.
7521
7522 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7523
7524         * Control.cs: Dispose all child controls when control is diposed (#78394)
7525
7526 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7527
7528         * ColorDialog.cs: Finally it is possible to select the color with
7529           the text boxes
7530
7531 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7532
7533         * PrintDialog.cs: Fix typo
7534
7535 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7536
7537         * PrintDialog.cs: PrintDialog is not resizable
7538         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
7539           color. Made some ToolBar drawing methods protected virtual.
7540
7541 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
7542
7543         * PrintDialog.cs: Implementation of the PrintDialog
7544
7545 2006-05-12  Chris Toshok  <toshok@ximian.com>
7546
7547         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
7548         thumb, instead use MoveThumb.  This has the side effect of making
7549         most of the other thumb moving machinery use MoveThumb as well.
7550         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
7551         need to actually invalidate the rectangle where the new thumb will
7552         go.
7553         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
7554         We force an Update() after, so it's not as fast as it could be,
7555         but at least there's zero flicker and no droppings.
7556         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
7557         (UpdateThumbPos): add another argument (dirty), which says whether
7558         or not to calculate/add dirty regions which we later invalidate.
7559         For cases where we know we're going to use MoveThumb, we pass
7560         false for this.  Otherwise, pass true.
7561
7562 2006-05-12  Jackson Harper  <jackson@ximian.com>
7563
7564         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
7565         the status bar.
7566         
7567 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
7568
7569         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
7570           and GetClipRegion methods and UserClipWontExposeParent property.
7571         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
7572           overriding UserClipWontExposeParent property, setting to false, since
7573           Win32 handles the required expose messages to draw our clipped parent
7574           areas internally
7575         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
7576           PaintEventStart to set the user clip region if set.
7577         * Control.cs: 
7578           - Now internally tracking the Region for the control since we need to
7579             store it if the handle is not yet created and only set it when it
7580             becomes created. Before setting the region forced handle creation
7581           - Added code to draw the parents underneath a user-clipped region
7582         * Hwnd.cs: Added UserClip property
7583
7584 2006-05-12  Chris Toshok  <toshok@ximian.com>
7585
7586         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
7587         (set_Maximum): same.
7588         (set_Minimum): same.
7589         (set_SmallChange): same.
7590         (OnMouseUpSB): remove the call to refresh when releasing the
7591         thumb.  We shouldn't need it.
7592         
7593 2006-05-12  Miguel de Icaza  <miguel@novell.com>
7594
7595         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
7596         AutoSize set to None, we do not need to relayout everything, we
7597         just need to invalidate the current region.
7598
7599         (Draw): Do not draw the entire ClientArea, just redraw the
7600         clip area being passed.
7601
7602         * MdiClient.cs: Make MdiClient constructor with the Form argument
7603         internal. 
7604
7605 2006-05-12  Jackson Harper  <jackson@ximian.com>
7606
7607         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
7608         parents background image,  but strangely not their own.
7609         - (DrawStatusBarPanel): Take into account horizontal alignment
7610         when drawing the strings and icons.
7611
7612 2006-05-12  Mike Kestner  <mkestner@novell.com>
7613
7614         * ListBox.cs: avoid invalidations for focus when the collection is
7615         empty. 
7616
7617 2006-05-12  Chris Toshok  <toshok@ximian.com>
7618
7619         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
7620         invalidate the entire thumb area.  Call InvalidateDirty which
7621         limits the redraw to the thumb itself and surrounding pixels.
7622
7623         * XplatUIX11.cs (ScrollWindow): optimize copying.
7624         
7625 2006-05-12  Chris Toshok  <toshok@ximian.com>
7626
7627         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
7628         Figure out the positioning/layout in a single pass instead of
7629         multiple recursive invocations.  Speeds up the initial display of
7630         the data grid.  Also, make many things private that were
7631         originally public but unused outside this class.
7632
7633 2006-05-11  Jackson Harper  <jackson@ximian.com>
7634
7635         * MdiClient.cs: Improved layout code.
7636
7637 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
7638
7639         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
7640           not SelectedObject.
7641
7642 2006-05-11  Chris Toshok  <toshok@ximian.com>
7643
7644         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
7645         union of that will always be {0,0,width,height}.
7646
7647 2006-05-11  Jackson Harper  <jackson@ximian.com>
7648
7649         * Form.cs: Match MS's DefaultSize for forms (they must have
7650         changed the size in sp2).
7651
7652 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7653
7654         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
7655
7656 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7657
7658         * TextControl.cs : Fixed bug #78109. This incorrect position
7659           comparison caused crash on automatic line split.
7660         * TextBoxBase.cs : reduce duplicate code.
7661
7662 2006-05-10  Jackson Harper  <jackson@ximian.com>
7663
7664         * MdiClient.cs: Active form is only sent to the back when using
7665         the Next form functionality, when a form is clicked the current
7666         active shouldn't be sent to the back.
7667         - Layout the mdi windows when the container is first made visible.
7668         * Form.cs: Give the MdiClient a ref to the containing form when we
7669         create it.
7670         
7671 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7672
7673         * LinkLabel.cs : link_font could be uninitialized, so populate one
7674           before actual use. Fixed bug #78340.
7675
7676 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7677
7678         * XplatUIX11.cs : clipboard format native value is IntPtr.
7679           Fixed bug #78283.
7680
7681 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7682
7683         * Control.cs: 
7684           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
7685             which is passed up the parent chain by DefWndProc
7686           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
7687             to DefWndProc (#77956)
7688         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
7689
7690 2006-05-10  Jackson Harper  <jackson@ximian.com>
7691
7692         * MdiClient.cs: We need to remove the controls from the mdi
7693         collection, when we close the window.
7694         * MdiWindowManager.cs: Special handling of closing mdi windows.
7695         * InternalWindowManager.cs: Make the close method virtual so the
7696         mdi window manager can handle it specially.
7697
7698 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
7699
7700         * DataGrid.cs:
7701           - Recalculate grid when the data source has changed
7702           - Matches styles provided by user from all data sources types
7703         * DataGridTableStyle.cs: For columns that provided by the user set the
7704         with the preferred value is there was unassigned.
7705         * CurrencyManager.cs: throw OnItemChanged event
7706
7707 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
7708
7709         * PictureBox.cs: Don't animate until handle is created. Start animation
7710           when handle is created.
7711
7712 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7713
7714         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
7715           current codebase.
7716         * XEventQueue.cs: We don't need to provide the extra info
7717
7718 2006-05-10  Jackson Harper  <jackson@ximian.com>
7719
7720         * MdiClient.cs: If the mdi clients parent form has a background
7721         image set, we draw that background image for the mdi area's
7722         background.
7723
7724 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7725
7726         * TextBoxBase.cs: Set IBeam cursor (#78347)
7727
7728 2006-05-10  Mike Kestner  <mkestner@novell.com>
7729
7730         * ToolBar.cs: fix some text padding issues with ButtonSize
7731         calculation. Update the default size to match MS documentation.
7732         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
7733         button size. Fixes #78296.
7734
7735 2006-05-10  Mike Kestner  <mkestner@novell.com>
7736
7737         * ListBox.cs: use is_visible for scrollbar positioning in case the
7738         control isn't on screen yet.  Fix off by one with Right vs Width
7739         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
7740         
7741 2006-05-10  Jackson Harper  <jackson@ximian.com>
7742
7743         * X11Dnd.cs: Drop to a control with another control on top of it.
7744         * ToolBar.cs: Work on a copy of the buttons list, so that it can
7745         be modified in click handlers. TODO: Look for similar problems in
7746         other controls.
7747
7748 2006-05-09  Jackson Harper  <jackson@ximian.com>
7749
7750         * Form.cs: Window managers need the old window state when setting
7751         window state now.
7752         * InternalWindowManager.cs: Allow the base mdi window manager to
7753         handle more of the MDI only stuff (like maximize buttons).
7754         * MdiWindowManager.cs: Fix some snafus in changing the window
7755         state.  Add all the menu functionality, for both popup and
7756         maximized menus.
7757         * MdiClient.cs: When a new form is selected the currently
7758         activated form is sent to the back, this matches MS.
7759         - Implement a new method to activate the next mdi child window.
7760
7761 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
7762
7763         * Control.cs: 
7764           - Added new InternalCapture method to allow controls to prevent
7765             the capture behaviour on the click handlers
7766           - Switched to use InternalCapture
7767         * ComboBox.cs:
7768           - Using InternalCapture to prevent mouse captures from being released
7769             on mouse button release (Fixes #78100)
7770         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
7771           returns Form borders if a caption is present. (Fixes #78310)
7772
7773 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
7774
7775         * TreeNode.cs: Changed serialization .ctor to not require every field
7776           to be present. (#78265)
7777         * OwnerDrawPropertyBag.cs: Added serialization .ctor
7778
7779 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
7780
7781         * MimeIcon.cs: for is faster than foreach for strings.
7782
7783 2006-05-05  Mike Kestner  <mkestner@novell.com>
7784
7785         * CheckedListBox.cs: update check handling code to not use selected.
7786         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
7787         behavior for visual feedback, motion response, shift/ctrl handling,
7788         and properly deal with all 4 selection modes. Updates to bounds
7789         handling logic.  Add scroll wheel support. [Fixes #77842]
7790
7791 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
7792
7793         * ListView.cs:
7794           - Moved adding of Implicit controls into .ctor. That way, subsequent
7795             creation of the controls will not cause them to think they are 
7796             toplevel windows (fixes #78200 header problem)
7797           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
7798           - Switched visibility setting of header control to use internal field
7799             to avoid triggering handle creation
7800           - Now checking if handle is created before causing a refresh when items
7801             are added (This makes us now match handle creation time with MS)
7802         * Splitter.cs: Removed loading of private splitter cursor, switched to
7803           Cursors version now that that is loading the right ones
7804         * Cursors.cs: Load proper splitter cursors from resources
7805         * Cursor.cs: Added second method of loading resource cursors for the 
7806           VS.Net users amongst us
7807
7808 2006-05-05  Mike Kestner  <mkestner@novell.com>
7809
7810         * ListView.cs: give header_control a minimum size based on the
7811         ListView size.
7812
7813 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
7814
7815         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
7816           window seems to do that with metacity, so set that type. (#78120)
7817
7818 2006-05-05  Mike Kestner  <mkestner@novell.com>
7819
7820         * ListViewItem.cs: fix Details mode checkbox layout bug.
7821         * ThemeWin32Classic.cs: draw a ListView column header for unused space
7822         at the end of the header, if it exists. [Fixes for #78200]
7823
7824 2006-05-04  Jackson Harper  <jackson@ximian.com>
7825
7826         * MdiClient.cs: Add a helper property to get the container form.
7827         * MdiWindowManager.cs: We have to make sure to use the menu origin
7828         when drawing the icons and buttons, this fixes maximized window
7829         icons/buttons on win32.
7830         * InternalWindowManager.cs: Reset the restore captions when a
7831         window goes from Maximized to Minimized and vice versa. Move the
7832         DrawMaximizedButtons into the MdiWindowManager source, tool
7833         windows can't be maximized. NOTE: This could use a little
7834         refactoring if time ever permits.
7835         
7836 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
7837
7838         * TextBox.cs: Add MWFCategoryAttributes
7839         * TextBoxBase.cs: Add MWFCategoryAttributes
7840         * Form.cs: Add MWFCategoryAttributes
7841
7842 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
7843
7844         * Control.cs: Add MWFCategoryAttributes
7845         * ScrollableControl.cs: Add MWFCategoryAttributes
7846
7847 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
7848
7849         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
7850           Divider is true. Fix a little glitch in PropertyToolBar
7851           drawing code
7852
7853 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
7854
7855         * Control.cs:
7856           - Dispose: Call base.Dispose, this causes the disposed event
7857             to be fired (and probably other, more important stuff)
7858           - SetVisibleCore: Set is_visible to true after creating the
7859             window so that the window still gets created invisible (if
7860             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
7861             to generate a WM_ACTIVE message
7862         * Form.cs: Call Dispose when we want to destroy the window, instead of
7863           just destroying the handle (Dispose will do that for us)
7864         * XplatUIX11.cs:
7865           - RootWindow also needs a queue, so we can properly process the
7866             property change events from RootWindow (like Activate)
7867           - Generatic synthetic WM_ACTIVE message when the active window is
7868             being destroyed
7869
7870 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
7871
7872         * LinkLabel.cs: Trigger a recalc of our label dimensions when
7873           bounds are changed
7874
7875 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
7876
7877         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
7878           for determining width and height (image might not be assigned if
7879           we're drawing an imagelist)
7880
7881 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
7882
7883         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
7884         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
7885           height from system
7886         * Theme.cs: No longer returns hardcoded menu height, instead calls
7887           new driver method
7888         * Form.cs (OnLoad): Scaling happens before triggering Load events 
7889           on MS (# 78257)
7890
7891 2006-05-01  Mike Kestner  <mkestner@novell.com>
7892
7893         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
7894
7895 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
7896
7897         * TextBoxBase.cs: Removed Fixme
7898         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
7899
7900 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
7901
7902         * XplatUIX11.cs:
7903           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
7904             the rectangle relative to the parent, considering borders. We
7905             don't really want that.
7906           - ScrollWindow: Fixed warning to be more understandable
7907         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
7908           scrollbars and scroll only the visible area
7909         * RichTextBox.cs: Removed debug output
7910
7911 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
7912
7913         * NumericUpDown.cs (Text): Just use base
7914         * UpDownBase.cs: Ensure txtView is created before using it
7915
7916 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
7917
7918         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
7919           casting to IntPtr to avoid 64bit overflow errors
7920
7921 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
7922
7923         * Control.cs:
7924           - AllowDrop: Don't force handle creation.
7925           - CreateHandle: Added call to tell driver if we're allowed to drop
7926
7927 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
7928
7929         * FileDialog.cs: Remember the last directory not only for the
7930           current instance but also for new FileDialog instances.
7931
7932 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
7933         
7934         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
7935           broke sending async messages
7936
7937 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
7938
7939         * XplatUIX11.cs:
7940           - ScrollWindow: Fixed method. We finally generate expose events again
7941             for scrolled areas. This was causing 'garbage' when scrolling
7942             textbox and other controls that used ScrollWindow
7943           - Switched from using the regular queue for paint events to the MS 
7944             model of 'generating' paint events when the queue is empty.
7945             We use the new XQueueEvent.Paint subclass to store which windows
7946             need painting.
7947           - AddExpose now takes the x/y/width/height of the exposed area
7948             and inserts the window into the paint queue if not already there
7949           - InvalidateWholeWindow: Switched to use new AddExpose method
7950           - UpdateMessageQueue: Added which queue to monitor for paint events
7951           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
7952             the unlikely case nothing above handles it. We reset the expose
7953             pending states to get them off the queue.
7954           - GetMessage: Now pulls a paint event if no other events are in the
7955             queue
7956           - Invalidate: Switched to new AddExpose method
7957           - PeekMessage: Updated to understand pending paint events
7958           - UpdateWindow: Fixed logic bug. We were only updating if the window
7959             didn't need updating. Also switched to sending WM_PAINT directly,
7960             like MS does.
7961         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
7962           and random access Remove(). The random access is needed to handle
7963           UpdateWindow() where a WM_PAINT is sent directly without accessing
7964           the queue.
7965         * ScrollBar.cs: Added Update() calls to cause immediate updates to
7966           allow for better feedback when scrolling. Scrollbars are small and
7967           the immediate update should make it 'feel' more responsive without
7968           slowing things down. ScrollBar still needs it's invaliate logic
7969           updated to not always invalidate the whole bar on certain changes.
7970
7971 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7972
7973         * Control.cs:
7974         (BackColor): if the control does not support a transparent background,
7975         return the default backcolor when the parent backcolor is transparent.
7976
7977 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
7978
7979         * Application.cs: Updated to new StartLoop/GetMessage API
7980         * RichTextBox.cs: Provide some output on RTF parsing errors
7981         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
7982           new queue_id argument to GetMessage and PeekMessage to allow faster
7983           handling of per-thread queues in drivers.
7984         * Hwnd.cs: Added Queue tracking and property
7985         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
7986         * XEventQueue.cs: Added thread trackingA
7987         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
7988         * XplatUIX11.cs:
7989           - Implemented new per-thread queue
7990           - GetMessage: Fixed return/break behaviour on several cases. We were
7991             returning stale messages in some cases, instead of just processing
7992             the next message
7993
7994 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
7995
7996         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
7997
7998 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
7999
8000         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
8001           fixed off-by-one comparisons between Width/Height and Right/Bottom.
8002
8003 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8004
8005         * PropertyGridView.cs: Fix drop down width.
8006
8007 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8008
8009         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
8010           a mess in DrawToolBar, so I removed one of them.
8011
8012 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8013
8014         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
8015           needed (clip). Otherwise we get artifacts.
8016
8017 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8018
8019         * FixedSizeTextBox.cs: Added constructor to allow specifying which
8020           dimension is fixed
8021         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
8022           and switched FixedSizeTextBox to only be fixed vertical (#78116)
8023         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
8024           if it matches the scale base font (avoids unneeded scaling)
8025
8026 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8027
8028         * X11DesktopColors.cs: One gtk_init_check should be enough
8029
8030 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
8031
8032         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
8033           match MS behaviour
8034
8035 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8036
8037         * TextBoxBase.cs: 
8038           - Generate OnTextChanged for Backspace even if we're only deleting
8039             the current selection
8040           - When setting the Text property, only select all text if the
8041             control does not have focus when it is being set. Otherwise
8042             just place the cursor at the beginning of the control
8043
8044 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8045
8046         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
8047           Added a little helper to draw PropertyGrid ToolBar with a different
8048           border and a different BackColor.
8049         * PropertyGrid.cs: Some background parts didn't get painted with the
8050           correct background color. Added a class that helps us to draw the
8051           correct border for PropertyGridView and a class that helps us to
8052           draw ToolBars with a different backcolor
8053         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
8054
8055 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
8056
8057         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
8058         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
8059
8060 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8061
8062         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
8063           into the palette entries. Also, since we're working on a copy
8064           we needed to copy the palette back onto the bitmap.
8065         * Cursor.cs: Same fix as XplatUIWin32.cs.
8066
8067 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
8068
8069         * ImageListStreamer.cs: Need to read the var (or we're off)
8070
8071 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8072
8073         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
8074           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
8075           TextBoxBase.cs: Unused var fixes
8076         * AxHost.cs: Small 2.0 fix
8077         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
8078           as it seems that is what at least Metacity expects. This will make
8079           icons show up on 64bit platforms. We still have some 64bit size
8080           issues, though, since the startup app window size still won't match.
8081
8082 2006-04-25  Mike Kestner  <mkestner@novell.com>
8083
8084         * *.cs: cleanup newly reported exception var unused warnings.
8085
8086 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8087
8088         * ThemeWin32Classic.cs: Button image alignment now matches exactly
8089           ms
8090
8091 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8092
8093         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
8094           image. The image position is always the same, no matter if the
8095           button is pressed or not.
8096
8097 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8098
8099         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
8100           selection and set the correct filename for SaveFileDialog.
8101           Patch by Emery Conrad.
8102
8103 2006-04-24  Mike Kestner  <mkestner@novell.com>
8104
8105         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
8106         check for item.X outside the ClientRect instead of item.Y. Fixes
8107         #78151.
8108
8109 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8110
8111         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
8112         trust that value blindly and do some sanity check. Fixes bug #77814.
8113
8114 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8115
8116         * ImageListStreamer.cs: save the mask as a 1bpp image.
8117
8118 2006-04-21  Mike Kestner  <mkestner@novell.com>
8119
8120         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
8121         pass Checked and Indeterminate to the Theme Engine. Improve
8122         encapsulation with ListBox.
8123         * ListBox.cs: Keep a StringFormat instead of calculating it every item
8124         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
8125         nested types.  Move all CheckState functionality to CheckedListBox.
8126         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
8127         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
8128         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
8129         single base list. Fix scrollbar sizing and placement to mirror MS.
8130         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
8131         used.
8132         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
8133         for CheckedListBox by using new DrawItemState info.  Center the
8134         checkboxes on the items. Use new StringFormat property.
8135
8136 2006-04-18  Jackson Harper  <jackson@ximian.com>
8137
8138         * Form.cs: MdiChildren don't do default locations the same way as
8139         regular forms.  This prevents a crash when trying to position the
8140         mdi windows.
8141
8142 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
8143
8144         * PropertyGridTextBox.cs: Formatting, copyright
8145         * PropertiesTab.cs: Formatting
8146         * PropertyGrid.cs: Formatting
8147         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
8148           click toggling of values
8149           
8150 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
8151
8152         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
8153         * Control.cs (.ctor): verify_thread_handle is static, don't reset
8154           every time a control is created
8155         * Application.cs: Removed obsolete EnableRTLMirroring method
8156
8157 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
8158
8159         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
8160         SelectedIndex to -1. Fixes bug #78121.
8161
8162 2006-04-17  Jackson Harper  <jackson@ximian.com>
8163
8164         * Binding.cs: Handle null values for Current and BindingContext.
8165         This occurs when binding is a little delayed.
8166         * CurrencyManager.cs: return null for Current when there are no
8167         items in the list.
8168         - Hookup to the listchanged event on the DataView and update
8169         bindings when the list is changed.  This fixes late binding of
8170         controls.
8171
8172 2006-04-17  Jackson Harper  <jackson@ximian.com>
8173
8174         * X11Dnd.cs:
8175         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
8176         Ringenbach.
8177
8178 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
8179
8180         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
8181           place
8182         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
8183           with the correct ButtonState
8184
8185 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
8186
8187         * XplatUIX11.cs: Improved distinguishing between window types to
8188           tell the WM a type closer to what the app wants (Fixes #78107)
8189
8190 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8191
8192         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
8193           GrabHandle
8194
8195 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8196
8197         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
8198           drawing code to reflect the size grip changes
8199
8200 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8201
8202         * ImageListStreamer.cs: fix handling of the mask that follows the main
8203         bitmap when deserializing and serialize it properly. The generated mask
8204         should better be a 1bpp image, but I'll do that later.
8205
8206 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8207
8208         * FileDialog.cs: Show something in the DirComboBox on *nix if the
8209           path doesn't fit into some of our Current.Places
8210
8211 2006-04-13  Jackson Harper  <jackson@ximian.com>
8212
8213         * ComboBox.cs: Use borders instead of drawing our own decorations,
8214         try to obey correct rules for heights.
8215         * Theme.cs:
8216         * ThemeNice.cs:
8217         * ThemeClearLooks.cs:
8218         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
8219         this is now handled by borders.
8220         - Remove unused DrawListBoxDecorationSize method.
8221         
8222 2006-04-13  Mike Kestner  <mkestner@novell.com>
8223
8224         * MenuAPI.cs: null guarding for the disbled click check fixes crash
8225         reported by Alex.
8226
8227 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8228
8229         * ThemeWin32Classic.cs: 
8230           - Fixed CPDrawStringDisabled
8231           - Corrected drawing of disabled menu items
8232           - Fixed drawing of disabled radio buttons (bug #78095)
8233           - Draw check in a disabled CheckBox with color ControlDark 
8234
8235 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8236
8237         * Form.cs: Use the provided width when calculating the menu size;
8238           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
8239           and ClientSize.Width won't be updated yet
8240         * Application.cs: Use Visible instead of Show() to make form visible,
8241           this way we create the handle later and menusize is considered
8242
8243 2006-04-12  Mike Kestner  <mkestner@novell.com>
8244
8245         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
8246         reporting.
8247
8248 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8249
8250         * TextBox.cs: Implemented context menu
8251
8252 2006-04-12  Mike Kestner  <mkestner@novell.com>
8253
8254         * ListView.cs: implement box selection. fixes #77838.
8255         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
8256
8257 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8258
8259         * XplatUIX11.cs: Added setting of window type when transient window
8260           is created (metacity would move it otherwise)
8261         * X11Structs.cs: Added WINDOW_TYPE atoms
8262         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
8263           background (the control is Opaque but still wants transparent
8264           backgrounds)
8265
8266 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8267
8268         * Control.cs: Added OnPaintBackgroundInternal to allow controls
8269           that set Opaque but don't mean it (like all ButtonBase-derived
8270           controls) to still draw their background
8271         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
8272           the background
8273
8274 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8275
8276         * Control.cs (PaintControlBackground): Set the graphics object
8277           on our PaintEvent to null to prevent it from being disposed
8278           when the PaintEvent gets disposed
8279
8280 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
8281
8282         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
8283         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
8284
8285 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8286
8287         * Control.cs: 
8288           - Added transparency check to BackColor property. Transparent
8289             backgrounds are only allowed if the control styles permit it
8290           - Added recursive painting of parent control background and
8291             foreground if a control with a transparent backcolor is drawn
8292             (Thanks to Tim Ringenback for providing his 'hack' as a base
8293              for this patch) Fixes #77985 and #78026.
8294           - Added Opaque style check before calling OnPaintBackground, no
8295             need to draw the background if the control is opaque
8296           - Removed ControlAccessibleObject owner variable (inherited from
8297             base, no need to define again)
8298           - Added some documentation links explaining the drawing events
8299             and styles
8300
8301 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8302
8303         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
8304           that the affected control is the located at the left border of our
8305           parent (Fixes #77936)
8306
8307 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8308
8309         * TextBoxBase.cs: When rendering disabled or readonly controls,
8310           draw the background with 'Control' instead of 'Window' color as
8311           long as the user hasn't specifically set a color
8312
8313 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8314
8315         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
8316           since that won't be updated if the user types text (only if it's
8317           programatically set)
8318
8319 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8320
8321         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
8322           layout changes do to app-triggered resizes will have the proper
8323           display rectangle for layout
8324
8325 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
8326
8327         * ThemeWin32Classic.cs:
8328           - Make use of the SystemBrushes and SystemPens wherever possible
8329           - Corrected some highlight colors
8330           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
8331             drawing
8332         * Theme.cs: Added Empty field to CPColor struct
8333
8334 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8335
8336         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
8337           is displayed when calculating the display rectangle. Thanks to Mike
8338           for teaching me the err of my ways.
8339
8340 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
8341
8342         * ScrollableControl.cs:
8343           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
8344             (instead of 0,0) and we now return the real width/height instead of
8345             just the clientrectangle, adjusted for padding. The rectangle is
8346             now cached and created by the new CalculateDisplayRectangle method.
8347           - Created new CalculateDisplayRectange method, which basically does
8348             what get_DisplayRectangle() did originally, but now using the 
8349             right edge instead of DisplayRectangle to determine the size of
8350             our scrollbars
8351           - get_Canvas(): Fixed it to properly calculate canvas for 
8352             right/bottom controls which seem to be placed to the right/bottom
8353             of any controls that have a fixed location
8354           - Removed TODO that's taken care of
8355           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
8356             and SetDisplayRectLocation according to new MSDN2 docs
8357           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
8358             event when that is called, this is added for compatibility
8359           - ScrollControlIntoView(): Implemented.
8360           - Switched scrollbars to be implicit, they shouldn't be selectable
8361         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
8362           call it when the active control is set/changed
8363         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
8364         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
8365           implicit_control variable (used for native Win32 message generation)
8366         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
8367           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
8368         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
8369         * XplatUIStructs.cs: Added ScrollBarCommands enum
8370
8371 2006-04-10  Jackson Harper  <jackson@ximian.com>
8372
8373         * ButtonBase.cs:
8374         * CheckedListBox.cs:
8375         * ComboBox.cs:
8376         * DataGrid.cs:
8377         * DataGridView.cs:
8378         * Form.cs:
8379         * GroupBox.cs:
8380         * ListBox.cs:
8381         * PrintPreviewControl.cs:
8382         * ProgressBar.cs:
8383         * PropertyGrid.cs:
8384         * Splitter.cs:
8385         * StatusBar.cs:
8386         * TrackBar.cs:
8387         * UpDownBase.cs: Fixup base event overrides.
8388         
8389 2006-04-06  Mike Kestner  <mkestner@novell.com>
8390
8391         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
8392         all user-initiated value changes to min <= value <= max-thumbsz+1.
8393         (set_Value): check for vert/horiz when calculating new thumb position.
8394         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
8395         like MS does.
8396         (OnMouseMoveSB): refactor the thumb dragging code and refine
8397         invalidation logic to reduce flicker.
8398         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
8399         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
8400         (UpdateThumbPosition): small code readability cleanup
8401
8402 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
8403
8404         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
8405           different
8406
8407 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8408
8409         * ThemeNice.cs: Use a better graphics effect when a button is pressed
8410
8411 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8412
8413         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
8414         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
8415           This dramatically reduces the number of Pen.Dispose calls. 
8416           Where possible call ResPool methods only once instead of calling it
8417           over and over again (for example for the same color).
8418
8419 2006-04-06  Mike Kestner  <mkestner@novell.com>
8420
8421         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
8422         Also remove an unused private field on the collection. Fixes #77972.
8423
8424 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8425
8426         * ThemeNice.cs: Added ToolBar drawing code
8427
8428 2006-04-06  Mike Kestner  <mkestner@novell.com>
8429
8430         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
8431         I'm assuming that means we need to look up the toplevel for the
8432         provided control. Fixes the crash trace in #77911 but exposes another
8433         crash in some strange reflection usage in NDocGui.
8434
8435 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8436
8437         * ThemeNice.cs: Gave it a little silver touch and added Images
8438           method
8439         * FontDialog.cs: FontDialog is not resizable
8440         * FileDialg.cs: Added SizeGripStyle.Show
8441
8442 2006-04-05  Jackson Harper  <jackson@ximian.com>
8443
8444         * KeyboardLayouts.cs: Remove warning.
8445
8446 2006-04-05  Jackson Harper  <jackson@ximian.com>
8447
8448         * Control.cs: Enable OnPaintInternal so we can use it for drawing
8449         all of our controls instead of Paint +=.
8450         * ListBox.cs:
8451         * ListView.cs:
8452         * MenuAPI.cs:
8453         * MessageBox.cs:
8454         * NotifyIcon.cs:
8455         * ProgressBar.cs:
8456         * ScrollBar.cs:
8457         * Splitter.cs:
8458         * StatusBar.cs:
8459         * TabControl.cs:
8460         * TextBoxBase.cs:
8461         * ToolBar.cs:
8462         * TrackBar.cs:
8463         * UpDownBase.cs:
8464         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
8465         use OnPaintInternal. Remove Width/Height and Visible checks in
8466         paint handler, this is done at a higher level now.
8467         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
8468         * PaintEventArgs.cs: Add a handled flag so controls that don't
8469         want anymore painting after OnPaintInternal can make sure OnPaint
8470         isn't called.
8471
8472 2006-04-05  Mike Kestner  <mkestner@novell.com>
8473
8474         * Form.cs: fix the menu WndProc hacks to respect the native enabled
8475         state of the form, so that we don't process events when Modal dialogs
8476         are up. Fixes #77922.
8477
8478 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
8479
8480         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
8481           checking is done.
8482
8483 2006-04-05  Mike Kestner  <mkestner@novell.com>
8484
8485         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
8486
8487 2006-04-05  Mike Kestner  <mkestner@novell.com>
8488
8489         * ListView.cs (HeaderMouseMove): null guarding for the over column
8490         when setting up the drag_to_index.  Fixes #78015.
8491
8492 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
8493
8494         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
8495           in the taskbar. Transient windows seem to accomplish that.
8496
8497 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
8498
8499         * Form.cs:
8500           - Re-enabled CreateParams.X/Y code for FormStartPosition
8501           - Added code for manual placement when creating the Control
8502           - Incomplete patch to treat MDI forms differently when
8503             setting the ClientSizeCore. (Still need to figure out handling
8504             x/y coords there)
8505         * XplatUIX11.cs:
8506           - When we're explicitly setting the X/Y position of a non-Child
8507             window, let the WM know. Metacity really wants this.
8508
8509 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8510
8511         * ThemeNice.cs: Added CPDrawButton
8512
8513 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8514
8515         * ThemeNice.cs: Changed the color for focused buttons and activated
8516           the arrows for small scroll buttons.
8517
8518 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8519
8520         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
8521           anymore. Changed some method modifiers to protected (virtual)
8522         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
8523           changes
8524         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
8525           Updated drawing of menus, buttons and progressbars; added
8526           CPDrawBorder3D 
8527
8528 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8529
8530         * ImageListStreamer.cs: implemented serialization/deserialization
8531         of the images.
8532
8533 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
8534
8535         * ThemeWin32Classic.cs:
8536           - Removed all the DrawFrameControl stuff; CPDrawButton,
8537             CPDrawCheckBox and CPDrawRadioButton are now handled directly
8538             inside the methods
8539           - Updated and corrected the drawing code of CPDrawButton,
8540             CPDrawCheckBox and CPDrawRadioButton to better match ms
8541           - Updated theme checkbox and radiobutton code to use the CP*
8542             methods
8543
8544 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8545
8546         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
8547           bug is fixed
8548
8549 2006-03-31  Jackson Harper  <jackson@ximian.com>
8550
8551         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
8552         sometimes.
8553         * UpDownBase.cs: Don't CreateGraphics manually, use a
8554         Refresh. Ideally we would invalidate the correct areas here.
8555
8556 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8557
8558         * XplatUIX11.cs: 
8559           - We now track the mapping state of windows. If a window (or 
8560             one of it's parents) is not mapped we no longer permit
8561             WM_PAINT messages to be generated since we'd otherwise get 
8562             lots of BadMatch X errors. Jackson did all the work figuring
8563             out the problem.
8564           - Destroying the caret if the window it's contained in is 
8565             destroyed. Can't use regular DestroyCaret method since it
8566             might fall into a drawing function (trying to remove the
8567             caret) and with that generate new BadMatch errors. Again,
8568             Jackson tracked this down.
8569           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
8570             make sure we send the messages to all windows. (The old code
8571             would send the WM_DESTROY to the window, and then all child
8572             windows would be 'gone' because the WM_DESTROY handle lookup
8573             would no longer find the destroyed window)
8574         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
8575         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
8576
8577 2006-03-31  Jackson Harper  <jackson@ximian.com>
8578
8579         * ScrollableControl.cs: Dont recalc if we are not visible.
8580
8581 2006-03-31  Mike Kestner  <mkestner@novell.com>
8582
8583         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
8584         the visibility branch.
8585
8586 2006-03-31  Jackson Harper  <jackson@ximian.com>
8587
8588         * ScrollBar.cs: Cap values when incrementing/decrementing.
8589
8590 2006-03-31  Mike Kestner  <mkestner@novell.com>
8591
8592         * MenuAPI.cs: setup menu.tracker for popup/context menus.
8593         * ToolTip.cs: guard against timer expirations with no active control.
8594         Not sure why it happened.
8595
8596 2006-03-31  Mike Kestner  <mkestner@novell.com>
8597
8598         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
8599         text.
8600         * ToolTip.cs: Position the tooltip based on where the cursor is at
8601         popup time, not at MouseEnter time.  Add a Down state so that we don't
8602         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
8603         positioning offset. Lookup DisplaySize at positioning time, since it
8604         can theoretically change during invocation.
8605         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
8606         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
8607
8608 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8609
8610         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
8611           Fixes behaviour when the Text property of the box is String.Empty
8612
8613 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
8614
8615         * XplatUIX11.cs: Only send mouseleave for our client windows, not
8616           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
8617           a window)
8618
8619 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8620
8621         * FileDialog.cs: Visual enhancement for the popup buttons in 
8622           PopupButtonPanel
8623
8624 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8625
8626         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
8627           code
8628
8629 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
8630
8631         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
8632           highlighted menu items to match ms
8633
8634 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
8635
8636         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
8637
8638 2006-03-30  Mike Kestner  <mkestner@novell.com>
8639
8640         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
8641         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
8642         go active to account for HotLight to Selected transition.
8643         * MenuItem.cs: add internal Selected prop. Fill out the Status
8644         property by calculating it from item info. Add HotLight,
8645         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
8646
8647 2006-03-30  Mike Kestner  <mkestner@novell.com>
8648
8649         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
8650
8651 2006-03-29  Jackson Harper  <jackson@ximian.com>
8652
8653         * Form.cs: Implement TODO.
8654
8655 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
8656
8657         * PrintPreviewDialog.cs: Implemented missing methods and events; still
8658           missing proper dialog setup in the constructor
8659
8660 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
8661
8662         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
8663         * Control.cs:
8664           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
8665           - Fixed ResetBindings and removed TODO
8666           - Added check for cross-thread calls to get_Handle()
8667           - Added Marshaller attribute for set_Font to satisfy class status
8668         * FontDialog.cs: Removed TODOs that seemed implemented
8669         * UpDownBase.cs: Removed unneeded TODO and Fixme
8670         * MessageBox.cs: Implemented support for Default button and removed TODO
8671         * FileDialog.cs: Removed obsolete TODO
8672         * DomainUpDown.cs: Removed obsolete TODO
8673         * ButtonBase.cs: Removed obsolete TODO
8674         * XplatUIWin32.cs: Removed obsolete TODO
8675         * Form.cs:
8676           - Removed obsolete TODO
8677           - Calling CheckAcceptButton when the acceptbutton is changed to allow
8678             internal status updates
8679           - Making sure the active control is selected when the control is created
8680         * CurrencyManager.cs: Removed obsolete TODO
8681
8682 2006-03-29  Mike Kestner  <mkestner@novell.com>
8683
8684         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
8685         of PrintPreviewDialog and RichTextBox.
8686
8687 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8688
8689         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
8690           DarkDark, Light and LightLight colors for a specific color
8691         * ThemeWin32Classic.cs:
8692           - Use Button drawing code to draw RadioButtons and CheckBoxes with
8693             Appearance = Button 
8694           - Make use of the new ResPool helper CPColor
8695           - Draw ProgressBar and StatusBar with correct 3D borders
8696
8697 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8698
8699         * ColorDialog.cs: Return selected color. Fixes bug #77940.
8700
8701 2006-03-28  Mike Kestner  <mkestner@novell.com>
8702
8703         * ListView.cs: fix Icon layout to plan for scrollbar widths when
8704         calculating col/row counts.
8705
8706 2006-03-28  Mike Kestner  <mkestner@novell.com>
8707
8708         * ColumnHeader.cs:
8709         * ListView.cs:
8710         * ListViewItem.cs:
8711         * Menu.cs: 
8712         switch to explicit interface method implementation for some methods
8713         corcompare identifies as inconsistent with MS.
8714
8715 2006-03-28  Mike Kestner  <mkestner@novell.com>
8716
8717         * MainMenu.cs: 
8718         * Menu.cs:
8719         add a few missing methods from the class status output.
8720
8721 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
8722
8723         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
8724           correct.
8725
8726 2006-03-28  Mike Kestner  <mkestner@novell.com>
8727
8728         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
8729
8730 2006-03-27  Mike Kestner  <mkestner@novell.com>
8731
8732         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
8733         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
8734
8735 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
8736
8737         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
8738
8739 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8740
8741         * ThemeWin32Classic.cs:
8742           - GroupBox: Inserted a little gap between the text and the lines
8743             on the right side
8744           - Made the code in CPDrawBorder3D more readable
8745           - Corrected the drawing location of the up and down arrows in 
8746             CPDrawScrollButton
8747
8748 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8749
8750         * ControlPaint.cs: Corrected line widths in DrawBorder for
8751           ButtonBorderStyle Inset and Outset
8752
8753 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8754
8755         * ThemeWin32Classic.cs:
8756           - Rewrote the totally broken CPDrawBorder3D method. That was
8757             one of the main problems for the terrific ThemeWin32Classic
8758             look
8759           - Updated and corrected Button drawing
8760           - Correct the dimensions of the SizeGrip to match ms ones
8761           - Removed a small drawing glitch in DrawComboBoxEditDecorations
8762         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
8763           Border3DStyle.Sunken to match ms.
8764
8765 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8766
8767         * ThemeWin32Classic.cs: First small part of the "de-uglify
8768           ThemeWin32Classic" effort, SizeGrip
8769
8770 2006-03-24  Jackson Harper  <jackson@ximian.com>
8771
8772         * XplatUIX11.cs: Give a max idle time of one second, this matches
8773         MS and forces an Idle event every second when there are no other
8774         events in the queue.
8775
8776 2006-03-24  Mike Kestner  <mkestner@novell.com>
8777
8778         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
8779         * ListView.Item.cs: fix layout issues with null image lists and images
8780         smaller than checkbox size.
8781         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
8782         mode like MS does.  It's weird, but consistent.  ;-)
8783         Fixes #77890.
8784
8785 2006-03-24  Mike Kestner  <mkestner@novell.com>
8786
8787         * ListView.cs: Scroll wheel support for the item control.  Fixes
8788         #77839.
8789
8790 2006-03-23  Jackson Harper  <jackson@ximian.com>
8791
8792         * ScrollableControl.cs: Special case negative sized areas, not
8793         zero.
8794         * MonthCalendar.cs: Save the rect of the clicked date so we can
8795         use it for invalidation.
8796         - Try to cut down on the number of invalidates
8797         - Invalidate the rect the mouse is over and was over when moving
8798         the mouse, so we get the focus box following the cursor.
8799
8800 2006-03-23  Mike Kestner  <mkestner@novell.com>
8801
8802         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
8803         focus rectangle drawing. Fixes #77835.
8804
8805 2006-03-23  Mike Kestner  <mkestner@novell.com>
8806
8807         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
8808         the if and else if and reverting back to the original == check on the
8809         None conditional.
8810
8811 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
8812
8813         * FontDialog.cs: Update the example panel if the selected index of
8814           the fontListBox changes.
8815
8816 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
8817
8818         * FileDialog.cs: Make FileDialog remember which directory it was in
8819           last in the same execution.
8820
8821 2006-03-22  Mike Kestner  <mkestner@novell.com>
8822
8823         * FileDialog.cs: make the DropDownMenu on the toolbar display
8824         RadioChecks since they are mutually exclusive and that's what MS does.
8825
8826 2006-03-22  Mike Kestner  <mkestner@novell.com>
8827
8828         * Theme.cs: add Color param to CPDrawMenuGlyph.
8829         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
8830         checks and radio marks and arrows are visible on highlighted items.
8831         * ControlPaint.cs: update to use new Theme signature.
8832
8833 2006-03-22  Mike Kestner  <mkestner@novell.com>
8834
8835         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
8836         is active. Fixes #77870.
8837
8838 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
8839
8840         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
8841           to be focused/selected after startup
8842
8843 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
8844
8845         * ColorDialog.cs: 
8846           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
8847             CustomColors and ShowHelp properties
8848           - Some internal rewrites to get better results when using the
8849             ColorMatrix
8850
8851 2006-03-22  Mike Kestner  <mkestner@novell.com>
8852
8853         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
8854         HoverSelection.  Fixes #77836.
8855
8856 2006-03-22  Mike Kestner  <mkestner@novell.com>
8857
8858         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
8859         ToggleButtons.  (De)Sensitize the Back button around a stack count of
8860         1, not 0.  Update ButtonSize based on a pixel count of the win32
8861         control.  Adjust the toolbar size/location for new button size.
8862
8863 2006-03-22  Jackson Harper  <jackson@ximian.com>
8864
8865         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
8866         true.
8867         * ScrollBar.cs: When doing increments and decrements we need to
8868         set the Value property so that ValueChanged gets raised. A
8869         possible optimization here would be to make an internal SetValue
8870         that doesn't invalidate immediately.
8871         * ToolTip.cs: Tooltips get added to their container (when
8872         supplied) so they get disposed when the container is disposed.
8873         - Don't create tooltips for String.Empty. This prevents all these
8874         little 2-3 pixel windows from showing up when running nunit-gui
8875         and driving me mad.
8876         * Form.cs: Don't set topmost when setting the owner if the handles
8877         haven't been created yet.  The topmost set will happen when the
8878         handles are created.
8879
8880 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
8881
8882         * XplatUIX11.cs:
8883           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
8884           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
8885             visible (to allow them to recalculate their sizes)
8886
8887 2006-03-21  Mike Kestner  <mkestner@novell.com>
8888
8889         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
8890         methods. Removed a ton of redundant code.  Still not really happy with
8891         the border rendering, but I think that's mainly because of the
8892         ControlDarkDark being black instead of a dark grey. Depending on how 
8893         close we want to be, we might want to revisit those color choices.
8894         Among the new features added during the refactor were DropDownArrow
8895         pressed rendering, Disabled image rendering.  Proper flat appearance
8896         boundary rendering.  Removed the Divider and Wrapping dividers since I
8897         can't figure out any combination of themes and conditions to make the
8898         MS control draw a horizontal line on a toolbar despite what the
8899         Divider property docs indicate.
8900         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
8901         conditions and incorrect layout.  Updated to coding standard.
8902         * ToolBarButton.cs: refactored layout and positioning code from
8903         ToolBar to here.  Invalidate wherever possible instead of forcing
8904         redraws of the whole toolbar. 
8905         (Known remaining issues: explicit ButtonSize smaller than provided
8906         images.)
8907
8908 2006-03-21  Mike Kestner  <mkestner@novell.com>
8909
8910         * ContextMenu.cs (Show): use the position parameter instead of just
8911         showing at the MousePosition.
8912
8913 2006-03-21  Jackson Harper  <jackson@ximian.com>
8914
8915         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
8916         control handle this.
8917         * TreeNodeCollection.cs: If we are clearing the root node we need
8918         to reset top_node so calcs can still happen.
8919         * ThemeWin32Classic.cs: This is a Flags so we need to check
8920         properly.
8921         
8922 2006-03-21  Jackson Harper  <jackson@ximian.com>
8923
8924         * DataGrid.cs: Create columns when the binding context has been
8925         changed.
8926         * X11Structs.cs: Keysyms are uints.
8927         - Add size to fix build.
8928
8929 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
8930
8931         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
8932           XplatUIOSX.cs: 
8933           - Added ResetMouseHover method to allow controls to retrigger
8934             hovering if they need it more than once
8935           - Implemented MouseHoverTime and MouseHoverSize properties
8936         * Timer.cs: Start() must reset the interval
8937         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
8938           properties
8939
8940 2006-03-21  Jackson Harper  <jackson@ximian.com>
8941
8942         * X11Keyboard.cs: improved layout detection. Move the nonchar
8943         tables into this file.
8944         * KeyboardLayouts.cs: Move the tables into resource files.
8945
8946 2006-03-21  Mike Kestner  <mkestner@novell.com>
8947
8948         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
8949
8950 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
8951
8952         * Mime.cs: Various speed optimizations. Looking up mime types
8953           is now 2 times faster than before
8954
8955 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
8956
8957         * CreateParams.cs: Added internal menu field
8958         * Control.cs: 
8959           - Switched call order for UpdateBounds; now we always call
8960             the one that also takes ClientSize, and we're calculating the 
8961             client size via driver method in the others. The previous
8962             method of tracking client size by difference wasn't working
8963             for forms where even the starting client size wouldn't match
8964             the overall form size (due to borders) (Part of fix for #77729)
8965           - CreateParams(): Do not use parent.Handle unless the handle is
8966             already created. Causes havoc with Nexxia and throws off our
8967             creation of controls
8968         * XplatUIX11.cs:
8969           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
8970           - Switched handling of ConfigureNotify over to new PerformNCCalc 
8971             method (consolidates code)
8972           - Changed RequestNCRecalc to use new PerformNCCalc method
8973           - Added calls to RequestNCRecalc when menus and borders are changed
8974             to allow app to set NC size. (Part of fix for #77729) This matches
8975             when MS send a WM_NCRECALC on Win32 windows.
8976           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
8977             (Part of fix for #77729). This matches what MS does, they also
8978             send that message when the form is made visible.
8979           - XException.GetMessage: Improved usability of X errors by including
8980             a translation of the window into Hwnd and Control class
8981           - Improved debug info for window creation, reparenting and destruction
8982           - Created helper method WindowIsMapped() [Currently not used]
8983         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
8984         * Form.cs:
8985           - CreateParams: Now setting our menu on the new internal menu field
8986           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
8987             avoid calculating the same property twice
8988         * Hwnd.cs:
8989           - Improved usability of ToString() for debugging purposes
8990           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
8991             determine the height of the menu, instead of just the font. This
8992             required to also create a graphics context and to keep a bmp 
8993             around (for performance reasons)
8994
8995 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
8996
8997         * MenuAPI.cs: Added OnMouseUp method
8998         * Form.cs:
8999           - Now remembering the requested client size, avoids size errors
9000           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
9001             instead of base if the menu is active. This is required due to
9002             control now capturing and releasing on down/up and it would
9003             prematurely release our menu capture
9004
9005 2006-03-17  Jackson Harper  <jackson@ximian.com>
9006
9007         * KeyboardLayouts.cs: Add the czech layouts.
9008
9009 2006-03-16  Jackson Harper  <jackson@ximian.com>
9010
9011         * Control.cs: Use the viewport space when sizing not the controls
9012         client size, so things like ScrollableControl that effect the
9013         viewport size (when scrollbars are added) are computed correctly.
9014         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
9015         of ManagerEntrys.
9016         - Handle creating BindingManagers for null data sources.
9017         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
9018         source, otherwise when rows are added they are added to the 'fake'
9019         datasource and we will crash when trying to set the position in
9020         those rows.
9021         - Use Implicit scrollbars on the datagrid so they arent
9022         selectable.
9023         
9024 2006-03-16  Jackson Harper  <jackson@ximian.com>
9025
9026         * Binding.cs:
9027         * InternalWindowManager.cs:
9028         * MdiWindowManager.cs:
9029         * X11Keyboard.cs: I really want Mike to love me again (fix
9030         compiler warnings).
9031
9032 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
9033
9034         * DataGrid.cs:
9035           - OnMouseDown: Switch to editing mode when clicking on the cell
9036                          even if we're clicking on the cell that's currently 
9037                          selected
9038           - ProcessGridKey: Left/Right now wrap like MS.Net does
9039           - ProcessGridKey: Tab now knows to add a new row when tab is
9040                             pressed in the cell of the last column of the 
9041                             last row
9042           - ProcessGridKey: Enter now adds another row  if pressed in the last
9043                             row and selectes the new row, same column cell
9044           - ProcessGridKey: Home/End navigate columns, not rows, like 
9045                             originally implemented
9046           - Broke ProcessKeyPreview code out into an extra Internal method
9047             so it can be called from the edit code
9048         * DataGridTextBox.cs (ProcessKeyMessage):
9049           - Switched to accept Tab keypresses
9050           - Added F2 handling to allow jumping to the end of the edited cell
9051           - Added logic to allow moving caret left/right inside edited cell
9052             and making the edited cell jump when the caret hits cell borders
9053           - Tab and Enter are now passed to the datagrid after being handled
9054         * TextBoxBase.cs:
9055           - Removed capture code now that Control handles it
9056           - set_SelectionStart now ensures caret is visible
9057
9058 2006-03-16  Jackson Harper  <jackson@ximian.com>
9059
9060         * TrackBar.cs: Debackwards the increment/decrement for handling
9061         mouse clicks on the bar with vertical trackbars.
9062         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
9063         bottom to match MS.
9064
9065 2006-03-16  Mike Kestner  <mkestner@novell.com>
9066
9067         * ListView.cs: make shift/ctrl keyboard and mouse selection 
9068         consistent with the MS control. Fix a bug in
9069         SelectedListViewItemCollection.Clear that was pissing me off for the
9070         better part of a day because the collection was being altered
9071         underneath us as we walked the list.
9072
9073 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
9074
9075         * Control.cs: Not sure how we could miss this so long, but it seems
9076           that MS.Net has Capture set all the way from before calling 
9077           OnMouseDown through sending the mouse events until after
9078           OnMouseUp. This will fix DataGrid's selection being set to end
9079           at the location of the MouseUp.
9080
9081 2006-03-15  Jackson Harper  <jackson@ximian.com>
9082
9083         * BindingContext.cs: Check the binding after its added so that it
9084           can initialize the binding managers and hookup to events.
9085         * Binding.cs: Data members seem to sometimes include rows/cols in
9086           the format Row.Column we now take this into account.
9087           - Hookup to the position changed event so we can update the
9088           control when the position has changed in the data set.
9089         * CurrencyManager.cs: Take into account the row/col naming
9090           convention when creating dataset tables.
9091         * BindingContext.cs: Using a newer better way of storing
9092           datasource/datamember pairs.  Hopefully this better matches MS for
9093           looking up binding managers.
9094
9095
9096 2006-03-15  Jackson Harper  <jackson@ximian.com>
9097
9098         * BindingContext.cs: The currency manager needs the data member
9099         name, if the member is a data set we use the name to find the
9100         correct table.
9101         * CurrencyManager.cs: When creating the list prefer an IList over
9102         an IListSource.
9103         - Attempt to create a DataTable from a DataSet (TODO: might need
9104         some better error checking here, although MS doesn't seem to have much)
9105         - If we have a DataTable create a view and use it as our list.
9106
9107 2006-03-15  Mike Kestner  <mkestner@novell.com>
9108
9109         * ListView.cs: keep a matrix of the icon mode layout to facilitate
9110         keyboard navigation. Support Up/Down/Left/Right selection correctly
9111         for all 4 View modes.
9112         * ListViewItem.cs: add internal row/col fields for icon layouts.
9113
9114 2006-03-15  Jackson Harper  <jackson@ximian.com>
9115
9116         * TabControl.cs: Redraw the tabs when we resize so their newly
9117         calculated sizes are drawn on screen.
9118         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
9119         composite characters.
9120         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
9121         - filter events so that composite characters can be created
9122         patches by peter
9123         * X11Structs.cs: Add XIMProperties enum.
9124
9125 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9126
9127         * Control.cs (BringToFront, SendToBack): Don't use window or handle
9128           unless it's created
9129
9130 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9131
9132         * Control.cs (PerformLayout): We don't need to consider visiblity
9133           for anchoring, only for docking. This fixes 'whacky' alignment
9134           in listbox and other controls that use implicit scrollbars after
9135           the previous PerformLayout patch
9136         * ListBox.cs: Switched to use implicit scrollbars
9137           
9138 2006-03-14  Mike Kestner  <mkestner@novell.com>
9139
9140         * ToolBar.cs: 
9141         * VScrollBar.cs:
9142         - chain up the "new event" overrides to base and use
9143         OnEvent to raise them.  Part of fix for bug #76509.
9144
9145 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
9146
9147         * FileDialog.cs: Do not select an item in the parent directory
9148           on backspace
9149
9150 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9151
9152         * Control.cs (PerformLayout): It would seem that we considered
9153           invisible windows for our layout. Not quite the right thing
9154           to do. Now we don't any longer, thereby fixing bug #76889.
9155
9156 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9157
9158         * Control.cs (CanFocus): I goofed. A control can have focus 
9159           even though it's not selectable. Made it match MS docs.
9160
9161 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9162
9163         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
9164           center by default (fixes #76895)
9165         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
9166           all uses of Border3DSides.All with the explicit ORd together
9167           Left|Right|Top|Bottom because I assume that nobody was aware 
9168           that All also implies a center fill. Most places I checked had
9169           a fill right above.
9170         * ProgressBarStyle.cs: Added
9171
9172 2006-03-13  Mike Kestner  <mkestner@novell.com>
9173
9174         * ListView.cs: fix breakage in drag shadow header positioning 
9175         from Peter's csc compilation fix.
9176
9177 2006-03-13  Mike Kestner  <mkestner@novell.com>
9178
9179         * ListView.cs: fix NRE produced by backspacing twice in a focused
9180         FileDialog.
9181
9182 2006-03-13  Mike Kestner  <mkestner@novell.com>
9183
9184         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
9185
9186 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9187
9188         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
9189           be changed
9190         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
9191           the allowed size before making programmatic size changes
9192
9193 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
9194
9195         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
9196           set, metacity is broken and will still use the emty sizes in 
9197           the struct. (Fix for #77089)
9198
9199 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9200
9201         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
9202           WindowExStyles and marked both enums as Flags
9203         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
9204           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
9205           to match WindowStyles split
9206         * XplatUIX11.cs:
9207           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
9208           - Updated to match WindowStyles split
9209         * XplatUIWin32.cs:
9210           - Fixed FosterParent creation, was using ExStyle on the Style field
9211             (This should help with Popup focus issues)
9212           - Updated to match WindowStyles split
9213
9214 2006-03-13  Jackson Harper  <jackson@ximian.com>
9215
9216         * MdiWindowManager.cs: Use the system menu height. Fixes some
9217         strange sizing issues.
9218
9219 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9220
9221         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
9222         * TextBoxBase.cs:
9223           - Scroll to caret after inserting text (#77672)
9224           - Make scroll range one pixel higher, fixes off-by-one error (and
9225             makes underlines visible on the last line)
9226
9227 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
9228
9229         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
9230           the keyboard state from being stuck with keys in 'pressed' state when
9231           focus is switched away via keyboard
9232         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
9233           reset the keyboard if no X11 KeyUp events are expected to come
9234         * X11Structs.cs: Switched type of Visible to bool to match driver
9235
9236 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9237
9238         * TextControl.cs:
9239           - Switched caret to be just 1 pixel wide, matches MS and looks less
9240             clunky
9241           - Moved caret display 1 pixel down from the top of the control
9242             to improve view
9243           - InsertCharAtCharet: Update the selection start if moving the caret
9244             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
9245           - No longer always creating the caret when the caret methods are
9246             called. Only the actual ShowCaret/HideCaret will do that now
9247           - Only setting caret visible if the owner control has focus
9248           - UpdateView: Added invalidation-shortcut logic for center and right 
9249             aligned text. Previously we'd update all according to the left
9250             logic which caused drawing errors. Also fixed height of invalidated
9251             areas, now properly invalidating the whole area (was off-by-one)
9252           - owner_HandleCreated: Always generate the document when the
9253             handle is created; this ensures that 
9254         * TextBoxBase.cs:
9255           - Fixed situation where caret would disappear under the right
9256             window border, also improved scrolling behaviour on left-
9257             aligned textboxes
9258           - Fixed right-aligned textboxes to have a border to the
9259             right instead of the caret being under the right border
9260         * XplatUIX11.cs:
9261           - Switched from 'nested' to simple visible/not visible tracking 
9262             for caret (part of fix for #77671)
9263           - No longer passing through translated FocusIn/FocusOut messages
9264             since we were notifying too often and the wrong windows. Instead
9265             we just notify our focussed window of receiving or loosing focus
9266         * XplatUIWin32.cs: Switched from 'nested' show/hide 
9267           counting for caret to simple visible yes/no behaviour (part of 
9268           fix for #77671)
9269
9270 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9271
9272         * Mime.cs: Remove debug code...
9273
9274 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9275
9276         * MimeGenerated.cs: Removed
9277         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
9278           and subclasses) from /usr/(local/)share/mime and
9279           $HOME/.local/share/mime.
9280
9281 2006-03-10  Jackson Harper  <jackson@ximian.com>
9282
9283         * MdiWindowManager.cs: Recalc the NC area when a window is
9284         maximized/restored so that the menu area is drawn on forms that
9285         don't have a menu.
9286
9287 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9288
9289         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9290           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
9291           us to force a WM_NCCALCRESIZE message being sent. This is needed
9292           for MDI maximizing.
9293
9294 2006-03-10  Jackson Harper  <jackson@ximian.com>
9295
9296         * Form.cs: We need to use the ActiveMenu when calculating menu
9297         height.
9298         - Fix nullref when the window manager hasn't been created yet.
9299         * Control.cs: Fix nullref when we try to bring a control to the
9300         front that has no parent.
9301         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
9302         height.
9303         - Add a dummy item to the maximized menu so it always has the
9304         correct height. Otherwise when there are no menus we don't get our
9305         icon and buttons.
9306         
9307
9308 2006-03-10  Jackson Harper  <jackson@ximian.com>
9309
9310         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
9311         stuff.
9312         * Form.cs: Make the window_state internal so the window managers
9313         can track it.
9314         - When an MDI child is maximized let its window manager create the
9315         main menu (so it can add its icon).
9316         - Notify the window managers of state changes
9317         - Let the window manager paint its buttons and handle button
9318         clicks on the menu when it is maximized.
9319         * InternalWindowManager.cs: Move the prev_bounds into the mdi
9320         window manager, since tool windows don't use it, only mdi windows.
9321         - Tell the main form that we don't want it to handle NCPAINT
9322         itself to avoid extra painting.
9323         - Handle clicks on a maximized windows menu.
9324         - Handle window state changes
9325         - Handle minimize/maximize clicks correctly by setting the window state.
9326         * MdiWindowManager.cs: Add an icon menu that (the menu you get
9327         when clicking on the forms icon).
9328         - New method to create a forms maximized menu. This is its normal
9329         menu + an icon.
9330         - Handle window state changes.
9331         - Handle sizing of maximized windows.  Maximized windows are just
9332         drawn bigger then the parent visible area. All controls are still
9333         there, they are just outside the visible area (this matches windows).
9334         * MdiClient.cs: No scrollbars when a child window is maximized.
9335         - Let the children windows figure out how big they should be when
9336         sizing maximized windows.
9337         - Implement a version of ArrangeIconicWindows somewhat similar to
9338         Windows version.  There are some little differences, but I don't
9339         think any app will rely on the layout of minimized mdi windows.
9340
9341 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9342
9343         * Padding.cs: Several fixes to allow compiling with csc 2.0
9344
9345 2006-03-09  Jackson Harper  <jackson@ximian.com>
9346
9347         * Menu.cs:
9348         * MenuItem.cs: Cheap hack so we can add items to the list without
9349         the events being raised.  This allows adding mdi items during
9350         drawing. TODO: Should probably find a better time to add the items.
9351
9352 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9353
9354         * ThemeWin32Classic.cs:
9355           - CheckBox_DrawText: Added logic to not wrap if not enough space
9356             is available (Fix for bug #77727)
9357           - RadioButton_DrawText: Added logic not to wrap if not enough
9358             space is available (Fix for bug #77727). Also removed some
9359             duplicate code, DrawString always drawing the regular text
9360             before hitting the if statement.
9361
9362 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
9363
9364         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
9365
9366 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9367
9368         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
9369         * ContainerControl.cs: Partial implementation of some 2.0 scaling
9370           methods. Moved the new 2.0 properties into alphabetical order with
9371           other properties and added MonoTODO tags
9372
9373 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9374
9375         * AutoScaleMode.cs: Added. Fix build.
9376
9377 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9378
9379         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9380           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
9381           and was requiring premature handle creation for calls from above
9382         * Form.cs, Control.cs: Removed handle arguments from calls to
9383           CalculateClientRect()
9384
9385 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9386
9387         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
9388           drag_column.column_rect is MarshalByRef and can't be used that way
9389
9390 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9391
9392         * AxHost.cs: Added deserialization constructor for 
9393           AxHost+State (fixes 77743)
9394
9395 2006-03-09  Mike Kestner  <mkestner@novell.com>
9396
9397         * ListView.cs: 
9398         - Added column drag reordering for details view.
9399         - fixed behavior when mouse is dragged off column and
9400         AllowColumnReorder is false.
9401         * ColumnHeader.cs: clone the format too in Clone.
9402         * Theme.cs: add DrawListViewHeaderDragDetails method.
9403         * ThemeWin32Classic.cs:
9404         - impl new method for drawing drag column shadows and targets.
9405         - support column offset for details mode in DrawListViewItem.
9406
9407 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9408
9409         * TextControl.cs: Reset the char_count when the document is cleared
9410           (Fixes bug reported on mono-winforms mailing list)
9411
9412 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9413
9414         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
9415           of calling base we simply process the key ourselves, since both
9416           DefWindowProc and the handled method would set m.Result. 
9417           (Fixes #77732)
9418
9419 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9420
9421         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
9422           method also moves the window; instead implemented a copy of
9423           Control.ScaleCore (Part of fix for #77456)
9424         * TextBoxBase.cs: 
9425           - Created new CreateGraphicsInternal method to allow providing
9426             a graphics context when no handle is created without triggering
9427             handle creation. (Part of fix for #77456)
9428           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9429         * TextControl.cs: 
9430           - Switched Constructor to require TextBoxBase instead of Control (to
9431             allow uncast access to CreateGraphicsInternal)
9432           - Safeguarded use of owner.Handle property. No longer accessing it
9433             unless the handle is already created.
9434           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9435           - Now triggering a recalc when owning control becomes visible
9436         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
9437           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
9438           premature handle creation (Part of fix for #77456)
9439         * Control.cs:
9440           - We now only destroy our double-buffering buffers when the
9441             control is resized or disposed, but not when visibility
9442             changes. (The code even re-created them twice every time)
9443           - Now requiring a redraw of the buffer on visibility changes
9444             (fixes bug 77654 part 2)
9445           - Not passing OnParentVisibleChanged up unless the control
9446             is visible
9447           - CanFocus: Fixed to match MS documentation
9448           - Focus: Fixed to return actual focus state and to check if
9449             setting focus is legal before setting it
9450
9451 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
9452
9453         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
9454           when to draw focus rectangle by looking at parent focus and
9455           selected state instead. This fixes TabPages on Linux sometimes
9456           having none or multiple focus rectangles.
9457         * XplatUIX11.cs (SetFocus): 
9458           - Don't set the focus if the same window already has focus
9459           - Use SendMessage instead of PostMessage (like it's Win32
9460             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
9461             to match MS behaviour
9462         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
9463           are not selectable.
9464
9465 2006-03-07  Jackson Harper  <jackson@ximian.com>
9466
9467         * PictureBox.cs: Revert line I accidently committed last week.
9468
9469 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9470
9471         * Control.cs: 
9472           - Added new IsRecreating and ParentIsRecreating properties to
9473             allow testing if RecreateHandle has been called on ourselves
9474             or one of our parents
9475           - WndProc(WM_DESTROY): If our control handle is being recreated
9476             we immediately need to create the handle when receiving the
9477             destroy, that way our child windows find a valid parent handle
9478             when they themselves are being recreated upon WM_DESTROY receipt
9479             (fix for bug #77654 part 1)
9480         * XplatUIX11.cs:
9481           - DestroyWindow: WM_DESTROY must be sent to our own window before
9482             notifying any child windows. MS documents that child windows
9483             are still valid when WM_DESTROY is received. (Control now relies on
9484             this behaviour)
9485           - Added some fine-grain debug options
9486
9487 2006-03-06  Jackson Harper  <jackson@ximian.com>
9488
9489         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
9490         box and base calculations off this.
9491         * MdiChildContext.cs:
9492         * MdiWindowManager.cs: Don't need to ensure scrollbars here
9493         anymore.
9494         
9495 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
9496
9497         * Splitter.cs: In situations where the affected control is added
9498           to the parent's control list after the splitter, we would not
9499           populate affected. Now we try populating it on mousedown, if
9500           it's not already set, and force it to be re-set whenever our
9501           parent changes.
9502
9503 2006-03-03  Matt Hargett  <matt@use.net>
9504
9505         * Control.cs: implement Control.Padding
9506         * Padding.cs: -Padding.All returns -1 when constructing with the
9507         implicit default ctor
9508         -Padding.ToString() matches MS.NET
9509         * ContainerControl.cs: implement
9510         ContainerControl.AutoScaleDimensions
9511         * ListControl.cs: implement ListControl.FormattingEnabled
9512         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
9513         * ButtonBase.cs:
9514         * TabPage.cs: Implement UseVisualStyleBackColor.
9515         * PictureBox.cs: Implement PictureBox.InitialImage.
9516
9517 2006-03-03  Mike Kestner  <mkestner@novell.com>
9518
9519         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
9520         event declarations to proxy to base event.
9521         * ListViewItem.cs: update to use ItemControl.
9522         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
9523         * ThemeWin32Classic.cs: update to new ListView theme API and fix
9524         column header label rendering for 0 width columns.
9525
9526 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
9527
9528         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
9529           that causes the control to be created. Fixes #77476.
9530
9531 2006-03-02  Jackson Harper  <jackson@ximian.com>
9532
9533         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
9534         expose_pending.
9535
9536 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
9537
9538         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
9539           passed in for the EventArgs (fixes #77690)
9540
9541 2006-03-01  Jackson Harper  <jackson@ximian.com>
9542
9543         * ScrollBar.cs: Refresh afterbeing resized.
9544
9545 2006-02-28  Mike Kestner  <mkestner@novell.com>
9546
9547         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
9548         Clean up a tracker compile warning.
9549         * MenuItem.cs: add internal PerformPopup method.
9550         [Fixes #77457]
9551
9552 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9553
9554         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
9555           implicit expose) when the text is set to null
9556
9557 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
9558
9559         * RichTextBox.cs (FlushText): When newline is true, we always
9560           need to split the line, even if no text is on it and we may
9561           never eat newlines. (Fixes #77669)
9562
9563 2006-02-28  Mike Kestner  <mkestner@novell.com>
9564
9565         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
9566         and set Selected instead.
9567         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
9568         collections.
9569
9570 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9571
9572         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
9573
9574 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
9575
9576         * FontDialog.cs:
9577           - Got rid of the panel. All controls are now directly added to
9578             the dialog form
9579           - It is now possible to set a font with the Font property
9580           - MinSize and MaxSize property do now what they should
9581           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
9582           - Searching and selecting a font with the font textbox works now,
9583             the same applies to the style and size textbox
9584           - Draw the correct 3D border in the example panel
9585           - Fixed a little mem leak (unused fonts didn't get disposed)
9586           - Many other internal updates/rewrites...
9587           - Fix typo
9588
9589 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9590
9591         * TextControl.cs: 
9592           - InsertRTFFromStream: Added 'number of characters inserted' argument
9593           - set_SelectedRTF: Now using the number of characters to calculate
9594             the new location for the selection and cursor (x/y cannot be used
9595             due to potentially already wrapped text)
9596
9597 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
9598
9599         * TextControl.cs: Added property and implemented means to allow 
9600           disabling recalculation of a document (can be used to speed up
9601           multiple inserts and is needed to make RTF inserts predictable, see
9602           bug #77659)
9603         * RichTextBox.cs: Using the new NoRecalc property of Document to
9604           keep x/y insert locations predictable. Also makes it faster inserting
9605           large chunks of RTF
9606
9607 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9608
9609         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
9610           it's easier for a child control to handle the other messages without
9611           having to duplicate the special functionality
9612         * TextBoxBase.cs
9613           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
9614             code to handle processing the key ourselves, in order to get 
9615             access to the result of KeyEventArgs.Handled. We now only call 
9616             ProcessKey if they key hasn't been handled already. Fixes #77526.
9617           - set_Text: If null or empty string is given, just clear the 
9618             document. Fixes part of #77526
9619
9620 2006-02-27  Jackson Harper  <jackson@ximian.com>
9621
9622         * SizeGrip.cs: Paint the background color before painting the grip
9623         so things look right.
9624         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
9625
9626 2006-02-27  Mike Kestner  <mkestner@novell.com>
9627
9628         * ListView.cs:
9629           - Restructure layout and invalidation model to remove a ton of
9630           flicker from the control and speed up performance in general.
9631           - Add manual column resize, flickers like crazy, but I already have
9632           some ideas on how I'll fix that. (#76822)
9633           - Merge the three Icon-based views into a single layout method.
9634           - Move item selection interaction logic from the item since 
9635           interaction with the collections is more appropriate to the view.
9636           - Deselection on non-item clicks.
9637         * ListViewItem.cs:
9638           - Encapsulate most of the layout. Add some internal props to trigger
9639           layout.  Move to a model where Items invalidate themselves instead
9640           of just invalidating the whole control every time something changes.
9641           - Invalidate on Text/Caption changes.
9642           - switch to an offset based layout model to avoid having to absolute
9643           position every element on item moves.
9644           - correct checkbox layout to conform to MS layout.
9645         * ThemeWin32Classic.cs:
9646           - refactor some column header drawing code.
9647           - fix string justification for column headers (#76821)
9648           - make SmallIcon labels top justified for compat with MS impl.
9649         * ThemeClearlooks.cs:
9650           - adjust to new ListViewItem internal checkbox bounds api.
9651
9652 2006-02-27  Jackson Harper  <jackson@ximian.com>
9653
9654         * Control.cs:  Change where implicit controls fall in the zorder.
9655         They are now on top of all children.
9656         - Synced AddImplicit code with Add
9657         - Removed unused enumerator.
9658         * SizeGrip.cs: Remove the TODO as its been TODONE.
9659
9660 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
9661
9662         * TextControl.cs(Insert): Combine the last lines unless the insertion
9663           string ends with \n\n, otherwise we leave one line too many (Fixes
9664           something I noticed with the testapp for #77526; the bug itself was
9665           already fixed in the previous checkin)
9666
9667 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
9668
9669         * RichTextBox.cs:
9670           - SelectionColor and SelectionFont methods no longer set absolute
9671             styles. Instead, the keep font or color respectively (This 
9672             resolves a long-standing FIXME in the code)
9673           - When flushing RTF text, the insert code now considers text trailing
9674             behind the insertion point (Fixes the bug where when replacing
9675             the selected text via SelectedRTF the remainder of the line behind 
9676             the selection would stay on the first insertion line)
9677         * TextBoxBase.cs:
9678           - AppendText now updates the selection points after inserting text
9679           - AppendText now ensures that the last tag (sometimes 0-length) of
9680             the document is used for the style information (Fixes part of 
9681             bug #77220)
9682         * TextControl.cs:
9683           - Created new FontDefiniton class to allow describing partial style
9684             changes
9685           - StreamLine() now takes a lines argument, to allow it to decide
9686             whether an encountered zero-length tag is the last in the document
9687             (which must be kept to not loose the font/color contained in it,
9688             for later appends)
9689           - Created Combine() and Split() methods for Marker structs, to 
9690             support marker updates due to reformatted documents (soft line
9691             wraps)
9692           - Implemented Document.CaretTag setter
9693           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
9694             of the last line (Not the cause, but also exposed by bug #77220)
9695           - Added LineTag argument to InsertString method, to allow callers
9696             to force a certain tag to be used (required to force use of the
9697             trailing zero-length tag of a document)
9698           - Now updating markers in Combine(), to avoid stale tag markers
9699           - Added some method descriptions to aid maintenance
9700           - Implemented new FormatText concept, allowing additive/subtractive
9701             formatting by only specifying the components that are to be 
9702             changed. This was needed for resolving the RTB.SelectedColor/
9703             RTB.SelectedFont fixmes
9704           - Added Break() support method to allow breaking up linetags (used
9705             for partial formatting)
9706           - Added GenerateTextFormat() method. It is used for partial 
9707             formatting and allows to generate a full font/color from given
9708             attributes and an existing tag.
9709
9710 2006-02-26  Jackson Harper  <jackson@ximian.com>
9711
9712         * XplatUIX11.cs:  Use the correct caption height.
9713         - Translate hittest coordinates to screen coords to match MS.
9714         * XplatUIWin32.cs: When we create MDI windows we need to reset
9715         some of the style flags, so we get a nice blank window, and can
9716         draw all the decorations ourselves.
9717         - Set a clipping rectangle on the non client paint event, the
9718         window manager drawing code needs one.
9719         * Form.cs: The window manager needs to know when the window state
9720         has been updated.
9721         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
9722         don't need to factor in border and title sizes in these
9723         methods. TODO: Remove the args and fix the call points.
9724         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
9725         properly.
9726         - Let the driver set the cursors.
9727         - Improve active window handling
9728         - Correct sizes for title bars and buttons.
9729         - Match MS drawing better
9730         * MdiWindowManager.cs: We don't need to handle border style
9731         updates specially anymore.
9732         - Check for scrollbars when windows are done moving
9733         - Handle Active properly.
9734         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
9735         correctly. I am spewing the exception though, so we don't hide the
9736         bugs.
9737         
9738 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
9739
9740         * DataGridViewRowPostPaintEventArgs.cs,
9741           DataGridViewCellPaintingEventArgs.cs,
9742           DataGridViewRowCollection.cs,
9743           DataGridViewRowPrePaintEventArgs.cs,
9744           DataGridViewCell.cs: Clear a few warnings and implement a few
9745           exceptions that should be thrown.
9746
9747 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9748
9749         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
9750           'inheriting' our parent's (non-default) cursor. (Part of
9751            the fix for #77479)
9752
9753 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
9754
9755         * XplatUIX11.cs: Fixed cast to make csc happy
9756
9757 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9758
9759         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
9760           it's for the client area (part of fix for #77479 and needed
9761           for MDI window cursor handling)
9762         * XplatUIX11.cs
9763           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
9764             the appropriate default cursors and also passing the message
9765             up the parent chain 
9766           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
9767             for non-client areas
9768
9769 2006-02-15  Jackson Harper  <jackson@ximian.com>
9770
9771         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
9772         is a real MDI window
9773
9774 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
9775
9776         * X11DesktopColors.cs: Instead of checking the desktop session
9777           string for "KDE" check if it starts with "KDE"
9778
9779 2006-02-10  Jackson Harper  <jackson@ximian.com>
9780
9781         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
9782         systems).
9783
9784 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
9785
9786         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
9787           errors
9788         * ColorDialog.cs:
9789           - Got rid of the panel. All controls are now directly added to
9790             the dialog form
9791           - Changed to mono coding style
9792
9793 2006-02-10  Jackson Harper  <jackson@ximian.com>
9794
9795         * InternalWindowManager.cs: We don't need the set visibility to
9796         false hack anymore now that peter has written beautiful shutdown
9797         code.
9798
9799 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
9800
9801         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
9802           where already explicitly destroyed
9803
9804 2006-02-10  Jackson Harper  <jackson@ximian.com>
9805
9806         * MdiClient.cs: Handle the case where windows are too high or to
9807         the left and we need scrollbars.
9808
9809 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
9810
9811         * MimeIcon.cs: Added some icons
9812         * FileDialog.cs:
9813           - Fixed bug #77477
9814           - Got rid of the panel. All controls are now directly added to
9815             the dialog form
9816           - Changed to mono coding style
9817           - On Linux "My Computer" and "My Network" will now show some
9818             more usefull information. A new class, MasterMount, gathers
9819             this information from /proc/mount. Updated MWFFileView to make
9820             use of this information
9821           - Fixed a bug that caused FileDialog to crash when
9822             ".recently_used" file had a zero size
9823           - FilterIndex does now what it should
9824           - Some Refactoring
9825         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
9826             FileDialog changes
9827
9828 2006-02-09  Jackson Harper  <jackson@ximian.com>
9829
9830         * ComboBox.cs: Don't touch if null.
9831
9832 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
9833
9834         * Cursor.cs: 64bit safeness fix
9835         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
9836
9837 2006-02-09  Jackson Harper  <jackson@ximian.com>
9838
9839         * Form.cs: If a form is made into an MDI form update the styles so
9840         all the props can get set correctly.
9841         - Kill the mdi_container when we dont need it anymore.
9842         * InternalWindowManager.cs: Add missing NOT
9843
9844 2006-02-08  Jackson Harper  <jackson@ximian.com>
9845
9846         * InternalWindowManager.cs: Respek clipping when drawing MDi
9847         decorations.
9848
9849 2006-02-08  Jackson Harper  <jackson@ximian.com>
9850
9851         * Hwnd.cs: Add bits to track non client expose events.
9852         * XplatUIX11.cs: Track non client expose events on the hwnd. This
9853         gives us a proper invalid rect and will allow for some nice
9854         optimizations with NC client drawing
9855         - MDI windows are children windows, so move their style handling
9856         into the child window block.
9857         * InternalWindowManager.cs: Remove a state reset that was
9858         getting invoked at the wrong time. Fixes managed windows getting
9859         into a 'stuck' captured state.
9860
9861 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
9862
9863         * TextControl.cs (Document.ctor): Now initializing 
9864           selection_anchor. Fixes #77493
9865
9866 2006-02-07  Jackson Harper  <jackson@ximian.com>
9867
9868         * TrackBar.cs: The increment/decrements were backwards.
9869
9870 2006-02-07  Mike Kestner  <mkestner@novell.com>
9871
9872         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
9873         to the instance itself.
9874
9875 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
9876
9877         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
9878           on ulongs and pointers, the size differs between 32bit and 64bit
9879           systems. 
9880
9881 2006-02-07  Mike Kestner  <mkestner@novell.com>
9882
9883         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
9884         for 64 bit platforms to work around a metacity bug. 
9885
9886 2006-02-07  Jackson Harper  <jackson@ximian.com>
9887
9888         * TrackBar.cs: Process the input keys we need, and hookup to
9889         KeyDown instead of using WndProc, so we get key messages.
9890
9891 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
9892
9893         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
9894           machine we're on. 
9895         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
9896           we need to translate the XdndVersion atoms array before sending it
9897
9898 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
9899
9900         * XplatUIX11.cs: 
9901           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
9902             number of bits for the property, not the number of bytes. The
9903             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
9904             but would not crash since it specified 8 bits instead of 4 bits)
9905           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
9906             defined as XID -> long in the C headers)
9907           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
9908             references since those are now IntPtr to begin with
9909           - Switched all Atom.XXX 'int' casts to IntPtr casts
9910           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
9911           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
9912           - Added XChangeActivePointerGrab DllImport (for X11DnD)
9913         * X11Structs.cs:
9914           - Changed 'int' type for Atoms in XEvent structures to IntPtr
9915           - Changed atom in HoverStruct to be IntPtr
9916         * X11DnD.cs:
9917           - Removed local DllImports, switched code to use those from XplatUIX11
9918           - Removed/fixed casts related to the switch of Atom to be a IntPtr
9919
9920 2006-02-06  Mike Kestner  <mkestner@novell.com>
9921
9922         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
9923         method signatures in the import region.  There may still be some
9924         lingering struct marshaling issues, as I didn't drill down into those.
9925         Yet.
9926
9927 2006-02-06  Jackson Harper  <jackson@ximian.com>
9928
9929         * ComboBox.cs: Dont manually set the top_item, this is computed
9930         when the scrollbar position is set.
9931
9932 2006-02-06  Mike Kestner  <mkestner@novell.com>
9933
9934         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
9935         startup crashes on amd64.  There's other fixes needed.  All pinvoke
9936         usage of Atom needs to be mapped to IntPtr for example.  And there are
9937         likely other int/long issues to be addressed.
9938
9939 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
9940
9941         * FileDialog.cs: One more...
9942
9943 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
9944
9945         * FileDialog.cs: Next try
9946
9947 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
9948
9949         * FileDialog.cs: First part of fix for #77464
9950
9951 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
9952
9953         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
9954           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
9955           AcceptButton border drawing.
9956
9957 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
9958
9959         * Form.cs: Moved positioning of form after auto scaling is applied,
9960           otherwise it would possibly use wrong form size.
9961
9962 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
9963
9964         * Control.cs (RecreateHandle): No need to re-create any child
9965           controls, the child windows will get destroyed automatically by
9966           the windowing system or driver, and re-created when the handle
9967           is being accessed the first time. Fixes #77456
9968         * Form.cs: No longer setting the form to closing if the handle is 
9969           being recreated. This seems like the right thing to do, don't
9970           have a bug or testcase for this, though.
9971
9972 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
9973
9974         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
9975           controls to avoid unwanted side effects
9976
9977 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
9978
9979         * Control.cs: 
9980           - ScaleCore needs to scale the bounds, not the ClientSize of the 
9981             control. Fixes #77416.
9982           - DefaultSize is 0,0 for control
9983         * TextBoxBase.cs: 
9984           - DefaultSize is 100, 20
9985           - SetBoundsCore: Now enforcing the height, no matter if the provided
9986             height is more or less than the preferred one, as long as AutoSize
9987             is on
9988         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
9989
9990 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
9991
9992         * Control.cs:
9993           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
9994             call unless both performLayout is true *and* we have a pending
9995             layout change
9996           - ResumeLayout: MS does not completely nest Suspend and Resume,
9997             they bottom out at 0, fixed our code to match that.
9998           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
9999             SetBoundsCore, we were updating even when we shouldn't. This fixes
10000             swf-anchors mis-anchoring when resizing the app fast and lots.
10001           - UpdateDistances: Now only setting the left and top distance if 
10002             we have a parent and are not suspended, this is based on
10003             a suggestion by Don Edvaldson in bug #77355.
10004           - OnVisibleChanged: Fixed logic when to create the control. We may
10005             not create the control if we have no parent or if it's not visible;
10006             switched to using Visible property instead of is_visible field 
10007             since the property also considers parent states. This fixes a bug
10008             when starting Paint.Net
10009
10010 2006-02-02  Jackson Harper  <jackson@ximian.com>
10011
10012         * Form.cs: If the forms handle hasn't been created yet don't call
10013         into xplatui to make it top most, just set the topmost flag on the
10014         form in CreateParams
10015         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
10016
10017 2006-02-01  Jackson Harper  <jackson@ximian.com>
10018
10019         * ScrollableControl.cs: Refactored the Recalculate method a
10020         little, this wasn't handling all the variants of bottom and right
10021         bars needed to be added and added/removed based on their
10022         counterparts being added/removed (which changes the drawable
10023         size). Also we special case client widths and heights of 0 and
10024         don't add the scrollbar for those.
10025
10026 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
10027
10028         * XplatUIX11.cs: 
10029           - Added method to get AbsoluteGeometry(); currently unused, but might
10030             be used in the future, if we try again to figure out toplevel
10031             coordinates with some more crappy window managers
10032           - Added FrameExtents() method to retrieve the WM set decoration size
10033           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
10034             to deal with at least KDE, FVWM and metacity (Fixes #77092)
10035         * Hwnd.cs: 
10036           - Added whacky_wm tracking var for metacity
10037           - Added logic to have default menu height if the actual menu height
10038             has not yet been calculated (part of fix for #77426)
10039         * Form.cs: Keep track whether client size has been set and re-set 
10040           it if a menu is added/removed afterwards (Fixes #77426)
10041
10042 2006-01-31  Jackson Harper  <jackson@ximian.com>
10043
10044         * Control.cs: When a new Site is set on the component attempt to
10045         pull the AmbientProperties from it.
10046
10047 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
10048
10049         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
10050           in the background of the owning form. Fixes #77332
10051
10052 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10053
10054         * MimeIcon.cs: Fix for #77409
10055
10056 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10057
10058         * XplatUIX11GTK.cs: Initial import
10059
10060 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
10061
10062         * FixedSizeTextBox: fixes class signature
10063
10064 2006-01-30  Jackson Harper  <jackson@ximian.com>
10065
10066         * FixedSizeTextBox.cs: New internal class that represents a
10067         textBox that will not be scaled.
10068         * TreeView.cs:
10069         * ComboBox.cs:
10070         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
10071         standard TextBox.
10072                 
10073 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
10074
10075         * XplatUIX11.cs: Retrieve default screen number instead of
10076           assuming 0. Attempted fix for #77318
10077
10078 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
10079
10080         * XplatUIWin32.cs: 
10081           - GetWindowPos: When a window is parented by FosterParent, use 
10082             the desktop instead of FosterParent as the base to get coordinates
10083           - CreateWindow: Don't make FosterParent the parent window for Popups
10084             if we don't want a taskbar entry, Popups automatically don't get one
10085         * Hwnd.cs: Need to call remove to actually remove the key from the
10086           hash table
10087
10088 2006-01-30  Mike Kestner  <mkestner@novell.com>
10089
10090         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
10091
10092 2006-01-30  Jackson Harper  <jackson@ximian.com>
10093
10094         * TreeView.cs:
10095         * TreeNode.cs: Raise events no matter how the treenode is
10096         checked. Patch by Don Edvalson.
10097
10098 2006-01-30  Jackson Harper  <jackson@ximian.com>
10099
10100         * TreeNode.cs: Signature fix.
10101
10102 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
10103
10104         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
10105
10106 2006-01-20  Mike Kestner  <mkestner@novell.com>
10107
10108         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
10109         event forwarding when menus are active.
10110         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
10111         Most of the patch is pdb's with a little rework.
10112
10113 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10114
10115         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
10116           Removed GetMenuDC and ReleaseMenuDC methods; replaced
10117           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
10118         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
10119         * InternalWindowManager.cs: Added use of PaintEventStart/End to
10120           handling of WM_NCPAINT message, now passing the PaintEventArgs to
10121           the PaintWindowDecorations method
10122         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
10123         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
10124         * MenuAPI.cs: Made tracker window invisible
10125         * XplatUIWin32.cs:
10126           - Removed GetMenuDC and ReleaseMenuDC methods
10127           - Implemented the client=false path for PaintEventStart and
10128             PaintEventEnd
10129
10130 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10131
10132         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
10133         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
10134           styles
10135         * Form.cs: 
10136           - MaximizeBox, MinimizeBox: Recreate the handle when setting
10137             the style
10138           - CreateParams: Reworked the styles to match MS look'n'feel,
10139             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
10140             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
10141
10142 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10143
10144         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
10145           window is not mapped, since otherwise every form that's being 
10146           created is considered minimized, which is wrong.
10147         * Form.cs: Catching the exception and returning our internal value
10148           instead
10149
10150 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10151
10152         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
10153           SetWindowMinMax() to have means to tell the driver about the minimum,
10154           maximum and maximized state window sizes. (Part of the fix for #76485)
10155         * Form.cs:
10156           - Implemented tracking of minimum and maximum window size, now calling
10157             new SetWindowMinMax() driver method to tell the driver (Part of the
10158             fix for #76485)
10159           - Finished handling of WM_GETMINMAXINFO method, now setting all values
10160             (Completes fix for #76485)
10161           - Calling new SetWindowMinMax driver method when the handle for a 
10162             form is created, to make sure the driver knows about it even if
10163             the values have been set before the window was created
10164           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
10165             to avoid messing up our anchoring calculations (partial fix
10166             for #77355)
10167         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
10168         * XplatUIX11.cs:
10169           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
10170           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
10171             (and presumably other freedesktop.org compliant WMs). Left the
10172             assumption unmapped=minimized, needed for SetVisible to work.
10173           - Now setting the window state when creating windows
10174           - Fixed SetVisible to consider/set the window state when mapping
10175             a Form. We cannot set the state before it's mapped, and we cannot
10176             use Form.WindowState once it's mapped (since it would ask the
10177             driver and get 'normal'. Therefore, we grab the state before
10178             mapping, map, and then set state.
10179           - Implmemented SetWindowMinMax method; Metacity does not seem to
10180             honor the ZoomHints, though.
10181         * XplatUIWin32.cs:
10182           - Removed MINMAXINFO (moved to XplatUIStructs)
10183           - Added SetWindowMinMax stub (on Win32 the only way to set that
10184             information is in response to the WM_GETMINMAXINFO message, which
10185             is handled in Form.cs)
10186           - Added logic to SetVisible to set the proper window state when a 
10187             form is made visible (fixes #75720)
10188
10189 2006-01-26  Jackson Harper  <jackson@ximian.com>
10190
10191         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
10192         same way we handle them with Invoke.
10193
10194 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
10195
10196         * Form.cs:
10197           - Added tracking of window state so CreateParams can return
10198             the appropriate style
10199           - Moved setting of WS_CAPTION style in CreateParams to allow
10200             styles without caption
10201         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
10202           control if the TextBox property is accessed. Fixes #77345
10203         * Control.cs:
10204           - get_Created: now uses is_disposed and is_created to determine
10205             return value (suggested by Jackson)
10206           - CreateHandle: No longer exits if the handle is being recreated
10207           - RecreateHandle: If the handle is not yet created call the 
10208             appropriate method to create either control or handle. If the
10209             control is already created CreateHandle will simply exit instead
10210             of just creating the handle
10211         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
10212           now SendMessage WM_DESTROY directly to the control when DestroyWindow
10213           is called.
10214         * XplatUIX11.cs: 
10215           - When DestroyWindow is called, instead of waiting for the 
10216             DestroyNotification from X11, we directly post it to the WndProc
10217             and immediately dispose the hwnd object.
10218             Same applies to DestroyChildWindows, and this obsoletes the
10219             expose_pending tracking. Contrary to Win32 behaviour we destroy our
10220             child windows before our own, to avoid X11 errors.
10221           - Removed the direct sending of WM_PAINT on UpdateWindow
10222         * XplatUIWin32.cs:
10223           - Reworked DoEvents and GetMessage to allow access to internal queue
10224             even when trying non-blocking access to the queue.  Fixes #77335. 
10225             Based on a patch suggestion by Don Edvalson. The new private
10226             GetMessage can now also be used as a backend for a PeekMessage
10227             frontend version.
10228         * XplatUI.cs: Improved debug output for CreateWindow
10229
10230 2006-01-25  Jackson Harper  <jackson@ximian.com>
10231
10232         * Help.cs: Allow param to be null. Patch by Don Edvalson.
10233
10234 2006-01-24  Jackson Harper  <jackson@ximian.com>
10235
10236         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
10237         when we have a MaxDropItems lower then the selected index.
10238
10239 2006-01-24  Jackson Harper  <jackson@ximian.com>
10240
10241         * Control.cs: Don't allow selection of non visible controls, allow
10242         selection of controls without parents.
10243
10244 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10245
10246         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
10247         * DataGridDrawingLogic.cs: Add editing row only when is necessary
10248
10249 2006-01-23  Jackson Harper  <jackson@ximian.com>
10250
10251         * UpDownBase.cs: Make the textbox handle all the selection and
10252         tabbing. This fixes tabing to updown controls.
10253
10254 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10255
10256         * TextBoxBase.cs: fixes exception thown the object was null
10257
10258 2006-01-23  Jackson Harper  <jackson@ximian.com>
10259
10260         * ButtonBase.cs: Just use the base CreateParams. They set
10261         visibility and enabled correctly.
10262         * ComboBox.cs:
10263         * TrackBar.cs:
10264         * MonthCalendar.cs: Lets let the base set as much of the
10265         createparams as possible so we don't have duplicate code all over
10266         the place.
10267
10268 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
10269
10270         * ThemeGtk.cs: Added TrackBar and some experimental code to
10271           get double buffering back
10272
10273 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10274
10275         * DataGrid.cs: Allows row number set internally higher than the last
10276         when creating a new row. Restores the editing functionality.
10277
10278 2006-01-20  Mike Kestner  <mkestner@novell.com>
10279
10280         * MimeIcon.cs: delay Image creation until the icons are accessed
10281         instead of creating 190 scaled images on GnomeHandler startup.
10282
10283 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
10284
10285         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
10286           first call base before processing the event. Fixes #77279
10287
10288 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
10289
10290         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
10291           that the stride for the GDI bitmap would match the stride of
10292           a DIB or a Cursor.
10293
10294 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
10295
10296         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
10297
10298 2006-01-19  Jackson Harper  <jackson@ximian.com>
10299
10300         * ComboBox.cs: Hookup the text controls keydown event so we get
10301         those when the text control has the focus.
10302
10303 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10304
10305         * Label.cs: Now using the base events instead of defining new ones;
10306           this allows us to just call the base properties without having to
10307           duplicate all base property logic 
10308
10309 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10310
10311         * Label.cs: A label by default is not a tabstop (Fixes one of our
10312           failing nunit tests)
10313
10314 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10315
10316         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
10317         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
10318
10319 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10320
10321         * Cursor.cs: Reimplemented creating cursor bitmaps without using
10322           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
10323           This fixes #77218
10324         * XplatUIWin32.cs: 
10325           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
10326             constructor creates images that can't be saved. Part of the fix
10327             for #76103
10328           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
10329           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
10330             bug fix for handling window state in forms properly)
10331
10332 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10333
10334         * ThemeGtk.cs: Simplify ScrollBar drawing
10335
10336 2006-01-18  Jackson Harper  <jackson@ximian.com>
10337
10338         * Splitter.cs: Set the default dock style for the splitter control
10339         in the constructor.
10340
10341 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10342
10343         * ThemeGtk.cs: Corrected StateType and ShadowType for
10344           gtk_paint_box
10345
10346 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10347
10348         * Control.cs: Make use of Theme.DoubleBufferingSupported
10349         * ThemeGtk.cs:
10350           - Added drawing for flat style buttons
10351           - Added ScrollBar drawing
10352
10353 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10354
10355         * ThemeClearlooks.cs: Removed some unneeded code.
10356         * ThemeGtk.cs: First part of ThemeGtk enhancements.
10357
10358 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10359
10360         * LinkLabel.cs: We need to update the hover drawing when
10361           leaving the control as well.
10362
10363 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
10364
10365         * DataGrid.cs: Clicking on non empty areas in the columns
10366            area was giving an exception
10367
10368 2006-01-17  Jackson Harper  <jackson@ximian.com>
10369
10370         * ThemeWin32Classic.cs:
10371         * ListView.cs: Do not draw/clip the headers when the header style
10372         is None.
10373
10374 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10375
10376         * DataGrid.cs: Fixes 77260
10377         
10378 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10379
10380         * DataGrid.cs: Clicking on a column on a empty grid was giving
10381           an exception
10382
10383 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10384
10385         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
10386           or any keypress will crash the grid.
10387
10388 2006-01-17  Mike Kestner  <mkestner@novell.com>
10389
10390         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
10391         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
10392         invisible/previously-visible items.
10393         [Fixes #76909]
10394
10395 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
10396
10397         * ThemeClearlooks.cs:
10398         - Added CL_Draw_Button method; now other theme controls that are 
10399           not derived from button or do not have a button can draw buttons
10400           too
10401         - Updated ComboBox drawing
10402         - Beautified RadioButton drawing
10403         - Corrected drawing of bottom and left tabs
10404         - Beautified DateTimePicker and MonthCalendar
10405         - Added CPDrawButton and CPDrawRadioButton
10406
10407 2006-01-16  Jackson Harper  <jackson@ximian.com>
10408
10409         * ComboBox.cs: Set the initial value of the scrollbar to the
10410         current index. Reduce the numbers of refreshs and IndexOfs called.
10411
10412 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
10413
10414         * FileDialog.cs: When the file listview is focused hitting the
10415           backspace key moves the fileview to the parent directory
10416
10417 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10418
10419         * Form.cs: 
10420           - Added RecreateHandle call when changing taskbar visibility to 
10421             trigger reparenting in Win32 driver (Fixes #75719)
10422           - If a window has minimize or maximize buttons, it cannot have
10423             a help button
10424         * XplatUIWin32.cs:
10425           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
10426             the toplevel form with FosterParent (A toolwindow not on the
10427             taskbar) (Fixes #75719)
10428           - Made FosterParent a toolwindow
10429
10430 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10431
10432         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
10433
10434 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10435
10436         * ToolTip.cs: If SetToolTip is called from a control and the mouse
10437           is currently over that control, make sure that tooltip_window.Text
10438           gets updated
10439
10440 2006-01-13  Mike Kestner  <mkestner@novell.com>
10441
10442         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
10443
10444 2006-01-13  Jackson Harper  <jackson@ximian.com>
10445
10446         * TreeView.cs: On MS GetNodeAt never actually factors in the X
10447         value passed.  Also redraw the selected node when we recieve
10448         focus, so tabbing between trees works correctly.
10449
10450 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10451
10452         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
10453           ~/.gconf/%gconf-tree.xml, so use
10454           .gconf/desktop/gnome/interface/%gconf.xml
10455
10456 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10457
10458         * TextControl.cs: Draw text in gray if control is disabled
10459
10460 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10461
10462         * TreeView.cs: Draw the focus rectangle outside the highlight, to
10463           make sure it's always visible. Fixes #76680.
10464
10465 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10466
10467         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
10468
10469 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
10470
10471         * PageSetupDialog.cs: Added.
10472         * PrintDialog.cs: Attributes.
10473         * PrintPreviewControl.cs: Updates.
10474         * PrintPreviewDialog.cs: Updates.
10475         
10476 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10477
10478         * Control.cs: Undid my selection check fix, since it's not needed
10479         * TextBoxBase.cs:
10480           - Now considering the presence of hscroll/vscroll when sizing
10481             vscroll/hscroll respectively. Fixed bug #77077
10482           - Added Left/Up/Down/Right to IsInputKey list to prevent
10483             ContainerControl from stealing them. This fixes what I broke
10484             with my last checkin.
10485
10486 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
10487
10488         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
10489           I finally understand how the property can be set without a setter :-)
10490
10491 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10492
10493         * Application.cs:
10494           - Switched RunLoop to use static Message.Create to create a 
10495             Message object
10496           - Added PreProcessMessage call in runloop for keyboard events; this
10497             is part of the fix for #77219, I overlooked this originally in the
10498             MSDN doc for PreProcessMessage
10499         * Control.cs:
10500           - Removed call to PreProcessMessage from handling of keyboard 
10501             messages; it's supposed to be done in the message pump
10502           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
10503             per MSDN documentation.
10504           - IsInputChar: All chars are input chars by default; removed the 
10505             parent calling chain, MS does not document that
10506           - PreProcessMessage: If IsInputChar is true, we want to return false
10507             to allow dispatching of the message
10508           - When selecting the next control, now also check that we're not
10509             selecting ourselves again and therefore return a false positive.
10510         * TextBoxBase.cs:
10511           - Tried to match return values for IsInputKey and ProcessDialogKey
10512             to what MS returns; moved processing of our special keys outside
10513             ProcessDialogKey since MS does not seem to return true on those.
10514           - Moved code that previously was in ProcessDialogKey into new private
10515             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
10516           - Reworked handling of WM_CHAR to not have to duplicate code from
10517             Control.cs anymore, instead we simply call down to base.
10518            
10519 2006-01-12  Jackson Harper  <jackson@ximian.com>
10520
10521         * ComboBox.cs: We always need to refresh the text area when
10522         EndUpdate is called. Fixes the combobox in the file dialog.
10523         * Control.cs: Don't create the creator_thread until the controls
10524         handle is created.  Also in InvokeRequired we check if the
10525         creator_thread is null. This gives the effect of InvokeRequired
10526         returning true if the controls handle is not created yet, and
10527         matches MS.
10528
10529 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10530
10531         * XplatUI.cs:
10532           - Added StartLoop() driver method. This is used to allow drivers to
10533             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
10534             loop for a particular thread
10535           - Added EndLoop() driver method. This is called once the message
10536             pump for the thread is shut down
10537           - Added SupportsTransparency method to allow the driver to indicate
10538             opacity support for windows
10539         * Form.cs:
10540           - Removed TODO attribute, completed AllowTransparency property
10541           - Added documented logic to Opacity
10542         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
10543           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
10544           versions of CompatibleTextRendering
10545         * X11Structs.cs: Added opacity atom to our atom enumeration
10546         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
10547           of a form might be set before it's reparented by the WM, and we need
10548           the opacity value without calling up to Form)
10549         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
10550           SupportsTransparency() driver methods
10551         * Application.cs: Now calling StartLoop and EndLoop driver methods
10552         * XplatUIX11.cs:
10553           - Added opacity atom registration
10554           - Added StartLoop()/EndLoop() methods. They're empty right now but
10555             will need to get implemented when we switch to a per-thread queue
10556           - Implemented SupportsTransparency() method
10557           - Implemented SetWindowTransparency() method
10558           - Added support for setting the opacity value when a window is
10559             reparented (since the opacity needs to be set on the WM frame)
10560         * XplatUIOSX.cs, XplatUIWin32.cs:
10561           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
10562
10563 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10564
10565         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
10566
10567 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10568
10569         * FileDialog.cs: Added ToolTip for MWFFileView
10570         * MimeIcon.cs: Rewrote GnomeHandler.
10571           - Get currently used gnome icon theme from
10572             ($HOME)/.gconf/%gconf-tree.xml
10573           - Make use of inherited icon themes
10574           - Support SVG icon themes like Tango via librsvg
10575
10576 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10577
10578         Revert's Jackson's revert which broke 2.0 builds.   Fix both
10579         builds. 
10580         
10581         * Application.cs: Move the use_compatible_text_rendering outside
10582         the NET_2_0 define.  If we ever need to use the
10583         use_compatible_text_rendering on the individual controls they will
10584         access the variable from the common shared code paths.
10585
10586 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10587
10588         * XplatUI.cs:
10589           - Added more granular debug options
10590           - Added method to print both window text and id
10591           - Switched debug output to use new Window() debug method
10592           - Added IsEnabled() driver method
10593           - Added EnableWindow() driver method
10594         * Form.cs:
10595           - Removed end_modal; no longer needed, new loop handles termination
10596             via 'closing' variable
10597           - If form is modal, setting DialogResult will now initiate loop
10598             termination via 'closing' variable
10599           - Added support for is_enabled/WS_DISABLED to CreateParams
10600           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
10601             does all the work
10602           - Removed code that's now in RunLoop from ShowDialog()
10603           - Added various documented sanity checks to ShowDialog()
10604           - Added handling of WM_DESTROY message; we set 'closing' on getting
10605             the message to indicate the message pump to terminate
10606           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
10607             send by the Application.ExitThread method. (We send the message
10608             to destroy the window after all other events have been
10609             processed through the queue, instead of destroying the handle 
10610             directly)
10611           - Moved code from Close() method to WM_CLOSE handler; added logic
10612             to only send close-related events if the form is not displayed
10613             modal
10614         * Splitter.cs (..ctor): Fixed typo in resource name
10615         * Control.cs:
10616           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
10617             brush now
10618           - set_Cursor: Now only setting calling into XplatUI if the handle for
10619             the control is already created; this avoids implict handle creation
10620             or crashes if it's not created
10621           - set_Enabled: Now setting the enabled state via the new driver method
10622             instead of just tracking it
10623           - CreateParams: Added logic to set WS_DISABLED based on enabled state
10624           - CreateControl: Reordered event firing and method calls to more
10625             closely fire events in the order MS does. Now setting the
10626             enabled state in the driver when creating the control.
10627           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
10628             match MS order
10629         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
10630           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
10631         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
10632         * Hwnd.cs:
10633           - Added tracking of window enabled state (get_Enabled/set_Enabled)
10634           - Added EnabledHwnd property to easily allow a driver to find the
10635             handle of the first enabled window in the parent chain (this is
10636             used by drivers to pass up input events of disabled windows)
10637         * XplatUIDriver.cs: Added IsEnabled() method
10638         * Application.cs:
10639           - Removed crude and obsolete exiting tracking variable
10640           - Removed internal ModalRun(); replaced by RunLoop()
10641           - Implemented private CloseForms() method to allow closing all 
10642             windows owned by a particular (or all) threads
10643           - Exit() now properly closes all windows without forcing the message
10644             pump to quit
10645           - Removed obsolete InternalExit() method
10646           - Changed Run() methods to use new RunLoop() message pump
10647           - Implemented new RunLoop() method for both modal and non-modal forms
10648         * CommonDialog.cs:
10649           - get_CreateParams: Added setting of WS_DISABLED
10650           - Simplified ShowDialog(); now all the work is done in RunLoop(),
10651             invoked via Form.ShowDialog()
10652         * NativeWindow.cs: We don't remove the window from the collection when
10653           the handle is destroyed; there might still be messages for it in the
10654           queue (mainly the resulting WM_DESTROY); instead it will be removed
10655           when Control calls InvalidateHandle in the WM_DESTROY handler
10656         * XplatUIX11.cs:
10657           - CreateWindow: Added logic to handle the WS_DISABLED window style
10658           - EnableWindow: Implemented based on Hwnd.Enabled
10659           - GetMessage: Reset PostQuitState so the method can be called again
10660           - Implemented support for disabled windows (passing messages to the
10661             first enabled parent) in handling all input messages
10662           - Added optimizations for handling Expose events
10663           - Implemeted new driver method IsEnabled()
10664           - Now always resetting paint pending tracking vars when we start paint
10665           - Re-implemented UpdateWindow via just sending a WM_PAINT message
10666         * XplatUIOSX.cs: Added IsEnabled method stub
10667         * XplatUIWin32.cs: Implemented new IsEnabled() method
10668
10669 2006-01-11  Jackson Harper  <jackson@ximian.com>
10670
10671         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10672         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
10673         variables a little.
10674         * ColorDialog.cs: Clear out the old form before adding the new
10675         panel.  
10676
10677 2006-01-11  Jackson Harper  <jackson@ximian.com>
10678
10679         * X11Dnd.cs: Make sure to add all the text formats when adding
10680         strings to the data object.
10681         * TreeNodeCollection.cs: When adding to a sorted tree we need to
10682         do some redrawing too.  Also change the UpdateNode to an
10683         UpdateBelow so the newly added node gets painted.
10684         
10685 2006-01-11  Miguel de Icaza  <miguel@novell.com>
10686
10687         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10688         LinkLabel.cs, PropertyGrid.cs: Implement the
10689         UseCompatibleTextRendering property for 2.x
10690
10691         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
10692
10693 2006-01-11  Jackson Harper  <jackson@ximian.com>
10694
10695         * TreeView.cs: Use the property for setting the selected node so
10696         the correct events get raised.
10697         * TreeNode.cs: Update the tree when the fore/back colours of a
10698         node are set.
10699
10700 2006-01-10  Jackson Harper  <jackson@ximian.com>
10701
10702         * TreeView.cs: Allow setting SelectedNode to null.
10703
10704 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10705
10706         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
10707
10708 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10709
10710         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
10711
10712 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10713
10714         * PrintDialog.cs: Added attributes and set default property values.
10715
10716 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10717
10718         * PrintControllerWithStatusDialog.cs: 
10719         Added PrintControllerWithStatusDialog.
10720
10721 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10722
10723         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
10724         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
10725
10726 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10727
10728         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
10729
10730 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10731
10732         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
10733         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
10734
10735 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10736
10737         * MimeIcon.cs: Added internal class SVGUtil.
10738
10739 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10740
10741         * FileDialog.cs: Don't crash if there are two files with the
10742           same name but different locations.
10743
10744 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
10745
10746         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
10747         dates across multiple month grids. Used to not highlight entire 
10748         month, but does now.
10749         
10750 2006-01-06  Jackson Harper  <jackson@ximian.com>
10751
10752         * MonthCalendar.cs: Removed DoEvents call to prevent a running
10753         message loop. Change timer intervals to numbers that seem more
10754         natural.
10755
10756 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
10757
10758         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
10759           object for location info since screen object is now implemented.
10760
10761 2006-01-05  Jackson Harper  <jackson@ximian.com>
10762
10763         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
10764         * AsyncMethodResult.cs: We no longer use a WeakReference for the
10765         AsyncMethodResult, this is because we ALWAYS want the
10766         ManualResetEvent to get set.
10767         * Control.cs: When disposing use an async invoke to call shutdown
10768         code, so that thigns don't block on the finalizer thread.  Also
10769         check if we even have a message loop before trying to send
10770         messages, if we don't then don't bother sending messages.
10771         - No more weak references for async methods
10772         * XplatUIDriver.cs: No more weak references for async methods.
10773
10774 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10775
10776         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
10777           returns two FontFamily with the same name
10778
10779 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10780
10781         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
10782           drawing disabled text. Instead using the ColorGrayText color
10783
10784 2006-01-04  Jackson Harper  <jackson@ximian.com>
10785
10786         * TreeNode.cs: redraw the node when its image index is changed.
10787
10788 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10789
10790         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
10791           time I checked there are no others like it.
10792
10793 2006-01-04  Jackson Harper  <jackson@ximian.com>
10794
10795         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
10796         this gives the behavoir I was looking for.
10797         * Control.cs: Special case Invoking EventHandlers, this matches MS
10798         and fixes part of bug #76326.
10799
10800 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10801
10802         * ThemeClearlooks.cs, FileDialog.cs:
10803           - Reflect the latest Theme class changes
10804           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
10805             with DateTime
10806             
10807 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10808
10809         * Theme.cs: Cache UI resource images and resize them if needed
10810
10811 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
10812
10813         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
10814           is called. This fixes the crash in Nexxia when setting the font
10815           attributes in the chat. [However, RTF needs a look-over to make sure
10816           that all SelectionXXX methods handle the special case that selection
10817           is empty and therefore the change must be applied to all text starting
10818           at the cursor/selection start]
10819
10820 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
10821
10822         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
10823           XplatUIOSX.cs: Added SendMessage and PostMessage methods
10824         * X11Keyboard.cs: Switched to new way of calling PostMessage
10825
10826 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
10827
10828         * Theme.cs: Added theme interface for images to allow the theme to
10829           control what images are used for things like FileDialog, MessageBox
10830           icons, etc.
10831         * MessageBox.cs: Now uses the new Theme icon/image interfaces
10832
10833 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
10834
10835         * FileDialog.cs:
10836           - Removed some dead code
10837           - Opening a recently used file does work now
10838           - Small UI enhancements
10839           - Refactoring
10840
10841 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
10842
10843         * FileDialog.cs: Forgot too add __MonoCS__
10844
10845 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
10846
10847         * FileDialog.cs: We are able to read recently used files now let's
10848           go on and write them.
10849
10850 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
10851
10852         * FileDialog.cs: Breathe some life into "last open"/"recently used"
10853           button
10854         * MimeIcon.cs: Do a check for the top level media type also
10855
10856 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
10857
10858         * ThemeClearlooks.cs:
10859           - Added CPDrawStringDisabled
10860           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
10861             some chars if the text doesn't fit into text_rect
10862           - DrawListViewItem: If View = View.LargeIcon center the image;
10863             rewrote the drawing of ListViewItem.Text if View = 
10864             View.LargeIcon
10865
10866 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
10867
10868         * MimeIcon.cs: Use default KDE icon theme if there is no
10869           "48x48" directory for the current icon theme, fixes #77114
10870         * Mime.cs: Disable not working and actually not used code. 
10871         * ThemeWin32Classic.cs:
10872           - Replace "new SolidBrush" in GetControlBackBrush and
10873             GetControlForeBrush with ResPool.GetSolidBrush
10874           - Changed DrawListViewItem from private to protected virtual
10875         * FileDialog.cs:
10876           - Added form.MaximizeBox = true
10877           - Don't throw an exception if there is a broken symbolic link
10878
10879 2005-12-23  Jackson Harper  <jackson@ximian.com>
10880
10881         * TabControl.cs: Give the panels focus, keyboard navigation is
10882         fixed so this works correctly now.
10883         - We need these key events also.
10884         * ToolBar.cs: Remove some of the poor mans double buffering.
10885         
10886 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
10887
10888         * ComboBox.cs: The internal TextBox now returns the focus.
10889
10890 2005-12-23  Jackson Harper  <jackson@ximian.com>
10891
10892         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
10893
10894 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
10895
10896         * Control.cs: Removed debug code
10897         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
10898           implicit children
10899
10900 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
10901
10902         * Control.cs: When creating the control, update the Z-order after
10903           all it's children are created, too. (Fixes nexxia not showing
10904           picturebox bug)
10905
10906 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
10907
10908         * Control.cs: Do not update the anchoring distances if layout is
10909           suspended, instead do it once layout is resumed
10910
10911 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
10912
10913         * Control.cs: 
10914           - After many hours of debugging, for both Jackson and
10915             myself, it turns out that it helps to set the parent of a control
10916             if you want to actually see it onscreen. In the spirit of that
10917             discovery, we're now setting the parent of the control and
10918             it's children when the control's handle is created. This fix
10919             will make Lutz Roeder's Reflector run happily. 
10920           - now just creating the handle instead of the whole control when
10921             getting a graphics context for the control.
10922
10923 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
10924
10925         * ScrollableControl.cs: When calculating the canvas, don't consider
10926           the scrollbar widths. Instead, predict if horizontal scrollbar
10927           will affect canvas when deciding on vertical display and vice versa.
10928
10929 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
10930
10931         * RichTextBox.cs: Set default RTF font for documents that don't
10932           have a font table (Fixes #77076)
10933
10934 2005-12-22  Jackson Harper  <jackson@ximian.com>
10935
10936         * TextBoxBase.cs: It's difficult to do, but you can have an empty
10937         clipboard. This prevents a NullRef in that case.
10938         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
10939         clipboard. PRIMARY is for the currently selected text only. (We
10940         should implement PRIMARY at some point.
10941
10942 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
10943
10944         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
10945           a Unicode function with a structure that was defined in Ansi way.
10946           This fixes #76942.
10947
10948 2005-12-21  Jackson Harper  <jackson@ximian.com>
10949
10950         * StatusBar.cs: Statusbar handles its fore/back colours on it's
10951         on. Because thats how it rolls. (and this avoids it using ambient
10952         colours).
10953         * ThemeWin32Classic.cs: Use the proper back color for filling.
10954         * Menu.cs: Use the system menu bar color for drawing menu
10955         bars. Using the window back color will bring ambient colours into
10956         the picture.
10957
10958 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
10959
10960         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
10961           Bitmaps were created and not disposed.
10962
10963 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
10964
10965         * Control.cs (CreateControl): Don't do anything if the control is
10966           already created, otherwise we'd fire the OnCreated event more than
10967           once
10968
10969 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
10970
10971         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
10972           will always match. Instead return -1. Fixes #76464.
10973
10974 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
10975
10976         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
10977           neither the beginning nor the end of the line (Fixes bug #76479)
10978
10979 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
10980
10981         * Control.cs:
10982           - ControlNativeWindow.ControlFromHandle(): Now handling situation
10983             where handle is invalid
10984           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
10985             instead of slower linear search
10986         * NativeWindow.cs: Don't remove the window from the hashtable until
10987           after the driver has destroyed it (since the driver might use
10988           Control.FromHandle to lookup the control object
10989         * Hwnd.cs: Added DestroyPending property to track if a window is 
10990           already destroyed as far as the driver is concerned and only hasn't
10991           yet notified the control
10992         * XplatUIX11.cs:
10993           - Activate(): Check if the window is still valid before using the 
10994             handle
10995           - Implemented DestroyChildWindow() method to mark child windows as
10996             destroyed when a window is destroyed. This prevents situations 
10997             where we might call an X method based on queued events for a
10998             window that already has been destroyed but we haven't yet pulled
10999             the destroy method from the queue.
11000           - Added a call to the new DestroyChildWindow() method to the drivers
11001             DestroyWindow code. Also now marking the destroyed window itself
11002             as pending
11003
11004 2005-12-20  Jackson Harper  <jackson@ximian.com>
11005
11006         * StatusBar.cs:
11007         * StatusBarPanel.cs: Don't calculate panel sizes on draw
11008         anymore. Just do them when needed, also track the rects of panels
11009         so that we can optimize refreshing more in the future.
11010
11011 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
11012
11013         * ColorDialog.cs: Fixed focus drawing in small color controls
11014
11015 2005-12-19  Jackson Harper  <jackson@ximian.com>
11016
11017         * InternalWindowManager.cs:
11018         * MdiWindowManager.cs: Cleanup some coordinate system changes so
11019         moving windows works properly.
11020
11021 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
11022
11023         * Control.cs: 
11024           - Removed call to InitLayout() from SetBoundsCore(); doc says
11025             it's only called when a control is added to a container
11026           - Split InitLayout logic, moved to separate UpdateDistances() method
11027             since we need to perform those calculations more often than just
11028             when adding the control to a container. (Needed to fix #77022)
11029           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
11030           - Reduced the OnBindingContextChanged events count, don't send them
11031             unless the control is created, we still aren't totally matching
11032             MS, but I can't quite figure out some of their rules
11033
11034 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11035
11036         * ThemeClearlooks.cs: Corrected distance between ProgressBar
11037           stripes
11038
11039 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11040
11041         * ThemeClearlooks.cs:
11042           - Updated ProgressBar drawing
11043           - Corrected drawing of ScrollBars and scroll buttons
11044           - Some temporary fixes for minor pixel artefacts
11045
11046 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
11047
11048         * Control.cs:
11049           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
11050             cause events to be sent in the same order as MS does.
11051           - Added ChangeParent() method to trigger various OnXXXChanged events
11052             that need to be fired when a parent changes (This is a reworking
11053             of the patch from r54254, with the X11 errors fixed)
11054           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
11055             since on MS we get OnLayoutChanged events when calling Clear()
11056           - Changed Enabled property to consider parent state as well, if a
11057             parent is not enabled, the control will not be either
11058           - Changed Parent property to simply call Controls.Add() since that
11059             now does all the work required, this way we avoid code duplication
11060           - Threw in a few OnBindingsContextChanged calls to try and match
11061             when MS sends them. We seem to send a few too many, though.
11062           - Added call to CreateControl when adding the control to a parent.
11063             We were never calling CreateControl. Still needs some work, in
11064             some places we treat HandleCreated and ControlCreated as equal, 
11065             which is wrong
11066           - Removed obsolete commented out code from UpdateZOrder()
11067
11068 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11069
11070         * ThemeClearlooks.cs: Updated TrackBar drawing.
11071
11072 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11073
11074         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
11075
11076 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11077
11078         * FileDialog.cs: Add the Help button and the open readonly
11079           checkbox only if needed
11080
11081 2005-12-16  Jackson Harper  <jackson@ximian.com>
11082
11083         * Control.cs: Make sure we have an active menu before trying to
11084         process commands on it. Prevents menu-less forms from crashing
11085         when Alt is pressed.
11086         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
11087         Dieter Bremes.
11088         * RichTextBox.cs: Expand statement to help out gmcs and fix the
11089         2.0 build.
11090
11091 2005-12-16  Jackson Harper  <jackson@ximian.com>
11092
11093         * InternalWindowManager.cs: Don't translate tool windows screen
11094         coordinates. This fixes windows 'bouncing' around when being moved.
11095
11096 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11097
11098         * TextBoxBase.cs:
11099           - MaxLength now treats 2^31-1 equal to unlimited length (this is
11100             not quite MS compatible, MS uses that number only for single line
11101             and 2^32-1 for multi-line, but I figure it won't hurt keeping
11102             the limit at 2GB)
11103           - Now enforcing the MaxLength limit when entering characters
11104           - Added argument to internal Paste() method to track if it's called
11105             from programatically or via keyboard, since keyboard driven pastes
11106             need to enforce max-length
11107           - Added logic to Paste to only paste as many chars as MaxLength 
11108             allows
11109         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
11110         * TextControl.cs:
11111           - Added Length property to return number of characters in document
11112           - Added private CharCount property which only tracks actual chars
11113             in the document (no linefeeds) and fires event when CharCount
11114             changes
11115           - Added tracking of character count to all methods that alter it
11116           - Added LengthChanged event to allow applications to subscribe
11117             to any changes to the document
11118
11119 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11120
11121         * TextBox.cs: 
11122           - Removed local password_char field (moved to TextBoxBase)
11123           - Now setting the document's password var when password is
11124             set
11125         * TextBoxBase.cs:
11126           - Added password_char field (needed here so MultiLine can
11127             access it)
11128           - Added logic to MultiLine property setter to set the document's
11129             variable when password display is allowed
11130           - Removed debug code and made some debug code conditional
11131         * TextControl.cs:
11132           - Added RecalculatePasswordLine() method to handle special password
11133             char only lines
11134           - Added PasswordChar property, also added related tracking vars
11135           - Draw() method now uses local text var for grabbing text to draw,
11136             this var is set to line.text unless we're doing password display,
11137             then it is set to the pre-generated all-password-chars line
11138           - Added calling RecalculatePasswordLine() method for password lines
11139
11140 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11141
11142         * Hwnd.cs: 
11143           - Added Reparented property to allow tracking of Window Manager
11144             reparenting actions (which affect X/Y calculations of toplevel 
11145             windows)
11146           - Made ToString() print window handles in hex
11147         * XplatUIX11.cs:
11148           - AddConfigureNotify(): Now uses reparented state off Hwnd to
11149             determine if X/Y needs offsetting
11150           - AddConfigureNotify(): Fixed offset calculations
11151           - Now adds ReparentNotify messages into the queue
11152           - Now processes ReparentNotify messages and causes a 
11153             WM_WINDOWPOSCHANGED message to be sent upstream if a window
11154             is reparented (as most likely it's X/Y coordinates are changed
11155             due to that)
11156
11157 2005-12-14  Jackson Harper  <jackson@ximian.com>
11158
11159         * XplatUIX11.cs: Tool windows still need to respek focus.
11160
11161 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11162
11163         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
11164           have a working release
11165
11166 2005-12-13  Jackson Harper  <jackson@ximian.com>
11167
11168         * Form.cs: Update styles after setting the border style regardless
11169         of whether or not the window is using a window manager.
11170
11171 2005-12-13  Jackson Harper  <jackson@ximian.com>
11172
11173         * Form.cs: We now hook into an internal window manager instead of just an
11174         MDI subsystem, this is so we can have properly behaving tool windows.
11175         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
11176         * InternalWindowManager.cs: New internal class that acts as a
11177         window manager for tool windows and as a base for mdi windows.
11178         * MdiWindowManager.cs: New class that acts as a window manager for
11179         mdi windows.
11180
11181 2005-12-12  Jackson Harper  <jackson@ximian.com>
11182
11183         * Control.cs: Updates so we match behavoir for for implicit
11184         controls. Fixes explosions in MDI.
11185
11186 2005-12-12  Jackson Harper  <jackson@ximian.com>
11187
11188         * Control.cs: Implement Invalidate (Region).
11189
11190 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
11191
11192         * Control.cs: 
11193           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
11194             the same events as MS does. MS fires events for each property 
11195             except, for unknown reasons, Cursor, when the control is reparented. 
11196             I can't seem to totally match add/remove since MS also fires some 
11197             VisibleChanged events, which makes no sense. Consolidated the
11198             parenting code into a separate method so it can be called from
11199             both Add and Remove. set_Parent no longer needs any special logic
11200             as it calls the parent's add method which implicitly fires
11201             all events
11202           - Removed some obsolete code and debug output
11203           - Enabled state is inherited from parents, if this is enabled
11204
11205 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
11206
11207         * Form.cs: Removed commented out code
11208
11209 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
11210
11211         * Control.cs:
11212           - Added internal version of Invoke, with additional argument 
11213             indicating if we're calling it from a Dispose() handler. That
11214             way we can avoid BeginInvoke throwing an exception if we're
11215             calling for an already destroyed window.
11216           - Added a dispose argument to BeginInvokeInternal, and made the
11217             check if a valid window handle chain exists conditional on
11218             it not being a dispose call
11219           - Removed code in DestroyHandle to destroy our children. Since we
11220             now handle the WM_DESTROY message we will catch all our children
11221             being destroyed.
11222           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
11223         * Form.cs:
11224           - Added a field to track the application context of the form.
11225           - No need to set closing variable as response to WM_CLOSE, instead
11226             we destroy the window. We also call PostQuitMessage if the form
11227             has an application context (which makes it the main app form,
11228             which, when closed terminates the app)
11229         * XplatUI.cs:
11230           - Dropped Exit() method, it's naming was confusing
11231           - Added PostQuitMessage() which causes GetMessage to return false
11232             once the message queue is empty
11233         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
11234           PostQuitMessage()
11235         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
11236           no longer a valid XplatUI method, but left it in since it's used
11237           internally. Added empty PostQuitMessage() method.
11238         * MenuAPI.cs: Replaced call to Exit() with call to
11239           PostQuitMessage, even though this is probably no longer needed.
11240         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
11241         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
11242         * Application.cs:
11243           - Replaced call to XplatUI.Exit() with PostQuitMessage()
11244           - Removed old debug code that would call XplatUI for exception
11245             display, enabled standard exception handling (Still not enabled
11246             though, until NativeWindow's ExternalExceptionHandler define
11247             is removed
11248         * NativeWindow.cs:
11249           - Added internal method to allow control to update NativeWindow
11250             after a window has been destroyed
11251           - Added handling of already destroyed windows when calling i
11252             DestroyWindow
11253           - Added removal of handle from list on ReleaseHandle
11254         * XplatUIX11.cs:
11255           - Dropped GetMessageResult var and related code
11256           - Added PostQuitState to field to track if PostQuitMessage has been
11257             called
11258           - Dropped Exit() method
11259           - Added PostQuitMessage() method
11260           - GetMessage now will return false if PostQuitState is set and no
11261             more messages are in the queue.
11262           - Expose handler will no longer generate WM_PAINT messages if we are
11263             in PostQuitState since it's very likely any windows have already
11264             been destroyed, and since Hwnd won't get updated until we have
11265             processed the DestroyNotify we'd be causing X errors.
11266         
11267 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11268
11269         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
11270           Thanks to Mike for pointing out the err of my ways.
11271
11272 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11273
11274         * Control.cs(PreProcessMessage): Moved menu handling back, but
11275           after all other key handling, to match MS (who handles Menu in
11276           DefWndProc)
11277         * Menu.cs (WndProc): Removed my brainfart
11278
11279 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11280
11281         * Control.cs(PreProcessMessage): Removed special menu handling 
11282         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
11283
11284 2005-12-07  Mike Kestner  <mkestner@novell.com>
11285
11286         * Control.cs : special case SYSKEYUP so that we can adjust keynav
11287         state according in tracker.
11288         * Menu.cs : promote tracker field to base class and provide a tracker
11289         lookup capability.  Add/Remove shortcuts dynamically if the top menu
11290         has a tracker. Unparent items that are removed from the collection.
11291         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
11292         * Theme*.cs: add always_show_hotkeys field to support configurability
11293         of mnemonic display.  win32 doesn't show mnemonics until Alt is
11294         pressed.
11295
11296 2005-12-07  Jackson Harper  <jackson@ximian.com>
11297
11298         * MdiChildContext.cs: Use Control.ResetCursor.
11299         * Control.cs: ResetCursor needs to set the property so that the
11300         correct XplatUI call gets made.
11301
11302 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11303
11304         * Control.cs: More fixes to make our key events match MS. We
11305           were not setting the modifier state on KeyData, and we were
11306           not generating any events when Alt was pressed with a key
11307           since handling of WM_SYSxxx was missing for the OnKey methods.
11308
11309 2005-12-07  Jackson Harper  <jackson@ximian.com>
11310
11311         * MdiChildContext.cs: reenable the sizing code.
11312         - When the mouse leaves a window reset its cursor.
11313
11314 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11315
11316         * ThemeClearlooks.cs: Reflect latest Hwnd changes
11317
11318 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11319
11320         * Hwnd.cs: Now using the theme 3d bordersize to calculate
11321           widths of Fixed3D borders
11322
11323 2005-12-07  Jackson Harper  <jackson@ximian.com>
11324
11325         * MdiClient.cs: Fix warnings. Earn Mike's love.
11326
11327 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11328
11329         * ThemeClearlooks.cs:
11330           - Adjusted mouse over button color
11331           - Added first parts of CheckBox drawing
11332           - Added correct color for selected text background
11333           - Fixed ComboBox drawing
11334           - Added CPDrawBorder3D and CPDrawBorder
11335
11336 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11337
11338         * XplatUIX11.cs: Added call to XBell for AudibleAlert
11339
11340 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
11341
11342         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11343           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
11344           alert users via sound. We could add an enum arg with different
11345           types of alerts in the future
11346
11347 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11348
11349         * Control.cs: Fix behaviour problems pointed out by Mike
11350
11351 2005-12-05  Mike Kestner  <mkestner@novell.com>
11352
11353         * StatusBarPanel.cs: add Invalidate method and hook it into all the
11354         prop setters.  Calls parent.Refresh for now, but could be maybe be
11355         optimized with an internal method on StatusBar at some point.
11356         [Fixes #76513]
11357
11358 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
11359
11360         * RichTextBox.cs: Implemented get_SelectionColor
11361
11362 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
11363
11364         * ThemeClearlooks.cs:
11365           - Removed dead code
11366           - Draw black button border only if button is Form.AcceptButton
11367           - Draw correct button color for pressed RadioButton if the mouse 
11368             has entered the button
11369           - Updated ProgressBar drawing!
11370           - Updated CPDrawSizeGrip drawing
11371           - Updated StatusBarPanel drawing
11372
11373 2005-12-05  Mike Kestner  <mkestner@novell.com>
11374
11375         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
11376         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
11377
11378 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
11379
11380         * ThemeClearlooks.cs: Initial check-in, activate with
11381           export MONO_THEME=clearlooks
11382         * ThemeEngine.cs: Added ThemeClearlooks
11383
11384 2005-12-03  Mike Kestner  <mkestner@novell.com>
11385
11386         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
11387         [Fixes #76897]
11388
11389 2005-12-02  Jackson Harper  <jackson@ximian.com>
11390
11391         * Form.cs: If the child form has no menu the default main menu is
11392         used as the active menu.
11393
11394 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
11395
11396         * ListBox.cs: Check if any items exist before trying to resolve 
11397           coordinates into items
11398
11399 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11400
11401         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
11402           as the second color for the background hatch
11403
11404 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11405
11406         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
11407         * RichTextBox.cs: FormatText position arguments are 1-based, now making
11408           sure that what we pass to FormatText is always 1-based. Fixes #76885
11409
11410 2005-11-29  Miguel de Icaza  <miguel@novell.com>
11411
11412         * NumericUpDown.cs (EndInit): When we are done initializing,
11413         reflect any updates on the UI.
11414
11415 2005-12-02  Jackson Harper  <jackson@ximian.com>
11416
11417         * ImplicitHScrollBar.cs:
11418         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
11419         their container controls.
11420         * TreeView.cs: Use the new implicit scrollbars.
11421
11422 2005-12-02  Jackson Harper  <jackson@ximian.com>
11423
11424         * TreeView.cs: Make top_node internal so the TreeNodeCollections
11425         can play with it.
11426         * TreeNodeCollection.cs: If we remove the topnode we need to
11427         update topnode to the next node in line.
11428         - When clearing nodes go through the same process as removing
11429         them, so they get depareneted and checked if they are top node.
11430
11431 2005-12-01  Jackson Harper  <jackson@ximian.com>
11432
11433         * TreeView.cs: When imagelists are used the image area is
11434         selectable as well as the text.
11435         - If there are no selected nodes select the first one.
11436         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
11437         so don't do it more then we need to.
11438
11439 2005-12-01  Jackson Harper  <jackson@ximian.com>
11440
11441         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
11442         that arrows can be scaled.
11443
11444 2005-12-01  Jackson Harper  <jackson@ximian.com>
11445
11446         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
11447         fail. Patch by Dieter Bremes
11448
11449 2005-11-30  Jackson Harper  <jackson@ximian.com>
11450
11451         * Form.cs: Property is 2.0 only
11452         * PrintDialog.cs: Signature fix.
11453
11454 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11455
11456         * TextControl.cs: 
11457           - No longer artificially moves text 2 pixels down (now that we have
11458             borders this is no longer needed)
11459           - Added calcs for left, hanging and right indent
11460
11461 2005-11-23  Mike Kestner  <mkestner@novell.com>
11462
11463         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
11464
11465 2005-11-30  Jackson Harper  <jackson@ximian.com>
11466
11467         * MdiChildContext.cs: Set the cloned menus forms, as these don't
11468         get cloned as part of CloneMenu ().
11469         * Menu.cs: Make sure the parent of the items get set correctly
11470         when they are added.  And the owners are notified of the changes.
11471         * Form.cs: Create an ActiveMenu property, so that when MDI is used
11472         we can change the menu being displayed/handled by the form without
11473         changing the menu assosciated with the form.
11474         - Don't let Mdi children draw/handle menus.
11475         
11476 2005-11-30  Jackson Harper  <jackson@ximian.com>
11477
11478         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
11479         a MenuChanged event. Just to make the API a little more
11480         consistent.
11481         * MainMenu.cs:
11482         * MenuItem.cs: Use the new OnMenuChanged
11483         * MdiChildContext.cs: Handle menu merging.
11484         * Form.cs: Implement MergedMenu.
11485         
11486 2005-11-30  Jackson Harper  <jackson@ximian.com>
11487
11488         * Menu.cs: We were misusing Add. Add goes behind the specified
11489         index according to the docs, and does not replace the specified
11490         index. So I added an Insert method.
11491
11492 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11493
11494         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
11495           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
11496           is for Jackson
11497         * RichTextBox.cs: Added calls to base for DnD events
11498
11499 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
11500
11501         * TextControl.cs:
11502           - Fixed drag-selection related crash; style fixes
11503           - Implemented undo class
11504             o Implemented method to capture document state for specified
11505               range in document tree
11506             o Implemented method to restore captured document state
11507             o Implemented cursor tracking
11508             o Implemented basic undo stack
11509           - Added undo cursor tracking to methods altering cursor location
11510           - Added undo tracking to selection deletion (still missing
11511             other text-altering hookups)
11512         * RichTextBox.cs:
11513           - Added SelectionLength property
11514           - Implemented CanPaste()
11515           - Implemented Paste()
11516           - Added missing protected methods
11517           - Fixed RTF->Document conversion; now uses font index 0 and color 
11518             index 0 as the default font for the parsed text
11519           - Fixed RTF<->Document font size translation
11520           - Fixed RTF generation, now properly handles cross-tag boundaries
11521             for single line selection
11522           - No longer always appends blank line to generated RTF
11523           - Removed TODOs
11524           - Added missing attributes
11525           - Hooked up undo-related methods
11526         * TextBoxBase.cs:
11527           - Implemented Copy()
11528           - Implemented Paste()
11529           - Implemented Cut()
11530           - Fixed caret mis-behaviour on backspace across line-boundaries
11531
11532 2005-11-29  Jackson Harper  <jackson@ximian.com>
11533
11534         * MdiClient.cs: Add a method for activating mdi children. Very
11535         basic right now. I imagine someday it might need more girth.
11536         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
11537         children windows names are added to the menu item.
11538         * ThemeWin32Classic.cs: Draw the arrow if the item is an
11539         mdilist. This happens regardless of whether or not there are any
11540         mdi windows to see in the list, and according to my tests happens
11541         before the items are even added. Also happens if there isn't even
11542         an mdi client to get windows from.
11543
11544 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
11545
11546         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
11547         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
11548
11549 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
11550
11551         * DataGridTableStyle.cs:
11552           - Create always the styles for the missing columns even if they are
11553             provided by the user (not default table style)
11554         * DataGrid.cs:
11555           - Fixes bug 76770
11556           - Fixes SetDataBinding (always re-attach source)
11557           - Fixes SetNewDataSource (only clear styles if they are not for 
11558             this source)
11559          -  Expands OnTableStylesCollectionChanged to handle style refresh 
11560             and remove properly
11561
11562 2005-11-29  Jackson Harper  <jackson@ximian.com>
11563
11564         * FileDialog.cs: Implement missing bits, remove some dead
11565         code.
11566         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
11567         creation of the panel so that the options set on the dialog are
11568         seen when the panel is created.
11569         * TreeView.cs: raise a click when items are clicked.
11570         
11571 2005-11-29  Jackson Harper  <jackson@ximian.com>
11572
11573         * MdiClient.cs: Pass some signature methods through to base.
11574
11575 2005-11-28  Jackson Harper  <jackson@ximian.com>
11576
11577         * ListView.cs: Raise the click event when items are clicked.
11578
11579 2005-11-28  Jackson Harper  <jackson@ximian.com>
11580
11581         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
11582         a nullref.
11583
11584 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
11585
11586         * ThemeNice.cs: - Removed 1 pixel bitmaps
11587           - Use SmoothingMode.AntiAlias where it makes sense
11588             (ScrollButton arrow for example)
11589           - Enhanced Button focus drawing
11590           - Fixed ComboBox drawing (no artefacts anymore, focus
11591             rectangle is back again, reduced size of ComboButton, etc.)
11592           - Fixed RadioButton focus drawing for Appearence.Button
11593           - Slight ScrollButton redesign
11594           - Some LinearGradientBrush size fixes
11595           - GroupBoxes have now rounded edges
11596           - Fixed StatusBar drawing
11597
11598 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
11599
11600         * ThemeNice.cs: - Remove dead code
11601           - use correct background colors for menus, etc.
11602           - Fake pixel drawing with 1 pixel bitmaps
11603
11604 2005-11-24  Jackson Harper  <jackson@ximian.com>
11605
11606         * MdiClient.cs: Size the scrollbars when resizing the window.
11607         - Resize the maximized windows when the client is resized
11608         * Form.cs: Make the child context available
11609         
11610 2005-11-23  Jackson Harper  <jackson@ximian.com>
11611
11612         * MdiChildContext.cs: Don't size windows if they are maximized.
11613
11614 2005-11-23  Mike Kestner  <mkestner@novell.com>
11615
11616         * ContextMenu.cs: use MenuTracker.
11617         * Control.cs: remove menu handle usage.
11618         * Form.cs: remove menu handle usage.
11619         * Hwnd.cs: remove menu handle usage.
11620         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
11621         motion and clicks to the new Tracker handlers.
11622         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
11623         and handle usage.
11624         * MenuAPI.cs: refactored to combine popup and menubar event handling.
11625         Killed the MENU and MENUITEM data types and associated collections
11626         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
11627         MenuTracker class that exposes the leftovers from the old MenuAPI
11628         static methods. Restructured Capture handling so that only one grab is
11629         done for the entire menu hierarchy instead of handing off grabs to
11630         submenus. Tracker now has an invisible control to Capture when active.
11631         * MenuItem.cs: add sizing accessors, kill Create
11632         and handle usage.
11633         * Theme.cs: remove menu handle and MENU(ITEM) usage.
11634         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
11635         MENU(ITEM). remove menu handle usage, use Menu directly.
11636         * XplatUIDriver.cs: remove menu handle usage.
11637         * XplatUIOSX.cs: remove menu handle usage.
11638         * XplatUIWin32.cs: remove menu handle usage.
11639         * XplatUIX11.cs: remove menu handle usage.
11640
11641 2005-11-22  Jackson Harper  <jackson@ximian.com>
11642
11643         * Hwnd.cs: Don't compute the menu size for
11644         DefaultClientRectangle.
11645         - Reenable menu sizes being computed for GetClienRectangle.
11646         * Form.cs: Remove comment of trechery
11647         
11648 2005-11-22  Jackson Harper  <jackson@ximian.com>
11649
11650         * Hwnd.cs: The adjustments for the menu bar are made when it is
11651         attached to the form.
11652
11653 2005-11-19  Jackson Harper  <jackson@ximian.com>
11654
11655         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
11656         (just like on windows).
11657
11658 2005-11-19  Jackson Harper  <jackson@ximian.com>
11659
11660         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
11661         use real buttons anymore because they are in non client area. The
11662         one TODO here is that I need to somehow invalidate a section of
11663         the non client area.
11664
11665 2005-11-18  Jackson Harper  <jackson@ximian.com>
11666
11667         * Control.cs: Put the enum check back in now that MDI doesnt have
11668         to use this to set border styles.
11669         * Form.cs: Only set mdi child windows borders if the handle has
11670         been created.
11671         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
11672         this directly on to the driver.
11673         - Get the move start position before adjusting for the titlebar
11674         height, this fixes the windows "skipping" when they are first
11675         moved.
11676
11677 2005-11-18  Jackson Harper  <jackson@ximian.com>
11678
11679         * XplatUIX11.cs: Just compute the mdi borders separately as they
11680         don't totally match up with normal form borders.
11681
11682 2005-11-18  Jackson Harper  <jackson@ximian.com>
11683
11684         * Control.cs: Set WS_ styles for borders, so that the driver does
11685         not have to retrieve the control instance to figure out what kind
11686         of borders it should have.
11687         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
11688         driver can know its an mdi child easily.
11689         * XplatUIX11.cs: Get the border styles and whether the window is
11690         MDI from the Styles and ExStyles params instead of having to get a
11691         control. This prevents a chicken and egg problem.       
11692
11693 2005-11-18  Jackson Harper  <jackson@ximian.com>
11694
11695         * MdiClient.cs: Fix typo so scrollbars show up correctly.
11696
11697 2005-11-18  Jackson Harper  <jackson@ximian.com>
11698
11699         * MdiClient.cs: Calculate when to add and remove scrollbars
11700         correctly.
11701         * MdiChildContext.cs: Adjust the y position to take the titlebar
11702         into account.
11703         - No height for FormBorderStyle.None
11704
11705 2005-11-18  Jackson Harper  <jackson@ximian.com>
11706
11707         * Control.cs: Allow non enum values to be used for
11708         InternalBorderStyle.  MDI does this to set a special border style.
11709         - New utility methods for converting points to/from client coords
11710         - Add the newly created control to the Controls collection before
11711         updating its style. This way UpdateStyle can walk the control
11712         heirarchy to find the control if needed.
11713         so I don't need to create a new Point object all the time.
11714         * Form.cs: Let MDI windows handle their border styles.
11715         - Set styles on MDI windows so the correct title style is derived.
11716         * MdiChildContext.cs: Move all the painting and window handling
11717         into the non client area.
11718         - Use correct sizing and put correct buttons on frames based on
11719         the FormBorderStyle.
11720         - Notify the mdi client about scrolling
11721         - Need to handle the buttons ourselves now, because they are all
11722         in non client areas and we can't add controls there.
11723         * MdiClient.cs: Halfway to scrolling, this implementation is
11724         somewhat broken though, we need to check to make sure other
11725         windows aren't causing scrolling before removing the bars. Also
11726         the bars need to be drawn on top, maybe I can switch implicit
11727         controls to be on top.
11728         * Hwnd.cs: caption_height and tool_caption_height are now
11729         properties of an hwnd, this way they can be set by the driver
11730         based on the type of window they are.  In X11 the window manager
11731         handles the decorations so caption_height is zero unless its an
11732         MDI window.
11733         - Add 3 pixel borders for MDI windows (0xFFFF).
11734         - Get rid of some code duplication, have DefaultClientRectanle
11735         just call GetClientRectangle.
11736         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
11737         Hwnd now.
11738         - Set border styles differently for mdi windows.
11739         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
11740         Hwnd now.
11741         
11742 2005-11-15  Mike Kestner  <mkestner@novell.com>
11743
11744         * Menu.cs: when adding an item to the collection, if item is already 
11745         parented, remove it from the parent.
11746
11747 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
11748
11749         * X11DesktopColors.cs: Added KDE support
11750
11751 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
11752
11753         * XplatUIWin32.cs: 
11754           - Clipboard methods now can translate Rtf format
11755           - No longer removes clipboard contents whenever a new format is added
11756             to allow placing multiple formats on the clipboard
11757         * Clipboard.cs: Clipboard now supports getting a IDataObject and
11758           will place all formats contained in it onto the clipboard. Also
11759           now cleans the clipboard before placing a new object onto it
11760         * RichTextBox.cs:
11761           - Implemented set_Rtf
11762           - Implemented set_SelectedRtf
11763           - Created InsertRTFFromStream() method to allow single code base
11764             for all properties and methods that insert RTF into document
11765           - Removed debug output
11766         * TextControl.cs:
11767           - Fixed Delete(int) to fix up line numbers
11768           - Fixed ReplaceSelection to combine start and end line
11769           - Fixed serious DeleteChars bug that would leave the document tree
11770             broken
11771           - Improved DumpTree with several logic checks to detect broken
11772             document trees
11773           - Removed debug lines
11774           - Fixed Caret.WordForward/WordBack moving code, now always also 
11775             updates caret.tag (fixes crash when word-selecting across tag
11776             boundaries via keyboard)
11777           - Added Insert() method for inserting multiline text into documents
11778           - Fixed DeleteChars() calculation errors that would cause a broken
11779             tag chain with multiple tag lines
11780           - DeleteChars() no longer crashes on multi-tag lines if not all tags
11781           - Split() no longer moves caret if split is at caret location
11782           - ReplaceSelection() now updates the cursor and re-displays it
11783           - ReplaceSelection() now uses new Insert() method to avoid code
11784             duplication
11785           - FormatText() can now handle formatting partial lines
11786         * TextBoxBase.cs:
11787           - Append now uses new TextControl.Insert() method (this avoids 
11788             duplicate code)
11789           - Implemented Ctrl-X (Cut) (
11790           - Implemented Ctrl-C (Copy)
11791           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
11792             regeneration when pasting text; roundtripping Copy&Paste within
11793             edit control still fails due to some calculation bugs in GenerateRTF)
11794           - The Delete key will now remove the current selection if it is visible
11795         * TextBox.cs: Removed debug lines
11796         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
11797           driver to be initialized and can't therefore be done via a static ctor)
11798
11799 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
11800
11801         * TextControl.cs: Added backend code for finding char arrays and strings
11802         * TextBoxBase.cs:
11803           - Added mouse wheel scroll support
11804           - Added support for VScroll and HScroll events
11805         * RichTextBox.cs:
11806           - Implemented all seven Find() variants
11807           - Implemented GetCharFromPosition()
11808           - Implemented GetCharIndexFromPosition()
11809           - Implemented GetLineFromIndex()
11810           - Implemented GetPositionFromCharIndex();
11811           - Implemented SaveFile for PlainText and UnicodeText
11812           - Fixed set_Font, now setting a new font applies that font to
11813             the whole document
11814           - Implemented generic Document to RTF converter
11815           - Implemented SaveFile for RichText format (still missing unicode
11816             conversion for non-ansi chars)
11817           - Implemented get_Rtf
11818           - Implemented get_SelectedRtf
11819
11820 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
11821
11822         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
11823           to allow any captures to be released before triggering OnClick. This
11824           way a click handler may capture the mouse without interference.
11825         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
11826           This way we send them even though X may not allow a grab (if the window
11827           isn't visible, for example)
11828
11829 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
11830
11831         * DataGridViewRowEventArgs.cs: DataGridView implementation
11832         * DataGridViewElement.cs: DataGridView implementation
11833         * DataGridViewComboBoxCell.cs: DataGridView implementation
11834         * DataGridViewDataErrorContexts.cs: DataGridView implementation
11835         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
11836         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
11837         * ImageLayout.cs: DataGridView implementation
11838         * DataGridViewComboBoxColumn.cs: DataGridView implementation
11839         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
11840         * DataGridViewSelectionMode.cs: DataGridView implementation
11841         * IDataGridViewEditingControl.cs: DataGridView implementation
11842         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
11843         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
11844         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
11845         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
11846         * DataGridViewColumnSortMode.cs: DataGridView implementation
11847         * DataGridView.cs: DataGridView implementation
11848         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
11849         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
11850         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
11851         * Padding.cs: DataGridView implementation
11852         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
11853         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
11854         * DataGridViewRowEventHandler.cs: DataGridView implementation
11855         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
11856         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
11857         * DataGridViewButtonCell.cs: DataGridView implementation
11858         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
11859         * DataGridViewEditMode.cs: DataGridView implementation
11860         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
11861         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
11862         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
11863         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
11864         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
11865         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
11866         * DataGridViewCellEventHandler.cs: DataGridView implementation
11867         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
11868         * DataGridViewCellStyleConverter.cs: DataGridView implementation
11869         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
11870         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
11871         * DataGridViewColumnEventArgs.cs: DataGridView implementation
11872         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
11873         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
11874         * QuestionEventArgs.cs: DataGridView implementation
11875         * IDataGridViewEditingCell.cs: DataGridView implementation
11876         * DataGridViewTriState.cs: DataGridView implementation
11877         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
11878         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
11879         * DataGridViewColumnCollection.cs: DataGridView implementation
11880         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
11881         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
11882         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
11883         * DataGridViewColumn.cs: DataGridView implementation
11884         * DataGridViewCellBorderStyle.cs: DataGridView implementation
11885         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
11886         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
11887         * DataGridViewRow.cs: DataGridView implementation
11888         * DataGridViewImageCellLayout.cs: DataGridView implementation
11889         * DataGridViewImageCell.cs: DataGridView implementation
11890         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
11891         * DataGridViewCheckBoxCell.cs: DataGridView implementation
11892         * DataGridViewHeaderCell.cs: DataGridView implementation
11893         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
11894         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
11895         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
11896         * DataGridViewTextBoxColumn.cs: DataGridView implementation
11897         * QuestionEventHandler.cs: DataGridView implementation
11898         * DataGridViewCellStyleScopes.cs: DataGridView implementation
11899         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
11900         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
11901         * DataGridViewCell.cs: DataGridView implementation
11902         * DataGridViewCellEventArgs.cs: DataGridView implementation
11903         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
11904         * DataGridViewCellStyle.cs: DataGridView implementation
11905         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
11906         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
11907         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
11908         * TextFormatFlags.cs: DataGridView implementation
11909         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
11910         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
11911         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
11912         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
11913         * DataGridViewButtonColumn.cs: DataGridView implementation
11914         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
11915         * HandledMouseEventArgs.cs: DataGridView implementation
11916         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
11917         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
11918         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
11919         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
11920         * DataGridViewRowCollection.cs: DataGridView implementation
11921         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
11922         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
11923         * DataGridViewHitTestType.cs: DataGridView implementation
11924         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
11925         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
11926         * DataGridViewColumnEventHandler.cs: DataGridView implementation
11927         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
11928         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
11929         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
11930         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
11931         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
11932         * DataGridViewContentAlignment.cs: DataGridView implementation
11933         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
11934         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
11935         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
11936         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
11937         * DataGridViewPaintParts.cs: DataGridView implementation
11938         * DataGridViewCellCollection.cs: DataGridView implementation
11939         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
11940         * DataGridViewImageColumn.cs: DataGridView implementation
11941         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
11942         * DataGridViewElementStates.cs: DataGridView implementation
11943         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
11944         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
11945         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
11946         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
11947         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
11948         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
11949         * DataGridViewRowHeaderCell.cs: DataGridView implementation
11950         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
11951         * DataGridViewTextBoxCell.cs: DataGridView implementation
11952         * DataGridViewBand.cs: DataGridView implementation
11953         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
11954         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
11955         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
11956         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
11957         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
11958         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
11959         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
11960         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
11961         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
11962         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
11963         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
11964
11965 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
11966
11967         * ThemeWin32Classic.cs: 
11968           - Draw the outside focus rectangle around buttons
11969           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
11970             doesn't use end caps for every dash of a line anymore. This
11971             workaround ignores the forecolor.
11972
11973 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
11974
11975         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
11976           endian safe.
11977
11978 2005-11-07  Jackson Harper  <jackson@ximian.com>
11979
11980         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
11981
11982 2005-11-07  Jackson Harper  <jackson@ximian.com>
11983
11984         * ScrollableControl.cs: Calculate the maximum and change vars
11985         (more) correctly so that scrollbars appear as a sensible size.
11986
11987 2005-11-04  Jackson Harper  <jackson@ximian.com>
11988
11989         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
11990         collection.
11991         * TreeView.cs: When the tree is sorted null out the top_node so
11992         that it is recalculated.
11993         - Use dotted lines instead of dashed lines to match MS better.
11994
11995 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
11996
11997         * ListView.cs: 
11998           - Implements key search for items. Useful when browsing files with FileDialog
11999           - When changing view mode or when clear the items reset scrollbar positions
12000
12001 2005-11-04  Jackson Harper  <jackson@ximian.com>
12002
12003         * CurrencyManager.cs: Implement the MetaDataChanged event, the
12004         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
12005         as to what the method may do as there is no real way of creating a
12006         derived CurrencyManager and calling the method. 
12007
12008 2005-11-03  Jackson Harper  <jackson@ximian.com>
12009
12010         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
12011         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
12012         method which seems to just be used internally to refresh the tabs.
12013
12014 2005-11-03  Jackson Harper  <jackson@ximian.com>
12015
12016         * TabControl.cs: Implement the remove method. Fix some broken
12017         comments.
12018
12019 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12020
12021         * DateTimePicker.cs:
12022           - Added missing DateTimePickerAccessibleObject class
12023           - Added missing events
12024           - Added OnFontChanged method
12025         * Form.cs: Added missing attributes
12026         * TreeView.cs: Added missing attributes
12027
12028 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
12029
12030         * GridItemCollection.cs: Fix signatures
12031
12032 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12033
12034         * XplatUI.cs: Updated build rev/date
12035         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
12036           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
12037         * Application.cs: Trigger context-specific ExitThread events
12038
12039 2005-11-03  Jackson Harper  <jackson@ximian.com>
12040
12041         * Menu.cs:
12042         * MainMenu.cs:
12043         * GridTableStylesCollection.cs:
12044         * Timer.cs:
12045         * TabPage.cs:
12046         * HelpProvider.cs:
12047         * StatusBar.cs:
12048         * MonthCalendar.cs: Signature fixes
12049
12050 2005-11-03  Jackson Harper  <jackson@ximian.com>
12051
12052         * TreeNodeCollection.cs: Remove should not be virtual.
12053         * TreeView.cs: Implement the last of the missing methods.
12054
12055 2005-11-03  Jackson Harper  <jackson@ximian.com>
12056
12057         * TreeNodeConverter.cs: Implement to get off my class-status back.
12058
12059 2005-11-03  Jackson Harper  <jackson@ximian.com>
12060
12061         * TreeView.cs: Hookup the bits for drag and drop.
12062         * TreeNode.cs: Don't cache the tree_view or index anymore, now
12063         that nodes can be moved from tree to tree easily this just causes
12064         all sorts of problems.
12065         * TreeNodeCollection: Don't need to give treenodes an index and
12066         treeview anymore when they are added, these are computed on the
12067         fly. Also make sure to remove a node before its added.
12068
12069 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12070
12071         * TextControl.cs:
12072           - Added CaretSelection enum
12073           - Added comparison methods to Marker struct, makes selection code
12074             more readable
12075           - Added SelectionStart and SelectionEnd as 'moveable' location for
12076             the CaretDirection enum and handler
12077           - Added selection_prev variable to track optimized invalidation for
12078             word and line selection
12079           - Added SelectionVisible property (returns true if there is a valid 
12080             selection)
12081           - Switched CaretHasFocus to only display the caret if there is no
12082             visible selection
12083           - Avoiding StringBuilder.ToString to retrieve a single char, instead
12084             using the direct character index; should be much faster
12085           - Added various conditional debug statements
12086           - Fixed invalidation calculation for selection ranges
12087           - Added ExpandSelection() method to support word and line selection
12088           - Switched SetSelectionToCaret to use new Marker compare overloads
12089           - Added central IsWordSeparator() method to determine word 
12090             separators/whitespace and FindWordSeparator() to streamline common
12091             usage of IsWordSeparator()
12092         * TextBoxBase.cs:
12093           - Removed unneeded grabbed variable, it was just mirroring
12094             Control.Capture
12095           - No longer firing OnTextChanged event when Text setter is called,
12096             since the base will fire the event for us
12097           - Added handling of Ctrl-Up/Down selection
12098           - Added handling of Shift-Cursorkey selection
12099           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
12100             words
12101           - Added handling of Shift and Ctrl-Shift-Home/End selection
12102           - Removed some debug output
12103           - Added handling for single/double/tripple-click to place caret/
12104             select word/select line respectively (Fixes bug #76031)
12105           - Added support for drag expansion of word/line selection
12106         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
12107           current selection
12108
12109 2005-11-02  Jackson Harper  <jackson@ximian.com>
12110
12111         * X11Dnd.cs: If the drag is going to and from a MWF window just
12112         copy the data instead of sending it out through the X Selection
12113         mechanism.
12114
12115 2005-11-02  Jackson Harper  <jackson@ximian.com>
12116
12117         * X11Dnd.cs:
12118         * XplatUIX11.cs: When in a drag we don't want motion notify
12119         messages to get passed on to the other controls. This prevents
12120         mouse move messages from showing up in the drag source.
12121
12122 2005-11-02  Jackson Harper  <jackson@ximian.com>
12123
12124         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
12125         the correct button is release to end a drag.
12126         * XplatUIX11.cs: Make the button state internal so the drag system
12127         can access it.  Dragging needs to know about all button releases,
12128         not just left button.
12129
12130 2005-11-02  Miguel de Icaza  <miguel@novell.com>
12131
12132         * Form.cs (Icon): If the icon is null, reset the icon to the
12133         default value. 
12134
12135         * Cursor.cs: When writing the AND-mask bitmap do not include the
12136         number of colors, but hardcode those to two (black and white),
12137         fixes the loading of color cursors (Paint Dot Net).
12138
12139         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
12140         turn off autoscaling.
12141
12142         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
12143
12144 2005-11-02  Jackson Harper  <jackson@ximian.com>
12145
12146         * X11Dnd.cs: Make sure to send a status message if the pointer
12147         enters a control that can not accept a drop, otherwise the cursor
12148         isn't updated correctly. Also tried to compress the lines of code
12149         a bit.
12150
12151 2005-11-02  Jackson Harper  <jackson@ximian.com>
12152
12153         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
12154         set actions correctly.  This isn't perfect as XDND and win32 have
12155         some differences on how you allow actions. I'll clear this up by
12156         adding a path for drag from MWF to MWF windows.
12157         * XplatUIX11.cs: Hook into the dnd system.
12158
12159 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
12160
12161         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
12162         previously shown but they are no longer need it. Very obvious when 
12163         browsing files with FileDialog.
12164
12165 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
12166
12167         * Control.cs: We always need to call OnPaintBackground. We pretty much
12168           ignore AllPaintingInWmPaint and always do the painting there, whether 
12169           it's set or not, since we always ignore the WM_ERASEBKGND message 
12170           (which we don't generate on X11). This fixes #76616.
12171         * Panel.cs: Removed unneeded background painting. This happens properly
12172           in Control.cs already
12173
12174 2005-10-31  Mike Kestner  <mkestner@novell.com>
12175
12176         * Menu.cs: Add items to collection before setting their index.
12177         * MenuItem.cs : add range checking with ArgumentException like MS.
12178         [Fixes #76510]
12179
12180 2005-10-31  Jackson Harper  <jackson@ximian.com>
12181
12182         * ListBox.cs: Invalidate if the area is visible at all not just
12183         contained in the visible rect. Fixes unselection of semi visible
12184         items.
12185
12186 2005-10-31  Jackson Harper  <jackson@ximian.com>
12187
12188         * Control.cs: Consistently name the dnd methods. Make them
12189         internal so we can override them to match some MS behavoir
12190         internally.
12191         * Win32DnD.cs: Use the new consistent names.
12192
12193 2005-10-31  Jackson Harper  <jackson@ximian.com>
12194
12195         * TreeView.cs: Don't draw the selected node when we lose focus.
12196
12197 2005-10-31  Jackson Harper  <jackson@ximian.com>
12198
12199         * X11Dnd.cs: We still need to reset the state even though a full
12200         reset isn't being done, otherwise status's still get sent all over
12201         the place.
12202
12203 2005-10-31  Jackson Harper  <jackson@ximian.com>
12204
12205         * Control.cs: Make the dnd_aware flag internal so the dnd
12206         subsystem can check it. Catch exceptions thrown in dnd handlers to
12207         match MS behavoir.
12208         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
12209         * X11Dnd.cs: Handle null data in the converters. Set the XDND
12210         version when sending a XdndEnter. Use the control/hwnd dnd_aware
12211         flags to reduce the number of dnd enters/status's sent.
12212
12213 2005-10-31  Jackson Harper  <jackson@ximian.com>
12214
12215         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
12216
12217 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
12218
12219         * PictureBox.cs: Fixes 76512
12220
12221 2005-10-28  Jackson Harper  <jackson@ximian.com>
12222
12223         * X11Dnd.cs: Early implementation to support winforms being a drag
12224         source for data on X11. Also restructured the converters so they
12225         can go both ways now.
12226         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
12227         
12228 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
12229
12230         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
12231           clipboard requests
12232
12233 2005-10-27  Jackson Harper  <jackson@ximian.com>
12234
12235         * TreeNode.cs: Implement serialization so my DnD examples will work.
12236
12237 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
12238
12239         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
12240           TreeView.cs: Don't dispose objects that are not owned.
12241           
12242 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
12243
12244         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
12245           should retrieve the current cursor and report that, but XplatUI
12246           doesn't (yet) have an interface for that (and I'm not sure I even
12247           can, on X11)
12248         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
12249           until any message loop processing is done (and the WM_SETCURSOR
12250           replaces the cursor to the proper one)
12251         * XplatUIX11.cs: 
12252           - Fixed override behaviour, we can't set the cursor globally on X11, 
12253             just for our windows.
12254           - Invalidating the System.Drawing X11 display handle when we are
12255             shutting down
12256         * Control.cs: Fix to make csc happy
12257
12258 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
12259
12260         * TextBoxBase.cs: 
12261           - get_Text: Add last line (without trailing newline) to returned
12262             value (Fixes 76212)
12263           - get_TextLength: Count last line in returned length
12264           - ToString: Call Text property instead of duplicating code
12265
12266 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
12267
12268         * ImageList.cs: Dispose ImageAttributes objects.
12269
12270 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12271
12272         * ImageList.cs: Use attribute constructors with less arguments where
12273           possible.
12274
12275 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12276
12277         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
12278           Use typeof instead of strings when assembly is referenced. Added
12279           some more comments.
12280
12281 2005-10-21  Jackson Harper  <jackson@ximian.com>
12282
12283         * ListView.cs: Raise a double click event. Also tried to somewhat
12284         fix when the selectedindexchanged event is raised. Its still
12285         broken though.
12286
12287 2005-10-21  Jackson Harper  <jackson@ximian.com>
12288
12289         * TreeView.cs: New method to invalidate the plus minus area of a
12290         node without invalidating the whole node (maybe this can be used
12291         in some more places).
12292         * TreeNodeCollection.cs: When adding to an empty node we need to
12293         invalidate its plus minus area so the little block shows up.
12294         
12295 2005-10-21  Jackson Harper  <jackson@ximian.com>
12296
12297         * TreeView.cs: Make sure that when we invalidate a node the bounds
12298         are big enough to cover the selected box and the focus
12299         rectangle. Use a different colour for the lines connecting nodes
12300         so they show up with all themes.
12301
12302 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12303
12304         * NativeWindow.cs: Don't call anything that could call into the driver,
12305           we might be on a different thread.
12306
12307 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
12308
12309         * Control.cs(Dispose): Since Dispose might run on a different thread,
12310           make sure that we call methods that could call into the driver via
12311           invoke, to avoid thread issues
12312
12313 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12314
12315         * XplatUI.cs: Removed finalizer
12316         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
12317           not allowing to be called on the finalizer thread.
12318
12319 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
12320
12321         * ImageList.cs:
12322           - Reverted r51889 and r51891.
12323           - Added ImageListItem class that stores unmodified image items and image
12324             properties required to create list images until handle is created.
12325           - Added AddItem and moved image creation logic to AddItemInternal.
12326           - Added CreateHandle method that creates images based on unmodified items.
12327           - Added DestroyHandle that changes state to store unmodified items.
12328           - Add and AddStrip methods no more create handle.
12329           - ReduceColorDepth has no return value.
12330           - Dispose destroys handle.
12331           - Modified other methods to reflect the above changes.
12332           - Implemented key support.
12333           - Added profile 2.0 members and attributes.
12334           - Added private Reset and ShouldSerialize methods that provide the same
12335             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
12336             them as they are private.
12337           - Added some more comments about implementation details.
12338
12339 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12340
12341         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
12342
12343 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12344
12345         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
12346
12347 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12348
12349         * DataGridDrawingLogic.cs: Fixes column hit calcultation
12350         * DataGridColumnStyle.cs: Remove debug message
12351
12352 2005-10-20  Jackson Harper  <jackson@ximian.com>
12353
12354         * TreeView.cs: We can always get input keys regardless of whether
12355         or not editing is enabled. They are used for navigation.
12356
12357 2005-10-20  Jackson Harper  <jackson@ximian.com>
12358
12359         * TreeNode.cs: Use the viewport rect for determining if a node
12360         needs to be moved for visibility. Don't use Begin/End edit. This
12361         calls a full refresh when its done.
12362         * TreeView.cs: New SetBottom works correctly.  Make the viewport
12363         rect property internal so the treenodes can see it. When clicking
12364         on a node we need to ensure that its visible because it might just
12365         be partly visible when clicked.
12366
12367 2005-10-20  Jackson Harper  <jackson@ximian.com>
12368
12369         * TreeNodeCollection.cs: Remove debug code.
12370
12371 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12372
12373         * Datagrid.cs: Implements column sorting in Datagrid
12374         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
12375
12376 2005-10-20  Jackson Harper  <jackson@ximian.com>
12377
12378         * TreeNodeCollection.cs: Remove items properly. Update the correct
12379         area after removing them.
12380
12381 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12382
12383         * Datagrid.cs: Should not call base.OnPaintBackground
12384
12385 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12386
12387         * XplatUIX11.cs (GetMessage):
12388           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
12389             window instead of client window
12390           - Now properly calculates NC_xBUTTONUP message coordinates
12391           - ScreenToMenu now properly calculates it's coordinates of whole 
12392             window, since menus are in the whole window, not in the client
12393             window
12394           - Added WholeToScreen coordinate translation method
12395
12396 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
12397
12398         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
12399           want to return a message, loop back to the beginning of the function
12400           and grab the next real message to process instead.
12401
12402 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12403
12404         * Splitter.cs: Properly set limits if no filler control is used
12405
12406 2005-10-19  Jackson Harper  <jackson@ximian.com>
12407
12408         * ColorDialog.cs: Don't show the help button if it is not enabled
12409         instead of disabling it (this is what MS does). Don't create the
12410         panel until the dialog is run, otherwise the vars (such as
12411         ShowHelp) are not set yet.
12412
12413 2005-10-19  Jackson Harper  <jackson@ximian.com>
12414
12415         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
12416         are reduced when adding nodes.
12417         * TreeNode.cs:
12418         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
12419         tree.
12420         
12421 2005-10-19  Jackson Harper  <jackson@ximian.com>
12422
12423         * FolderBrowserDialog.cs: End editing our treeview so the window
12424         actually gets refreshed.
12425
12426 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12427
12428         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
12429           Obsoleted handling of WM_ERASEBKGND, now always draws our background
12430           inside of WM_PAINT
12431
12432 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12433
12434         * MenuAPI.cs: Returns after Hidding window
12435         * XplatUIX11.cs: Added TODO found while debugging menu issues
12436
12437 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12438
12439         * XplatUIX11.cs: Do not re-map the whole window when it's size
12440           becomes non-zero unless it's supposed to be actually visible
12441
12442 2005-10-18  Jackson Harper  <jackson@ximian.com>
12443
12444         * TreeView.cs: We don't need to keep a count anymore.
12445         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
12446         use the Grow method.
12447
12448 2005-10-18  Jackson Harper  <jackson@ximian.com>
12449
12450         * TreeNodeCollection.cs: Insert is not supported on arrays, so
12451         implement it manually here.
12452
12453 2005-10-18  Jackson Harper  <jackson@ximian.com>
12454
12455         * ImageList.cs: Dont kill the list when the colour depth is
12456         changed, just change the colour depth of all the images.
12457         - Same goes for setting the image size. Just resize them all
12458         instead of killing the list softly.
12459
12460 2005-10-18  Jackson Harper  <jackson@ximian.com>
12461
12462         * Control.cs: Don't invalidate empty rectangles.
12463
12464 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12465
12466         * ListViewItem.cs:
12467           - Adds checked item to the Checked/Item lists (where empty before)
12468           - Do not add items to the Selected lists if they are already present
12469         * ListView.cs:
12470           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
12471           - When deleting items make sure that we delete them for the Selected
12472           and Checked list also.
12473
12474 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12475
12476         * Label.cs: Dispose objects no longer used
12477         * ThemeWin32Classic.cs: Dispose objects no longer used
12478
12479 2005-10-18  Jackson Harper  <jackson@ximian.com>
12480
12481         * TabControl.cs: Don't refresh the whole control when the tabs are
12482         scrolled, we just need to refresh the tab area.
12483
12484 2005-10-17  Jackson Harper  <jackson@ximian.com>
12485
12486         * XplatUIX11.cs: Compress code a little bit. Only calculate the
12487         after handle when we need it.
12488
12489 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12490
12491         * Control.cs: When the parent size changes, recalculate anchor 
12492           positions. Partial fix for #76462
12493
12494 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12495
12496         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
12497           drawn. Fixes #76462
12498
12499 2005-10-17  Jackson Harper  <jackson@ximian.com>
12500
12501         * MonthCalendar.cs: Don't create the numeric up down until our
12502         handle is created. Otherwise our handle is created in the
12503         constructor and we don't know if we are a WS_CHILD or WS_POPUP
12504         yet.
12505
12506 2005-10-17  Jackson Harper  <jackson@ximian.com>
12507
12508         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
12509         correctly.
12510
12511 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12512         * TreeNode.cs : small logical fix (was using local var instead of field)
12513         
12514 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12515
12516         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
12517
12518 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12519
12520         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
12521
12522 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
12523
12524         * Control.cs: 
12525           - Re-implemented anchoring code. My first version was really broken.
12526             This fixes bug #76033. Unlike the previous implementation we will
12527             no longer have round errors since all numbers are calculated from
12528             scratch every time. Removed various anchor-related obsolete vars.
12529           - InitLayout no longer causes layout event firing and layout to be 
12530             performed
12531
12532 2005-10-16  Jackson Harper  <jackson@ximian.com>
12533
12534         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
12535         which was broken).
12536
12537 2005-10-16  Jackson Harper  <jackson@ximian.com>
12538
12539         * TabControl.cs: Remove debug code.
12540
12541 2005-10-16  Jackson Harper  <jackson@ximian.com>
12542
12543         * XEventQueue.cs: Increase the default queue size (very simple
12544         apps needed to grow the queue).
12545         * Hwnd.cs: No finalizer so we don't need to suppress
12546         finalization. Compute the invalid area manually so a new rectangle
12547         does not newto be created.
12548         * ScrollableControl.cs: Don't set any params (otherwise visibility
12549         isn't set correctly).
12550         * MdiChildContext.cs: New constructor takes the mdi parent so it
12551         doesn't have to be computed and avoids a crash on windows. Draw
12552         the window icon properly, and allow the text to be seen.
12553         * Form.cs: Use new MdiChildContext constructor. Make sure the
12554         child context isn't null in wndproc.
12555         * TabControl.cs: Don't set focus, this is muddling keyboard
12556         behavoir. Expand the tab rows when a window size increase will
12557         allow extra tabs to be seen. Don't allow tabs smaller than the
12558         width of a window to be scrolled out of view.
12559         * TreeNode.cs:
12560         * TreeView.cs: Use measure string to calculate a nodes width, the
12561         width is cached and only updated when the text or the font is
12562         changed. Don't check for expand/collapse clicks on the first level
12563         nodes if root lines are disabled.
12564         
12565 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
12566
12567         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
12568
12569 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12570
12571         * DataGridBoolColumn.cs: fixes warning
12572
12573 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12574
12575         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
12576         to match more to match more precisely the MS Net behavior
12577
12578 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12579
12580         * Hwnd.cs: Added field to track if window is mapped
12581         * XplatUIX11.cs: 
12582           - Unmap windows if they become 0-size, re-map when 
12583             they are >0 again; fixes #76035
12584           - Re-set our error handler after initializing X11Desktop
12585             to override any error handlers Gtk or whatever was called
12586             may have set.
12587
12588 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12589
12590         * CheckedListBox.cs: Removed unused vars
12591         * ListView.cs: Fixed signatures
12592         * RichTextBox.cs: Removed unused vars
12593         * TextBoxBase.cs: Removed unused vars
12594         * XplatUIWin32.cs: Removed unused vars
12595         * XplatUIX11.cs: Removed unused vars
12596         * XplatUI.cs: Updated version and date to latest published
12597
12598 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12599
12600         * Cursor.cs: Added private .ctor to work around a bug in
12601           resourceset (Thanks to Geoff Norton for the help on this)
12602         * SplitterEventArgs.cs: Made fields accessible so we don't
12603           waste boatloads of objects and can reuse the same one
12604           in Splitter
12605         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
12606           any captions and borders when generating screen coordinates
12607         * Splitter.cs: Reimplemented control, now fully complete, uses
12608           rubberband drawing, supports and obeys all properties, has
12609           proper cursors
12610
12611 2005-10-13  Miguel de Icaza  <miguel@novell.com>
12612
12613         * Form.cs (Form): Setup default values for autoscale and
12614         autoscale_base_size;  Make these instance variables, not static
12615         variables. 
12616
12617         (OnLoad): on the first load, adjust the size of the form.
12618
12619 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12620
12621         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
12622           width argument to DrawReversibleRectangle()
12623         * XplatUIWin32.cs, XplatUIX11.cs: 
12624           - Implemented width for DrawReversibleRectangle()
12625           - Added logic to DrawReversibleRectangle that recognizes a zero
12626             width or height and only draws a line in that situation
12627         
12628 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
12629
12630         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
12631         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
12632         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
12633           method (it uses our FosterParent window to get a graphics context)
12634
12635 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
12636
12637         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
12638           and SetWindowBackground methods
12639         * Control.cs:
12640           - Setting proper ControlStyles
12641           - We no longer call XplatUI.SetWindowBackground and XplatUI.
12642             EraseWindowBackground, instead we draw the window background
12643             ourselves in PaintControlBackground. This behaviour is
12644             required to match MS, where, when OnPaintBackground is not
12645             called, the background is not drawn.
12646           - Removed unneeded Refresh() in set_Text
12647         * Hwnd.cs: Dropped the ErasePending support. No longer needed
12648         * XplatUIX11.cs:
12649           - Created DeriveStyles method to translate from CreateParams to
12650             FormBorderStyle and TitleStyle, also handles BorderStyle (which
12651             matches FormBorderStyle enum values)
12652           - Consolidated SetHwndStyles and CalculateWindowRect border/title
12653             style calculations into single DeriveStyles method
12654           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
12655             from redrawing the whole window on any resize or expose.
12656           - Fixed CreateWindow usage of SetWindowValuemask. Before not
12657             all styles were applied to our whole/client window appropriately
12658           - Removed EraseWindowBackground() and SetWindowBackground() methods
12659           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
12660             no longer clear/redraw the background through X
12661           - Removed handling of erase_pending bit, we have no use for it (or
12662             so it seems)
12663         * XplatUIOSX.cs:
12664           - Removed generation and handling of WM_ERASEBKGND message
12665           - Removed EraseWindowBackground() and SetWindowBackground() methods
12666           - Removed handling of hwnd.ErasePending flag
12667         * XplatUIWin32.cs:
12668           - Removed EraseWindowBackground() and SetWindowBackground() methods
12669           - We no longer call EraseWindowBackground on PaintEventStart, we 
12670             ignore the fErase flag, erasing is handled in Control in the
12671             background handler
12672         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
12673           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
12674           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
12675           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
12676           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
12677           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
12678           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
12679
12680 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
12681
12682         * PropertyGrids.cs: Get sub properties
12683         * PropertyGridView.cs: Fix drawing code
12684
12685 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12686
12687         * ListBox.cs: Fixes 76383
12688
12689 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12690
12691         * DataGridTextBoxColumn.cs: Sets location and size before attachment
12692         * ThemeWin32Classic.cs: Fixes border drawing and calculations
12693         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
12694
12695
12696 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12697
12698         * ComboBox.cs: Fixes border drawing
12699
12700 2005-10-10  Miguel de Icaza  <miguel@novell.com>
12701
12702         * MimeIcon.cs: Ignore errors if the file can not be read.
12703
12704 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12705
12706         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
12707          - Fixed border calculations
12708          - Fixed horizontal scrolling in single column listboxes
12709          - Fixed drawing issues
12710
12711 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
12712
12713         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
12714           FormBorderStyle enum
12715         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
12716           code to determine FormBorderStyles from CreateParams
12717         * Form.cs:
12718           - Fixed bug where we'd set the wrong window styles if we were
12719             not creating an MDI window
12720           - Added call to XplatUI.SetBorderStyle when form borders are set
12721         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
12722         * Hwnd.cs:
12723           - Removed obsolete edge style
12724           - Switched from BorderStyle to FormBorderStyle
12725         
12726 2005-10-10  Jackson Harper  <jackson@ximian.com>
12727
12728         * Form.cs: Use the property to get the window handle instead of
12729         accessing it directly. Prevents a null reference exception.
12730
12731 2005-10-10  Jackson Harper  <jackson@ximian.com>
12732
12733         * TreeView.cs: Don't adjust the rect given to DrawString now that
12734         our libgdiplus draws correctly.
12735
12736 2005-10-08  Jackson Harper  <jackson@ximian.com>
12737
12738         * TreeView.cs: Don't try to find the clicked on node if there are
12739         no nodes in the tree.
12740
12741 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12742
12743         * RichTextBox.cs:
12744
12745           restore
12746
12747 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12748
12749         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
12750           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
12751           ErrorProvider.cs:
12752           Use ResPool for brushes and dispose System.Drawing objects that
12753           are not used anymore.
12754
12755 2005-10-07  Jackson Harper  <jackson@ximian.com>
12756
12757         * MdiChildContext.cs: Use the new borders instead of drawing them
12758         ourselves.
12759
12760 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12761
12762         * Calling UpdateBounds after changing the window's BorderStyle 
12763         since the style can change the ClientSize
12764
12765 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12766
12767         * Control.cs: Made PaintControlBackground virtual
12768         * Panel.cs: Overriding PaintControlBackground instead of using paint
12769           event; paint event method was interfering with 'real' users of the
12770           event.
12771
12772 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12773
12774         * ThemeWin32Classic.cs: remove border drawing since it is handled
12775         by the base control class now and was causing double border drawing.
12776
12777 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12778
12779         * Panel.cs: Redraw our background on paint. Not a pretty solution,
12780           but it does seem to match MS behaviour. This fixes bug #75324
12781
12782 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12783
12784         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
12785           somewhat hackish looking
12786
12787 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12788
12789         * TextBoxBase.cs:
12790           - We now accept Enter even if AcceptEnter is false, if the containing
12791             form does not have an AcceptButton configured (fixes bug #76355)
12792           - Calculations are now fixed to no longer use Width/Height, but
12793             ClientSize.Width/Height, since we now support borders (this was
12794             a result of fixing borders and therefore bug #76166)
12795           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
12796             true (fixes bug #76354)
12797         
12798 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12799
12800         * Control.cs: 
12801           - Defaulting BorderStyle and setting it in XplatUI when our window 
12802             is created
12803           - Added enum check to InternalBorderStyle setter
12804         * XplatUIX11.cs: 
12805           - Added drawing of window borders
12806           - Now properly calculates WM decorations offset for toplevel 
12807             windows (fixes bug #74763)
12808         * XplatUIWin32.cs: 
12809           - Implemented BorderStyles for windows (we're letting win32 draw 
12810             the border for us)
12811           - Fixed the signature for SetWindowLong
12812         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
12813           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
12814           setting borders
12815         * UpDownBase.cs: Remove drawing of borders, this is handled by
12816           the driver, outside the client area
12817         * ListView.cs: Removed bogus border calculations. The control should
12818           be oblivious to borders, since those are not part of the client
12819           area. 
12820         * X11DesktopColors.cs: Commented out (currently) unneeded variables
12821         * ThemeWin32Classic.cs: Removed border calculations from ListView 
12822           drawing code
12823
12824 2005-10-06  Jackson Harper  <jackson@ximian.com>
12825
12826         * MdiChildContext.cs: Clear out the old virtual position remove
12827         all the unneeded calls to CreateGraphics.
12828
12829 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12830
12831         * TextControl.cs: Use proper color for highlighted text; fixes #76350
12832
12833 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12834
12835         * Form.cs: 
12836           - Added loading and setting of our new default icon
12837           - Only set icon if window is already created
12838
12839 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12840
12841         * Label.cs:
12842           - Do not explicitly set the foreground and background colors, to
12843             allow inheriting from parents (fixes #76302)
12844           - Use Control's InternalBorderStyle property to deal with borders
12845
12846 2005-10-06  Jackson Harper  <jackson@ximian.com>
12847
12848         * MdiChildContext.cs: Use the new xplatui function to draw a
12849         reversible rect.
12850
12851 2005-10-06  Jackson Harper  <jackson@ximian.com>
12852
12853         * Form.cs: Add the parent before creating the child context cause
12854         we need the parent when setting up the child.
12855
12856 2005-10-06  Jackson Harper  <jackson@ximian.com>
12857
12858         * FolderBrowserDialog.cs: redo the tree population code so a
12859         second thread isn't used. Should be a lot faster and more stable
12860         now.
12861
12862 2005-10-05  Jackson Harper  <jackson@ximian.com>
12863
12864         * TreeView.cs: There are no expand/collapse boxes if the node has
12865         no children.
12866
12867 2005-10-05  Jackson Harper  <jackson@ximian.com>
12868
12869         * X11DesktopColors.cs: Get menu colours for the gtk theme.
12870
12871 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
12872
12873         * FileDialog.cs: Fix InitialDirectory
12874
12875 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
12876
12877         * ComboBox.cs:
12878                 - Fixes changing between styles
12879                 - Fixes simple mode
12880                 - Fixes last item crashing when navigating with keyboard
12881
12882 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
12883
12884         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
12885
12886 2005-10-05  Jackson Harper  <jackson@ximian.com>
12887
12888         * TreeView.cs: If updating the root node do a full refresh.
12889         * TreeNode.cs: The root node should be expanded by default. Also
12890         added a utility prop to tell if we are the root node.
12891         * TreeNodeCollection.cs: Only refresh if the node we are being
12892         added to is expanded. Also added a comment on a potential
12893         optimization.
12894         
12895 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
12896
12897         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
12898           in dispose method. Fixes #76330
12899
12900 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
12901
12902         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
12903
12904                 - Implements vertical and horizontal scrolling using XplatUI
12905                 - Fixes keyboard navagation
12906                 - Fixes EnsureVisible
12907                 - Drawing fixes
12908                 - Handles and draws focus properly
12909
12910
12911 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
12912
12913         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
12914           Create handle. NET_2_0: Destroy handle when value is null.
12915
12916 2005-10-03  Jackson Harper  <jackson@ximian.com>
12917
12918         * ScrollBar.cs: My last scrollbar patch was broken. This is a
12919         revert and a new patch to prevent the thumb from refreshing so
12920         much.
12921
12922 2005-10-02  Jackson Harper  <jackson@ximian.com>
12923
12924         * ScrollBar.cs: Don't update position if it hasn't actually
12925         changed. This occurs when you hold down the increment/decrement
12926         buttons and the thumb gets to the max/min.
12927
12928 2005-10-01  Jackson Harper  <jackson@ximian.com>
12929
12930         * Form.cs:
12931         * MdiChildContext.cs:
12932         * MdiClient.cs: Implement ActiveMdiChild in Form.
12933
12934 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
12935
12936         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
12937
12938 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
12939
12940         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
12941           be found
12942
12943 2005-09-30  Jackson Harper  <jackson@ximian.com>
12944
12945         * ListBox.cs: Don't do a full refresh unless some data has
12946         actually changed.
12947
12948 2005-09-30  Jackson Harper  <jackson@ximian.com>
12949
12950         * TreeView.cs: Make sure that the checkboxes size is factored in
12951         even when not visible.
12952
12953 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
12954
12955         * FileDialog.cs: Fix Jordi's build break
12956
12957 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
12958
12959         * FileDialog.cs: 
12960                 - Use standard the Windows colours for the combobox as espected
12961                 - Dispose objects that use resouces when no longer need them
12962
12963 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
12964
12965         * X11DesktopColors.cs: Initial incomplete implementation
12966         * XplatUIX11.cs: Added call to initialize X11DesktopColors
12967
12968 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
12969
12970         * Theme.cs: 
12971           - Switched Theme color names to match the names defined in 
12972             System.Drawing.KnownColors. Life's hard enough, no need to make 
12973             it harder.
12974           - Added setters to all theme color properties so themes can set
12975             their color schemes. The setters also propagate the color changes
12976             to System.Drawing.KnownColors via reflection
12977         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
12978           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
12979           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
12980           use the new, more logical theme color names
12981         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
12982           post-NT colors
12983         * ThemeWin32Classic.cs:
12984           - Removed code to set the old classic Windows colors. Instead it
12985             now relies on the colors returned by System.Drawing.KnownColors
12986             which will be either modern static colors (Unix) or colors
12987             read from the user's configuration (Win32)
12988           - Updated to use the new, more logical theme color names
12989           - Switched DataGrid drawing code to use only Theme colors instead of
12990             a mix of System.Drawing.KnownColors and Theme colors
12991           - DrawFrameControl(): Removed code that fills the button area, the
12992             fill would overwrite any previous fill done by a control. This
12993             fixes bug #75338 
12994           - Added DrawReversibleRectangle() stub
12995         * ScrollableControl.cs: Set visible state to false when scrollbars
12996           are removed (pdn fix)
12997         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
12998           DrawReversibleRectangle() method to allow drawing primitive 
12999           'rubber bands'
13000         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
13001
13002 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13003
13004         * ImageList.cs: Add(Icon): Create handle.
13005
13006 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13007
13008         * ListView.cs:
13009         * ThemeWin32Classic.cs:
13010                 - Fixes detail mode
13011                 - Sets clippings
13012                 - Issues with drawing
13013
13014 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13015
13016         * ImageList.cs: Moved RecreateHandle back to ImageList as event
13017           source has to be the ImageList.
13018
13019 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13020
13021         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
13022
13023 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13024
13025         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
13026
13027 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13028
13029         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
13030
13031 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
13032         * GridItem.cs: Fixed TODOs
13033         * GridItemCollection.cs: Added ICollection interface
13034
13035 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13036
13037         * ImageList.cs: Resize icons when needed.
13038
13039 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
13040
13041         * ListViewItem.cs
13042                 - Fixes GetBounds and returns on screen rects
13043         * ListView.cs:
13044                 - Fixes vertical and horzintal scrolling of items
13045         * ThemeWin32Classic.cs:
13046                 - Fixes drawing
13047                 
13048 2005-09-29  Raja R Harinath  <harinath@gmail.com>
13049
13050         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
13051
13052 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
13053
13054         * ImageList.cs: Added comments about handle creation. Moved Handle,
13055           HandleCreated and OnRecreateHandle implementations to ImageCollection.
13056           Handle is created in Add methods.
13057
13058 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13059          
13060         * DataGridDrawingLogic.cs: 
13061                 - Takes rows into account on Colum calculations
13062                 - Returns the column when clickig
13063         * DataGrid.cs:
13064                 - Fixes default HitTestInfo values
13065                 - Fixes HitTestInfo.ToString
13066                 - Fixes ResetBackColor          
13067         
13068 2005-09-28  Jackson Harper  <jackson@ximian.com>
13069
13070         * MdiChildContext.cs: Obey rules for fixed sized windows (no
13071         sizing or cursor changes). Also added some temp code to draw the
13072         titlebars text (Makes dev a little easier).
13073
13074 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13075
13076         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
13077
13078 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13079          
13080         * ListBox.cs: Fixes bug 76253
13081
13082 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13083
13084         * ImageList.cs: Added comments about the current implementation. Added
13085           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
13086           Format32bppArgb to preserve transparency and can use Graphics.FromImage
13087           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
13088           with Bitmap.LockBits for better performance. Revised the whole file to
13089           match MS.NET behaviour and provide better performance. Non-public
13090           interface members are calling public members even when they throw
13091           NotSupportedException for better maintainability. Moved ColorDepth,
13092           ImageSize, ImageStream and TransparentColor implementations to
13093           ImageCollection for better performance as these properties are not used
13094           by ImageList.
13095         * ImageListStreamer.cs: Added a new internal constructor that takes an
13096           ImageList.ImageCollection and serializes Images based on
13097           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
13098           match ImageList property name.
13099
13100 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
13101
13102         * ListBox.cs: Fixes IndexFromPoint for last item
13103
13104 2005-09-27  Jackson Harper  <jackson@ximian.com>
13105
13106         * Form.cs: Set the position of new mdi children correctly.
13107
13108 2005-09-27  Jackson Harper  <jackson@ximian.com>
13109
13110         * MdiClient.cs: New mdi children need to be added to the back of
13111         the controls collection so the zorder is set correctly. Also add a
13112         count of all the child windows that have been created.
13113
13114 2005-09-27  Jackson Harper  <jackson@ximian.com>
13115
13116         * Form.cs (CreateParams): Setup MDI forms correctly.
13117
13118 2005-09-27  Jackson Harper  <jackson@ximian.com>
13119
13120         * MdiChildContext.cs:
13121         * MonthCalendar.cs:
13122         * UpDownBase.cs:
13123         * ListBox.cs:
13124         * ListView.cs:
13125         * TextBoxBase.cs:
13126         * TreeView.cs:
13127         * ScrollableControl.cs:
13128         * ComboBox.cs: Add implicit controls using the new implict control
13129         functionality in ControlCollection. Also try to block multiple
13130         control add in a suspend/resume layout to save some cycles.
13131         
13132 2005-09-27  Jackson Harper  <jackson@ximian.com>
13133
13134         * Control.cs: Add functionality to the controls collection to add
13135         'implicit controls' these are controls that are created by the
13136         containing control but should not be exposed to the user. Such as
13137         scrollbars in the treeview.
13138         * Form.cs: The list var of the ControlsCollection is no longer
13139         available because of the potential of implicit controls getting
13140         ignored by someone accessing the list directly.
13141
13142 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
13143
13144         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
13145           loose it's parent. (Fixed bug introduced in r49103 when we added
13146           setting the child parent to null on Remove)
13147
13148 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
13149
13150         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
13151         * Splitter.cs: Added missing attributes for BorderStyle property.
13152         * TextBoxBase.cs: Marked Calculate* methods internal.
13153         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
13154         MS.NET.
13155
13156 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
13157          
13158         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
13159
13160 2005-09-25  Jackson Harper  <jackson@ximian.com>
13161
13162         * TreeView.cs: Update the node bounds correctly regardless of
13163         whether the node is visible.
13164
13165 2005-09-25  Jackson Harper  <jackson@ximian.com>
13166
13167         * ImageList.cs: Don't dispose the image after it is added to the
13168         image list. Only reformat images that need to be resized.
13169
13170 2005-09-25  Jackson Harper  <jackson@ximian.com>
13171
13172         * ImageList.cs: Don't set the format when changing the image.
13173
13174 2005-09-25  Jackson Harper  <jackson@ximian.com>
13175
13176         * TreeView.cs: We can't just assume the node has a font. Use the
13177         treeviews font if no node font is available.
13178
13179 2005-09-25  Jackson Harper  <jackson@ximian.com>
13180
13181         * TreeView.cs: Allow the scrollbars to be reset with negative
13182         values.
13183         - Don't add scrollbars to negative sized windows.
13184
13185 2005-09-23  Jackson Harper  <jackson@ximian.com>
13186
13187         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
13188         old Mono.Posix. Also remove some stray code that shouldn't have
13189         been committed.
13190
13191 2005-09-23  Jackson Harper  <jackson@ximian.com>
13192
13193         * TreeView.cs: Attempt at proper sizing of the horizontal
13194         scrollbar. Also don't resize the scrollbars unless they are
13195         visible.
13196
13197 2005-09-23  Jackson Harper  <jackson@ximian.com>
13198
13199         * TreeView.cs: We don't need to expand the invalid area when the
13200         selection changes, as this is all drawn in the node's bounding
13201         box. The area needs to be expanded (previous typo was contracting
13202         it) when the focus rect moves.
13203
13204 2005-09-23  Jackson Harper  <jackson@ximian.com>
13205
13206         * TreeView.cs: Display the selection box under the correct
13207         circumstances. We were rendering white text with no selection box
13208         before.
13209
13210 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
13211
13212         * TextControl.cs(Split): Now updates selection start/end if it points 
13213           into a line that's being split. Fixes a FIXME and bug #75258
13214
13215 2005-09-23  Jackson Harper  <jackson@ximian.com>
13216
13217         * Binding.cs:
13218         * ListControl.cs: Don't use the path when retrieving binding
13219         managers from the binding context. My bat sense tells me that the
13220         path is only used on insertion.
13221
13222 2005-09-22  Jackson Harper  <jackson@ximian.com>
13223
13224         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
13225
13226 2005-09-22  Jackson Harper  <jackson@ximian.com>
13227
13228         * Splitter.cs: There are special cursors used for splitting.
13229         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
13230
13231 2005-09-22  Jackson Harper  <jackson@ximian.com>
13232
13233         * Splitter.cs: Change the cursor appropriately when the splitter
13234         is moused over, so the user actually knows there is a splitter
13235         there.
13236
13237 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13238
13239        * Label.cs : Fix ToString method to give same output as MS.NET
13240
13241 2005-09-22  Jackson Harper  <jackson@ximian.com>
13242
13243         * TreeView.cs: Create the scrollbars when the handle is created
13244         and add them right away, just make them invisble. Also account for
13245         the window being shrunk vertically to the point that the vert
13246         scrollbar needs to be added.
13247         - Remove some 0.5 adjustments to get around anti aliasing issues.
13248         
13249 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
13250          
13251         * MainMenu.cs: Fixes default value
13252         * MenuItem.cs: Fixes default value
13253
13254 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
13255
13256         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
13257
13258 2005-09-21  Jackson Harper  <jackson@ximian.com>
13259
13260         * Control.cs: Don't try to set the border style on the window if
13261         it hasn't been created. When the window is created the border
13262         style will be used.
13263
13264 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13265
13266         * Control.cs (Update): Don't call XplatUI if we don't have a
13267           window handle yet
13268
13269 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13270
13271         * ContainerControl.cs: Instead of throwing an exception, print
13272           a one-time warning about Validate not being implemented
13273         * XplatUIWin32.cs: Removed debug output
13274
13275 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13276
13277         * Control.cs: Only set XplatUI background if we expect the windowing
13278           system to handle the background. This stops controls that draw their
13279           own background from flickering
13280
13281         * XplatUIX11.cs: Support custom visuals and colormaps for window 
13282           creation. This allows, amongst other things, using MWF X11 windows 
13283           with OpenGL.
13284
13285 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13286
13287         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
13288           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
13289           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
13290           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
13291           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
13292           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
13293           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
13294           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
13295           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
13296           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
13297           GridColumnStylesCollection.cs, 
13298           IDataGridColumnStyleEditingNotificationService.cs,
13299           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
13300           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
13301           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
13302           TreeNodeCollection.cs, AmbientProperties.cs, 
13303           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13304           DataObject.cs, ErrorProvider.cs, Splitter.cs,
13305           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
13306           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
13307           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
13308           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
13309           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
13310           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
13311           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
13312           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
13313           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
13314           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
13315           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
13316           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
13317           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
13318           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
13319           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
13320           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
13321           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
13322           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
13323           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
13324           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
13325           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
13326           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
13327           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
13328           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
13329           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
13330           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
13331           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
13332           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
13333           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
13334           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
13335           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
13336           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
13337           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
13338           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
13339           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
13340
13341 2005-09-21  Jackson Harper  <jackson@ximian.com>
13342
13343         * TreeNode.cs: Call Before/After Expand not Collapse when
13344         expanding.
13345
13346 2005-09-20  Jackson Harper  <jackson@ximian.com>
13347         
13348         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
13349
13350 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13351          
13352         * ListViewItem.cs:
13353                 - Fixes bug 76120
13354                 - Fixes proper storing of subitems
13355                 - Fixes not updated items
13356
13357 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
13358
13359         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
13360           things if our window handle isn't created yet. Also disabled 
13361           debug for TextBoxBase
13362
13363 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
13364
13365         * MenuAPI.cs: Remove filtering of events to allow menu usage
13366
13367 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13368
13369         * Cursor.cs: Allow null to be passed to Cursor.Current.
13370
13371 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
13372
13373         * ThemeWin32Classic.cs:
13374           - Change some private methods/fields to protected virtual so that 
13375             they can be accessed and overriden in derived classes
13376           - First refactoring of some methods. Derived themes now don't 
13377             need to duplicate the complete code from ThemeWin32Classic
13378         * ThemeNice.cs:
13379           - Added nice StatusBar
13380           - Derive from ThemeWin32Classic and not Theme
13381           - Removed duplicate ThemeWin32Classic code
13382
13383 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13384
13385         * Control.cs (ControlCollection.Add): If the value null is passed
13386         the control is ignored. 
13387
13388         Optimize this loop.
13389
13390 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
13391
13392         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
13393           PostQuitMessage state.
13394         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
13395
13396 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
13397
13398         * Application.cs: Our constructor will never get called, move 
13399           initialization to fields; fixes bug #75933
13400
13401 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13402
13403         * FileDialog.cs :
13404                 - Allow files to be selected properly using file name
13405                 combo box.
13406                 - Add ability to change diretory (absolute / relative)
13407                 using file name combo box.
13408
13409 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13410          
13411         * ListBox.cs: 
13412                 - Fixes Multicolumn listboxes item wrong calculations
13413                 - Allows to click when only one item is in the listbox
13414                 - Fixes crash when no items using keyboard navigation
13415
13416 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
13417
13418         * ComboBox.cs: Reverted almost everything from the latest patch which
13419           broke ComboBox
13420
13421 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
13422         
13423         * ToolTip.cs:
13424                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
13425         * ComboBox.cs:
13426                 - When DropDownStyle is Simple, it does not show scrollbar 
13427                 to the last item of the list.
13428                 - When DropDownStyle is Simple, it crashed when the list was 
13429                 scrolled down with the down cursor key.
13430                 - Fixed a bug that when DropDownStyle is DropDownList, the 
13431                 selected item was not shown.
13432                 - The position of the selected item was not preserved when 
13433                 the next dropdown happened.
13434         * ThemeWin32Classic.cs:
13435                 - Items were wrapped at the right end.
13436         * CheckedListBox.cs:
13437                 - Fixed Add method
13438         * ListBox.cs:
13439                 - Items should be fully shown.
13440                 - When resizing and vertical scrollbar disappeared, the item 
13441                 of index 0 should be on the top of the list.
13442                 - GetItemRectangle should consider the size of ver. scrollbar
13443         * StatusBar.cs:
13444                 - SizingGrip area should not be allocated when it is not 
13445                 displayed.
13446                 - Now it reflects MinWidth of the containing panel and 
13447                 fixed a crash that happens when its width becomes so small.
13448
13449 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13450
13451         * CheckedListBox.cs: Fixes bug 76028
13452         * ListBox.cs: Fixes bug 76028
13453
13454 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13455
13456         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
13457         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
13458
13459 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
13460
13461         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
13462
13463 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13464
13465         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
13466
13467 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13468
13469         * IRootGridEntry.cs: Added
13470         * PropertyGridCommands.cs: Added
13471         * PropertiesTab.cs: Added missing methods and property
13472         * PropertyGridView.cs: Made class internal
13473         * PropertyGridTextBox.cs: Made class internal
13474
13475 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13476
13477         * MimeIcon.cs: Try to check some other environment variables
13478           if "DESKTOP_SESSION" returns "default"
13479
13480 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13481
13482         * ThemeNice.cs: Corrected background colors (e.g. menus)
13483         * ColorDialog.cs: Use correct background colors for controls
13484
13485 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13486
13487         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
13488
13489 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
13490
13491         * RichTextBox.cs: Added initial implementation
13492         * lang.cs: Removed. Was accidentally checked in long time ago
13493         * TODO: Removed. Contents were obsolete
13494
13495 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13496                                                                                 
13497         * PropertiesTab.cs : Added
13498
13499 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13500                                                                                 
13501         * PropertyGrid.cs : Update
13502         * PropertyGridView.cs : Update
13503         * System.Windows.Forms.resx : Added images and strings
13504
13505 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
13506
13507         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
13508  
13509 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
13510
13511         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
13512           a busy loop right after the Ungrab the X11 display is otherwise 
13513           blocked
13514
13515 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
13516
13517         * ThemeWin32Classic.cs: Optimise the use of clipping
13518
13519 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
13520
13521         * DataGrid.cs: fixes recursion bug
13522
13523 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
13524
13525         * ThemeNice.cs: 
13526           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
13527           - Cleanup
13528
13529 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
13530
13531         * ThemeNice.cs: Draw nice ProgressBars
13532
13533 2005-09-01  Miguel de Icaza  <miguel@novell.com>
13534
13535         * VScrollBar.cs: Another buglet found by Aaron's tool. 
13536
13537         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
13538         bug finder.
13539
13540 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
13541
13542         * ThemeNice.cs:
13543           - Added nicer menu drawing
13544           - Updated DrawTab
13545           - some refactoring
13546
13547 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13548
13549         * CreateParams.cs (ToString): Made output match MS
13550         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
13551             handle is already created (to avoid forcing window creation)
13552         * XplatUIX11.cs: Set window text to caption after creating window,
13553           in case Text was set before window was created
13554         * Form.cs: Use this.Text instead of a static string as caption
13555
13556 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13557
13558         * NotifyIcon.cs: Don't set the window to visible; this screws
13559           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
13560           OnPaint without a bitmap)
13561         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
13562           happen very often anyway; we could add the check to the WM_PAINT 
13563           event generation code
13564
13565 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13566
13567         * NotifyIcon.cs: Fill the icon area with a background color, to 
13568           avoid 'residue' when transparent icons are drawn
13569         * XplatUIX11.cs:
13570           - Handle whole_window == client_window when destroying windows
13571           - SystrayAdd(): Set client_window to whole_window value to
13572             get mouse and other events passed to NotifyIcon
13573
13574 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13575
13576         * Form.cs: Set proper default for Opacity property
13577         * NotifyIcon.cs:
13578           - ShowSystray(): Don't bother creating telling the OS
13579             about the systray item if no icon is provided
13580           - Now handles WM_NCPAINT message to deal with whole/client window
13581             split
13582           - Create window as visible to not get caught by Expose optimization
13583         * Hwnd.cs: Removed debug message
13584         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
13585           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
13586             PaintEventStart/End to use new client argument
13587         * TextBoxBase.cs:
13588           - Commented out debug messages
13589           - Switched PaintEventStart/End to use new client argument
13590         * XplatUI.cs: Added client window bool to PaintEventStart()/
13591           PaintEventEnd() calls, to support drawing in non-client areas
13592         * XplatUIDriver.cs: 
13593           - Added client window bool to PaintEventStart()/PaintEventEnd() 
13594             calls, to support drawing in non-client areas
13595           - Added conditional compile to allow using MWF BeginInvoke 
13596             on MS runtime
13597         * XplatUIX11.cs:
13598           - Added some conditional debug output
13599           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
13600             whole/client window split
13601           - Implemented handling of client argument to PaintEventStart()/End()
13602         * Control.cs:
13603           - Throw exception if BeginInvoke() is called and the window handle
13604             or one of the window's parent handles is not created
13605           - Added conditional compile to allow using MWF BeginInvoke on
13606             MS runtime
13607           - get_Parent(): Only sets parent if handle is created. This avoids
13608             forcing window handle creation when parent is set.
13609           - Now fires Layout and Parent changed events in proper order
13610           - Switched to use Handle instead of window.Handle for Z-Order setting,
13611             the get_Parent() patch above causes us to possibly get null for 'window'
13612           - Implemented handling of client argument to PaintEventStart()/End()
13613           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
13614             default handling)
13615           - Now sends a Refresh() to all child windows when Refresh() is called
13616
13617 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
13618
13619         * Form.cs: Added (non-functional) Opacity property
13620         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
13621
13622 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
13623         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
13624           use export MONO_THEME=nice to activate it.
13625           Currently supported controls:
13626           - Button
13627           - ComboBox
13628           - ScrollBar
13629           - TabControl (TabAlignment.Top only, other will follow)
13630         * ThemeEngine.cs: Add theme nice
13631         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
13632           if enabled
13633
13634 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
13635
13636         * Splitter.cs: Resize docked control and its neighbor.
13637
13638 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13639         -- Making Windows with Menus layout correctly --
13640         * Form.cs : The first leg of the fix
13641                 Menu setter - adjust Client Size as needed to make space for the menu
13642                 SetClientSizeCore - doesn't call base version to be able to pass the 
13643                         menu handle to XplatUI.CalculateWindowRect
13644         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
13645         * XplatUIX11.cs: The critical second leg of the fix
13646                 GetWindowPos needs to use a recalculated client_rect
13647                 so that resizing the window doesn't break layout of child controls. 
13648                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
13649                 Lots of \t\n killed
13650
13651 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13652
13653         * Label.cs: Now properly recalculates width and height on Font and Text
13654           changes if AutoSize is set
13655
13656 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13657         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
13658
13659 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
13660
13661         * ImageList.cs: Makes ToString method compatible with MS
13662
13663 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
13664
13665         * MenuAPI.cs: fixes bug 75716
13666
13667 2005-08-11 Umadevi S <sumadevi@novell.com>
13668         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
13669
13670 2005-08-11 Umadevi S <sumadevi@novell.com>
13671         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
13672
13673 2005-08-10  Umadevi S <sumadevi@novell.com>
13674         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
13675
13676 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
13677
13678         * Menu.cs: fixes bug 75700
13679         * MenuAPI.cs: fixes navigation issues
13680
13681 2005-08-09  Umadevi S <sumadevi@novell.com>
13682         * CheckedListBox.cs - simple fix for GetItemChecked.
13683
13684 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
13685
13686         * ComboBox.cs: Serveral fixes
13687         * ListBox.cs: Serveral fixes
13688
13689 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13690
13691         * ComboBox.cs: Fixes FindString methods and GetItemHeight
13692         * ListBox.cs: Fixes FindString methods
13693
13694 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13695
13696         * DataGrid.cs: fixes bugs exposed by new tests
13697
13698 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
13699
13700         * Mime.cs: Compile Mono assembly references only if compiling
13701           with Mono (Allows to build with VS.Net again)
13702
13703 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
13704
13705         * Control.cs (PaintControlBackground): Draw background image
13706         corrrectly.
13707         (CheckForIllegalCrossThreadCalls): Stubbed.
13708         
13709         * Form.cs (OnCreateControl): Center when should be centered.
13710         
13711         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
13712
13713 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
13714
13715         * Binding.cs: Binding to properties should be case unsensitive
13716
13717 2005-07-18 vlindos@nucleusys.com
13718
13719         * DataGrid.cs: fixes setmember order
13720
13721 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
13722
13723         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
13724         * FileDialog.cs: FileDialog is now resizable and uses the new
13725           MimeIconEngine
13726
13727 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
13728
13729         * DataGridTextBoxColumn.cs: default value
13730         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
13731         * GridTableStylesCollection.cs: fixes checking MappingName
13732         * DataGridDrawingLogic.cs: fixes drawing logic issues
13733         * DataSourceHelper.cs: rewritten to make compatible with more data sources
13734         * DataGrid.cs: fixes    
13735
13736 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
13737
13738         * MimeGenerated.cs: Use case sensitive comparer for
13739           NameValueCollections
13740
13741 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
13742
13743         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
13744         * ThemeWin32Classic.cs: bug fixes, code refactoring
13745         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
13746         * DataGrid.cs: bug fixes, code refactoring
13747         * DataGridTextBox.cs: bug fixes, code refactoring
13748         * DataGridColumnStyle.cs:  bug fixes, code refactoring
13749         * Theme.cs:  bug fixes, code refactoring
13750
13751 2005-07-01  Peter Bartok  <pbartok@novell.com> 
13752
13753         * TextControl.cs: Quick fix for the reported crash on ColorDialog
13754           and other text box usage
13755
13756 2005-07-01  Jackson Harper  <jackson@ximian.com>
13757
13758         * TabControl.cs: Make sure the bottom of the tab covers the pages
13759         border.
13760
13761 2005-06-30  Peter Bartok  <pbartok@novell.com> 
13762
13763         * Form.cs (ShowDialog): Assign owner of the dialog
13764         * TextBoxBase.cs: Always refresh caret size when deleting, caret
13765           might have been moved to a tag with different height
13766
13767 2005-06-30  Jackson Harper  <jackson@ximian.com>
13768
13769         * Form.cs: Don't create an infinite loop when setting focus
13770         * MenuItem.cs: Don't dirty the parents if we don't have any
13771
13772 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
13773
13774         * LibSupport.cs: Rename
13775
13776 2005-06-29  Peter Bartok  <pbartok@novell.com>
13777
13778         * TextBoxBase.cs: Re-align caret after deleting a character
13779         * TextControl.cs:
13780           - DeleteChars(): Ensure that tag covers the provided position
13781           - StreamLine(): Drop reference for dropped tag
13782
13783 2005-06-29  Peter Bartok  <pbartok@novell.com> 
13784
13785         * TextControl.cs: 
13786           - Selections now work properly, anchoring at the initial location
13787             and properly extending in either direction (SetSelectionToCaret(),
13788             SetSelectionStart() and SetSelectionEnd())
13789           - No longer redraws the whole control on selection change, now
13790             calculates delta between previous and new selection and only
13791             invalidates/redraws that area
13792           - Fixed FindPos() math off-by-one errors
13793           - Changed DeleteChars() to verify the provided tag covers the
13794             provided position, selections may have a tag that doesn't cover
13795             the position if the selection is at a tag border
13796           - Fixed off-by-one errors in DeleteChars()
13797           - Added missing streamlining check in DeleteChars() to remove
13798             zero-length tags
13799           - Implemented Invalidate() method, now properly calculates exposures
13800             between two given lines/positions
13801           - Implemented SetSelection()
13802           - Obsoleted and removed FixupSelection()
13803           - Improved RecalculateDocument() logic, removing code duplication
13804
13805 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13806
13807         * LibSupport.cs: changes to match different input/output arguments.
13808
13809 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13810
13811         * LibSupport.cs: added libsupport.so init routine.
13812
13813 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
13814         
13815         * ControlBindingsCollection.cs
13816                 - Throws an exception on null datasource when adding
13817                 - Checks for duplicated bindings when adding
13818
13819 2005-06-28  Jackson Harper  <jackson@ximian.com>
13820
13821         * TreeView.cs (OnKeyDown): Support left and right properly
13822         (navigates as well as expanding and collapsing.
13823         - Add support for Multiply, this expands all the selected nodes
13824         children.
13825         - Fix some tabbing.
13826
13827 2005-06-28  Jackson Harper  <jackson@ximian.com>
13828
13829         * TreeView.cs: Implement keyboard navigation, currently supports,
13830         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
13831         support for toggling checkboxes with the space bar.
13832
13833 2005-06-28  Jackson Harper  <jackson@ximian.com>
13834
13835         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
13836         tree.
13837
13838 2005-06-28  Jackson Harper  <jackson@ximian.com>
13839
13840         * TreeView.cs: Add missing event.
13841
13842 2005-06-27  Peter Bartok  <pbartok@novell.com> 
13843
13844         * TextControl.cs:
13845           - Made line ending size configurable (now allows for counting 
13846             lineendings as \n or \r\n)
13847           - Added margin to viewport to keep caret visible on right side
13848           - Fixed translation routines for line/pos to documentpos to consider
13849             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
13850           - Fixed some line-endings to be unix style
13851           - Fixed Document.FormatText to perform it's calculations 1-based
13852           - Added descriptions for a few methods that might otherwise get 
13853             used wrong
13854           - Added NOTE section with some basic conventions to remember at 
13855             the top of the file
13856           - Major fixup for RichTextBox selection drawing:
13857             * Fixed crashes when multiple tags on a single line were selected
13858             * fixed selection box drawing not overlaying text
13859             * fixed bogus offset calculation for tags not starting at index 1
13860             * Switched behaviour from using multiple Substrings of a 
13861               StringBuilder.ToString() to using multiple 
13862               StringBuilder.ToString(start, length) statements, hoping this is
13863               faster (kept original version commented out in the code, in case
13864               original version was faster)
13865         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
13866           alignment != Left
13867         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
13868           call it as well
13869
13870 2005-06-27  Jackson Harper  <jackson@ximian.com>
13871
13872         * TabControl.cs: Move to the left and right with the arrow
13873         keys. These keys don't cycle beyond first and last like
13874         tab. Refresh all the tabs when scrolling them to the left or
13875         right.
13876
13877 2005-06-27  Jackson Harper  <jackson@ximian.com>
13878
13879         * TabControl.cs:
13880           - ToString: Added method
13881           - CreateParams: Remove TODO and comment
13882           - OnKeyDown: Cycle through bounds properly.
13883           - SelectedIndex: Scroll to the right or left if we need to
13884           display the newly selected tab.
13885
13886 2005-06-23  Jackson Harper  <jackson@ximian.com>
13887
13888         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
13889         set.
13890
13891 2005-06-23  Jackson Harper  <jackson@ximian.com>
13892
13893         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
13894         CTRL-SHIFT-TAB, and HOME, END are there any others?
13895
13896 2005-06-23  Jackson Harper  <jackson@ximian.com>
13897
13898         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
13899
13900 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
13901         
13902         * DataGridTextBoxColumn.cs: fixes and enhancements
13903         * ThemeWin32Classic.cs: fixes and enhancements
13904         * DataGridBoolColumn.cs:  fixes and enhancements
13905         * DataGridDrawingLogic.cs:  fixes and enhancements
13906         * CurrencyManager.cs: fixes and enhancements
13907         * DataGrid.cs: fixes and enhancements
13908         * DataGridColumnStyle.cs:  fixes and enhancements
13909
13910 2005-06-22  Jackson Harper  <jackson@ximian.com>
13911
13912         * TabControl.cs: Add some missing methods that just call into the
13913         base. Make the TabPageCollection's IList interface behave in the
13914         same manner as the MS implementation.
13915
13916 2005-06-22  Peter Bartok  <pbartok@novell.com> 
13917
13918         * TextControl.cs: Added sanity check
13919         * TextBoxBase.cs: 
13920           - Fixed wrapping behaviour, don't set wrap on single line controls
13921             (this fixes the breakage of colordialog introduced in an earlier
13922              checkin)
13923           - Added rudimentary support for autoscrolling right-aligned controls
13924             (still needs fixing, also, center alignment scroll is missing)
13925
13926 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
13927         
13928         * ScrollBar.cs: Fixes thumbpos on Maximum values
13929
13930 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
13931         
13932         * PropertyGridView.cs: Pass context information to UITypeEditors 
13933
13934 2005-06-21  Peter Bartok  <pbartok@novell.com> 
13935
13936         * TextBoxBase.cs:
13937           - Now calling PositionCaret with absolute space coordinates
13938           - Enabled vertical scrolling
13939           - Better tracking of scrollbar changes, tied into WidthChange
13940             event
13941           - Improved cursor tracking
13942           - Removed debug output
13943         * TextControl.cs:
13944           - PositionCaret coordinates are now works in absolute space, not 
13945             the canvas
13946           - Improved tracking of document size
13947           - Added events for width and height changes
13948
13949 2005-06-21  Peter Bartok  <pbartok@novell.com>
13950
13951         * Form.cs: Set focus to active control when form is activated
13952         * TextControl.cs: 
13953           - Added word-wrap functionality to RecalculateLine() 
13954           - Added some short function descriptions for VS.Net to aid in
13955             writing dependent controls
13956           - Added Caret property, returning the current coords of the caret
13957           - Added ViewPortWidth and ViewPortHeight properties
13958           - Added Wrap property
13959           - Added CaretMoved event
13960           - Removed some old debug code
13961           - Split() can now create soft splits
13962           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
13963           - Added method to format existing text
13964           - Fixed size/alignment calculations to use viewport
13965           - RecalculateDocument now can handle changing line-numbers while
13966             calculating lines
13967
13968         * TextBox.cs:
13969           - Added some wrap logic, we don't wrap if alignment is not left
13970           - Added casts for scrollbar var, base class switched types to
13971             also support RichTextBoxA
13972           - Implemented handling of scrollbar visibility flags
13973
13974         * TextBoxBase.cs:
13975           - Switched scrollbars type to RichTextBoxScrollBars to support
13976             RichTextBox
13977           - Added tracking of canvas width/height
13978           - Switched scrollbars to be not selectable (to keep focus on text)
13979           - Added central CalculateDocument() method to handle all redraw
13980             requirements
13981           - Added ReadOnly support
13982           - Added WordWrap support
13983           - Fixed handling of Enter key (we now treat it as a DialogKey)
13984           - Fixed caret positioning when h or v scroll is not zero
13985           - Fixed placing/generation of vertical scrollbar
13986           - Added CalculateScrollBars() method to allow updating scrollbar
13987             limits and visibility
13988           - Fixed handling of horizontal scroll
13989           - Added handling of vertical scroll
13990           - Implemented auto-'jump' when caret moves to close to a left or
13991             right border and there is text to be scrolled into view (currently
13992             there's the potential for a stack overflow, until a bug in
13993             scrollbar is fixed)
13994
13995 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
13996         
13997         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
13998
13999 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
14000
14001         * Mime.cs:
14002         - added inodes.
14003         - return application/x-zerosize for files with size zero
14004           (if no extension pattern matches).
14005         - check matches collection for strings too.
14006         - return only the first mime type if the name value
14007           collection has more than one mime type.
14008
14009 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
14010         
14011         * PropertyGrid.cs: Cleaned up some TODOs
14012         * PropertyGridView.cs: Added support for UITypeEditors
14013
14014 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14015         
14016         * DataGrid.cs: clears cached value
14017
14018 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14019
14020         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
14021         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
14022         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
14023         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
14024         
14025 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
14026
14027         * ThemeWin32Classic.cs: fixes colour
14028
14029 2005-06-15  Peter Bartok  <pbartok@novell.com>
14030
14031         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
14032         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
14033         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
14034         * Control.cs: Added some MWFCategory and MWFDescription attributes
14035         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
14036
14037 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
14038
14039         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
14040         usage
14041
14042 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
14043
14044         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
14045         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
14046         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
14047         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
14048         * DataGrid.cs: default datagrid settings for Default Styles, fixes
14049         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
14050
14051 2005-06-13  Jackson Harper  <jackson@ximian.com>
14052
14053         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
14054         isn't printed when the user enables dropping. (X11 does accept
14055         drops).
14056         
14057 2005-06-13  Jackson Harper  <jackson@ximian.com>
14058
14059         * TreeView.cs: Remove some TODOS.
14060
14061 2005-06-13  Jackson Harper  <jackson@ximian.com>
14062
14063         * Form.cs: Hook into the mdi framework.
14064         * MdiClient.cs: Use the base control collections add method so
14065         parents get setup correctly. Set the default back colour and dock
14066         style.
14067         * MdiChildContext.cs: New class, this bad actor handles an
14068         instance of an MDI window. Right now there is only basic
14069         support. You can drag, close, and resize windows. Minimize and
14070         Maximize are partially implemented.
14071
14072 2005-06-13  Jackson Harper  <jackson@ximian.com>
14073
14074         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
14075         freaky when both vals are negative. NOTE: There are probably other
14076         places in XplatUIX11 that this needs to be done.
14077
14078 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
14079
14080         * DataGrid.cs: implement missing methods, move KeyboardNavigation
14081         * DataGridColumnStyle.cs: fixes signature
14082
14083 2005-06-12  Jackson Harper  <jackson@ximian.com>
14084
14085         * XplatUIX11.cs: Use sizing cursors similar to the ones on
14086         windows.
14087
14088 2005-06-11  Jackson Harper  <jackson@ximian.com>
14089
14090         * StatusBarPanel.cs: Signature cleanups. Implement
14091         BeginInit/EndInit.
14092
14093 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
14094
14095         * DataGridTextBoxColumn.cs: Honors aligment
14096         * GridColumnStylesCollection.cs: Contains is case unsensitive
14097         * GridTableStylesCollection.cs: several fixes
14098         * DataGridTableStyle.cs: default column creation
14099         * DataGridDrawingLogic.cs: fixes
14100         * CurrencyManager.cs: ListName property
14101         * DataGrid.cs: multiple styles support
14102         * DataGridColumnStyle.cs: fixes
14103         
14104
14105 2005-06-10  Peter Bartok  <pbartok@novell.com>
14106
14107         * Control.cs(Select): Moved SetFocus call to avoid potential
14108           loops if controls change the active control when getting focus
14109         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
14110           the up/down buttons
14111
14112 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
14113
14114         * ImageListConverter.cs: Implemented
14115
14116 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14117
14118         * MonthCalendar.cs: Wired in NumericUpDown control for year
14119
14120 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14121
14122         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
14123           DoubleClick events, since they are not meant to be fired.
14124
14125 2005-06-09  Peter Bartok  <pbartok@novell.com>
14126
14127         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
14128           Jonathan's standalone controls into MWF, implemented missing
14129           events, attributes and methods; added xxxAccessible classes
14130         * AccessibleObject.cs: Made fields internal so other classes
14131           can change them if needed
14132
14133 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
14134
14135         * UpDownBase.cs: Complete implementation
14136         * NumericUpDown.cs: Complete implementation
14137         * DomainUpDown.cs: Complete implementation
14138
14139 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
14140
14141         * DataGridTextBoxColumn.cs: drawing fixes
14142         * DataGridCell.cs: fixes ToString method to match MSNet
14143         * DataGridTableStyle.cs: fixes
14144         * DataGridBoolColumn.cs: fixes, drawing
14145         * DataGridDrawingLogic.cs: fixes, new methods
14146         * DataGridTextBox.cs: Keyboard and fixes
14147         * DataGrid.cs:
14148                 - Keyboard navigation
14149                 - Scrolling fixes
14150                 - Row selection (single, multiple, deletion, etc)
14151                 - Lots of fixes
14152         
14153 2005-06-07  Jackson Harper  <jackson@ximian.com>
14154
14155         * ThemeWin32Classic.cs: Clear the background area when drawing
14156         buttons.
14157
14158 2005-06-06  Peter Bartok  <pbartok@novell.com>
14159
14160         * ImageListStreamer.cs: Fixed signature for GetData
14161         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
14162         * ComboBox.cs:
14163           - Added missing ChildAccessibleObject class
14164           - Added missing OnXXXFocus overrides, switched to using those
14165             instead of the event handler
14166         * Control.cs:
14167           - Added Parent property for ControlAccessibleObject
14168           - Fixed signatures
14169           - Fixed attributes
14170           - Added ResetBindings()
14171         * ListBindingConverter.cs: Implemented some methods
14172         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
14173         * ImageList.cs: Implemented basic handle scheme, removed TODOs
14174         * ContainerControl.cs: Fixed signature, now subscribing to the
14175           ControlRemoved event instead of overriding the handler, LAMESPEC
14176         * CurrencyManager.cs: Added missing attribute
14177         * MonthCalendar.cs: Added missing properties
14178
14179 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14180
14181         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
14182         
14183 2005-06-06  Gaurav Vaish and Ankit Jain
14184
14185         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
14186         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
14187         
14188 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14189
14190         * Control.cs: fixes CreateParams Width / Height.
14191
14192 2005-06-05  Peter Bartok  <pbartok@novell.com>
14193
14194         * Win32DnD.cs: Removed compilation warnings
14195
14196 2005-06-05  Peter Bartok  <pbartok@novell.com>
14197
14198         * Control.cs (CreateParams): Since we don't know if one of the
14199           properties we use is overridden, lets make sure if we fail accessing
14200           we continue with a backup plan
14201
14202 2005-06-05  Peter Bartok  <pbartok@novell.com>
14203
14204         * Win32DnD.cs:
14205           - Removed debug output
14206           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
14207             struct
14208           - Plugged resource leak
14209         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
14210           MS size
14211
14212 2005-06-05  Peter Bartok  <pbartok@novell.com>
14213
14214         * XplatUIWin32.cs: Removed DnD code
14215         * Win32DnD.cs: Implemented drop source and drop target functionality
14216
14217 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14218
14219         * UpDownBase.cs: remove duplicate addition of event, enable some code
14220         that was commented out.
14221         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
14222         Validate input when a key is pressed. It works fine now for every
14223         combination of Hexadecimal. Only missing some drawing love when sharing
14224         space with other controls.
14225
14226 2005-06-04  Peter Bartok  <pbartok@novell.com>
14227
14228         * Control.cs:
14229           - We need to pass a window for DragDrop, so enable callback events
14230           - Added DnD callback events when being a DragSource
14231         * XplatUI.cs (StartDrag): Added window handle argument
14232         * XplatUIDriver.cs (StartDrag): Added window handle argument
14233         * QueryContinueDragEventArgs: Made fields internally accessible so
14234           drivers can set them
14235         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
14236           can set them
14237
14238 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
14239
14240         * DataGridTextBoxColumn.cs: column text editing
14241         * DataGridTableStyle.cs: Respect columns styles created by the user
14242         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
14243         * DataGridBoolColumn.cs: bool column editing
14244         * DataGrid.cs: fixes to scrolling, properties, etc
14245         * DataGridTextBox.cs: handle keyboard
14246         * DataGridColumnStyle.cs: fixes
14247
14248 2005-06-02  Jackson Harper  <jackson@ximian.com>
14249
14250         * ImageListStreamer.cs: Somewhat broken implementation of
14251         GetObjectData. The RLE needs some work to match MS properly.
14252
14253 2005-06-02  Jackson Harper  <jackson@ximian.com>
14254
14255         * X11Dnd.cs: Attempting to keep at least one file in MWF
14256         monostyled.
14257
14258 2005-06-02  Peter Bartok  <pbartok@novell.com>
14259
14260         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
14261           that way
14262
14263 2005-06-02  Peter Bartok  <pbartok@novell.com>
14264
14265         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
14266         * XplatUI.cs: Added DoDragDrop() method
14267         * XplatUIDriver.cs: Added DoDragDrop() method
14268
14269 2005-06-02  Jackson Harper  <jackson@ximian.com>
14270
14271         * Splitter.cs: Implement BorderStyle.
14272
14273 2005-06-02  Jackson Harper  <jackson@ximian.com>
14274
14275         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
14276         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
14277         X11 using XDND.
14278
14279 2005-06-02  Peter Bartok  <pbartok@novell.com>
14280
14281         * DataObject.cs:
14282           - Added Data setter
14283           - Fixed broken insertion code for SetData, now also
14284             overwrites any existing entry of the same format name
14285         * Hwnd.cs: Added list of pointers that automatically gets
14286           freed when the window is disposed
14287         * XplatUI.cs: Call driver initialization method when loading
14288           a driver
14289         * Control.cs:
14290           - OnDragLeave takes EventArgs, not DragEventArgs
14291           - Added setting of WS_EX_ACCEPTFILES style when dropping is
14292             supported
14293           - Forces style update when drop state changes
14294         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
14295           not perfect since we cannot (yet) call the IDataObject.GetData()
14296           method, we keep getting 0x80004005 error, dunno why)
14297
14298 2005-06-02  Peter Bartok  <pbartok@novell.com>
14299
14300         * DragEventArgs.cs: Make fields internal so we can cache the
14301           object and re-set the fields from XplatUI
14302
14303 2005-06-02  Jackson Harper  <jackson@ximian.com>
14304
14305         * Control.cs: Add some internal methods so the DnD subsystem can
14306         raise DnD events. Also call into the driver when AllowDrop is set.
14307         * XplatUI.cs:
14308         * XplatUIDriver.cs: New method for setting whether or not a window
14309         is allowed to accept drag and drop messages.
14310                 
14311 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
14312         
14313         * ScrollBar.cs: Make sure that values sent in Scroll events
14314         are always between Maximum and Minimum.
14315
14316 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
14317
14318         * Menu.cs: Call MenuChanged when menuitem visibility has been
14319         changed.
14320         * MenuItem.cs: Rebuild menu when item is (not) visible.
14321         * MainMenu.cs: MainMenu has special MenuChanged.
14322         * Theme.cs: Caption and FrameBorderSize are not fixed.
14323         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
14324         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
14325         * XplatUIX11.cs,
14326         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
14327         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
14328
14329 2005-05-30  Jackson Harper  <jackson@ximian.com>
14330
14331         * DataFormat.cs: We can't statically initialize this stuff because
14332         it calls into the xplatui and could create a loop. So we lazy init
14333         it.
14334
14335 2005-05-28  Jackson Harper  <jackson@ximian.com>
14336
14337         * Control.cs: Proper implementation of Product(Name/Version).
14338
14339 2005-05-27  Jackson Harper  <jackson@ximian.com>
14340
14341         * DataObject.cs: Dont crash if no data is found.
14342
14343 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
14344         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
14345                 as per status page, guessing it should be set to true
14346
14347 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
14348
14349         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
14350         * DataGridTableStyle.cs: set proper formatting text, def header text
14351         * ThemeWin32Classic.cs: new themable paramaters
14352         * DataGridBoolColumn.cs: paint check box, get data, fixes
14353         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
14354         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
14355         * DataGridColumnStyle.cs: fixes
14356         * Theme.cs: new themable paramaters
14357                 
14358 2005-05-26  Peter Bartok  <pbartok@novell.com>
14359
14360         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
14361
14362 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14363         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
14364
14365 2005-05-24  Peter Bartok  <pbartok@novell.com>
14366
14367         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
14368           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
14369           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
14370           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
14371           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
14372           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
14373           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
14374           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
14375           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
14376           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
14377           missing attributes, etc
14378         * DataGridPreferredColumnWidthTypeConverter.cs: Added
14379
14380 2005-05-24  Peter Bartok  <pbartok@novell.com>
14381
14382         * Help.cs: Added, implemented trivial functions, throws up MessageBox
14383           when user tries to get help
14384         * DataObject.cs, DataFormats.cs, LinkArea.cs,
14385           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
14386           to suppress warnings
14387         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
14388           avoid unreachable code warning
14389
14390 2005-05-20  Peter Bartok  <pbartok@novell.com>
14391
14392         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
14393
14394 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14395
14396         * DataGridTextBoxColumn.cs: Basic painting methods
14397         * DataGridTableStyle.cs: Set table style in the column
14398         * ThemeWin32Classic.cs: Use Theme for colors
14399         * DataGridDrawingLogic.cs: Implement more drawing
14400         * DataGrid.cs: drawing, theming, enhacements, fixes
14401         * DataGridColumnStyle.cs: fixes, drawing
14402         * Theme.cs: theming for Datagrid
14403
14404 2005-05-20  Peter Bartok  <pbartok@novell.com>
14405
14406         * Cursor.cs: Implemented GetObjectData() method
14407
14408 2005-05-20  Peter Bartok  <pbartok@novell.com>
14409
14410         * Cursors.cs: Added setting of cursor name
14411         * Cursor.cs:
14412           - Implemented constructors
14413           - Implemented Draw and DrawStretched
14414           - Implemented Current property
14415           - Implemented == and != operators
14416           - Implemented Dispose()
14417           - Implemented ToString
14418           - Added missing attributes
14419         * XplatUIX11.cs:
14420           - Added missing reset for OverrideCursor when DoEvents is called
14421           - Fixed creation of cursor, logic was wrong
14422         * XplatUIWin32.cs:
14423           - Added missing reset for OverrideCursor when DoEvents is called
14424           - Fixed creation of cursor, bit arrays were swapped
14425         * Clipboard.cs: Removed obsolete MonoTODO attribute
14426
14427 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14428
14429         * ComboBox.cs: fixes OnSelectedItemChanged
14430         * ControlBindingsCollection.cs: fixes item range check
14431
14432 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14433
14434         * UpDownBase.cs:
14435                 - Calc preferred height properly
14436                 - Implement missing properties
14437                 
14438         * NumericUpDown.cs: Implement missing events
14439
14440 2005-05-19  Jackson Harper  <jackson@ximian.com>
14441
14442         * TabControl.cs: New method that resizes the tab pages before
14443         redrawing them. This as needed as the control is double buffered
14444         and sizing will not be recalculated unless ResizeTabPages is
14445         called.
14446         * TabPage.cs: Set base.Text instead of Text in the constructor so
14447         that UpdateOwner does not get called. Use the new Redraw method of
14448         TabControl instead of Refresh so the sizing is recalculated.
14449         * ThemeWin32Classic.cs: Draw the text for button tabs.
14450
14451 2005-05-19  Jackson Harper  <jackson@ximian.com>
14452
14453         * Control.cs: Paint control background images. Fix typo where
14454         PaintControlBackground was not getting called correctly.
14455
14456 2005-05-19  Peter Bartok  <pbartok@novell.com>
14457
14458         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
14459           I can investigate, apparently I broke FileDialog
14460
14461 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
14462
14463         * AxHost.cs: Some simple properties.
14464         * Control.cs: window must be accessible after ctor.
14465         * Form.cs: Added TransparencyKey property.
14466         * TextBoxBase.cs: Implemented Clear. Text property can be null.
14467         * XplatUIWin32.cs: SetBorderStyle implemented.
14468
14469 2005-05-18  Peter Bartok  <pbartok@novell.com>
14470
14471         * DataObject.cs: Entries are not global but particular to the
14472           DataObject, now it behaves that way
14473         * XplatUIWin32.cs: Implemented Clipboard methods
14474         * Clipboard.cs: Implemented
14475         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
14476         * XplatUIOSX.cs: Updated to final clipboard prototypes
14477         * XplatUIX11.cs: Implemented Clipboard methods
14478         * XplatUIDriver.cs: Updated to final clipboard prototypes
14479         * XplatUIStructs.cs:
14480           - Added BITMAPINFOHEADER struct
14481           - Added ClipboardFormats enum
14482         * X11Structs.cs:
14483           - Added ClipboardStruct
14484           - Added Atom enum items for clipboard types
14485           - Fixed atom types for Selection event structures
14486         * DataFormats.cs:
14487           - Added internal properties and methods for drivers to enumerate
14488             all known formats
14489           - Switched initialization method to allow drivers to assign their
14490             own IDs even for the MS predefined clipboard IDs
14491         * XplatUI.cs: Updated to final clipboard interface
14492
14493 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14494         * PropertyGridView.cs: Fixed compiler warnings.
14495
14496 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14497         * PropertyGrid.cs: Added some event calls
14498         * PropertyGridView.cs: Change drawing code to use double buffering
14499         * PropertyGridTextBox.cs: Changed Text property name
14500         * GridItem.cs: Added Bounds property.
14501         * GridEntry.cs: Added Bounds property.
14502
14503 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
14504
14505         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
14506         since GetType() may not return the correct type if the object is
14507         a remoting proxy.
14508
14509 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
14510
14511         * TreeNodeCollection.cs: fixes get/set item ranges
14512         
14513 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14514
14515         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
14516                 
14517 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14518
14519         * ComboBox.cs: Fix item range comparation
14520         * ListView.cs: Fix item range comparation
14521
14522 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14523
14524         * FontDialog.cs:
14525           - Clear example panel when OnPaint is called
14526           - Better solution for displaying the example panel text
14527           - Select default indexes in the ListBoxes
14528
14529 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14530
14531         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
14532
14533 2005-05-11  Peter Bartok  <pbartok@novell.com>
14534
14535         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
14536         * SelectionRangeConverter.cs: Implemented
14537         * PropertyGrid.cs: Fixed attribute value
14538         * Control.cs:
14539           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
14540           - Added Sebastien Pouliot's CAS Stack Propagation fixes
14541         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
14542           that's common to all drivers. First methods to go there are
14543           Sebastien Pouliot's CAS Stack Propagation helper methods
14544         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
14545           Sebastien Pouliot for CAS Stack Propagation
14546
14547 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14548
14549         * OSXStructs.cs:
14550           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
14551
14552 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
14553
14554         * DataGridTextBoxColumn.cs: fixed some members
14555         * GridColumnStylesCollection.cs: indexed column is case insensitive
14556         * DataGridTableStyle.cs: fixes
14557         * ThemeWin32Classic.cs: add new theme parameter
14558         * Theme.cs: add new theme parameter
14559         * DataGridDrawingLogic.cs: Datagrid's drawing logic
14560         * DataGrid.cs: fixes, new internal properties, etc.
14561         * DataGridColumnStyle.cs: allows to set grid value
14562         *
14563
14564 2005-05-10  Peter Bartok  <pbartok@novell.com>
14565
14566         * AccessibleObject.cs:
14567           - Removed MonoTODO attribute on help, method is correct
14568           - Fixed Bounds property
14569         * AxHost.cs: Moved MonoTODO
14570         * ButtonBase.cs: Now setting AccessibleObject properties
14571         * RadioButton.cs: Setting proper AccessibleObject role
14572         * CheckBox.cs: Setting proper AccessibleObject role
14573         * ControlBindingsCollection.cs: Added properties, methods and attributes
14574         * DataFormats.cs: Fixed awkward internal API, and changed to enable
14575           userdefined DataFormats.Format items as well
14576         * ListControl.cs: Removed data_member from the public eye
14577         * OpenFileDialog.cs:
14578           - Made class sealed
14579           - Added missing attributes
14580         * SaveFileDialog.cs: Added missing attributes
14581         * ImageListStreamer.cs: Fixed code that caused warnings
14582         * LinkLabel.cs: Removed unreachable code
14583         * TreeView.cs: Fixed code that caused warnings
14584         * PropertyGridView.cs: Fixed code that caused warnings
14585         * GridColumnStylesCollection.cs: Added missing attributes
14586         * GridTableStylesCollection: Added missing attribute
14587         * PropertyManager: Added .ctor
14588         * SecurityIDType: Added
14589         * DataObject.cs: Implemented class
14590         * LinkArea.cs: Added missing attribute
14591
14592 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
14593
14594         * RadioButton.cs: call base method to allow to fire OnClick event
14595         * UpDownBase.cs: OnMouseUp call base method
14596         * CheckedListBox.cs: call base method before returning
14597         * TrackBar.cs: call base method before returning
14598         
14599
14600 2005-05-10  Peter Bartok  <pbartok@novell.com>
14601
14602         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
14603           for messages
14604
14605 2005-05-10  Peter Bartok  <pbartok@novell.com>
14606
14607         * DataFormats.cs: Implemented
14608         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
14609           XplatUIX11.cs: Added Clipboard APIs
14610         * XplatUIWin32.cs: Implemented Clipboard APIs
14611         * FolderBrowserDialog.cs: Added missing event, attributes
14612
14613 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
14614
14615         * CheckBox.cs: call base method to allow to fire OnClick event
14616
14617 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
14618
14619         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
14620
14621 2005-05-06  Peter Bartok  <pbartok@novell.com>
14622
14623         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
14624         * Screen.cs: Implemented
14625         * HelpNavigator.cs: Added
14626         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
14627           property
14628         * HelpProvider.cs: Implemented all we can do until we have a CHM
14629           help library (which means that "What's This" does work now)
14630
14631 2005-05-06  Jackson Harper  <jackson@ximian.com>
14632
14633         * XplatUIX11.cs: Fix waking up the main loop.
14634                 
14635 2005-05-05  Peter Bartok  <pbartok@novell.com>
14636
14637         * XplatUI.cs: Updated revision
14638         * Form.cs: Removed enless loop
14639         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
14640         * Label.cs (OnPaint): Added call to base.OnPaint()
14641         * ToolTip.cs: Made ToolTipWindow reusable for other controls
14642         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
14643         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
14644         * AxHost.cs: Added
14645         * ButtonBase.cs: Moved base.OnPaint() call to end of method
14646         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
14647           to ToolTip.ToolTipWindow for drawing and size methods; this allows
14648           reuse of ToolTipWindow by other controls
14649         * SizeGrip.cs: Moved base.OnPaint() call to end of method
14650         * XplatUIX11.cs: Now clipping drawing area (experimental)
14651         * PictureBox.cs: Moved base.OnPaint() call to end of method
14652         * Theme.cs: Fixed ToolTip abstracts to match new format
14653         * ErrorProvider.cs: Implemented
14654
14655 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
14656
14657         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
14658         * LinkLabel.cs:
14659                 - Adds cursors
14660                 - Handles focus
14661                 - Implements LinkBehavior
14662                 - Fixes many issues
14663
14664 2005-05-03  Jackson Harper  <jackson@ximian.com>
14665
14666         * ListView.cs: Calculate the scrollbar positioning on resize and
14667         paint, so they get put in the correct place.
14668
14669 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14670
14671         * ColorDialogs.cs: The small color panels are now handled by
14672           SmallColorControl. This fixes drawing of the focus rectangle
14673           and adds a 3D border.
14674
14675 2005-05-03  Peter Bartok  <pbartok@novell.com>
14676
14677         * Control.cs: Modified version of Jonathan Chamber's fix for
14678           double-buffering
14679
14680 2005-05-03  Jackson Harper  <jackson@ximian.com>
14681
14682         * ListView.cs: Remove redraw variable. Control now handles whether
14683         or not a redraw needs to be done, and will only raise the paint
14684         event if redrawing is needed.
14685
14686 2005-05-03  Jackson Harper  <jackson@ximian.com>
14687
14688         * Splitter.cs: No decorations for the splitter form. Cache the
14689         hatch brush.
14690
14691 2005-05-03  Jackson Harper  <jackson@ximian.com>
14692
14693         * TreeView.cs: Use dashed lines to connect nodes. Use the
14694         ControlPaint method for drawing the focus rect instead of doing
14695         that in treeview.
14696
14697 2005-05-02  Peter Bartok  <pbartok@novell.com>
14698
14699         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
14700
14701 2005-04-29  Jackson Harper  <jackson@ximian.com>
14702
14703         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
14704         entire image buffer. Just clear the clipping rectangle.
14705
14706 2005-04-29  Jackson Harper  <jackson@ximian.com>
14707
14708         * ThemeWin32Classic.cs: Don't draw list view items that are
14709         outside the clipping rectangle.
14710
14711 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
14712
14713         * ListBox.cs: added horizontal item scroll
14714
14715 2005-04-29  Jackson Harper  <jackson@ximian.com>
14716
14717         * ThemeWin32Classic.cs: Remove some old debug code that was
14718         causing flicker with the new double buffering code.
14719
14720 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
14721
14722         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
14723         behave like combobox and comboboxlist (still not sure if this is
14724         correct though).
14725
14726 2005-04-28  Jackson Harper  <jackson@ximian.com>
14727
14728         * ThemeWin32Classic.cs: Don't fill the middle of progress
14729         bars. This fills areas outside of the clip bounds that don't need
14730         to be filled.
14731
14732 2005-04-28  Jackson Harper  <jackson@ximian.com>
14733
14734         * Control.cs: Don't expose functionality to touch the image buffers.
14735         * ProgressBar.cs:
14736         * ListView.cs: We do not need to (and no longer can) manipulate
14737         the image buffers directly. All of this is handled by Control.
14738
14739 2005-04-28  Peter Bartok  <pbartok@novell.com>
14740
14741         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
14742           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
14743           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
14744
14745 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14746
14747         * Combobox:
14748                 - Adjust control's height for non-simple comboboxes (bug fix)
14749                 - Remove dead code
14750         * MenuAPI.cs: remove unused var
14751         * ScrollBar.cs: remove unsed var
14752                  
14753         * ListBox.cs: unselect items when clearing
14754
14755 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14756
14757         * ListControl.cs: honors OnPositionChanged and default Selected Item
14758         * ListBox.cs: unselect items when clearing
14759
14760 2005-04-27  Jackson Harper  <jackson@ximian.com>
14761
14762         * X11Keyboard.cs: Initialize a default keyboard and give a warning
14763         if a "correct" keyboard is not found. This will make us not crash,
14764         but might give some users bad keyboard layouts...seems to be the
14765         same thing rewind does.
14766
14767 2005-04-27  Jackson Harper  <jackson@ximian.com>
14768
14769         * BindingManagerBase.cs: Attach the current/position changed
14770         handlers to their respective events.
14771
14772 2005-04-27  Jackson Harper  <jackson@ximian.com>
14773
14774         * Control.cs: Make sure that the first WM_PAINT does a full draw,
14775         not just a blit.
14776         * ThemeWin32Classic.cs: Don't fill the background for picture
14777         boxes. This could overright user drawing.
14778         * ComboBox.cs: Just fill the clipping rect not the entire client
14779         rect when drawing the background. This prevents pieces of the
14780         image buffer from getting overwritten and is theoretically faster.
14781
14782 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
14783
14784         * ComboBox.cs: Databinding support fixes, fire missing events
14785         * ListControl.cs: implement missing methods and properties, fixes
14786         * ThemeWin32Classic.cs: Databiding support on Drawing
14787         * CheckedListBox.cs: Databinding support fixes, fire missing events
14788         * ListBox.cs: Databinding support fixes, fire missing events
14789         
14790 2005-04-25  Peter Bartok  <pbartok@novell.com>
14791
14792         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
14793
14794 2005-04-25  Jackson Harper  <jackson@ximian.com>
14795
14796         * TreeView.cs: Use the horizontal scrollbars height not width when
14797         determining how much of the client area is available.
14798
14799 2005-04-25  Jackson Harper  <jackson@ximian.com>
14800
14801         * Control.cs: Double buffering is handled differently now. As per
14802         the spec, the extra buffer is created in the WM_PAINT message and
14803         passed down to the control's drawing code.
14804         * GroupBox.cs:
14805         * Label.cs:
14806         * CheckBox.cs:
14807         * ProgressBar.cs:
14808         * RadioButton.cs:
14809         * ColorDialog.cs:
14810         * ComboBox.cs:
14811         * PropertyGridView.cs:
14812         * UpDownBase.cs:
14813         * MessageBox.cs:
14814         * MenuAPI.cs:
14815         * ListView.cs:
14816         * ButtonBase.cs:
14817         * SizeGrip.cs:
14818         * ScrollBar.cs:
14819         * ListBox.cs:
14820         * TrackBar.cs:
14821         * ToolBar.cs:
14822         * PictureBox.cs:
14823         * DateTimePicker.cs:
14824         * StatusBar.cs:
14825         * TreeView.cs: Update to new double buffering system.
14826         * MonthCalendar.cs: Uncomment block, as Capture is now
14827         working. Update to new double buffering
14828         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
14829         * PaintEventArgs.cs: New internal method allows us to set the
14830         graphics object. This is used for double buffering.
14831         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
14832         rectangle. The internal paint_area var has been removed from
14833         StatusBar. The clipping rect should be used instead.
14834         * Theme.cs: Give the PictureBox drawing method a clipping rect.
14835         * TabPage.cs: The RefreshTabs method was removed, so just call the
14836         tab controls Refresh method now.
14837         * TabControl.cs: Update to new double buffering. Make sure the
14838         handle is created before sizing the tab pages, otherwise we will
14839         get stuck in a loop.
14840
14841 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
14842
14843         * LinkLabel.cs: Fix typo, bug #74719; patch
14844           from Borja Sanchez Zamorano
14845
14846 2005-04-22  Jackson Harper  <jackson@ximian.com>
14847
14848         * TreeNode.cs: Implement Handle stuff.
14849         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
14850
14851 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
14852
14853         * DataGridTextBoxColumn.cs: call base constructors, fixes
14854         * GridColumnStylesCollection.cs: missing events, methods, and functionality
14855         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
14856         * DataGridTableStyle.cs: implements create default column styles
14857         * DataGridBoolColumn.cs: which types can handle
14858         * DataGrid.cs: missing methods, fixes, new functionality
14859         * DataGridColumnStyle.cs: fixes
14860
14861 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
14862         * FolderBrowserDialog.cs:
14863         - Use a thread to fill the TreeView
14864         - Adjusted some sizes
14865
14866 2005-04-19  Peter Bartok  <pbartok@novell.com>
14867
14868         * LinkLabel.cs: (Re-)create the pieces when setting the Text
14869           property. Fixes #74360.
14870
14871 2005-04-19  Jackson Harper  <jackson@ximian.com>
14872
14873         * XEventQueue.cs: Lock when getting the lockqueue size.
14874         * PictureBox.cs: Call base OnPaint
14875         
14876 2005-04-19  Peter Bartok  <pbartok@novell.com>
14877
14878         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
14879           messages were no longer being processed (this broke BeginInvoke)
14880
14881           
14882 2005-04-18  Jackson Harper  <jackson@ximian.com>
14883
14884         * TreeView.cs: buglet that caused node images to get drawn
14885         regardless of whether or not they were in the clipping rectangle.
14886
14887 2005-04-18  Jackson Harper  <jackson@ximian.com>
14888
14889         * CurrencyManager.cs: There are four rules for GetItemProperties:
14890         - If the type is an array use the element type of the array
14891         - If the type is a typed list, use the type
14892         - If the list contains an Item property that is not an object, use
14893         that property
14894         - use the first element of the list if there are any elements in
14895         the list.
14896         
14897 2005-04-17  Jackson Harper  <jackson@ximian.oom>
14898
14899         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
14900         click. This handles offsets for scrolling properly and reduces
14901         memory. Also fixed GetNode to not offset now that TopNode works
14902         properly.
14903         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
14904         
14905 2005-04-17  Jackson Harper  <jackson@ximian.com>
14906
14907         * CursorConverter.cs: Initial implementation.
14908
14909 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
14910
14911         * ListControl.cs: work towards complex data binding support on ListControl
14912         * CurrencyManager.cs: work towards complex data binding support on ListControl
14913         * ListBox.cs: work towards complex data binding support on ListControl
14914
14915
14916 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
14917
14918         * GridTableStylesCollection.cs: fixes name and constructor
14919         * DataGridTableStyle.cs: fixes
14920         * DataGridBoolColumn.cs: fixes names and constructors
14921         * DataGrid.cs: define methods and properties. Some init implementations
14922         * DataGridCell.cs: define methods and properties. Some init implementations
14923         * GridTablesFactory.cs: Define methods and properties
14924
14925 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
14926
14927         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
14928         graphics port changes.  We still want the coordinates in global screen
14929         coordinates.
14930
14931 2005-04-14  Jackson Harper  <jackson@ximian.com>
14932
14933         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
14934         check plus minus or checkbox clicks unless those features are enabled.
14935
14936 2005-04-14  Jackson Harper  <jackson@ximian.com>
14937
14938         * TreeView.cs: Add methods for setting the top and bottom visible
14939         nodes. TreeNode::EnsureVisible uses these methods.
14940         * TreeNode.cs: Implement EnsureVisible
14941
14942 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
14943
14944         * Form.cs: Pospone menu assignation if the window has not been created yet
14945         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
14946         size and position
14947
14948 2005-04-12  Jackson Harper  <jackson@ximian.com>
14949
14950         * TreeView.cs: Set the TopNode properly when scrolling
14951         occurs. This has the added benifit of reducing the amount of
14952         walking that needs to be done when drawing. Also removed an old
14953         misleading TODO.
14954         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
14955         
14956 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
14957
14958         * Timer.cs: fixes interval setting when the timer is already enabled
14959         
14960 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
14961
14962         * FolderBrowserDialog.cs: First approach
14963
14964 2005-04-09  Peter Bartok  <pbartok@novell.com>
14965
14966         * FolderBrowserDialog: Added
14967
14968 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
14969
14970         * LinkLabel.cs: move drawing code into the theme
14971         * ThemeWin32Classic.cs: drawing code and painting background bugfix
14972         * Theme.cs: define DrawLinkLabel method
14973
14974 2005-04-05  Jackson Harper  <jackson@ximian.com>
14975
14976         * BindingContext.cs: Use weak references so these bad actors don't
14977         stay alive longer then they need to.
14978
14979 2005-04-05  Jackson Harper  <jackson@ximian.com>
14980
14981         * ListControl.cs: Basic implementation of complex databinding.
14982         * ComboBox.cs:
14983         * ListBox.cs: Add calls to ListControl databinding methods.
14984
14985 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
14986
14987         * FileDialog.cs:
14988           - Don't change PopupButtonState to Normal when the
14989             PopupButton gets pressed several times.
14990           - Renamed ButtonPanel to PopupButtonPanel
14991
14992 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
14993
14994         * ColorDialog.cs: Use cached objects instead of creating them
14995         * LinkLabel.cs: Use cached objects instead of creating them
14996         * Splitter.cs: Use cached objects instead of creating them
14997         * FontDialog.cs: Use cached objects instead of creating them
14998         * PropertyGridView.cs: Use cached objects instead of creating them
14999         * MessageBox.cs: Use cached objects instead of creating them
15000         * FileDialog.cs: Use cached objects instead of creating them
15001         * ThemeWin32Classic.cs: Use cached objects instead of creating them
15002         * TreeView.cs: Use cached objects instead of creating them
15003         
15004 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
15005
15006         * Control.cs: use Equals to compare the font since no == op
15007         * ScrollBar.cs: use Equals to compare the font since no == op
15008
15009 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
15010
15011         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
15012
15013 2005-04-01  Jackson Harper  <jackson@ximian.com>
15014
15015         * Binding.cs: Implement IsBinding.
15016         * BindingManagerBase.cs:
15017         * PropertyManager.cs:
15018         * CurrencyManager.cs: Add IsSuspended property.
15019
15020 2005-04-01  Jackson Harper  <jackson@ximian.com>
15021
15022         * Binding.cs: Had some IsAssignableFrom calls backwards.
15023
15024 2005-04-01  Jackson Harper  <jackson@ximian.com>
15025
15026         * Binding.cs: Handle null data members when pulling data.
15027         * PropertyManager.cs: Handle the data member being a property that
15028         does not exist.
15029
15030 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15031
15032         * DataGridTextBoxColumn.cs: fixes signature
15033         * DataGrid.cs: calls right constructor
15034
15035 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15036
15037         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
15038         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
15039         * GridTableStylesCollection.cs: implements GridTableStylesCollection
15040         * DataGridTableStyle.cs: implements DataGridTableStyle
15041         * DataGridBoolColumn.cs: implements DataGridBoolColumn
15042         * DataGridTextBox.cs: implements DataGridTextBox
15043         * DataGridColumnStyle.cs: implements DataGridColumnStyle
15044
15045 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
15046
15047         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
15048
15049 2005-03-29  Peter Bartok  <pbartok@novell.com>
15050
15051         * Application.cs:
15052           - Properly implemented CompanyName property
15053           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
15054             returns a path that includes CompanyName, ProductName and
15055             Version (fixes bug #70330)
15056
15057 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
15058
15059         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
15060           fixes bug #72588.
15061
15062 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15063
15064         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
15065         
15066           - Added ReadOnly CheckBox
15067           - Further refactoring: moved some code from Open-/SaveFileDialog
15068             to FileDialog
15069
15070 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15071
15072         * OpenFileDialog.cs: Fixed CheckFileExists
15073         * FileDialog.cs:
15074           Moved FileView and DirComboBox outside FileDialog class.
15075           They can now be used outside FileDialog
15076
15077 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15078
15079         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
15080         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
15081
15082 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15083
15084         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15085           - Added missing CreatePrompt property in SaveDialog
15086           - Overall SaveDialog handling should be better now
15087           - Added non standard ShowHiddenFiles property
15088           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
15089           - Added InitialDirectory and RestoreDirectory support
15090
15091 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
15092
15093         * FileDialog.cs: Made dirComboBox usable
15094
15095 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
15096
15097         * FileDialog.cs: Added Filter support (case sensitiv)
15098
15099 2005-03-24  Jackson Harper  <jackson@ximian.com>
15100
15101         * TabControl.cs: Need a couple more pixels for the lines.
15102
15103 2005-03-23  Jackson Harper  <jackson@ximian.com>
15104
15105         * TabControl.cs: Give the tab page focus when it is selected.
15106
15107 2005-03-23  Jackson Harper  <jackson@ximian.com>
15108
15109         * TabControl.cs: Account for the drawing of tabs borders when
15110         invalidating. If the slider was clicked dont do click detection on
15111         the tabs.
15112
15113 2005-03-23  Jackson Harper  <jackson@ximian.com>
15114
15115         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
15116
15117 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
15118
15119         * CategoryGridEntry.cs: Added
15120         * GridItem.cs: Added helper properties
15121         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
15122         * GridEntry.cs: Updated code for collection
15123         * PropertyGrid.cs: Cleaned up some formatting
15124         * PropertyGridView.cs: Added drop down functionality for enums.
15125         * GridItemCollection.cs: Added enumerator logic
15126         * PropertyGridEntry.cs: Added
15127
15128 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15129
15130         * FileDialog.cs:
15131           - Removed unnecessary commented code
15132           - Fixed handling for entering the filename manually in the combobox
15133
15134 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15135
15136         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
15137
15138 2005-03-18  Peter Bartok  <pbartok@novell.com>
15139
15140         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
15141           them being touching the border
15142
15143 2005-03-18  Peter Bartok  <pbartok@novell.com>
15144
15145         * TextControl.cs: Quick hack to center text better
15146
15147 2005-03-18  Peter Bartok  <pbartok@novell.com>
15148
15149         * ControlPaint.cs:
15150           - Don't throw NotImplemented exceptions, just print a notice once
15151             instead (requested by Miguel). This makes running existing SWF
15152             apps a bit easier
15153         * Control.cs:
15154           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
15155           - Added context menu trigger on right click
15156         * Panel.cs: Trigger invalidate on resize
15157         * StatusBar.cs:
15158           - Removed old double-buffer drawing
15159           - Added ResizeRedraw style to force proper update of statusbar
15160         * ListView.cs:
15161           - Removed debug output
15162         * ThemeWin32Classic.cs:
15163           - Fixed drawing of status bar, now draws Text property if there
15164             are no defined panels
15165
15166 2005-03-18  Jackson Harper  <jackson@ximian.com>
15167
15168         * ImageList.cs: When the image stream is set pull all the images
15169         from it.
15170         * ImageListStreamer.cs: Implement reading image list streams.
15171
15172 2005-03-18  Peter Bartok  <pbartok@novell.com>
15173
15174         * ThemeWin32Classic.cs (DrawPictureBox):
15175           - Fixed calculations for centered drawing
15176           - Fixed drawing for normal mode, not scaling the image on normal
15177
15178 2005-03-18  Peter Bartok  <pbartok@novell.com>
15179
15180         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
15181           textbox
15182         * FileDialog.cs:
15183           - Made Open/Save button the accept button for FileDialog
15184           - Tied the cancel button to the IButtonControl cancel button
15185           - Save/Open now properly builds the pathname
15186           - Now handles user-entered text
15187           - Preventing crash on right-click if no item is selected
15188           - Fixed Text property, now uses contents of textbox
15189           - Fixed SelectedText property, now just returns the text part that
15190             is selected in the text box
15191
15192 2005-03-18  Jackson Harper  <jackson@ximian.com>
15193
15194         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
15195         rect, make sure to de-adjust the interior rect after drawing the
15196         tab text.
15197
15198 2005-03-18  Peter Bartok  <pbartok@novell.com>
15199
15200         * MenuAPI.cs: Remove menu *before* executing selected action to
15201           prevent the menu from 'hanging around'
15202           
15203 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
15204
15205         * XplatUIOSX.cs: Implemented WorkingArea property
15206
15207 2005-03-17  Peter Bartok  <pbartok@novell.com>
15208
15209         * XplatUIX11.cs: Fixed menu coord calculations
15210         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
15211           for calculating offsets
15212
15213 2005-03-17  Peter Bartok  <pbartok@novell.com>
15214
15215         * Hwnd.cs: Do not consider menu presence for default client
15216           rectangle location/size
15217         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
15218           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
15219           translation functions
15220         * FileDialog.cs: Fixed (what I presume is a) typo
15221
15222 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
15223
15224         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
15225           X access (avoids X-Async errors)
15226
15227 2005-03-16  Jackson Harper  <jackson@ximian.com>
15228
15229         * TabControl.cs: Raise the SelectedIndexChanged event.
15230
15231 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
15232
15233         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15234           - Removed vertical ToolBar and replaced it with a custom panel
15235             (desktop and home button already work)
15236           - Added Help button (some controls get resized or relocated then)
15237           - Draw correct text depending on Open or Save.
15238           - Fixed some typos...
15239
15240 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
15241
15242         * ScrollBar.cs:
15243           - Only change Maximum and Minimum when need it (bug fix)
15244
15245 2005-03-15  Peter Bartok  <pbartok@novell.com>
15246
15247         * Form.cs: Use Handle for icon, to trigger creation if
15248           the window does not yet exist
15249         * Control.cs:
15250           - CanSelect: Slight performance improvement
15251           - Focus(): Preventing possible recursion
15252           - Invalidate(): Removed ControlStyle based clear flag setting
15253           - WM_PAINT: fixed logic for calling OnPaintBackground
15254           - WM_ERASEBKGND: Fixed logic, added call to new driver method
15255             EraseWindowBackground if the control doesn't paint background
15256         * XplatUIWin32.cs:
15257           - Moved EraseWindowBackground() method to internal methods
15258           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
15259             is sent via SendMessage on BeginPaint call on Win32
15260         * XplatUIX11.cs:
15261           - Added EraseWindowBackground() method
15262           - No longer sends WM_ERASEBKGND on .Expose, but on call to
15263             PaintEventStart, which more closely matches Win32 behaviour
15264           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
15265           - Fixed SetFocus() to properly deal with client and whole windows
15266         * Hwnd.cs: Added ErasePending property
15267         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
15268         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
15269
15270 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
15271
15272         * XplatUIOSX.cs:
15273           - Fix hard loop when timers exist.
15274           - Fix bugs with middle and right click for 3 button mice.
15275
15276 2005-03-11  Peter Bartok  <pbartok@novell.com>
15277
15278         * XplatUIX11.cs:
15279           - get_WorkingArea: Need to call X directly, GetWindowPos only
15280             returns cached data now
15281           - Added sanity check to GetWindowPos hwnd usage
15282
15283 2005-03-11  Jackson Harper  <jackson@ximian.com>
15284
15285         * BindingManagerBase.cs: This method isn't used anymore as
15286         PullData now updates the data in the control.
15287
15288 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
15289
15290         * Form.cs: fixes menu drawing on X11
15291         * MenuAPI.cs:  fixes menu drawing on X11
15292
15293 2005-03-11  Peter Bartok  <pbartok@novell.com>
15294
15295         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
15296           from Jonathan Gilbert; should fix bug #73606
15297         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
15298           in Screen coordinates. Thanks, Jordi.
15299         * Form.cs: Added missing attribute
15300
15301 2005-03-11  Peter Bartok  <pbartok@novell.com>
15302
15303         * Form.cs:
15304           - Rudimentary Mdi support
15305           - Removed outdated FormParent code
15306           - Implemented lots of missing properties and methods, still missing
15307             transparency support
15308           - Added missing attributes
15309           - Implemented support for MaximumBounds
15310           - Added firing of various events
15311         * XplatUI.cs: Added SetIcon() method
15312         * XplatUIDriver.cs: Added SetIcon() abstract
15313         * XplatUIOSX.cs: Stubbed out SetIcon() method
15314         * XplatUIX11.cs:
15315           - Implemented SetIcon() support
15316           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
15317           - Switched to unix line endings
15318         * XplatUIWin32.cs:
15319           - Made POINT internal so for can access it as part of MINMAX
15320           - Implemented SetIcon() support
15321           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
15322             native Mdi support again, might have to go managed)
15323         * Control.cs: Now fires the StyleChanged event
15324         * MdiClient.cs: Added; still mostly empty
15325
15326 2005-03-10  Peter Bartok  <pbartok@novell.com>
15327
15328         * SaveFileDialog.cs: Added emtpy file
15329
15330 2005-03-08  Peter Bartok  <pbartok@novell.com>
15331
15332         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
15333           in turn triggers OnCreateContro) when creating a handle for the
15334           first time.
15335         * TextControl.cs: Fixed endless loop in certain cases when
15336           replacing the current selection
15337
15338 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
15339
15340         * ScrollBar.cs:
15341           - Honors NewValue changes in Scroll events allowing apps to change it
15342           - Adds First and Last Scroll events
15343           - Fixes Thumb events
15344
15345 2005-03-07  Peter Bartok  <pbartok@novell.com>
15346
15347         * Hwnd.cs: Added DefaultClientRectangle property
15348         * XplatUI.cs: Now using the X11 driver Where() method, which provides
15349           more detailed debug information
15350         * XplatUIX11.cs:
15351           - Fixed size-change feedback loop, where we would pull an old size
15352             off the queue and mistakenly change our window's size to an
15353             earlier value
15354           - Now compressing ConfigureNotify events, to reduce looping and
15355             redraw issues
15356         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
15357           is called
15358
15359 2005-03-07  Jackson Harper  <jackson@ximian.com>
15360
15361         * Binding.cs: Push data pushes from data -> property. Check if the
15362         property is readonly when attempting to set it.
15363
15364 2005-03-07  Jackson Harper  <jackson@ximian.com>
15365
15366         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
15367         instead of IsSubclassOf. Pulling data now sets the value on the
15368         control.
15369         * PropertyManager.cs:
15370         * CurrencyManager.cs: Just need to pull data when updating now,
15371         because PullData will set the value on the control.
15372
15373 2005-03-04  Jackson Harper  <jackson@ximian.com>
15374
15375         * Binding.cs: Implement data type parsing and converting on pulled
15376         data. TODO: Are there more ways the data can be converted?
15377
15378 2005-03-04  Jackson Harper  <jackson@ximian.com>
15379
15380         * Binding.cs: Support <Property>IsNull checks. Also bind to the
15381         controls Validating method so we can repull the data when the
15382         control loses focus.
15383
15384 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
15385
15386         * ColumnHeader.cs:
15387           - Fixes null string format
15388           
15389         * ListView.cs:
15390           - Adds enum type checks
15391           - Fixes redrawing and recalc need after changing some properties
15392           - Fixes on focus_item set after the event
15393           - Fixes adding columns after the control has been created
15394           
15395         * ThemeWin32Classic.cs:
15396           - Fixes CheckBox focus rectangle
15397           - Fixes ColumnHeader drawing
15398
15399
15400 2005-03-03  Jackson Harper  <jackson@ximian.com>
15401
15402         * Binding.cs: Bind to <Property>Changed events so we can detect
15403         when properties are changed and update the data.
15404
15405 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
15406
15407         * ImageList.cs:
15408           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
15409           - Fixes ImageList constructor with ImageList container
15410           - Fixes image scaling (wrong parameters at DrawImage)
15411
15412 2005-02-02  Jackson Harper  <jackson@ximian.com>
15413
15414         * Binding.cs: Make property searches case-insensitive. Eliminate
15415         some duplicated code.
15416
15417 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
15418
15419         * ComboBox.cs:
15420                 - Handle focus event
15421                 - Fix scrollbar events
15422                 - Discard highlighted item if remove it
15423                 - Fixes SelectedItem with strings
15424
15425 2005-03-01  Peter Bartok  <pbartok@novell.com>
15426
15427         * Control.cs:
15428           - Fixed Visible property, now follows (once again) parent chain
15429             to return false if any control in the chain is visible=false
15430           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
15431           - Fixed several places where is_visible instead of Visible was used
15432           - Implemented FIXME related to focus selection when setting focused
15433             control to be invisible
15434
15435         * XplatUIWin32.cs: Now using proper method to find out if window is
15436           visible. Thanks to Jordi for pointing it out
15437
15438 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
15439
15440         * ComboBox.cs: show/hide scrollbar instead of creating it
15441
15442 2005-02-27  Jackson Harper  <jackson@ximian.com>
15443
15444         * CurrencyManager.cs: Add PositionChanged stuff.
15445
15446 2005-02-27  Peter Bartok  <pbartok@novell.com>
15447
15448         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
15449         * XplatUIOSX.cs: Added GetMenuOrigin() stub
15450         * XplatUIWin32.cs: Implemented GetMenuOrigin()
15451         * XplatUIX11.cs:
15452           - Implemented GetMenuDC()
15453           - Implemented GetMenuOrigin()
15454           - Implemented ReleaseMenuDC()
15455           - Implemented generation of WM_NCPAINT message
15456           - Implemented generation and handling of WM_NCCALCSIZE message
15457         * Form.cs: Added debug helper message for Jordi's menu work
15458         * Hwnd.cs:
15459           - Modified ClientRect property; added setter, fixed getter to handle
15460             setting of ClientRect
15461           - Added MenuOrigin property
15462
15463 2005-02-26  Peter Bartok  <pbartok@novell.com>
15464
15465         * XplatUIX11.cs:
15466           - Destroys the caret if a window that's being destroyed contains it
15467           - Ignores expose events coming from the X11 queue for windows that
15468             already are destroyed
15469           - Now uses the proper variable for handling DestroyNotify, before we
15470             marked the wrong window as destroyed
15471           - Improved/added some debug output
15472
15473 2005-02-26  Peter Bartok  <pbartok@novell.com>
15474
15475         * X11Keyboard.cs: Fixes to work on 64bit systems
15476
15477 2005-02-26  Peter Bartok  <pbartok@novell.com>
15478
15479         * Control.cs:
15480           - Now calling OnHandleDestroyed from DestroyHandle()
15481             instead of Dispose()
15482           - Removed bogus call to controls.Remove() from DestroyHandle()
15483
15484 2005-02-26  Peter Bartok  <pbartok@novell.com>
15485
15486         * Control.cs: Properly destroy child windows when our handle is
15487           destroyed
15488
15489 2005-02-25  Peter Bartok  <pbartok@novell.com>
15490
15491         * XplatUI.cs:
15492           - Added 'DriverDebug' define to allow tracing XplatUI API calls
15493           - Alphabetized Static Methods and Subclasses
15494
15495         * XplatUIX11.cs:
15496           - Added XException class to allow custom handling of X11 exceptions
15497           - Created custom X11 error handler, tied into XException class
15498           - Added support for MONO_XEXCEPTIONS env var to allow the user
15499             to either throw an exception on X errors or continue running
15500             after displaying the error
15501           - Added handling of DestroyNotify message
15502           - Added handler for CreateNotify message (still disabled)
15503           - Improved (tried to at least) Where method to provide file and lineno
15504         * X11Structs.cs:
15505           - Added XErrorHandler delegate
15506           - Added XRequest enumeration (to suppor translation of errors)
15507
15508 2005-02-25  Jackson Harper  <jackson@ximian.com>
15509
15510         * PropertyManager.cs: Implement editing features
15511         * CurrencyManager.cs:
15512         * Binding.cs: First attempt at UpdateIsBinding
15513         * BindingManagerBase.cs: Call UpdateIsBinding before
15514         pushing/pulling data.
15515
15516 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
15517
15518         * MenuAPI.cs: Respect disabled items
15519         * ThemeWin32Classic.cs
15520                 - Caches ImageAttributes creation for DrawImageDisabled
15521                 - Fixes vertical menu line drawing
15522                 - Draws disabled arrows in disable menu items
15523
15524 2005-02-24  Peter Bartok  <pbartok@novell.com>
15525
15526         * Hwnd.cs:
15527           - Added UserData property to allow associating arbitrary objects
15528             with the handle
15529           - Fixed leak; now removing Hwnd references from static windows array
15530         * XplatUIWin32.cs:
15531           - Fixed Graphics leak in PaintEventEnd
15532           - Removed usage of HandleData, switched over to Hwnd class
15533         * HandleData.cs: Removed, obsoleted by Hwnd.cs
15534
15535 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15536
15537         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
15538         * ScrollBar.cs: Fixes bug
15539         * TrackBar.cs: removes death code, clipping, mimize refreshes,
15540          keyboard navigation enhancements
15541
15542 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15543
15544         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
15545         * GroupBox.cs: Add control styles
15546         * Label.cs: Add control styles
15547         * UpDownBase.cs: Add control styles
15548         * ListBox.cs: Add control styles
15549         * XplatUIWin32.cs: Fixes wrong parameter order
15550
15551
15552 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
15553
15554         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
15555
15556 2005-02-23  Jackson Harper  <jackson@ximian.com>
15557
15558         * PropertyManager.cs: Implement property binding. This doesn't
15559         seem to work yet though as (I think) there are some bugs in
15560         System.ComponentModel.PropertyDescriptor.
15561         * BindingContext.cs: Use new PropertyManager constructor.
15562
15563 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
15564
15565         * ProgressBar.cs: use clip region in ProgressBar
15566         * ThemeWin32Classic.cs: use clip region in ProgressBar
15567
15568 2004-02-22  Jackson Harper  <jackson@ximian.com>
15569
15570         * BindingsCollection.cs: Remove some debug code.
15571
15572 2005-02-22  Jackson Harper  <jackson@ximian.com>
15573
15574         * BindingContext.cs:
15575         * ControlBindingsCollection.cs:
15576         * CurrencyManager.cs:
15577         * Binding.cs:
15578         * BindingManagerBase.cs: Initial implementation
15579         * BindingsCollection.cs: Add an internal contains method that the
15580         BindingManagerBase uses to ensure bindings aren't added twice to
15581         the collection.
15582         * PropertyManager.cs: Stubbed out.
15583         * Control.cs:
15584         * ContainerControl.cs: Hook up databinding
15585         
15586 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
15587
15588         * XplatUIOSX.cs:
15589           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
15590           Fixed Invalidate/Update chain.
15591           Fixed tons of other minor bugs (this is almost a complete rewrite).
15592
15593 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
15594
15595         * ComboBox.cs: do subcontrol creation when the control is created
15596
15597 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15598
15599         * Label.cs: fixes image drawing (image and imagelist)
15600         * ThemeWin32Classic.cs: cache brushes
15601         
15602 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15603
15604         * Form.cs: Move menu drawing code to Theme class
15605         * ComboBox.cs: Move ComboBox drawing code to Theme class
15606         * MenuItem.cs: Move menu drawing code to Theme class
15607         * MenuAPI.cs: Move menu drawing code to Theme class
15608         * ThemeWin32Classic.cs: New methods
15609         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
15610         * ListBox.cs: Move Listbox drawing code to Theme class
15611         * Theme.cs: New methods
15612
15613 2005-02-20  Peter Bartok  <pbartok@novell.com>
15614
15615         * Control.cs:
15616           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
15617             only process mnemonics on those)
15618           - Fixed event sequence for key handling; first calling
15619             ProcessKeyEventArgs now
15620         * TextBoxBase.cs:
15621           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
15622             for processing non-character keys
15623           - Fixed WM_CHAR to generate proper event sequence before processing
15624         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
15625           generation
15626
15627 2005-02-19  Peter Bartok  <pbartok@novell.com>
15628
15629         * UserControl.cs: Added TextChanged event; added attributes
15630         * SizeGrip.cs: Implemented resizing and optional display of grip
15631         * Form.cs: Fixed attribute
15632         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15633           Changed meaning of ScrollWindow bool argument; instead of the
15634           clear attribute (which will be true usually anyway), it gives the
15635           option of moving child controls as well.
15636         * XplatUIX11.cs:
15637           - Changed to match new ScrollWindow argument
15638           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
15639             now handles the implicit parent window a WM puts around us
15640         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
15641           to work)
15642         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
15643         * TreeView.cs: Adjusted to new ScrollWindow arguments
15644
15645 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15646
15647         * Form.cs: Menu integration with non-client area
15648         * MenuItem.cs: Menu integration with non-client area
15649         * MenuAPI.cs: Menu integration with non-client area
15650
15651 2005-02-18  Peter Bartok  <pbartok@novell.com>
15652
15653         * MethodInvoker.cs: Added
15654         * MdiLayout.cs: Added
15655         * SendKeys.cs: Started implementation
15656         * ErrorIconAlignment.cs: Added
15657
15658 2005-02-18  Peter Bartok  <pbartok@novell.com>
15659
15660         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
15661         * Form.cs: Added handling for Menu-related Non-client messages
15662
15663 2005-02-17  Peter Bartok  <pbartok@novell.com>
15664
15665         * UpDownBase.cs: Fixed typo, compilation errors
15666         * DomainUpDown.cs: Fixed attribute value
15667
15668 2005-02-16  Miguel de Icaza  <miguel@novell.com>
15669
15670         * UpDownBase.cs: Attach entry events.
15671         Propagate events.
15672         Add ForeColor property, Focused, InterceptArrowKeys (interception
15673         does not work yet).
15674
15675 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
15676
15677         * Form.cs:
15678                 - Redraw non client are on Setmenu
15679                 - Calc proper menu starting point
15680
15681 2005-02-17  Peter Bartok  <pbartok@novell.com>
15682
15683         * Application.cs: Fixed message_filter check
15684
15685 2005-02-17  Peter Bartok  <pbartok@novell.com>
15686
15687         * Application.cs: Now calls registered message filters
15688         * DockStyle.cs: Fixed attribute
15689         * Form.cs: Fixed attribute
15690         * Menu.cs: Fixed attribute
15691         * ToolTip.cs: Fixed attribute
15692         * TreeNode.cs: Added missing attributes and arranged in regions
15693         * PropertyGrid.cs: Fixed signatures
15694         * TreeNodeCollection.cs: Added attributes
15695         * Splitter.cs: Added missing attributes; arranged into regions
15696         * TabPage.cs: Added missing attributes; arranged into regions
15697         * TextBoxBase.cs: Added missing attributes
15698         * TextBox.cs: Added missing attributes
15699         * ArrangeDirection.cs: Added missing attributes
15700         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
15701         * ToolBarButton.cs: Fixed attributes
15702         * AnchorStyles.cs: Fixed attribute
15703         * TrackBar.cs: Fixed attributes
15704         * TabControl.cs: Added missing attributes and arranged into regions
15705         * ToolBar.cs: Fixed attribute
15706         * StatusBar.cs: Fixed signature, organized into regions and added
15707           attributes
15708         * StatusBarPanel.cs: Fixed attributes
15709         * ContentsResizedEventArgs.cs: Implemented
15710         * ContentsResizedEventHandler.cs: Implemented
15711         * DateBoldEventArgs.cs: Implemented
15712         * DateBoldEventHandler.cs: Implemented
15713         * UpDownEventArgs.cs: Implemented
15714         * UpDownEventHandler.cs: Implemented
15715         
15716 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
15717
15718         * Form.cs: first Menu NC refactoring
15719         * MenuAPI.cs: first Menu NC refactoring
15720         
15721 2005-02-16  Peter Bartok  <pbartok@novell.com>
15722
15723         * ImeMode.cs: Added missing attributes
15724         * Menu.cs: Fixed attribute
15725         * GroupBox.cs: Fixed attribute
15726         * Label.cs: Fixed attribute
15727         * ColorDialog.cs (RunDialog): Removed TODO attribute
15728         * ComboBox.cs: Fixed attributes
15729         * ListControl.cs: Added missing attributes
15730         * PropertyGrid.cs: Fixed attributes
15731         * Control.cs: Fixed attributes
15732         * ListViewItem.cs: Added TypeConverter attribute
15733         * NotifyIcon.cs: Fixed attributes
15734         * ListView.cs: Fixed attributes
15735         * ButtonBase.cs: Fixed attribute
15736         * ImageList.cs: Added missing attributes
15737         * ContainerControl.cs: Fixed signature
15738         * CheckedListBox.cs: Fixed attribute; added missing attributes
15739         * Panel.cs: Fixed attributes
15740         * PropertyTabChangedEventArgs.cs: Added missing attribute
15741         * PropertyValueChangedEventArgs.cs: Added missing attribute
15742         * Binding.cs: Fixed attribute
15743         * ListViewItemConverter: Implemented ListViewSubItemConverter class
15744         * ListBox.cs: Fixed attribute; added missing attributes;
15745         * ScrollableControl.cs: Added missing attributes
15746         * PictureBox.cs: Added missing attributes; implemented missing property
15747         * DateTimePicker.cs: Added missing attributes
15748         * Theme.cs (ToolWindowCaptionHeight): Fixed type
15749         * MonthCalendar.cs: Fixed attributes
15750         * StatusBarPanel.cs: Added missing attributes
15751         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
15752
15753 2005-02-16  Peter Bartok  <pbartok@novell.com>
15754
15755         * TextBoxBase.cs: The previous method to enforce height yet remember
15756           the requested high was less than ideal, this is an attempt to do
15757           it better.
15758         * Control.cs: Added comment about possible problem
15759         * Copyright: Updated format
15760         * GridItemType.cs: Fixed swapped values
15761
15762 2005-02-15  Jackson Harper  <jackson@ximian.com>
15763
15764         * BaseCollection.cs: Use property so we never access an
15765         uninitialized list. Also initialize the list in the property.
15766
15767 2005-02-15  Peter Bartok  <pbartok@novell.com>
15768
15769         * GroupBox.cs (ProcessMnemonic): Implemented
15770         * Label.cs (ProcessMnemonic): Implemented
15771         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
15772           hotkeys
15773
15774 2005-02-15  Peter Bartok  <pbartok@novell.com>
15775
15776         * RadioButton.cs (ProcessMnemonic): Implemented
15777         * CheckBox.cs (ProcessMnemonic): Implemented
15778         * Control.cs:
15779           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
15780             handling
15781           - Added internal method to allow calling ProcessMnemonic from other
15782             controls
15783         * ContainerControl.cs:
15784           - Started support for handling validation chain handling
15785           - Implemented ProcessMnemonic support
15786           - Added Select() call to Active, to make sure the active control
15787             receives focus
15788         * Form.cs: Setting toplevel flag for Forms (this was lost in the
15789           FormParent rewrite)
15790         * ThemeWin32Classic.cs:
15791           - DrawCheckBox(): Fixed stringformat to show hotkeys
15792           - DrawRadioButton(): Fixed stringformat to show hotkeys
15793         * CommonDialog.cs: Removed WndProc override, not needed
15794
15795 2005-02-14  Peter Bartok  <pbartok@novell.com>
15796
15797         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
15798           missed those in the rewrite
15799
15800 2005-02-14  Miguel de Icaza  <miguel@novell.com>
15801
15802         * NumericUpDown.cs (Increment, ToString): Add.
15803         (DecimalPlaces): implement.
15804         
15805         Add attributes.
15806         
15807         * UpDownBase.cs: Add the designer attributes.
15808
15809 2005-02-13  Peter Bartok  <pbartok@novell.com>
15810
15811         * Panel.cs: Removed border_style, now in Control
15812         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
15813           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
15814
15815 2005-02-13  Peter Bartok  <pbartok@novell.com>
15816
15817         * MouseButtons.cs: Added missing attributes
15818         * XplatUIStructs.cs: Added enumeration for title styles
15819         * LeftRightAlignment.cs: Added missing attributes
15820         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
15821           it compatible with Graphics.FromHwnd()
15822         * SelectedGridItemChangedEventArgs.cs: Fixed property type
15823         * Keys.cs: Added missing attributes
15824         * SelectionRange.cs: Added missing attributes
15825         * SelectionRangeConverter.cs: Added
15826         * XplatUI.cs:
15827           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
15828             ReleaseMenuDC methods
15829           - Renamed ReleaseWindow to UngrabWindow
15830           - Added proper startup notice to allow version identification
15831         * Form.cs:
15832           - Added missing attributes
15833           - Removed FormParent concept
15834         * Label.cs: Removed border_style field, now in Control
15835         * RadioButton.cs: Now properly selects RadioButton when focus is
15836           received
15837         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
15838         * Control.cs:
15839           - Added missing attributes
15840           - Added borderstyle handling
15841           - Removed FormParent concept support
15842           - Fixed calls to XplatUI to match changed APIs
15843           - Fixed bug that would case us to use disposed Graphics objects
15844           - Removed unneeded internal methods
15845           - PerformLayout(): Fixed to handle DockStyle.Fill properly
15846           - SelectNextControl(): Fixed to properly check common parents
15847         * TextBoxBase.cs: Removed border_style field (now in Control)
15848         * MessageBox.cs:
15849           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
15850             fixed calculations for form size
15851           - Added support for localized strings and icons
15852           - Improved form size calculations, added border
15853         * ListView.cs: Removed border_style field (now in Control)
15854         * X11Structs.cs: Moved several structs from X11 driver here
15855         * X11Keyboard.cs: Changed debug message
15856         * Application.cs: Removed FormParent concept support
15857         * CommonDialog.cs:
15858           - Resetting end_modal flag
15859           - Removed FormParent concept support
15860         * NativeWindow.cs: Removed FormParent concept support
15861         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
15862           Client area and Non-Client whole window to allow support for WM_NC
15863           messages
15864         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
15865           prevent using it until it supports Hwnd as per Geoff Norton's request
15866         * ToolBar.cs: Fixed drawing, was not doing proper drawing
15867         * PictureBox.cs: Removed border_style field, now in Control
15868         * XplatUIWin32.cs: Added new driver methods
15869
15870 2005-02-12  Peter Bartok  <pbartok@novell.com>
15871
15872         * OpacityConverter.cs: Implemented
15873         * Hwnd.cs: Internal class to support drivers that need to emulate
15874           client area/non-client area window behaviour
15875
15876 2005-02-11  Peter Bartok  <pbartok@novell.com>
15877
15878         * KeysConverter.cs: Implemented
15879
15880 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
15881
15882         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
15883         * LinkLabel: Added missing attributes
15884         * MainMenu.cs: fixes ToString
15885         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
15886         * ListBox.cs: fixes event position
15887         * TrackBar.cs: adds missing attributes and events
15888         
15889 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
15890
15891         * MenuItem.cs: Use SystemInformation and bug fixes
15892         * MenuAPI.cs: Use SystemInformation and bug fixes
15893
15894 2005-02-09  Jackson Harper  <jackson@ximian.com>
15895
15896         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
15897         their keystate otherwise things like VK_MENU get stuck "on".
15898
15899 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
15900
15901         * ListBox.cs: Fixes AddRange bug
15902         
15903 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
15904
15905         * ProgressBar.cs
15906                 - Add missing attributes
15907                 - Add missing method
15908                 
15909         * CheckedListBox.cs: Added missing attributes
15910                 - Add missing attributes
15911                 - Remove extra method
15912         
15913         * ComboBox.cs: Added missing attributes
15914         * VScrollBar.cs: Added missing attributes
15915         * ScrollBar.cs:  Added missing attributes
15916         * ListBox.cs: Fixes signature, add missing consts
15917         * LinkArea.cs:   Added missing attributes
15918         
15919
15920 2005-02-08  Peter Bartok  <pbartok@novell.com>
15921
15922         * Menu.cs: Added missing attributes
15923         * MainMenu.cs: Added missing attributes
15924         * GroupBox.cs: Added missing attributes
15925         * Label.cs: Added missing attributes
15926         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
15927         * ColorDialog.cs:
15928           - Added Instance and Options properties
15929           - Added missing attributes
15930         * Cursor.cs: Made Serializable
15931         * NotifyIcon: Added missing attributes
15932         * MenuItem.cs: Added missing attributes
15933         * TextBoxBase.cs: Implemented AppendText() and Select() methods
15934         * Panel.cs: Added Missing attributes
15935         * MonthCalendar.cs: Fixed CreateParams
15936
15937 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
15938         
15939         * LinkLabel.cs:
15940                 - Fixes signature
15941                 - Fixes issues with links
15942                 - Adds the class attributes
15943
15944 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
15945         
15946         * ComboBox.cs:
15947                 - Fixes button when no items available in dropdown
15948                 - Fixes repainting problems
15949                 - Adds the class attributes
15950                 
15951 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
15952
15953         * XplatUIOSX.cs: Detect the menu bar and title bar height from
15954         the current theme.  Cache these on startup.
15955
15956 2005-02-07  Jackson Harper  <jackson@ximian.com>
15957
15958         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
15959         the scrollbar buttons when they are depressed.
15960
15961 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
15962
15963         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
15964         Get the display size from the main displayid.  We currently dont
15965         support multiple display configurations.
15966
15967 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
15968
15969         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
15970
15971 2005-02-07  Miguel de Icaza  <miguel@novell.com>
15972
15973         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
15974
15975 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
15976
15977         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
15978
15979 2005-02-04  Jackson Harper  <jackson@ximian.com>
15980
15981         * ThemeWin32Classic.cs: Respect the clipping rect when
15982         drawing. Only fill the intersection of clips and rects so there
15983         isn't a lot of large fills.
15984         * ScrollBar.cs: Pass the correct clipping rect to the theme
15985         engine. Remove some debug code.
15986
15987 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
15988         
15989         * DateTimePicker.cs:
15990                 - Fixed crash on DateTime.Parse, use Constructor instead
15991
15992 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
15993         
15994         * MenuItem.cs:
15995         * MenuAPI.cs:
15996                 - Owner draw support (MeasureItem and DrawItem)
15997
15998 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
15999         
16000         *  Menu.cs:
16001                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
16002                 - Fixes MenuItems.Add range
16003         * MenuItem.cs:
16004                 - MergeMenu and Clone and CloneMenu functions
16005
16006 2005-02-03  Jackson Harper  <jackson@ximian.com>
16007
16008         * ScrollBar.cs: Make abstract
16009         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
16010         is abstract.
16011
16012 2005-02-03  Jackson Harper  <jackson@ximian.com>
16013
16014         * ScrollBar.cs: First part of my scrollbar fixups. This removes
16015         all the unneeded refreshes and uses invalidates with properly
16016         computed rects.
16017
16018 2005-02-03  Peter Bartok  <pbartok@novell.com>
16019
16020         * ComponentModel.cs: Added
16021         * IDataGridEditingService.cs: Added
16022         * Timer.cs: Added missing attributes
16023         * ToolTip.cs: Added missing attributes
16024
16025 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16026
16027         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
16028
16029 2005-02-03  Peter Bartok  <pbartok@novell.com>
16030
16031         * ListBox.cs: Added missing attributes
16032
16033 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
16034         
16035         * ListBox.cs:
16036                 - Fixes font height after font change
16037                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
16038                 
16039 2005-02-02  Peter Bartok  <pbartok@novell.com>
16040
16041         * HandleData.cs: Introduced static methods to allow class
16042           to be more self-contained and track it's own HandleData objects
16043         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
16044           HandleData to use new static methods
16045
16046 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
16047
16048         * Combobox.cs:
16049                 - Fixes default size and PreferredHeight
16050                 - Missing events
16051                 - ObjectCollection.Insert implementation
16052                 
16053         * ListControl.cs
16054                 - Fixes signature
16055         * ListBox.cs:
16056                 - Several fixes
16057                 - ObjectCollection.Insert implementation
16058                 - No selection after clean
16059                 - Small fixes
16060
16061 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16062
16063         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
16064
16065 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
16066
16067         * Combobox.cs:
16068                 - Caches ItemHeight calculation for OwnerDrawVariable
16069                 - Handles dropdown properly
16070                 - Fixes several minor bugs
16071
16072 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16073
16074         * ListBox.cs:
16075                 - Fixes 71946 and 71950
16076                 - Fixes changing Multicolumn on the fly
16077                 - Fixes keyboard navigation on Multicolumn listboxes
16078
16079 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16080         
16081         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
16082         crash reporter log.
16083
16084 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16085
16086         * XplatUIOSX.cs: Allow applications to actually exit.
16087
16088 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16089
16090         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
16091         their parent at creation time rather than lazily later.  Fixes a major
16092         regression we were experiencing.
16093
16094 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16095
16096         * ThemeWin32Classic.cs: more date time picker painting fixes
16097         * DateTimePicker.cs: more monthcalendar drop down fixes
16098         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
16099
16100 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16101
16102         * ScrollBar.cs:
16103                 - When moving the thumb going outside the control should stop the moving
16104                 - Adds the firing of missing events
16105                 - Fixes no button show if Size is not specified
16106                 - End / Home keys for keyboard navigation
16107
16108 2005-01-30  Peter Bartok  <pbartok@novell.com>
16109
16110         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
16111           sanity check to prevent theoretical loop
16112         * XplatUIWin32.cs (SetVisible): Removed debug output
16113         * XplatUIX11.cs (SystrayChange): Added sanity check
16114         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
16115         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
16116           behaviour, valid until the X11 client window rewrite is done
16117         * TextBox.cs (ctor): Setting proper default foreground and background
16118           colors
16119
16120 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
16121
16122         * Theme: Added DrawDateTimePicker to interface
16123         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
16124         * DateTimePicker.cs: Created (still needs keys and painting code)
16125         * DateTimePickerFormat.cs: added
16126         * MonthCalendar.cs: fixed CreateParams for popup window mode
16127           
16128 2005-01-29  Peter Bartok  <pbartok@novell.com>
16129
16130         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
16131           this should also the calculations for ligher/darker
16132         * Theme.cs: Fixed defaults for ScrollBar widths/heights
16133
16134 2005-01-29  Peter Bartok  <pbartok@novell.com>
16135
16136         * ArrangeDirection.cs: Added
16137         * ArrangeStartingPositon.cs: Added
16138         * SystemInformation.cs: Implemented
16139         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16140           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
16141           used by SystemInformation class
16142         * X11Strucs.cs: Added XSizeHints structure
16143         * MenuAPI.cs:
16144           - Fixed CreateParams to make sure the menu window is always visible
16145           - TrackPopupMenu: Added check to make sure we don't draw the
16146             menu offscreen
16147
16148 2005-01-29  Peter Bartok  <pbartok@novell.com>
16149
16150         * HandleData.cs: Added method for altering invalid area
16151         * TextBoxBase.cs: Implemented TextLength
16152
16153 2005-01-28  Peter Bartok  <pbartok@novell.com>
16154
16155         * XplatUIX11.cs: Improvement over last patch, not sending
16156           the WM_PAINT directly anymore, instead we scroll any pending
16157           exposed areas and let the system pick out the WM_PAINT later
16158
16159 2005-01-28  Peter Bartok  <pbartok@novell.com>
16160
16161         * SWF.csproj: Deleted, no longer used. Instead,
16162           Managed.Windows.Forms/SWF.csproj should be used
16163         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
16164           directly, to avoid a potential race condition with the next
16165           scroll
16166
16167 2005-01-28  Peter Bartok  <pbartok@novell.com>
16168
16169         * XplatUI.cs: Made class internal
16170
16171 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
16172
16173         * CheckedListBox.cs:
16174                 - Draw focus
16175                 - Fixed Drawing
16176                 - Missing methods and events
16177
16178 2005-01-27  Peter Bartok  <pbartok@novell.com>
16179
16180         * Application.cs (Run): Don't use form if we don't have one
16181
16182 2005-01-27  Peter Bartok  <pbartok@novell.com>
16183
16184         * TextBoxBase.cs (get_Lines): Fixed index off by one error
16185
16186 2005-01-27  Peter Bartok  <pbartok@novell.com>
16187
16188         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
16189         * GridItem.cs: Added; Patch by Jonathan S. Chambers
16190         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
16191         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
16192         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
16193         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
16194         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16195         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16196         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16197         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16198         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16199         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16200
16201 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16202
16203         * Combobox.cs:
16204                 - Draw focus on Simple Combobox
16205                 - Fixes drawing issues
16206                 - fixes 71834
16207
16208 2005-01-27  Peter Bartok  <pbartok@novell.com>
16209
16210         * Form.cs:
16211           - Place window in default location, instead of hardcoded 0/0
16212           - Send initial LocationChanged event
16213         * Control.cs:
16214           - UpdateBounds after creation to find out where the WM placed us
16215           - Make sure that if the ParentForm changes location the Form
16216             is notified
16217         * XplatUIX11.cs: XGetGeometry will not return the coords relative
16218             to the root, but to whatever the WM placed around us.
16219             Translate to root coordinates before returning toplevel
16220             coordinates
16221         * XplatUIWin32.cs: Removed debug output
16222         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
16223           flag to GetWindowPos, to allow translation of coordinates on X11
16224
16225 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16226
16227         * ListBox.cs: connect LostFocus Event
16228
16229 2005-01-27  Peter Bartok  <pbartok@novell.com>
16230
16231         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16232           XplatUIX11.cs: Extended the Systray API
16233         * Form.cs: Removed debug output
16234         * Application.cs: Fixed focus assignment, always need to call
16235           XplatUI.Activate() since Form.Activate() has rules that may
16236           prevent activation
16237         * NotifyIcon.cs: Should be complete now
16238         * ToolTip.cs: Worked around possible timer bug
16239
16240 2005-01-27  Jackson Harper  <jackson@ximian.com>
16241
16242         * TabControl.cs:
16243         - Only invalidate the effected tabs when the
16244         selected index changes. This reduces drawing and gets rid of some
16245         flicker.
16246         - Only refresh if the tabs need to be shifted, otherwise only
16247         invalidate the slider button.
16248         - On windows the tabs are not filled to right if the slider is
16249         visible.
16250         
16251 2005-01-27  Jackson Harper  <jackson@ximian.com>
16252
16253         * TabControl.cs: Only refresh on mouseup if we are showing the
16254         slider. Also only invalidate the button whose state has changed.
16255
16256 2005-01-26  Peter Bartok  <pbartok@novell.com>
16257
16258         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
16259         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
16260           and SystrayRemove() methods
16261         * XplatUIOSX.cs: Stubbed Systray methods
16262         * XplatUIX11.cs:
16263           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
16264             methods
16265           - Fixed broken XChangeProperty calls (marshalling messed up things)
16266         * X11Structs.cs: Added enums and structs required for Size hinting
16267         * NotifyIcon.cs: Added & implemented
16268
16269 2005-01-26  Jackson Harper  <jackson@ximian.com>
16270
16271         * TabControl.cs: Space vertically layed out tabs properly.
16272
16273 2005-01-26  Peter Bartok  <pbartok@novell.com>
16274
16275         * Form.cs (CreateClientParams): Always set the location to 0,0
16276           since we're a child window.
16277
16278         * Control.cs (SetVisibleCore): Always explicitly setting the location
16279           of a toplevel window, apparently X11 doesn't like to move windows
16280           while they're not mapped.
16281
16282 2005-01-26  Jackson Harper  <jackson@ximian.com>
16283
16284         * TabControl.cs: Implement FillToRight size mode with vertically
16285         rendered tabs.
16286
16287 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16288
16289         * ControlPaint.cs, ThemeWin32Classic.cs
16290                 - Fixes DrawFocusRectangle
16291
16292 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16293
16294         * MenuAPI.cs:
16295                 - MenuBar tracking only starts when item is first clicked
16296                 - Fixes menu hidding for multiple subitems
16297                 - Unselect item in MenuBar when item Executed
16298                 - Fixes bug 71495
16299
16300 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
16301
16302         * ListControl.cs:
16303                 - IsInputKey for ListBox
16304         * ListBox.cs:
16305                 - Focus item
16306                 - Shift and Control item selection
16307                 - Implement SelectionMode.MultiExtended
16308                 - Fixes RightToLeft
16309         * ComboBox.cs:
16310                 - IsInputKey implemented
16311                 - Do not generate OnTextChangedEdit on internal txt changes
16312                 
16313 2005-01-23  Peter Bartok  <pbartok@novell.com>
16314
16315         * AccessibleObject.cs: Partially implemented Select()
16316         * MonthCalendar.cs: Added missing attributes and events
16317         * Form.cs: Fixed CreateParams behaviour, now controls derived from
16318           form can properly override CreateParams.
16319         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16320           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
16321           Control performs Invalidate & Update
16322         * NativeWindow (CreateHandle): Added special handling for Form
16323           and Form.FormParent classes to allow overriding of From.CreateParams
16324         * Control.cs:
16325           - ControlNativeWindow: Renamed 'control' variable to more intuitive
16326             name 'owner'
16327           - ControlNativeWindow: Added Owner property
16328           - Removed usage of Refresh() on property changes, changed into
16329             Invalidate(), we need to wait until the queue is processed for
16330             updates, direct calls might cause problems if not all vars for
16331             Paint are initialized
16332           - Added call to UpdateStyles() when creating the window, to set any
16333             styles that CreateWindow might have ignored.
16334           - Added support for Form CreateParent overrides to UpdateStyles()
16335         * MessageBox.cs: Removed no longer needed FormParent override stuff,
16336           CreateParams are now properly overridable
16337         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
16338           CreateParams are now properly overridable
16339
16340 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
16341
16342         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
16343         OnTextBoxChanged.
16344
16345         Capture LostFocus and OnTextBoxChanged.  The later introduces a
16346         recursive invocation that I have not figured out yet.
16347
16348         Reset the timer when not using (it was accumulating).
16349
16350
16351         (OnTextBoxChanged): Set UserEdit to true here to track whether the
16352         user has made changes that require validation.
16353
16354         Reset changing to avoid loops.
16355
16356 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
16357
16358         * NumericUpDown.cs: Display value at startup.
16359
16360         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
16361         ValidateEditText.
16362
16363         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
16364         filled in.  Added some basic parsing of text.
16365
16366         Still missing the OnXXX method overrides, and figuring out the
16367         events that must be emitted.
16368
16369         * UpDownBase.cs: Handle UserEdit on the Text property.
16370         
16371 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
16372
16373         * ComboBox.cs:
16374           - Fixes IntegralHeight
16375           - ToString method
16376
16377 2005-01-21  Jackson Harper  <jackson@ximian.com>
16378
16379         * TabControl.cs: Set the SelectedIndex property when SelectedTab
16380         is set so that the page visibility is updated and the tabs are
16381         sized correctly.
16382
16383 2005-01-21  Jackson Harper  <jackson@ximian.com>
16384
16385         * TabControl.cs: Use cliping rectangle for blitting. Give the
16386         theme the clipping rect so we can do clipping while
16387         drawing. Remove some debug code.
16388
16389 2005-01-21  Jackson Harper  <jackson@ximian.com>
16390
16391         * TabPage.cs: Add a new method so tab pages can force the tab
16392         control to recalculate the tab page sizes.
16393         * TabControl.cs: UpdateOwner needs to make the tab control recalc
16394         sizes.
16395
16396 2005-01-20  Jackson Harper  <jackson@ximian.com>
16397
16398         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
16399
16400 2005-01-20  Jackson Harper  <jackson@ximian.com>
16401
16402         * TreeView.cs: Set the bounds for nodes properly. They were
16403         getting screwed up when checkboxes were not enabled, but images
16404         were.
16405
16406 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
16407
16408         * ListBox.cs:
16409                 - Owner draw support
16410                 - Fixes
16411                 
16412 2005-01-20  Jackson Harper  <jackson@ximian.com>
16413
16414         * XplatUIStructs.cs: More misc keys
16415         * X11Keyboard.cs: Ignore some control keys.
16416
16417 2005-01-20  Jackson Harper  <jackson@ximian.com>
16418
16419         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
16420         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
16421
16422 2005-01-19  Peter Bartok  <pbartok@novell.com>
16423
16424         * Control.cs: Un-selecting the control when it is loosing focus
16425
16426 2005-01-19  Jackson Harper  <jackson@ximian.com>
16427
16428         * TreeView.cs: Hook up to the text controls leave event so we can
16429         end editing when the users clicks outside the text box.
16430         
16431 2005-01-19  Jackson Harper  <jackson@ximian.com>
16432
16433         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
16434         get set in the conversion array.
16435
16436 2005-01-19  Peter Bartok  <pbartok@novell.com>
16437
16438         * Application.cs (ModalRun): Added a call to CreateControl to ensure
16439           focus is properly set
16440         * Button.cs:
16441           - Added missing attributes
16442           - removed styles, those are already set in the base class
16443         * ButtonBase.cs:
16444           - Added missing attributes
16445           - Added clip window styles
16446         * CheckBox.cs: Added missing attributes
16447         * CommonDialog.cs:
16448           - FormParentWindow.CreateParams: Added required clip styles
16449         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
16450           also filters modifier keys
16451         * MessageBox.cs:
16452           - Added assignment of Accept and Cancel button to enable Enter
16453             and Esc keys in MessageBox dialogs
16454           - FormParentWindow.CreateParams: Added required clip styles
16455         * RadioButton.cs: Added missing attributes
16456         * TextControl.cs: No longer draws selection if control does not
16457           have focus
16458         * TextBoxBase.cs:
16459           - Now draws simple rectangle around test area to make it obvious
16460             there's a control. This is a hack until we properly support borders
16461           - A few simple fixes to support selections better, now erases selected
16462             text when typing, and resets selection when using movement keys
16463
16464 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16465
16466         * UpDownBase.cs: Added some new properties.
16467
16468         * DomainUpDown.cs: Implement a lot to get my test working.
16469
16470 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16471
16472         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
16473
16474 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16475
16476         * OSXStructs (WindowAttributes): Fixed csc complaints
16477
16478 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16479
16480         * XplayUIOSX.cs:
16481           OSXStructs.cs: Initial refactor to move enums and consts into
16482           OSXStructs and use them in the driver for greater readability.
16483
16484 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16485
16486         * XplatUIOSX.cs: Initial support for Standard Cursors.
16487         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
16488
16489 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
16490
16491         * ComboBox.cs: ability to change style when the ctrl is already
16492         created, missing methods and events, bug fixes, signature fixes
16493
16494 2005-01-19  Peter Bartok  <pbartok@novell.com>
16495
16496         * Cursors.cs (ctor): Added ctor to fix signature
16497
16498 2005-01-18  Peter Bartok  <pbartok@novell.com>
16499
16500         * Button.cs: Implemented DoubleClick event
16501         * ButtonBase.cs:
16502           - Fixed keyboard handling to behave like MS, where the press of
16503             Spacebar is equivalent to a mousedown, and the key release is
16504             equivalent to mouseup. Now a spacebar push will give the same
16505             visual feedback like a mouse click.
16506           - Added missing attributes
16507           - Added ImeModeChanged event
16508           - Added support for generating DoubleClick event for derived classes
16509         * CheckBox.cs:
16510           - Implemented DoubleClick event
16511           - Added missing attributes
16512         * CommonDialog.cs: Added missing attribute
16513         * ContextMenu.cs: Added missing attributes
16514         * RadioButton.cs:
16515           - AutoChecked buttons do not allow to be unselected when clicked
16516             (otherwise we might end up with no selected buttons in a group)
16517           - Added missing attributes
16518           - Implemented DoubleClickEvent
16519         * ThreadExceptionDialog.cs: Enabled TextBox code
16520
16521 2005-01-18  Peter Bartok  <pbartok@novell.com>
16522
16523         * Form.cs: Removed debug output
16524         * Button.cs: Added support for DoubleClick method
16525
16526 2005-01-18  Peter Bartok  <pbartok@novell.com>
16527
16528         * Form.cs:
16529           - Added method to parent window that allows triggering size
16530             calculations when a menu is added/removed
16531           - set_Menu: Cleaned up mess from early days of Form and Control,
16532             now properly triggers a recalc when a menu is added/removed
16533           - Added case to select form itself as focused form if no child
16534             controls exist
16535           - Added PerformLayout call when showing dialog, to ensure properly
16536             placed controls
16537         * Control.cs:
16538           - Select(): Made internal so Form can access it
16539           - Focus(): Only call Xplat layer if required (avoids loop), and sets
16540             status
16541         * Application.cs (Run): Removed hack and calls PerformLayout instead
16542           to trigger calculation when Form becomes visible
16543
16544 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
16545
16546         * ComboBox.cs: fixes for ownerdraw
16547
16548 2005-01-18  Peter Bartok  <pbartok@novell.com>
16549
16550         * TextControl.cs:
16551           - Sentinel is no longer static, each Document gets it's own, this
16552             avoids locking or alternatively overwrite problems when more
16553             than one text control is used simultaneously.
16554           - Switched to use Hilight and HilightText brushes for text selection
16555
16556         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
16557
16558 2005-01-18  Peter Bartok  <pbartok@novell.com>
16559
16560         * Control.cs:
16561           - Hooked up the following events:
16562                 o ControlAdded
16563                 o ControlRemoved
16564                 o HandleDestroyed
16565                 o ImeModeChanged
16566                 o ParentChanged
16567                 o TabStopChanged
16568                 o Invalidated
16569                 o SystemColorsChanged
16570                 o ParentFontChanged
16571                 o Move
16572           - Removed debug output
16573           - Added a call to the current theme's ResetDefaults when a color change
16574             is detected
16575         * Form.cs: Now setting the proper ImeMode
16576         * Theme.cs: Defined a method to force recreation of cached resources
16577           and rereading of system defaults (ResetDefaults())
16578         * ThemeWin32Classic.cs: Added ResetDefaults() stub
16579
16580 2005-01-17  Peter Bartok  <pbartok@novell.com>
16581
16582         * Control.cs: Added missing attributes
16583
16584 2005-01-17  Jackson Harper  <jackson@ximian.com>
16585
16586         * TreeNode.cs: Implement editing. Add missing properties selected
16587         and visible.
16588         * TreeView.cs: Implement node editing. Also some fixes to use
16589         Invalidate (invalid area) instead of Refresh when selecting.
16590
16591 2005-01-17  Peter Bartok  <pbartok@novell.com>
16592
16593         * Control.cs:
16594           - Implemented InvokeGotFocus() method
16595           - Implemented InvokeLostFocus() method
16596           - Implemented InvokePaint() method
16597           - Implemented InvokePaintBackground() method
16598           - Implemented InvokeClick() method
16599           - Implemented FindForm() method
16600           - Implemented RectangleToClient() method
16601           - Implemented ClientToRectangle() method
16602           - Implemented ResetBackColor() method
16603           - Implemented ResetCursor() method
16604           - Implemented ResetFont() method
16605           - Implemented ResteForeColor() method
16606           - Implemented ResetImeMode() method
16607           - Implemented ResetLeftToRight() method
16608           - Implemented ResetText() method
16609           - Implemented Scale() methods
16610           - Implemented ScaleCore() method
16611           - Implemented Update() method
16612           - Removed unused variables
16613           - Stubbed AccessibilityNotifyClients and
16614             ControlAccessibleObject.NotifyClients() methods (dunno what to do
16615             with those yet)
16616           - Now setting proper default for RightToLeft property
16617           - Fixed bug in SetClientSizeCore that would cause windows to get
16618             really big
16619           - Now sending Click/DoubleClick events
16620           - Now selecting controls when left mouse button is clicked on
16621             selectable control
16622         * AccessibleEvents.cs: Added
16623         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
16624         * XplatUIOSX.cs: Stubbed UpdateWindow() method
16625         * XplatUIWin32.cs: Implemented UpdateWindow() method
16626         * XplatUIX11.cs: Implemented UpdateWindow() method
16627         * Form.cs: Removed stray semicolon causing CS0162 warning
16628         * ThemeWin32Classic.cs: Fixed unused variable warnings
16629         * ScrollableControl.cs: Now calls base method for ScaleCore
16630         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
16631           style to avoid interference with internal click handler (which is
16632           different than standard Control click handling)
16633         * RadioButton.cs:
16634           - Now unchecks all sibling radio buttons when control is
16635             selected (Fixes #68756)
16636           - Removed internal tabstop variable, using the one inherited from
16637             Control
16638
16639 2005-01-17  Jackson Harper  <jackson@ximian.com>
16640
16641         * NavigateEventArgs.cs: Fix base type.
16642         * LinkLabel.cs: Sig fix
16643         
16644 2005-01-17  Jackson Harper  <jackson@ximian.com>
16645
16646         * TreeView.cs: Only invalidate the effected nodes bounds when
16647         selecting nodes.
16648
16649 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16650
16651         * XplatUIWin32.cs: fixes Win32 marshaling
16652         * XplatUIX11.cs: fixes method signature
16653
16654 2005-01-17  Peter Bartok  <pbartok@novell.com>
16655
16656         * XplatUIX11.cs: Clean up resources when we no longer need them
16657
16658 2005-01-17  Peter Bartok  <pbartok@novell.com>
16659
16660         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
16661           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
16662           and DestroyCursor() methods.
16663         * Cursor.cs: Partially implemented, now supports standard cursors;
16664           still contains some debug code
16665         * Cursors.cs: Implemented class
16666         * Control.cs:
16667           - WndProc(): Added handling of WM_SETCURSOR message, setting the
16668             appropriate cursor
16669           - Implemented Cursor property
16670           - Replaced break; with return; more straightforwar and possibly
16671             faster
16672           - Now properly setting the result for WM_HELP
16673         * X11Structs.cs: Added CursorFontShape enum
16674         * XplatUIStructs.cs:
16675           - Added StdCursor enum (to support DefineStdCursor() method)
16676           - Added HitTest enum (to support sending WM_SETCURSOR message)
16677         * XplatUIX11.cs:
16678           - Now sends the WM_SETCURSOR message
16679           - Implemented new cursor methods
16680         * XplatUIOSX.cs: Stubbed new cursor methods
16681         * XplatUIWin32.cs:
16682           - Implemented new cursor methods
16683           - Added GetSystemMetrics function and associated enumeration
16684
16685 2005-01-15  Peter Bartok  <pbartok@novell.com>
16686
16687         * Control.cs:
16688           - WndProc(): Now handles EnableNotifyMessage
16689           - SelectNextControl(): Fixed bug where if no child or sibling
16690             controls exist we looped endlessly
16691
16692 2005-01-14  Jackson Harper  <jackson@ximian.com>
16693
16694         * TreeView.cs: Recalculate the tab pages when a new one is added
16695         so that the proper bounding rects are created.
16696
16697 2005-01-14  Jackson Harper  <jackson@ximian.com>
16698
16699         * TreeView.cs: Draw a gray box instead of a grip in the lower
16700         right hand corner when there are both horizontal and vertical
16701         scroll bars.
16702
16703 2005-01-14  Jackson Harper  <jackson@ximian.com>
16704
16705         * Control.cs: When erasing backgrounds use FromHwnd instead of
16706         FromHdc when there is a NULL wparam. This occurs on the X driver.
16707         * XplatUIX11.cs: Set the wparam to NULL.
16708
16709 2005-01-13  Jackson Harper  <jackson@ximian.com>
16710
16711         * PictureBox.cs: Implement missing methods (except ToString, need
16712         to test that on windows) and events. When visibility is changed we
16713         need to redraw the image because the buffers are killed. When size
16714         is changed refresh if the sizemode needs it.
16715
16716 2005-01-13  Peter Bartok  <pbartok@novell.com>
16717
16718         * Control.cs (SelectNextControl): Was using wrong method to select
16719           a control
16720
16721 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16722
16723         * ComboBox.cs: fixes dropstyle
16724
16725 2005-01-13  Peter Bartok  <pbartok@novell.com>
16726
16727         * Form.cs:
16728           - Implemented Select() override
16729           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
16730           - Now sets keyboard focus on startup
16731         * Control.cs (SelectNextControl): Now properly handles directed=true
16732         * TextBoxBase.cs:
16733           - WndProc: Now passes tab key on to base if AcceptTabChar=false
16734           - Added (really bad) focus rectangle (mostly for testing)
16735         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
16736           to enforce redraw on focus changes
16737         * ContainerControl.cs:
16738           - Fixed detection of Shift-Tab key presses
16739           - Fixed traversal with arrow keys
16740         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
16741           gonna keep this or if it's complete yet
16742         
16743 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16744
16745         * ComboBox.cs: missing properties, fixes
16746
16747 2005-01-13  Peter Bartok  <pbartok@novell.com>
16748
16749         * Panel.cs (ctor): Setting Selectable window style to off
16750         * Splitter.cs (ctor): Setting Selectable window style to off
16751         * GroupBox.cs (ctor): Setting Selectable window style to off
16752         * Label.cs (ctor): Setting Selectable window style to off
16753
16754 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
16755
16756         * UpDownBase.cs (InitTimer): If the timer has been already
16757         created, enable it.
16758
16759         Use a TextBox instead of a Label.
16760
16761 2005-01-12  Jackson Harper  <jackson@ximian.com>
16762
16763         * TreeView.cs: Refresh the tree after sorting the nodes. Always
16764         draw the connecting node lines (when ShowLines is true).
16765         * TreeNode.cs: The nodes index can now be updated. This is used
16766         when a node collection is sorted.
16767         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
16768         insert or an existing unsorted node collection can be sorted.
16769         
16770 2005-01-12  Peter Bartok  <pbartok@novell.com>
16771
16772         * ContainerControl.cs: Implemented ProcessDialogKeys()
16773
16774 2005-01-12  Peter Bartok  <pbartok@novell.com>
16775
16776         * Control.cs:
16777           - Implemented SelectNextControl() method
16778           - Several focus related bug fixes
16779           - Fixed Docking calculations to match MS documentation and
16780             behaviour
16781
16782 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
16783
16784         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
16785         bug fixes
16786
16787 2005-01-12  Peter Bartok  <pbartok@novell.com>
16788
16789         * Control.cs:
16790           - Fixed broken Contains() method
16791           - Implemented GetNextControl() method. Finally. This is the pre-
16792             requisite for focus handling.
16793
16794 2005-01-12  Peter Bartok  <pbartok@novell.com>
16795
16796         * OSXStrucs.cs: Added
16797
16798 2005-01-12  Peter Bartok  <pbartok@novell.com>
16799
16800         * XplatUIWin32.cs:
16801           - Removed PeekMessageFlags
16802           - Implemented SetWindowStyle() method
16803         * XplatUIStructs.cs: Added PeekMessageFlags
16804         * X11Structs: Added missing border_width field to XWindowChanges struct
16805         * XplatUIX11.cs:
16806           - PeekMessage: Now throws exception if flags which are not yet
16807             supported are passed
16808           - Implemented SetWindowStyle() method
16809           - Fixed SetZOrder to handle AfterHwnd properly
16810         * XplatUI.cs: Added SetWindowStyle() method
16811         * XplatUIDriver.cs: Added SetWindowStyle() abstract
16812         * Control.cs:
16813           - Implemented UpdateStyles() method
16814           - Implemented UpdateZOrder() method
16815         * XplatUIOSX.cs: Added SetWindowStyle() stub
16816
16817 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
16818
16819         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
16820         button mouse).
16821
16822
16823 2005-01-11  Jackson Harper  <jackson@ximian.com>
16824
16825         * TreeView.cs: Still need to draw lines to siblings even if out of
16826         the current node is out of the clip.
16827
16828 2005-01-11  Jackson Harper  <jackson@ximian.com>
16829
16830         * TreeView.cs: When setting the hbar/vbar/grip position use
16831         SetBounds so that perform layout is only called once. Also suspend
16832         and resume layout so layout is only done once for all controls.
16833         - Removed some debug fluff
16834         * SizeGrip.cs: Call base implmentation in overriding methods.
16835         - When visibility is changed the drawing buffers are killed so we
16836         need to redraw.
16837
16838 2005-01-11  Jackson Harper  <jackson@ximian.com>
16839
16840         * TreeView.cs: Calculate the open node count while drawing. This
16841         saves us an entire tree traversal for every paint operation. Use
16842         a member var for the open node count so less vars are passed around.
16843
16844 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
16845
16846         * MonthCalendar.cs:
16847         - fixed selection to use mousemove, not mouse polling on timer
16848         * ThemeWin32Classic.cs
16849         - removed redundant unused variable "no_more_content"
16850         
16851 2005-01-11  Peter Bartok  <pbartok@novell.com>
16852
16853         * XplatUIX11.cs (DoEvents): Needs to return when no more events
16854           are pending, so it now calls PeekMessage instead of GetMessage;
16855           implemented a incomplete version of PeekMessage
16856         
16857 2005-01-11  Peter Bartok  <pbartok@novell.com>
16858
16859         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
16860           I18n issues
16861         * TextBoxBase.cs: Added sending of TextChanged event
16862
16863 2005-01-10  Jackson Harper  <jackson@ximian.com>
16864
16865         * TreeView.cs: Try not to draw outside the clipping rectangle on
16866         each node element.
16867
16868 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
16869
16870         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
16871
16872 2005-01-10  Jackson Harper  <jackson@ximian.com>
16873
16874         * TreeView.cs:
16875         - Implement fast scrolling. Now only the newly
16876         exposed nodes are drawn and the old image is moved using the
16877         XplatUI::ScrollWindow method.
16878         - Factor in height of nodes when calculating whether or not the
16879         node is in the clipping rect.
16880
16881 2005-01-10  Jackson Harper  <jackson@ximian.com>
16882
16883         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
16884
16885 2005-01-10  Peter Bartok  <pbartok@novell.com>
16886
16887         * Application.cs: Added temporary hack to resolve all our resize
16888           required issues on startup. This will get fixed properly at
16889           some point in the future
16890
16891 2005-01-10  Jackson Harper  <jackson@ximian.com>
16892
16893         * SizeGrip.cs: New internal class that is used as a sizing
16894         grip control...hence the name.
16895
16896 2005-01-10  Peter Bartok  <pbartok@novell.com>
16897
16898         * Control.cs: Implemented proper TabIndex handling, now assigning
16899           a tabindex when a control is added to a container
16900         * GroupBox.cs (ctor): Now sets the Container style bit, required
16901           for Control.GetNextControl()
16902
16903 2005-01-09  Jackson Harper  <jackson@ximian.com>
16904
16905         * TextBoxBase.cs: Clear window when scrolling (fixes build).
16906
16907 2005-01-09  Peter Bartok <pbartok@novell.com>
16908
16909         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16910           XplatUIX11.cs: Added ability to control ScrollWindow expose and
16911           an overload for ScrollWindow to allow only scrolling a rectangle
16912
16913 2005-01-09  Peter Bartok <pbartok@novell.com>
16914
16915         * Form.cs:
16916           - Implemented SetDesktopBounds method
16917           - Implemented SetDesktopLocation method
16918
16919 2005-01-08  Jackson Harper  <jackson@ximian.com>
16920
16921         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
16922         the node count has changed, this removes to VScroll::Refresh calls
16923         when drawing.
16924
16925 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
16926
16927         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
16928
16929 2005-01-07  Jackson Harper  <jackson@ximian.com>
16930
16931         * TreeNode.cs: Just update the single node when it is
16932         checked. Don't refresh after toggling, the Expand/Collapse already
16933         handles this.
16934         * TreeView.cs: Respect clipping a little more when drawing. Try
16935         not to redraw things that don't need to be redrawn. Just hide the
16936         scrollbars when they are no longer needed instead of removing
16937         them, so they don't have to be created again and again.
16938         
16939 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
16940
16941         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
16942         coordinates to window space to place the caret properly, FIXED.
16943         Implement GetWindowState & SetWindowState
16944
16945 2005-01-06  Peter Bartok <pbartok@novell.com>
16946
16947         * Form.cs:
16948           - Implemented ClientSize property
16949           - Implemented DesktopBounds property
16950           - Implemented DesktopLocation property
16951           - Implemented IsRestrictedWindow property
16952           - Implemented Size property
16953           - Implemented TopLevel property
16954           - Implemented FormWindowState property
16955         * Control.cs:
16956           - Implemented GetTopLevel() method
16957           - Implemented SetTopLevel() method
16958         * X11Structs.cs (Atom):
16959           - Added AnyPropertyType definition
16960           - Added MapState definiton and updated XWindowAttribute struct
16961         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
16962         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
16963         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
16964         * XplatUIWin32.cs:
16965           - Implemented GetWindowState() and SetWindowState() methods
16966           - Fixed Win32GetWindowLong return type
16967         * XplatUIX11.cs:
16968           - Introduced central function for sending NET_WM messages
16969           - Implemented GetWindowState() and SetWindowState() methods
16970         * TextBoxBase.cs (set_Lines):
16971           - Now uses Foreground color for text added via Text property (Duh!)
16972           - Added code to remember programmatically requested size (fixes
16973             behaviour when Multiline is set after Size)
16974           - Added AutoSize logic
16975
16976 2005-01-06  Jackson Harper  <jackson@ximian.com>
16977
16978         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
16979
16980 2005-01-06  Jackson Harper  <jackson@ximian.com>
16981
16982         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
16983         set to less then 0.
16984
16985 2005-01-06  Jackson Harper  <jackson@ximian.com>
16986
16987         * ScrollableControl.cs: Lazy init the scrollbars.
16988         
16989 2005-01-06  Jackson Harper  <jackson@ximian.com>
16990
16991         * Theme.cs: Speed up getting pens and solid brushes, by using
16992         their ARGB as a hash instead of tostring and not calling Contains.
16993
16994 2005-01-06  Peter Bartok <pbartok@novell.com>
16995
16996         * Form.cs:
16997           - Implemented OnActivated and OnDeactivate event trigger
16998           - Implemented Activate() method
16999           - Fixed ShowDialog() to activate the form that was active before
17000             the dialog was shown
17001         * XplatUIX11.cs:
17002           - Added global active_window var that tracks the currently active
17003             X11 window
17004           - Now always grabs Property changes from the root window to always
17005             catch changes on the active window property
17006           - Added code to PropertyNotify handler to send Active/Inactive
17007             messages when state changes. This puts X11 and Win32 en par on
17008             WM_ACTIVATE notifications (except for double notifications when
17009             the user clicks away from our modal window to another one of our
17010             windows)
17011
17012 2005-01-05  Jackson Harper  <jackson@ximian.com>
17013
17014         * ImageList.cs: Implment ctor
17015
17016 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17017
17018         * XplatUIOSX.cs: Implement Activate/SetTopmost
17019
17020 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17021
17022         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
17023
17024 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17025
17026         * XplatUIOSX.cs: Implement GetActive/SetFocus.
17027
17028 2005-01-05  Peter Bartok <pbartok@novell.com>
17029
17030         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
17031           XplatUIOSX.cs: Added GetActive method to return the currently
17032           active window for the application (or null, if none is active)
17033         * Form.cs:
17034           - Implemented ActiveForm
17035           - Commented out owner assignment for modal dialogs (causes problems
17036             on Win32, since the owner will be disabled)
17037           - Reworked some Active/Focus handling (still incomplete)
17038         * CommonDialog.cs: Commented out owner assignment for modal dialogs
17039           (causes problems on Win32, since the owner will be disabled)
17040         * IWin32Window: Added ComVisible attribute
17041
17042 2005-01-05  Peter Bartok <pbartok@novell.com>
17043
17044         * ToolTip.cs (WndProc): Enable setting focus now that we have the
17045           required XplatUI functions.
17046
17047 2005-01-05  Peter Bartok <pbartok@novell.com>
17048
17049         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
17050           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
17051           to implement focus and activation handling; still incomplete and
17052           with debug output
17053
17054 2005-01-04  Peter Bartok <pbartok@novell.com>
17055
17056         * TextBoxBase.cs: Changed access level for Document property to
17057           match switch to internal for TextControl
17058
17059 2005-01-04  Peter Bartok <pbartok@novell.com>
17060
17061         * AccessibleObject: Added ComVisible attribute
17062
17063 2005-01-04  Jackson Harper  <jackson@ximian.com>
17064
17065         * X11Keyboard.cs: Remove unneeded var.
17066
17067 2005-01-04  Jackson Harper  <jackson@ximian.com>
17068
17069         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
17070         but PAINT.
17071         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
17072         ClientMessage. This makes apps exit cleanly (more often).
17073         
17074 2005-01-04  Jackson Harper  <jackson@ximian.com>
17075
17076         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
17077         handling focus, return correct colors and fonts,
17078         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
17079         handle selection, horizontal scrolling, and mouse interaction.
17080
17081 2005-01-04  Peter Bartok <pbartok@novell.com>
17082
17083         * ICommandExecutor.cs: Added
17084         * IDataGridColumnStyleEditingNotificationService.cs: Added
17085         * IFeatureSupport.cs: Added
17086         * IFileReaderService.cs: Added
17087         * IDataObject.cs: Added ComVisible attribute
17088         * AmbientProperties.cs: Added
17089         * BaseCollection.cs: Added missing attributes
17090         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
17091         * BaseCollection.cs: Added missing attributes
17092         * Binding.cs: Added TypeConverter attribute
17093         * BindingContext.cs: Added DefaultEvent attribute
17094         * BindingsCollection.cs: Added DefaultEvent attribute
17095         * Button.cs: Added DefaultValue attribute
17096         * DragEventArgs.cs: Added ComVisible attribute
17097         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
17098         * KeyEventArgs.cs: Added ComVisible attribute
17099         * KeyPressEventArgs.cs: Added ComVisible attribute
17100         * MouseEventArgs.cs: Added ComVisible attribute
17101         * NavigateEventArgs.cs: Added
17102         * NavigateEventHandler.cs: Added
17103         * FeatureSupport.cs: Added
17104         * OSFeature.cs: Added
17105         * Theme.cs: Added abstract Version property to support OSFeature
17106         * ThemeWin32Classic.cs: Added Version property to
17107           support OSFeature.Themes
17108         * ProgressBar.cs: Removed OnPaintBackground override, not required since
17109           the proper styles to avoid background drawing are set, also doesn't
17110           match MS signature
17111         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
17112         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
17113         * ScrollEventArgs.cs: Added ComVisible attribute
17114         * SplitterEventArgs.cs: Added ComVisible attribute
17115         * AccessibleSelection.cs: Added Flags attribute
17116         * Appearance.cs: Added ComVisible attribute
17117         * Border3DSide.cs: Added ComVisible attribute
17118         * Border3DStyle.cs: Added ComVisible attribute
17119         * BorderStyle.cs: Added ComVisible attribute
17120         * DragAction.cs: Added ComVisible attribute
17121         * ErrorBlinkStyle.cs: Added
17122         * ScrollEventType.cs: Added ComVisible attribute
17123         * AnchorStyles.cs: Added Editor attribute
17124         * DockStyle.cs: Added Editor attribute
17125         * HorizontalAlignment.cs: Added ComVisible attribute
17126         * HelpEventArgs.cs: Added ComVisible attribute
17127         * PaintEventArgs.cs: Added IDisposable
17128
17129 2005-01-04  Peter Bartok <pbartok@novell.com>
17130
17131         * TextControl.cs: Switched Line, LineTag and Document classes to
17132           internal
17133
17134 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17135
17136         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
17137         Simple mode, fixes, IntegralHeight, etc.
17138
17139 2005-01-04  Peter Bartok <pbartok@novell.com>
17140
17141         * TextBoxBase.cs: Using proper font variable now
17142
17143 2005-01-04  Peter Bartok <pbartok@novell.com>
17144
17145         * Form.cs (ShowDialog): Set parent to owner, if provided
17146         * GroupBox.cs: Removed unused vars
17147         * TextControl.cs:
17148           - Added GetHashCode() for Document and LineTag classes
17149           - Removed unused variables
17150           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
17151             to allow translation between continuous char position and line/pos
17152         * CheckBox.cs: Removed vars that are provided by base class
17153         * RadioButton.cs: Removed vars that are provided by base class, added
17154           new keyword where required
17155         * LinkLabel.cs: Added new keyword where required
17156         * Control.cs (WndProc): Removed unused variable
17157         * TextBoxBase.cs:
17158           - Finished SelectionLength property
17159           - Implemented SelectionStart property
17160           - Implemented Text property
17161           - Removed unused vars
17162         * MessageBox.cs: Added new keyword where required
17163         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
17164           WndProc signature
17165         * MenuAPI.cs: Added new keyword where required
17166         * ButtonBase.cs: Removed vars that are provided by base class, added
17167           new keyword where required
17168         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
17169           argument to double, to allow compiling with csc 2.0 (Atsushi ran
17170           into this)
17171         * Application.cs (Run): Now triggers the ThreadExit event
17172         * CommonDialog.cs: Added new keyword where required; now properly sets
17173           parent (owner) for dialog
17174         * XplatUIX11.cs: Commented out unused vars
17175         * StatusBar.cs: Fixed signature for Text property
17176         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
17177
17178 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17179
17180         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
17181         TrackBar.cs, MonthCalendar.cs: remove unused vars
17182
17183 2005-01-03  Jackson Harper  <jackson@ximian.com>
17184
17185         * ThemeWin32Classic.cs:
17186         * X11Keyboard.cs: Remove unused vars.
17187
17188 2005-01-03  Peter Bartok  <pbartok@novell.com>
17189
17190         * TextBox.cs:
17191           - set_Text: Tied into TextControl
17192           - set_TextAlignment: Tied into TextControl
17193         * TextControl.cs:
17194           - Added alignment properties and implemented alignment handling
17195             and drawing (still has a bug, not generating proper expose events)
17196           - Added new Line() constructor to allow passing the line alignment
17197           - Fixed selection setting, properly handling end<start now
17198           - Added aligment considerations to RecalculateDocument()
17199         * TextBoxBase.cs:
17200           - Now properly enforces control height for single line controls
17201           - Added support for CharacterCasing
17202           - Added IsInputKey override
17203           - Fixed Keys.Enter logic
17204           - Added SetBoundsCore override
17205           - Fixed mouse selection handling
17206
17207 2005-01-03  Jackson Harper  <jackson@ximian.com>
17208
17209         * TreeView.cs:
17210           - Collapse and uncheck all nodes when CheckBoxes is disabled.
17211           - Checkboxes are always aligned to the bottom of the node,
17212           regardless of item height.
17213           - Use the node bounds to draw the text so we can center it when
17214           the item height is greater then the font height.
17215           - Node::Bounds are only the text part of the node.
17216         * TreeNode.cs: New method to combine collapsing and unchecking all
17217           nodes recursively.
17218
17219 2005-01-02  Jackson Harper  <jackson@ximian.com>
17220
17221         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
17222         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
17223         tree when a check is changed. TODO: Only refresh the checked node.
17224
17225 2004-12-30  Jackson Harper  <jackson@ximian.com>
17226
17227         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
17228         * TreeNode.cs: When collapsing make sure to never collapse the
17229         root node.
17230
17231 2004-12-29  Jackson Harper  <jackson@ximian.com>
17232
17233         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
17234         
17235 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
17236
17237         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
17238
17239 2004-12-28  Peter Bartok  <pbartok@novell.com>
17240
17241         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
17242           not yet assigned
17243
17244 2004-12-28  Peter Bartok  <pbartok@novell.com>
17245
17246         * Control.cs (WndProc): Added WM_HELP handler, now generates
17247           HelpRequested event
17248         * Form.cs: Added HelpButton property and required support code
17249         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
17250
17251 2004-12-28  Peter Bartok  <pbartok@novell.com>
17252
17253         * CommonDialog.cs:
17254           - Made DialogForm.owner variable internal
17255           - Added check to ensure owner form is set before setting
17256             owner properties in CreateParams
17257
17258 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
17259
17260         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
17261           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
17262           GetCursorPos.  Fix major visibility issues.  Rework the windowing
17263           system to support borderless/titleless windows (implements menus).
17264           Fix GetWindowPos.  Implement initial background color support for
17265           views.
17266
17267 2004-12-28  Peter Bartok  <pbartok@novell.com>
17268
17269         * Form.cs (get_CreateParams): Make sure we have an owner before using
17270           the owner variable. Implement proper default if no owner exists
17271
17272 2004-12-28  Peter Bartok  <pbartok@novell.com>
17273
17274         * In preparation for making Managed.Windows.Forms the default build target
17275           for System.Windows.Forms, the following stubbed files were added.
17276           Dialogs are currently being implemented by contributors and are only
17277           short-term place holders.
17278         * ColorDialog.cs: Initial check-in (minmal stub)
17279         * DataGrid.cs: Initial check-in (minimal stub)
17280         * DataGridLineStyle.cs: Initial check-in (minimal stub)
17281         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
17282         * DataGridTableStyle.cs: Initial check-in (minimal stub)
17283         * FontDialog.cs: Initial check-in (minimal stub)
17284         * FileDialog.cs: Initial check-in (minimal stub)
17285         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
17286         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
17287         * OpenFileDialog: Initial check-in (minimal stub)
17288         * IComponentEditorPageSite.cs: Initial check-in
17289         * Splitter.cs: Initial check-in (for Jackson)
17290         * SplitterEventArgs.cs: Initial check-in (for Jackson)
17291         * SplitterEventHandler.cs: Initial check-in (for Jackson)
17292         * TextBox.cs: Initial check-in; still needs some wiring to
17293           TextControl backend
17294         * Form.cs: Implemented ControlBox property
17295         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
17296         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
17297         * TextControl.cs: Added selection functionality; added todo header
17298         * TextBoxBase.cs:
17299           - Implemented Lines property
17300           - Implemented TextHeight property
17301           - Implemented SelectedText property
17302           - Implemented SelectionLength property
17303           - Implemented SelectAll method
17304           - Implemented ToString method
17305           - Removed and cleaned up some debug code
17306           - Implemented (still buggy) mouse text selection
17307
17308 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
17309
17310         * ComboBox.cs: Complete DropDownList implementation, fixes.
17311
17312 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
17313
17314         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
17315         * ComboBoxStyle.cs: ComboBoxStyle enum
17316         * ComboBox.cs: Initial work on ComboBox control
17317
17318 2004-12-21  Peter Bartok  <pbartok@novell.com>
17319
17320         * Control.cs (ctor, CreateParams): Moved setting of is_visible
17321           forward so that anything that creates a window gets the default,
17322           also no longer uses Visible property in CreateParams to avoid
17323           walking up the parent chain and possibly get the wrong visible
17324           status. Fixed IsVisible to no longer walk up to the parent.
17325
17326 2004-12-21  Peter Bartok  <pbartok@novell.com>
17327
17328         * Form.cs (ShowDialog): Unset modality for the proper window
17329  
17330 2004-12-20  Peter Bartok  <pbartok@novell.com>
17331
17332         * CommonDialog.cs: Initial check-in
17333
17334 2004-12-20  Peter Bartok  <pbartok@novell.com>
17335
17336         * Control.cs (Visible): Now uses the parent window instead of the
17337           client area window for the property
17338
17339         * Form.cs
17340           - ShowDialog(): Now uses the proper window for modality
17341           - The default visibility state for the form parent is now false. This
17342             will prevent the user from seeing all the changes to the form and
17343             its controls before the application hits Application.Run()
17344           - Removed some stale commented out code
17345
17346         * NativeWindow.cs:
17347           - Added FindWindow() method to have a method to check for existence
17348             of a window handle
17349           - Added ability to override default exception handling (for example
17350             when debugging with VS.Net; to do this the ExternalExceptionHandler
17351             define must be set
17352           - Removed some useless debug output
17353
17354         * XplatUIX11.cs:
17355           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
17356             not working as expected
17357           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
17358             property to allow switching back to the modal window if focus is
17359             given to another one of our windows (Application Modal)
17360           - Now only sets override_redirect if we create a window
17361             without WS_CAPTION
17362           - Moved EventMask selection before mapping of newly created window
17363             so we can catch the map event as well
17364           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
17365           - Added various Atom related DllImports
17366           - Implemented Exit() method
17367           - .ctor() : No longer shows window if WS_VISIBLE is not defined
17368             in the CreateParams
17369
17370         * MessageBox.cs: Now properly deals with the FormParent window by
17371           providing an override the FormParent CreateParams property to
17372           set as POPUP instead of OVERLAPPED window.
17373
17374 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17375
17376         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
17377         Minor code cleanup.
17378
17379 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17380         
17381         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
17382
17383 2004-12-18  Peter Bartok  <pbartok@novell.com>
17384
17385         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
17386           implementing SetModal() method
17387
17388 2004-12-18  Peter Bartok  <pbartok@novell.com>
17389
17390         * X11Structs.cs (XGCValues): Fixed type of function element
17391         * XplatUI.cs: Added ScrollWindow() method
17392         * XplatUIDriver.cs: Added ScrollWindow() abstract
17393         * XplatUIWin32.cs: Implemented ScrollWindow() method
17394         * XplatUIX11.cs: Implemented ScrollWindow() method
17395         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
17396
17397 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17398
17399         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
17400         Some more keyboard support (INCOMPLETE)
17401
17402 2004-12-17  Peter Bartok  <pbartok@novell.com>
17403
17404         * TextControl.cs:
17405         - Added color attribute to line tags.
17406         - Added color argument to all functions dealing with tags
17407         - Added color argument support to various functions
17408         - Fixed miss-calculation of baseline/shift in certain circumstances
17409
17410         * TextBoxBase.cs: Added new color option to test code
17411
17412 2004-12-17  Jackson Harper  <jackson@ximian.com>
17413
17414         * TreeNode.cs:
17415         * MonthCalendar.cs: Signature fixes
17416
17417 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17418
17419         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
17420         keyboard event moved it.  Create a new graphics context for each paint resolves this
17421
17422 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17423
17424         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
17425         Make caret exist and go blink blink.  Initial keyboard support.
17426         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
17427         works.
17428
17429 2004-12-17  Jackson Harper  <jackson@ximian.com>
17430
17431         * XplatUIStructs.cs: Updated set of virtual keycodes.
17432         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
17433
17434 2004-12-17  Jackson Harper  <jackson@ximian.com>
17435
17436         * XplatUIX11.cs: Prune old keyboard code.
17437
17438 2004-12-17  Jackson Harper  <jackson@ximian.com>
17439
17440         * XplatUIX11.cs: When generating mouse wparams get the modifier
17441         keys from the ModifierKeys property.
17442
17443 2004-12-17  Jackson Harper  <jackson@ximian.com>
17444
17445         * X11Keyboard.cs: Send up/down input when generating
17446         messages. Remove some unused vars.
17447
17448 2004-12-17  Jackson Harper  <jackson@ximian.com>
17449
17450         * TabControl.cs:
17451         * TreeView.cs: get rid of warnings.
17452
17453 2004-12-17  Jackson Harper  <jackson@ximian.com>
17454
17455         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
17456
17457 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
17458
17459         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
17460           CheckedListBox.cs: Implementation
17461
17462 2004-12-17  Peter Bartok  <pbartok@novell.com>
17463
17464         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
17465
17466 2004-12-16  Peter Bartok  <pbartok@novell.com>
17467
17468         * TextControl.cs:
17469           - InsertCharAtCaret(): Fixed start pos fixup
17470           - CaretLine_get: No longer derives the line from the tag, the tag
17471             could be stale if lines in the document have been added or deleted
17472           - RebalanceAfterDelete(): Fixed bug in balancing code
17473           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
17474           - Line.Streamline(): Now can also elminate leading empty tags
17475           - DumpTree(): Added a few more tests and prevented exception on
17476             uninitialized data
17477           - Added Debug section for Combining lines
17478           - Delete(): Now copies all remaining properties of a line
17479           
17480         * TextBoxBase.cs:
17481           - Left mousebutton now sets the caret (and middle button still acts
17482             as formatting tester, which must go away soon)
17483           - Added Debug section for Deleting/Combining lines
17484           - Fixed calculations for UpdateView after Combining lines
17485
17486 2004-12-16  Peter Bartok  <pbartok@novell.com>
17487
17488         * TextControl.cs: Now properly aligns text on a baseline, using the
17489           new XplatUI.GetFontMetrics() method. Simplified several calculations
17490         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
17491           defined
17492
17493 2004-12-16  Peter Bartok  <pbartok@novell.com>
17494
17495         * XplatUI.cs: Added GetFontMetrics() method
17496         * XplatUIDriver.cs: Added GetFontMetrics() abstract
17497         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
17498           into libgdiplus, our private GetFontMetrics function
17499         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
17500         * XplatUIWin32.cs: Implemented GetFontMetrics() method
17501
17502 2004-12-16  Jackson Harper  <jackson@ximain.com>
17503
17504         * XplatUIStruct.cs: Add enum for dead keys
17505         * X11Keyboard.cs: Map and unmap dead keys.
17506
17507 2004-12-16  Jackson Harper  <jackson@ximian.com>
17508
17509         * X11Keyboard.cs: Detect and use the num lock mask.
17510
17511 2004-12-16  Peter Bartok  <pbartok@novell.com>
17512
17513         * Control.cs (CreateGraphics): Added check to make sure the
17514           handle of the window exists before calling Graphics.FromHwnd()
17515
17516 2004-12-16  Peter Bartok  <pbartok@novell.com>
17517
17518         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
17519           contains a lot of code that's not supposed to be there for the
17520           real thing, but required for developing/testing the textbox
17521           backend.
17522
17523 2004-12-16  Peter Bartok  <pbartok@novell.com>
17524
17525         * TextControl.cs:
17526         - Fixed Streamline method
17527         - Added FindTag method to Line
17528         - Added DumpTree method for debugging
17529         - Added DecrementLines() method for deleting lines
17530         - Fixed UpdateView to update the cursor to end-of-line on single-line
17531           updates
17532         - Added PositionCaret() method
17533         - Fixed MoveCaret(LineDown) to move into the last line, too
17534         - Added InsertChar overload
17535         - Fixed InsertChar tag offset calculations
17536         - Added DeleteChar() method
17537         - Added Combine() method for folding lines
17538         - Fixed Delete() method, no longer allocates wasted Line object and
17539           now copies all properties when swapping nodes
17540         - Delete() method now updates document line counter
17541
17542 2004-12-15  Jackson Harper  <jackson@ximian.com>
17543
17544         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
17545         * X11Keyboard.cs: Expose the currently selected modifier keys
17546         through a property.
17547
17548 2004-12-15  Peter Bartok  <pbartok@novell.com>
17549
17550         * TextControl.cs: Initial check-in. Still incomplete
17551
17552 2004-12-15  Jackson Harper  <jackson@ximian.com>
17553
17554         * TreeNode.cs:
17555         * TreeView.cs: Fix build on csc (second time today ;-))
17556
17557 2004-12-15  Jackson Harper  <jackson@ximian.com>
17558
17559         * TreeView.cs: Store the treenodes plus/minus box bounds when it
17560         is calculated and use this for click testing.
17561         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
17562
17563 2004-12-15  Jackson Harper  <jackson@ximian.com>
17564
17565         * TreeView.cs: Pass the nodes image index to the image list when
17566         drawing that image.
17567
17568 2004-12-15  Jackson Harper  <jackson@ximian.com>
17569
17570         * X11Keyboard.cs: Set messages hwnd.
17571         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
17572         post_message calls.
17573
17574 2004-12-15  Jackson Harper  <jackson@ximian.com>
17575
17576         * X11Keyboard.cs: Fix to compile with csc.
17577         
17578 2004-12-15  Jackson Harper  <jackson@ximian.com>
17579
17580         * X11Structs.cs: Add key mask values
17581         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
17582         * X11Keyboard.cs: New file - Extrapolates and interpolates key
17583         down/up foo into WM_CHAR foo
17584         * KeyboardLayouts.cs: Common keyboard layouts
17585         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
17586         post messages into the main queue.
17587
17588 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
17589
17590         * Button.cs: implement ProcessMnemonic
17591         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
17592           brushes everytime
17593         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
17594         * ButtonBase.cs: Show HotkeyPrefix (not the &)
17595
17596 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
17597         
17598         * MonthCalendar.cs: Implemented click-hold for next/previous month
17599           and date selection
17600           
17601 2004-12-11  Peter Bartok  <pbartok@novell.com>
17602
17603         * X11Structs.cs:
17604           - Added XKeyboardState (moved from XplatUIX11.cs)
17605           - Added XCreateGC related enums and structures
17606           - Added GXFunction for XSetFunction
17607
17608         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
17609
17610         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
17611           CaretVisible() calls
17612
17613         * ToolTip.cs: Added code to prevent stealing focus from app windows
17614
17615         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
17616           DestroyCaret, SetCaretPos and CaretVisible)
17617
17618         * XplatUIX11.cs:
17619           - Added implementation for caret functions
17620           - Moved hover variables into a struct, to make it a bit easier
17621             on the eyes and to debug
17622           - Removed XKeyboardState (moved to XplatUIX11.cs)
17623           - Moved Keyboard properties into the properties region
17624
17625         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
17626           call to get a graphics context for our control
17627
17628         * XplatUIOSX.cs: Added empty overrides for the new caret functions
17629
17630         * TreeView.cs: Fixed bug. No matter what color was set it would always
17631           return SystemColors.Window
17632
17633         * XplatUIWin32.cs: Implemented caret overrides
17634
17635 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
17636
17637         * ListBox.cs: fire events, implement missing methods and properties,
17638         sorting.
17639
17640 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
17641
17642         * MonthCalendar.cs: invalidation bug fixing
17643         * ThemeWin32Classic.cs: paint fixing
17644
17645 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
17646
17647         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
17648         prepare the CGContextRef there now.
17649
17650 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
17651
17652         * MonthCalendar.cs:
17653           - optimisationL only invalidate areas that have changed
17654         * ThemeWin32Classic.cs:
17655           - only paint parts that intersect with clip_area
17656
17657 2004-12-09  Peter Bartok  <pbartok@novell.com>
17658
17659         * Application.cs: Undid changes from r37004 which cause problems
17660         on X11
17661
17662 2004-12-09  Ravindra  <rkumar@novell.com>
17663
17664         * ToolBar.cs: Added support for displaying ContextMenu
17665         attached to a button on ToolBar.
17666         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
17667         property.
17668
17669 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17670
17671         * Label.cs: autosize works in text change and removes unnecessary
17672         invalidate
17673
17674 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17675
17676         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17677         remove warnings
17678
17679 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
17680
17681         * XplatUIOSX.cs: Added mouse move/click/grab support
17682         Remove some debugging WriteLines not needed anymore.
17683         Add window resizing/positioning.
17684         Fix visibility on reparenting.
17685
17686 2004-12-08  Peter Bartok  <pbartok@novell.com>
17687
17688         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
17689
17690 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
17691
17692         * XplatUIOSX.cs: Initial checkin
17693         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
17694
17695 2004-12-03  Ravindra <rkumar@novell.com>
17696
17697         * ListView.cs: Added some keybindings and fixed scrolling.
17698         ScrollBars listen to ValueChanged event instead of Scroll
17699         Event. This would let us take care of all changes being
17700         done in the scrollbars' values programmatically or manually.
17701         * ListView.cs (CanMultiselect): Added a check for shift key.
17702         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
17703         * ListViewItem.cs (Clone): Fixed. We need to make a copy
17704         of ListViewSubItemCollection as well.
17705
17706 2004-12-06  Peter Bartok <pbartok@novell.com>
17707
17708         * Control.cs (Parent): Added check and exception to prevent
17709         circular parenting
17710
17711 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
17712
17713         * ListBox.cs: implemented clipping, selection single and multiple,
17714         bug fixing
17715
17716 2004-12-03  Ravindra <rkumar@novell.com>
17717
17718         * ListView.cs (ListView_KeyDown):
17719         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
17720         when CTRL key is pressed.
17721         * ListViewItem.cs (Selected): Fixed setting the property.
17722
17723 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17724
17725         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
17726
17727         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
17728         MinimizeBox, ShowInTaskbar, TopMost properties.
17729
17730         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
17731         will be implemented).
17732
17733 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17734
17735         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
17736
17737         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
17738         tests.
17739         
17740         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
17741         
17742         * TreeView.cs: BackColor is Colors.Window.
17743
17744 2004-12-01  Jackson Harper  <jackson@ximian.com>
17745
17746         * TreeView.cs: When resizing the tree if the user is making it
17747         smaller we don't get expose events, so we need to handle adding
17748         the horizontal scrollbar in the size changed handler as well as
17749         the expose handler.
17750
17751 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
17752
17753         * DrawItemState.cs: fixes wrong enum values
17754
17755 2004-12-01  Jackson Harper  <jackson@ximian.com>
17756
17757         * TreeView.cs: Resize the hbar as well as the vbar on resize.
17758
17759 2004-12-01  Jackson Harper  <jackson@ximian.com>
17760
17761         * NodeLabelEditEventArgs.cs:
17762         * NodeLabelEditEventHandler.cs:
17763         * OpenTreeNodeEnumerator.cs:
17764         * TreeNode.cs:
17765         * TreeNodeCollection.cs:
17766         * TreeView.cs:
17767         * TreeViewAction.cs:
17768         * TreeViewCancelEventArgs.cs:
17769         * TreeViewCancelEventHandler.cs:
17770         * TreeViewEventArgs.cs:
17771         * TreeViewEventHandler.cs: Initial implementation.
17772
17773 2004-12-01  Ravindra <rkumar@novell.com>
17774
17775         * ListView.cs (CalculateListView): Fixed scrolling related
17776         calculations. Also, removed some debug statements from other
17777         places.
17778         * ListViewItem.cs: Changed access to 'selected' instance variable
17779         from private to internal.
17780         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
17781
17782 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
17783
17784         * ThemeWin32Classic.cs: remove cache of brush and pens for
17785         specific controls and use the global system, fixes scrollbutton
17786         bugs (for small sizes, disabled, etc)
17787         
17788         * ScrollBar.cs: does not show the thumb for very small controls
17789         (as MS) and allow smaller buttons that the regular size
17790
17791 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
17792
17793         * UpDownBase.cs: Add abstract methods for the interface.
17794         Add new virtual methods (need to be hooked up to TextEntry when it
17795         exists).
17796         Add override methods for most features.
17797         Computes the size, forces the height of the text entry.
17798
17799         * NumericUpDown.cs: Put here the current testing code.
17800
17801         * Set eol-style property on all files that do not have mixed line
17802         endings, to minimize the future problems.  There are still a few
17803         files with mixed endings, and someone should choose whether they
17804         want to move it or not.
17805
17806 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
17807
17808         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
17809         System.Colors
17810         
17811 2004-11-30  Ravindra <rkumar@novell.com>
17812
17813         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
17814         drawing and replaced use of SystemColors by theme colors.
17815         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
17816         * ListView.cs (ListViewItemCollection.Add): Throw exception when
17817         same ListViewItem is being added more than once.
17818
17819 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
17820
17821         * MonthCalendar.cs:
17822           - ControlStyles love to make the control not flicker
17823           
17824 2004-11-30  Peter Bartok  <pbartok@novell.com>
17825
17826         * CharacterCasing.cs: Added
17827
17828 2004-11-29  Peter Bartok  <pbartok@novell.com>
17829
17830         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
17831           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
17832           I am removing these files as they conflict with already completed
17833           work. While it is fantastic to get contributions to MWF, I
17834           respectfully ask that everyone please coordinate their contributions
17835           through mono-winforms-list or #mono-winforms at this time. We're
17836           explicitly avoiding stubbing and don't want controls that don't have
17837           their basic functionality implemented in svn. Please also see
17838           http://www.mono-project.com/contributing/winforms.html
17839
17840
17841 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
17842
17843         * Application.cs (ModalRun): Don't hang after exit.
17844
17845         * Theme.cs: New TreeViewDefaultSize property.
17846
17847         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
17848         with less hardcoded SystemColors constant.
17849         Implemented TreeViewDefaultSize.
17850
17851         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
17852         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
17853
17854
17855 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
17856
17857         * MonthCalendar.cs:
17858           - Fix NextMonthDate and PrevMonthDate click moving calendar
17859
17860 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
17861
17862         * MonthCalendar.cs:
17863           - Fix usage of ScrollChange Property when scrolling months
17864
17865 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
17866
17867         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
17868          - Fixes menu destroying
17869          - Support adding and removing items on already created menus
17870
17871 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
17872
17873         * MonthCalendar.cs:
17874           - Re-worked all bolded dates handling to match win32
17875         * ThemeWin32Classic.cs:
17876           - Fixed rendering with bolded dates
17877
17878 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
17879
17880         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
17881         - Horizontal scroolbar
17882         - Multicolumn
17883         - Fixes
17884
17885
17886 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
17887
17888         * MonthCalendar.cs:
17889           - Fix Usage of MaxSelectionCount from SelectionRange
17890           - Fixed Shift + Cursor Selection
17891           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
17892           - Fixed normal cursor selection to be compat with win32
17893           - Fixed Shift + Mouse Click selection
17894
17895 2004-11-24  Peter Bartok <pbartok@novell.com>
17896
17897         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
17898         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
17899         * XplatUIX11.cs:
17900           - CreatedKeyBoardMsg now updates keystate with Alt key
17901           - Added workaround for timer crash to CheckTimers, Jackson will
17902             develop a proper fix and check in later
17903           - Implemented DispatchMessage
17904           - Removed calling the native window proc from GetMessage (call
17905             now moved to DispatchMessage)
17906
17907         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
17908           the keydata (Fixes bug #69831)
17909
17910         * XplatUIWin32.cs:
17911           - (DispatchMessage): Switched to return IntPtr
17912           - Added DllImport for SetFocus
17913
17914 2004-11-24  Ravindra <rkumar@novell.com>
17915
17916         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
17917         background drawing.
17918         * ListViewItem.cs: Fixed various properties, calculations
17919         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
17920         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
17921         and some internal properties. Fixed MouseDown handler and Paint
17922         method.
17923
17924 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
17925
17926         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
17927
17928 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
17929
17930         * ContainerControl.cs: correct accidental check in of local changes
17931
17932 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
17933
17934         * ThemeWin32Classic.cs:
17935                 - Fixed Drawing Last month in grid (sometimes not showing)
17936         * MonthCalendar.cs:
17937                 - Fixed title width calculation bug (makeing title small)
17938
17939 2004-11-23  Peter Bartok <pbartok@novell.com>
17940
17941         * XplatUIX11.cs:
17942           - Added generation of WM_MOUSEHOVER event
17943           - Added missing assignment of async_method atom
17944           - Fixed WM_ERASEBKGND; now only redraws the exposed area
17945
17946 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
17947
17948         * ThemeWin32Classic.cs:
17949                 - Fixed Drawing of today circle when showtodaycircle not set
17950                 - fixed drawing of first and last month in the grid (gay dates)
17951         * MonthCalendar.cs:
17952                 - Fixed Drawing of today circle
17953                 - Fixed drawing of grady dates
17954                 - Fixed HitTest for today link when ShowToday set to false
17955                 - Fixed DefaultSize to obey ShowToday
17956
17957 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
17958
17959         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
17960         * System.Windows.Forms/Theme.cs
17961         * MonthCalendar.cs: added for MonthCalendar
17962         * SelectionRange.cs: added for MonthCalendar
17963         * Day.cs: added for MonthCalendar: added for MonthCalendar
17964         * DateRangeEventArgs.cs: added for MonthCalendar
17965         * DateRangeEventHandler.cs: added for MonthCalendar
17966
17967 2004-11-22  Ravindra <rkumar@novell.com>
17968
17969         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
17970         property.
17971
17972 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
17973
17974         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
17975         event handler.
17976         
17977         * NumericUpDown.cs: Added new implementation.
17978         * UpDownBase.cs: Added new implementation.
17979
17980         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
17981         implementations.
17982         
17983         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
17984         implementations.
17985
17986         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
17987         methods.
17988
17989 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
17990
17991         * Timer.cs  (Dispose): Should call the base dispose when
17992         overriding.
17993
17994 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
17995
17996         * ScrollBar.cs: updates thumb position when max, min or increment
17997         is changed
17998
17999 2004-11-21  Ravindra <rkumar@novell.com>
18000
18001         * ListView.cs: Implemented item selection, activation and
18002         column header style. Fixed properties to do a redraw, if
18003         required. Added support for MouseHover, DoubleClick, KeyDown
18004         and KeyUp event handling and some minor fixes.
18005         * ListViewItem.cs: Fixed constructor.
18006         * ThemeWin32Classic.cs: Improved drawing for ListView.
18007
18008 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18009
18010         * ThemeWin32Classic.cs: initial listbox drawing code
18011         * DrawMode.cs: new enumerator
18012         * ListControl.cs: stubbed class
18013         * ListBox.cs: initial implementation
18014         * Theme.cs: new methods definitions
18015         * SelectionMode.cs: new enumerator
18016
18017 2004-11-17  Peter Bartok  <pbartok@novell.com>
18018
18019         * XplatUIWin32.cs: Added double-click events to the class style
18020         * Control.cs (WndProc):
18021           - Added handling of click-count to MouseDown/ MouseUp events.
18022           - Added handling of middle and right mouse buttons
18023           - Removed old debug code
18024
18025 2004-11-17  Jackson Harper  <jackson@ximian.com>
18026
18027         * XplatUIX11.cs: Use the new Mono.Unix namespace.
18028
18029 2004-11-17  Ravindra <rkumar@novell.com>
18030
18031         * ListView.cs: Added event handling for MouseMove/Up/Down.
18032         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
18033         * ThemeWin32Classic.cs: We need to clear the graphics context and
18034         draw column header in a proper state.
18035
18036
18037 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
18038
18039         *  Menu.cs: fixes signature
18040
18041 2004-11-16  Peter Bartok  <pbartok@novell.com>
18042
18043         * XplatUIX11.cs (GetMessage): Implemented generation of
18044           double click mouse messages
18045
18046 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
18047
18048         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
18049         not by menu
18050
18051 2004-11-11  Peter Bartok  <pbartok@novell.com>
18052
18053         * HandleData.cs: Added Visible property
18054         * XplatUIX11.cs (IsVisible): Now uses Visible property from
18055           HandleData
18056         * XplatUIX11.cs: Removed old debug leftovers
18057         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
18058         * Control.cs (WndProc): Removed old debug leftovers,
18059           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
18060           needed WM_SIZE handling
18061
18062 2004-11-11  Jackson Harper  <jackson@ximian.com>
18063
18064         * OwnerDrawPropertyBag.cs:
18065         * TreeViewImageIndexConverter.cs: Initial implementation
18066
18067 2004-11-10  Jackson Harper  <jackson@ximian.com>
18068
18069         * ThemeWin32Classic.cs:
18070         * TabControl.cs: instead of moving tabs by the slider pos just
18071         start drawing at the tab that is offset by the slider. This way
18072         scrolling always moves by exactly one tab.
18073
18074 2004-11-10  Jackson Harper  <jackson@ximian.com>
18075
18076         * TabControl.cs: You can only scroll left when the slider has
18077         already ben moved right.
18078         
18079 2004-11-10  Jackson Harper  <jackson@ximian.com>
18080
18081         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
18082         the clip area.
18083         
18084 2004-11-10  Jackson Harper  <jackson@ximian.com>
18085
18086         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
18087         clip area.
18088         
18089 2004-11-09  Jackson Harper  <jackson@ximian.com>
18090
18091         * TabControl.cs (CalcXPos): New helper method so we can determine
18092         the proper place to start drawing vertical tabs.
18093         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
18094         
18095 2004-11-09  Jackson Harper  <jackson@ximian.com>
18096
18097         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
18098         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
18099         and Bottom, left and right are illegal values for this and
18100         multiline is enabled when the alignment is set to left or right.
18101         (DrawTab): Each alignment block should draw the text itself now
18102         because Left requires special love. Also add rendering for Left
18103         aligned tabs.
18104         
18105 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
18106
18107         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
18108         does not destroy the windows, removes debugging messages
18109
18110 2004-11-09  jba  <jba-mono@optusnet.com.au>
18111
18112         * ThemeWin32Classic.cs
18113         (DrawButtonBase): Fix verticle text rect clipping in windows
18114         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18115         rendering and incorrect text rect clipping
18116         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18117         rendering and incorrect text rect clipping
18118         
18119 2004-11-08  Jackson Harper  <jackson@ximian.com>
18120
18121         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
18122         bottom when they are bottom aligned so the bottoms of the tabs get
18123         displayed.
18124         * TabControl.cs (DropRow): Move rows up instead of down when the
18125         tab control is bottom aligned.
18126
18127 2004-11-08 13:59  pbartok
18128
18129         * XplatUIX11.cs:
18130           - Added handling for various window styles
18131           - Added handling for popup windows
18132           - Added SetTopmost handling
18133
18134 2004-11-08 13:55  pbartok
18135
18136         * XplatUIWin32.cs:
18137           - Added argument to SetTopmost method
18138           - Fixed broken ClientToScreen function
18139
18140 2004-11-08 13:53  pbartok
18141
18142         * XplatUIStructs.cs:
18143           - Added missing WS_EX styles
18144
18145 2004-11-08 13:53  pbartok
18146
18147         * XplatUI.cs, XplatUIDriver.cs:
18148           - Added argument to SetTopmost
18149
18150 2004-11-08 13:52  pbartok
18151
18152         * X11Structs.cs:
18153           - Added XSetWindowAttributes structure
18154           - Improved XWindowAttributes structure
18155           - Added SetWindowValuemask enum
18156           - Added window creation arguments enum
18157           - Added gravity enum
18158           - Added Motif hints structure
18159           - Added various Motif flags and enums
18160           - Added PropertyMode enum for property functions
18161
18162 2004-11-08 13:50  pbartok
18163
18164         * Form.cs:
18165           - Fixed arguments for updated SetTopmost method
18166
18167 2004-11-08 13:49  pbartok
18168
18169         * ToolTip.cs:
18170           - Fixed arguments for updated SetTopmost function
18171           - Fixed usage of PointToClient
18172
18173 2004-11-08 13:44  pbartok
18174
18175         * MenuAPI.cs:
18176           - Added Clipping of children and siblings
18177
18178 2004-11-08 13:41  pbartok
18179
18180         * MainMenu.cs:
18181           - Removed SetMenuBarWindow call. We do this in Form.cs
18182
18183 2004-11-08 13:40  jackson
18184
18185         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
18186           scrolling jimmi in the correct location with bottom aligned tabs
18187
18188 2004-11-08 13:36  pbartok
18189
18190         * ContainerControl.cs:
18191           - Implemented BindingContext
18192           - Implemented ParentForm
18193
18194 2004-11-08 12:46  jackson
18195
18196         * TabControl.cs: Put bottom rendered tabs in the right location
18197
18198 2004-11-08 07:15  jordi
18199
18200         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
18201           removes dead code
18202
18203 2004-11-05 17:30  jackson
18204
18205         * TabControl.cs: When selected tabs are expanded make sure they
18206           don't go beyond the edges of the tab control
18207
18208 2004-11-05 14:57  jackson
18209
18210         * TabControl.cs: Reset show_slider so if the control is resized to
18211           a size where it is no longer needed it's not displayed anymore
18212
18213 2004-11-05 13:16  jackson
18214
18215         * TabControl.cs: Make tab pages non visible when added to the
18216           control
18217
18218 2004-11-05 12:42  jackson
18219
18220         * TabControl.cs: Implement SizeMode.FillToRight
18221
18222 2004-11-05 12:16  jackson
18223
18224         * Control.cs: Do not call CreateHandle if the handle is already
18225           created
18226
18227 2004-11-05 11:46  jackson
18228
18229         * TabControl.cs: Remove superflous call to CalcTabRows
18230
18231 2004-11-05 09:07  jackson
18232
18233         * XplatUIX11.cs: Update for Mono.Posix changes
18234
18235 2004-11-05 07:00  ravindra
18236
18237         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
18238           scrolling.
18239
18240 2004-11-04 22:47  jba
18241
18242         * ThemeWin32Classic.cs:
18243           - Fix Button rendering for FlatStyle = Flat or Popup
18244           - Fix RadioButton and CheckBox rendering when Appearance = Button
18245             (normal and flatstyle).
18246           - Correct outer rectangle color when drawing focus rectangle
18247           - Adjust button bounds to be 1 px smaller when focused
18248           - Make button not draw sunken 3d border when pushed (windows compat)
18249           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
18250           - Offset the text in RadioButton and Checkbox when being rendered as
18251           a button.
18252           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
18253           radiobuttons
18254           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
18255           - Fixed disabled text rendering for normally rendered radiobuttons
18256
18257 2004-11-04 10:26  jackson
18258
18259         * TabControl.cs: Recalculate tab rows when resizing
18260
18261 2004-11-04 07:47  jordi
18262
18263         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
18264           collection completion, drawing issues, missing features
18265
18266 2004-11-04 05:03  ravindra
18267
18268         * ScrollBar.cs:
18269                 - We need to recalculate the Thumb area when
18270                 LargeChange/maximum/minimum values are changed.
18271           - We set the 'pos' in UpdatePos() method to minimum, if it's less
18272                 than minimum. This is required to handle the case if large_change is
18273                 more than max, and use LargeChange property instead of large_change
18274                 variable.
18275           - We return max+1 when large_change is more than max, like MS does.
18276
18277 2004-11-04 04:29  ravindra
18278
18279         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
18280                 - Changed default value signatures (prefixed all with ListView).
18281                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
18282                 ListView.
18283           - Fixed calculations for ListViewItem and implemented Clone()
18284           method.
18285
18286 2004-11-04 04:26  ravindra
18287
18288         * Theme.cs, ThemeWin32Classic.cs:
18289                 - Changed default ListView values signatures (prefixed all with
18290                 ListView).
18291           - Fixed default size values for VScrollBar and HScrollBar.
18292                 - Fixed DrawListViewItem method.
18293
18294 2004-11-04 04:05  ravindra
18295
18296         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
18297
18298 2004-11-04 04:04  ravindra
18299
18300         * ImageList.cs: Implemented the missing overload for Draw method.
18301
18302 2004-11-03 19:29  jackson
18303
18304         * TabControl.cs: Handle dropping rows on selection properly
18305
18306 2004-11-03 11:59  jackson
18307
18308         * TabControl.cs: remove debug code
18309
18310 2004-11-03 11:52  jackson
18311
18312         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
18313           the scrolly widgerywoo
18314
18315 2004-11-02 13:52  jackson
18316
18317         * TabControl.cs: Resize the tab pages and tabs when the tab control
18318           is resized
18319
18320 2004-11-02 13:40  jackson
18321
18322         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
18323           selected tab to the bottom
18324
18325 2004-11-02 13:39  jackson
18326
18327         * TabPage.cs: Store the tab pages row
18328
18329 2004-11-02 12:33  jordi
18330
18331         * MenuItem.cs: fixes handle creation
18332
18333 2004-11-02 11:42  jackson
18334
18335         * TabControl.cs: signature fix
18336
18337 2004-11-02 08:56  jackson
18338
18339         * TabControl.cs: Calculate whether the tab is on an edge properly.
18340           Remove top secret debugging code
18341
18342 2004-11-01 19:57  jackson
18343
18344         * TabControl.cs: Add click handling, and proper sizing
18345
18346 2004-11-01 19:47  jackson
18347
18348         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
18349           tab controls
18350
18351 2004-11-01 19:39  jackson
18352
18353         * TabPage.cs: add internal property to store the bounds of a tab
18354           page
18355
18356 2004-10-30 04:23  ravindra
18357
18358         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
18359           values.
18360
18361 2004-10-30 04:21  ravindra
18362
18363         * ListView.cs, ListViewItem.cs: Added support for scrolling and
18364           fixed calculations.
18365
18366 2004-10-30 03:06  pbartok
18367
18368         * XplatUIX11.cs:
18369           - Removed extension of DllImported libs
18370
18371 2004-10-29 09:55  jordi
18372
18373         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
18374           navigation, itemcollection completion, menu fixes
18375
18376 2004-10-27 22:58  pbartok
18377
18378         * XplatUIX11.cs:
18379           - Now throws a nice error message when no X display could be opened
18380
18381 2004-10-26 13:51  jordi
18382
18383         * ListView.cs: removes warning
18384
18385 2004-10-26 03:55  ravindra
18386
18387         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
18388           ThemeWin32Classic.cs: Some formatting for my last checkins.
18389
18390 2004-10-26 03:36  ravindra
18391
18392         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
18393           control and default values.
18394
18395 2004-10-26 03:35  ravindra
18396
18397         * Theme.cs: Added some default values for ListView control.
18398
18399 2004-10-26 03:33  ravindra
18400
18401         * ToolBar.cs: ToolBar should use the user specified button size, if
18402           there is any. Added a size_specified flag for the same.
18403
18404 2004-10-26 03:33  ravindra
18405
18406         * ColumnHeader.cs: Added some internal members and calculations for
18407           ColumnHeader.
18408
18409 2004-10-26 03:32  ravindra
18410
18411         * ListViewItem.cs: Calculations for ListViewItem.
18412
18413 2004-10-26 03:31  ravindra
18414
18415         * ListView.cs: Added some internal members and calculations for
18416           ListView.
18417
18418 2004-10-22 13:31  jordi
18419
18420         * MenuAPI.cs: speedup menus drawing
18421
18422 2004-10-22 13:16  jackson
18423
18424         * XplatUIX11.cs: Make sure to update exposed regions when adding an
18425           expose event
18426
18427 2004-10-22 11:49  jackson
18428
18429         * Control.cs: oops
18430
18431 2004-10-22 11:41  jackson
18432
18433         * Control.cs: Check to see if the window should have its background
18434           repainted by X when drawing.
18435
18436 2004-10-22 11:31  jackson
18437
18438         * XplatUIX11.cs: When invalidating areas only use XClearArea if
18439           clear is true, this way we do not get flicker from X repainting the
18440           background
18441
18442 2004-10-22 11:28  jackson
18443
18444         * XEventQueue.cs: Queue properly
18445
18446 2004-10-21 09:38  jackson
18447
18448         * XEventQueue.cs: Fix access modifier
18449
18450 2004-10-21 09:36  jackson
18451
18452         * XEventQueue.cs: Don't loose messages
18453
18454 2004-10-21 09:22  jackson
18455
18456         * XEventQueue.cs: Don't loose messages
18457
18458 2004-10-20 04:15  jordi
18459
18460         * BootMode.cs: enum need it by SystemInfo
18461
18462 2004-10-19 21:58  pbartok
18463
18464         * XplatUIWin32.cs:
18465           - Small sanity check
18466
18467 2004-10-19 21:56  pbartok
18468
18469         * Form.cs:
18470           - Added private FormParentWindow class which acts as the container
18471             for our form and as the non-client area where menus are drawn
18472           - Added/Moved required tie-ins to Jordi's menus
18473           - Fixed/Implemented the FormStartPosition functionality
18474
18475 2004-10-19 21:52  pbartok
18476
18477         * Control.cs:
18478           - Removed unneeded locals
18479           - Added code to all size and location properties to understand and
18480             deal with the parent container of Form
18481
18482 2004-10-19 21:33  pbartok
18483
18484         * Application.cs:
18485           - Fixed to deal with new Form subclasses for menus
18486
18487 2004-10-19 17:48  jackson
18488
18489         * XEventQueue.cs: commit correct version of file
18490
18491 2004-10-19 16:50  jackson
18492
18493         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
18494
18495 2004-10-19 16:15  jordi
18496
18497         * MenuAPI.cs: MenuBarCalcSize returns the height
18498
18499 2004-10-19 08:31  pbartok
18500
18501         * Control.cs:
18502           - Added missing call to PreProcessMessage before calling OnXXXKey
18503           methods
18504
18505 2004-10-19 00:04  ravindra
18506
18507         * ToolTip.cs: Fixed constructor.
18508
18509 2004-10-18 09:31  jordi
18510
18511         * MenuAPI.cs: menuitems in menubars do not have shortcuts
18512
18513 2004-10-18 09:26  jordi
18514
18515         * MenuItem.cs: fixes MenuItem class signature
18516
18517 2004-10-18 08:56  jordi
18518
18519         * MenuAPI.cs: prevents windows from showing in the taskbar
18520
18521 2004-10-18 00:28  ravindra
18522
18523         * ToolTip.cs: Suppressed a warning message.
18524
18525 2004-10-18 00:27  ravindra
18526
18527         * Control.cs: Default value of visible property must be true.
18528
18529 2004-10-17 23:19  pbartok
18530
18531         * ToolTip.cs:
18532           - Complete implementation
18533
18534 2004-10-17 23:19  pbartok
18535
18536         * XplatUIX11.cs:
18537           - Added EnableWindow method
18538           - Added SetModal stub
18539           - Added generation of WM_ACTIVATE message (still needs testing)
18540           - Added SetTopMost stub
18541           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
18542
18543 2004-10-17 23:17  pbartok
18544
18545         * XplatUIWin32.cs:
18546           - Removed VirtualKeys to XplatUIStructs
18547           - Implemented SetTopMost method
18548           - Implemented EnableWindow method
18549           - Bugfix in ScreenToClient()
18550           - Bugfixes in ClientToScreen()
18551
18552 2004-10-17 22:51  pbartok
18553
18554         * XplatUIStructs.cs:
18555           - Added WS_EX styles to WindowStyles enumeration
18556
18557 2004-10-17 22:50  pbartok
18558
18559         * XplatUI.cs, XplatUIDriver.cs:
18560           - Added method for enabling/disabling windows
18561           - Added method for setting window modality
18562           - Added method for setting topmost window
18563
18564 2004-10-17 22:49  pbartok
18565
18566         * ThemeWin32Classic.cs:
18567           - Added ToolTip drawing code
18568
18569 2004-10-17 22:49  pbartok
18570
18571         * Theme.cs:
18572           - Added ToolTip abstracts
18573
18574 2004-10-17 22:47  pbartok
18575
18576         * Form.cs:
18577           - Fixed Form.ControlCollection to handle owner relations
18578           - Added Owner/OwnedForms handling
18579           - Implemented Z-Ordering for owned forms
18580           - Removed unneeded private overload of ShowDialog
18581           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
18582             so I hope)
18583           - Fixed Close(), had wrong default
18584           - Added firing of OnLoad event
18585           - Added some commented out debug code for Ownership handling
18586
18587 2004-10-17 22:16  pbartok
18588
18589         * Control.cs:
18590           - Fixed/implemented flat list of controls
18591
18592 2004-10-17 22:14  pbartok
18593
18594         * Application.cs:
18595           - Added code to simulate modal dialogs on Win32
18596
18597 2004-10-17 16:11  jordi
18598
18599         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
18600           mouse event
18601
18602 2004-10-17 13:39  jordi
18603
18604         * MenuAPI.cs: menu drawing fixes
18605
18606 2004-10-15 09:10  ravindra
18607
18608         * StructFormat.cs: General Enum.
18609
18610 2004-10-15 09:09  ravindra
18611
18612         * SizeGripStyle.cs: Enum for Form.
18613
18614 2004-10-15 09:08  ravindra
18615
18616         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
18617           in Theme for ListView.
18618
18619 2004-10-15 09:06  ravindra
18620
18621         * ColumnHeader.cs: Flushing some formatting changes.
18622
18623 2004-10-15 09:05  ravindra
18624
18625         * ListViewItem.cs: Implemented GetBounds method and fixed coding
18626           style.
18627
18628 2004-10-15 09:03  ravindra
18629
18630         * ListView.cs: Implemented Paint method and fixed coding style.
18631
18632 2004-10-15 07:34  jordi
18633
18634         * MenuAPI.cs: fix for X11
18635
18636 2004-10-15 07:32  ravindra
18637
18638         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
18639                 - Renamed Paint() method to Draw() for clarity. Also, moved
18640                 DrawImage() to OnPaint().
18641
18642 2004-10-15 07:25  ravindra
18643
18644         * CheckBox.cs, RadioButton.cs:
18645                 - Removed Redraw (), we get it from ButtonBase.
18646                 - Implemented Paint (), to do class specific painting.
18647
18648 2004-10-15 07:16  ravindra
18649
18650         * ButtonBase.cs:
18651                 - Redraw () is not virtual now.
18652                 - Added an internal virtual method Paint (), so that
18653                 derived classes can do their painting on their own.
18654                 - Modified OnPaint () to call Paint ().
18655
18656 2004-10-15 06:43  jordi
18657
18658         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
18659           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
18660
18661 2004-10-15 00:30  ravindra
18662
18663         * MessageBox.cs:
18664                 - MessageBox on windows does not have min/max buttons.
18665                 This change in CreateParams fixes this on Windows. We
18666                 still need to implement this windowstyle behavior in
18667                 our X11 driver.
18668
18669 2004-10-14 05:14  ravindra
18670
18671         * ToolBar.cs:
18672                 - Changed Redraw () to do a Refresh () always.
18673                 - Fixed the MouseMove event handling when mouse is pressed,
18674                 ie drag event handling.
18675                 - Replaced the usage of ToolBarButton.Pressed property to
18676                 ToolBarButton.pressed internal variable.
18677
18678 2004-10-14 05:10  ravindra
18679
18680         * ToolBarButton.cs:
18681                 - Added an internal member 'inside' to handle mouse move
18682                 with mouse pressed ie mouse drag event.
18683                 - Changed 'Pressed' property to return true only when
18684                 'inside' and 'pressed' are both true.
18685                 - Some coding style love.
18686
18687 2004-10-14 00:17  ravindra
18688
18689         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
18690           public method.
18691
18692 2004-10-14 00:15  ravindra
18693
18694         * ButtonBase.cs: Redraw () related improvements.
18695
18696 2004-10-14 00:14  ravindra
18697
18698         * MessageBox.cs: Moved InitFormSize () out of Paint method and
18699           removed unnecessary calls to Button.Show () method.
18700
18701 2004-10-13 17:50  pbartok
18702
18703         * XplatUIX11.cs:
18704           - Formatting fix
18705           - Removed destroying of window until we solve the problem of X
18706             destroying the window before us on shutdown
18707
18708 2004-10-13 16:32  pbartok
18709
18710         * ButtonBase.cs:
18711           - Now Redraws on MouseUp for FlatStyle Flat and Popup
18712
18713 2004-10-13 14:18  pbartok
18714
18715         * XplatUIX11.cs:
18716           - Added code to destroy the X window
18717
18718 2004-10-13 14:18  pbartok
18719
18720         * XplatUIWin32.cs:
18721           - Added code to destroy a window
18722
18723 2004-10-13 14:12  pbartok
18724
18725         * ButtonBase.cs:
18726           - Added the Redraw on Resize that got dropped in the last rev
18727
18728 2004-10-13 09:06  pbartok
18729
18730         * ThemeWin32Classic.cs:
18731           - Path from John BouAntoun:
18732             * Fix check rendering (centre correctly for normal style, offset
18733               correctly for FlatStyle).
18734             * Fix border color usage (use backcolor) for FlatStyle.Popup
18735             * Use checkbox.Capture instead of checkbox.is_pressed when
18736               rendering flatstyle states.
18737
18738 2004-10-12 21:48  pbartok
18739
18740         * ThemeWin32Classic.cs:
18741           - Removed all occurences of SystemColors and replaced them with the
18742             matching theme color
18743
18744 2004-10-12 21:41  pbartok
18745
18746         * ThemeWin32Classic.cs:
18747           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
18748             him using the function for flatstyle drawing
18749           - Changed functions to use the new version of CPDrawBorder3D
18750
18751 2004-10-12 21:15  pbartok
18752
18753         * ControlPaint.cs:
18754           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
18755             match MS documentation. They need to return defined colors if the
18756             passed color matches the configured control color. Thanks to John
18757             BouAntoun for pointing this out.
18758
18759 2004-10-12 20:57  pbartok
18760
18761         * Control.cs:
18762           - Fix from John BouAntoun: Raise ForeColorChanged event when text
18763             color is changed
18764
18765 2004-10-12 20:46  pbartok
18766
18767         * CheckBox.cs:
18768           - Fix from John BouAntoun: Now properly sets the Appearance property
18769
18770 2004-10-12 20:45  pbartok
18771
18772         * ThemeWin32Classic.cs:
18773           - Fixes from John BouAntoun: now handles forecolors and backcolors
18774             for flatstyle rendered controls much better; It also fixes normal
18775             checkbox rendering when pushed or disabled.
18776
18777 2004-10-08 02:50  jordi
18778
18779         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
18780           work
18781
18782 2004-10-07 08:56  jordi
18783
18784         * ThemeWin32Classic.cs: Removes deletion of cached brushes
18785
18786 2004-10-06 03:59  jordi
18787
18788         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
18789           XplatUIWin32.cs: removes warnings from compilation
18790
18791 2004-10-05 12:23  jackson
18792
18793         * RadioButton.cs: Fix ctor
18794
18795 2004-10-05 11:10  pbartok
18796
18797         * MessageBox.cs:
18798           - Partial implementation by Benjamin Dasnois
18799
18800 2004-10-05 10:15  jackson
18801
18802         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
18803           by John BouAntoun
18804
18805 2004-10-05 03:07  ravindra
18806
18807         * ToolBar.cs:
18808                 - Removed a private method, Draw ().
18809                 - Fixed the ButtonDropDown event handling.
18810                 - Fixed MouseMove event handling.
18811
18812 2004-10-05 03:04  ravindra
18813
18814         * ThemeWin32Classic.cs:
18815                 - Added DrawListView method and ListViewDefaultSize property.
18816                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
18817                 - Changed DOS style CRLF to Unix format (dos2unix).
18818
18819 2004-10-05 03:03  ravindra
18820
18821         * Theme.cs:
18822                 - Added DrawListView method and ListViewDefaultSize property.
18823
18824 2004-10-05 02:42  ravindra
18825
18826         * ToolBarButton.cs: Added an internal member dd_pressed to handle
18827           clicks on DropDown arrow.
18828
18829 2004-10-04 22:56  jackson
18830
18831         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
18832           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
18833           Control handle the buffers, derived classes should not have to
18834           CreateBuffers themselves.
18835
18836 2004-10-04 21:20  jackson
18837
18838         * StatusBar.cs: The control handles resizing the buffers now.
18839
18840 2004-10-04 21:18  jackson
18841
18842         * Control.cs: When resizing the buffers should be invalidated. This
18843           should be handled in Control not in derived classes.
18844
18845 2004-10-04 14:45  jackson
18846
18847         * TabPage.cs: oops
18848
18849 2004-10-04 02:14  pbartok
18850
18851         * LeftRightAlignment.cs:
18852           - Initial check-in
18853
18854 2004-10-04 01:09  jordi
18855
18856         * ThemeWin32Classic.cs: fixes right button position causing right
18857           button not showing on horizontal scrollbars
18858
18859 2004-10-02 13:12  pbartok
18860
18861         * XplatUIX11.cs:
18862           - Simplified the Invalidate method by using an X call instead of
18863             generating the expose ourselves
18864           - Added an expose when the window background is changed
18865           - Implemented ClientToScreen method
18866
18867 2004-10-02 13:08  pbartok
18868
18869         * XplatUIWin32.cs:
18870           - Added Win32EnableWindow method (test for implementing modal
18871           dialogs)
18872           - Added ClientToScreen method and imports
18873
18874 2004-10-02 13:07  pbartok
18875
18876         * XplatUI.cs, XplatUIDriver.cs:
18877           - Added ClientToScreen coordinate translation method
18878
18879 2004-10-02 13:06  pbartok
18880
18881         * KeyPressEventArgs.cs:
18882           - Fixed access level for constructor
18883
18884 2004-10-02 13:06  pbartok
18885
18886         * NativeWindow.cs:
18887           - Changed access level for the window_collection hash table
18888
18889 2004-10-02 13:05  pbartok
18890
18891         * Form.cs:
18892           - Added KeyPreview property
18893           - Added Menu property (still incomplete, pending Jordi's menu work)
18894           - Implemented ProcessCmdKey
18895           - Implemented ProcessDialogKey
18896           - Implemented ProcessKeyPreview
18897
18898 2004-10-02 13:02  pbartok
18899
18900         * Control.cs:
18901           - Added private method to get the Control object from the window
18902           handle
18903           - Implemented ContextMenu property
18904           - Implemented PointToScreen
18905           - Implemented PreProcessMessage
18906           - Implemented IsInputChar
18907           - Implemented IsInputKey
18908           - Implemented ProcessCmdKey
18909           - Completed ProcessKeyEventArgs
18910           - Fixed message loop to call the proper chain of functions on key
18911           events
18912           - Implemented ProcessDialogChar
18913           - Implemented ProcessDialogKey
18914           - Implemented ProcessKeyMessage
18915           - Implemented ProcessKeyPreview
18916           - Added RaiseDragEvent stub (MS internal method)
18917           - Added RaiseKeyEvent stub (MS internal method)
18918           - Added RaiseMouseEvent stub (MS Internal method)
18919           - Added RaisePaintEvent stub (MS Internal method)
18920           - Added ResetMouseEventArgs stub (MS Internal method)
18921           - Implemented RtlTranslateAlignment
18922           - Implemented RtlTranslateContent
18923           - Implemented RtlTranslateHorizontal
18924           - Implemented RtlTranslateLeftRight
18925           - Added generation of KeyPress event
18926
18927 2004-10-02 05:57  ravindra
18928
18929         * ListViewItem.cs: Added attributes.
18930
18931 2004-10-02 05:32  ravindra
18932
18933         * ListView.cs: Added attributes.
18934
18935 2004-10-01 11:53  jackson
18936
18937         * Form.cs: Implement the Close method so work on MessageBox can
18938           continue.
18939
18940 2004-09-30 14:06  pbartok
18941
18942         * XplatUIX11.cs:
18943           - Bug fixes
18944
18945 2004-09-30 11:34  jackson
18946
18947         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
18948
18949 2004-09-30 07:26  ravindra
18950
18951         * ListViewItemConverter.cs: Converter for ListViewItem.
18952
18953 2004-09-30 07:26  ravindra
18954
18955         * SortOrder.cs: Enum for ListView control.
18956
18957 2004-09-30 07:25  ravindra
18958
18959         * ColumnHeader.cs: Supporting class for ListView control.
18960
18961 2004-09-30 07:24  ravindra
18962
18963         * ListView.cs, ListViewItem.cs: Initial implementation.
18964
18965 2004-09-30 07:20  ravindra
18966
18967         * ItemActivation.cs: Enum for ListView Control.
18968
18969 2004-09-29 20:29  pbartok
18970
18971         * XplatUIX11.cs:
18972           - Added lookup of pixel value for background color; tries to get a
18973             color 'close' to the requested color, it avoids having to create a
18974             colormap.  Depending on the display this could mean the used color
18975             is slightly off the desired color. Might have to change it to a more
18976             resource intensive colormap approach, but it will work as a
18977           workaround to avoid red screens.
18978
18979 2004-09-29 14:27  jackson
18980
18981         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
18982
18983 2004-09-28 12:44  pbartok
18984
18985         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
18986           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
18987           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
18988           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
18989           TrackBar.cs, VScrollBar.cs:
18990           - Streamlined Theme interfaces:
18991             * Each DrawXXX method for a control now is passed the object for
18992               the control to be drawn in order to allow accessing any state the
18993               theme might require
18994
18995             * ControlPaint methods for the theme now have a CP prefix to avoid
18996               name clashes with the Draw methods for controls
18997
18998             * Every control now retrieves it's DefaultSize from the current
18999             theme
19000
19001 2004-09-28 12:17  jackson
19002
19003         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
19004           drawing
19005
19006 2004-09-24 14:57  jackson
19007
19008         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
19009           Gives us a nice little performance boost.
19010
19011 2004-09-24 12:02  jackson
19012
19013         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
19014           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
19015           Control and supporting classes. Initial checkin
19016
19017 2004-09-23 13:08  jackson
19018
19019         * Form.cs: Temp build fixage
19020
19021 2004-09-23 01:39  ravindra
19022
19023         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
19024           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
19025           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
19026           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
19027           EventHandlers needed by ListView Control.
19028
19029 2004-09-22 14:12  pbartok
19030
19031         * ScrollableControl.cs:
19032           - Implemented DockPadding property
19033           - Implemented AutoScroll property
19034           - Implemented AutoScrollMargin property
19035           - Implemented AutoScrollMinSize property
19036           - Implemented AutoScrollPosition property
19037           - Implemented DisplayRectangle property (still incomplete)
19038           - Implemented CreateParams property
19039           - Implemented HScroll property
19040           - Implemented VScroll property
19041           - Implemented OnVisibleChanged property
19042
19043 2004-09-22 14:09  pbartok
19044
19045         * Form.cs:
19046           - Added Form.ControllCollection class
19047           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
19048             RemoveOwnedForm (still incomplete, missing on-top and common
19049             minimize/maximize behaviour)
19050           - Added StartPosition property (still incomplete, does not use when
19051             creating the form)
19052           - Added ShowDialog() methods (still incomplete, missing forcing the
19053             dialog modal)
19054
19055 2004-09-22 14:05  pbartok
19056
19057         * Application.cs:
19058           - Added message loop for modal dialogs
19059
19060 2004-09-22 14:02  pbartok
19061
19062         * GroupBox.cs:
19063           - Fixed wrong types for events
19064
19065 2004-09-22 14:00  pbartok
19066
19067         * Shortcut.cs, FormWindowState.cs:
19068           - Fixed wrong values
19069
19070 2004-09-22 12:01  jackson
19071
19072         * Control.cs: Text is never null
19073
19074 2004-09-20 22:14  pbartok
19075
19076         * XplatUIWin32.cs:
19077           - Fixed accessibility level for Idle handler
19078
19079 2004-09-20 18:54  jackson
19080
19081         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19082           XplatUIX11.cs: New message loop that uses poll so we don't get a
19083           busy loop
19084
19085 2004-09-17 10:43  pbartok
19086
19087         * ScrollBar.cs:
19088           - Fixed behaviour of arrow buttons. Now properly behaves like
19089             Buttons (and like Microsoft's scrollbar arrow buttons)
19090
19091 2004-09-17 10:14  pbartok
19092
19093         * ScrollBar.cs:
19094           - Added missing release of keyboard/mouse capture
19095
19096 2004-09-17 06:18  jordi
19097
19098         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
19099           Theme.cs: Very early menu support
19100
19101 2004-09-16 17:45  pbartok
19102
19103         * XplatUIWin32.cs:
19104           - Fixed sending a window to the front
19105           - Added overload for SetWindowPos to avoid casting
19106
19107 2004-09-16 17:44  pbartok
19108
19109         * Control.cs:
19110           - Added SendToBack and BringToFront methods
19111
19112 2004-09-16 07:00  ravindra
19113
19114         * Copyright: Added Novell URL.
19115
19116 2004-09-16 07:00  ravindra
19117
19118         * ToolBar.cs: Invalidate should be done before redrawing.
19119
19120 2004-09-15 21:19  ravindra
19121
19122         * ColumnHeaderStyle.cs: Enum for ListView Control.
19123
19124 2004-09-15 21:18  ravindra
19125
19126         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
19127           ListView Control.
19128
19129 2004-09-13 18:26  jackson
19130
19131         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
19132           properly
19133
19134 2004-09-13 18:13  jackson
19135
19136         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
19137           a second thread and post messages into the main threads message
19138           queue. This makes timing much more consistent. Both win2K and XP
19139           have a minimum timer value of 15 milliseconds, so we now do this
19140           too.
19141
19142 2004-09-13 15:18  pbartok
19143
19144         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19145           XplatUIX11.cs:
19146           - Added Z-Ordering methods
19147
19148 2004-09-13 10:56  pbartok
19149
19150         * Form.cs:
19151           - Fixed #region names
19152           - Moved properties and methods into their proper #regions
19153
19154 2004-09-13 10:51  pbartok
19155
19156         * Form.cs:
19157           - Added Accept and CancelButton properties
19158           - Added ProcessDialogKey() method
19159
19160 2004-09-13 08:18  pbartok
19161
19162         * IWindowTarget.cs:
19163           - Initial check-in
19164
19165 2004-09-10 21:50  pbartok
19166
19167         * Control.cs:
19168           - Added DoDragDrop() [incomplete]
19169           - Properly implemented 'Visible' handling
19170           - Added SetVisibleCore()
19171           - Implemented FindChildAtPoint()
19172           - Implemented GetContainerControl()
19173           - Implemented Hide()
19174
19175 2004-09-10 19:28  pbartok
19176
19177         * Control.cs:
19178           - Moved methods into their appropriate #regions
19179           - Reordered methods within regions alphabetically
19180
19181 2004-09-10 18:57  pbartok
19182
19183         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19184           - Added method to retrieve text from window
19185
19186 2004-09-10 18:56  pbartok
19187
19188         * Control.cs:
19189           - Moved some internal functions into the internal region
19190           - Implemented FontHeight
19191           - Implemented RenderRightToLeft
19192           - Implemented ResizeRedraw
19193           - Implemented ShowFocusCues
19194           - Implemented ShowKeyboardCues
19195           - Implemented FromChildHandle
19196           - Implemented FromHandle
19197           - Implemented IsMnemonic
19198           - Implemented ReflectMessage
19199           - All public and protected Static Methods are now complete
19200
19201 2004-09-10 16:54  pbartok
19202
19203         * Control.cs:
19204           - Implemented remaining missing public instance properties
19205           - Alphabetized some out of order properties
19206
19207 2004-09-10 05:51  ravindra
19208
19209         * PictureBox.cs: Added a check for null image.
19210
19211 2004-09-10 00:59  jordi
19212
19213         * GroupBox.cs: remove cvs tag
19214
19215 2004-09-09 05:25  ravindra
19216
19217         * ToolBar.cs: Make redraw accessible from ToolBarButton.
19218
19219 2004-09-09 05:23  ravindra
19220
19221         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
19222           parent redraw.
19223
19224 2004-09-09 02:28  pbartok
19225
19226         * ThemeWin32Classic.cs:
19227           - Improve disabled string look
19228
19229 2004-09-09 01:15  jordi
19230
19231         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
19232           args and handler
19233
19234 2004-09-08 23:56  ravindra
19235
19236         * ItemBoundsPortion.cs: It's enum, not a class!
19237
19238 2004-09-08 23:47  ravindra
19239
19240         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
19241           Enums for Form.
19242
19243 2004-09-08 21:13  ravindra
19244
19245         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
19246           ListView control.
19247
19248 2004-09-08 21:03  ravindra
19249
19250         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
19251           avoid crash.
19252
19253 2004-09-08 21:01  ravindra
19254
19255         * ScrollableControl.cs: Removed unreachable code.
19256
19257 2004-09-08 06:45  jordi
19258
19259         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
19260
19261 2004-09-08 01:00  jackson
19262
19263         * XplatUIX11.cs: Only run the timers when updating the message
19264           queue. This effectively gives X messages a higher priority then
19265           timer messages. Timers still need love though
19266
19267 2004-09-07 14:01  jackson
19268
19269         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
19270           this for us and the handle is no longer valid.
19271
19272 2004-09-07 13:59  jackson
19273
19274         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
19275           loop that manages to not crash. TODO: Add poll and cleanup timers
19276
19277 2004-09-07 11:12  jordi
19278
19279         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
19280
19281 2004-09-07 03:40  jordi
19282
19283         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
19284           fixes, methods, multiple links
19285
19286 2004-09-06 06:55  jordi
19287
19288         * Control.cs: Caches ClientRectangle rectangle value
19289
19290 2004-09-05 02:03  jordi
19291
19292         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
19293           certain situations
19294
19295 2004-09-04 11:10  jordi
19296
19297         * Label.cs: Refresh when font changed
19298
19299 2004-09-02 16:24  pbartok
19300
19301         * Control.cs:
19302           - Added sanity check to creation of double buffer bitmap
19303
19304 2004-09-02 16:24  pbartok
19305
19306         * ButtonBase.cs:
19307           - Fixed selection of text color
19308           - Fixed handling of resize event; now properly recreates double
19309             buffering bitmap
19310           - Added missing assignment of TextAlignment
19311           - Added proper default for TextAlignment
19312
19313 2004-09-02 14:26  pbartok
19314
19315         * RadioButton.cs:
19316           - Added missing RadioButton.RadioButtonAccessibleObject class
19317
19318 2004-09-02 14:26  pbartok
19319
19320         * Control.cs:
19321           - Added missing Control.ControlAccessibleObject class
19322           - Started to implement Select()ion mechanisms, still very incomplete
19323
19324 2004-09-02 14:25  pbartok
19325
19326         * AccessibleObject.cs:
19327           - Added missing methods
19328
19329 2004-09-02 14:23  pbartok
19330
19331         * AccessibleNavigation.cs, AccessibleSelection.cs:
19332           - Initial check-in
19333
19334 2004-09-02 10:32  jordi
19335
19336         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
19337           pool for pens, brushes, and hatchbruses
19338
19339 2004-09-01 15:30  jackson
19340
19341         * StatusBar.cs: Fix typo
19342
19343 2004-09-01 14:44  pbartok
19344
19345         * RadioButton.cs:
19346           - Fixed state
19347
19348 2004-09-01 14:39  pbartok
19349
19350         * Button.cs, RadioButton.cs:
19351           - Functional initial check-in
19352
19353 2004-09-01 14:01  pbartok
19354
19355         * CheckBox.cs:
19356           - Added missing default
19357           - Added missing region mark
19358
19359 2004-09-01 09:10  jordi
19360
19361         * Label.cs: fixes method signatures, new methods, events, fixes
19362           autosize
19363
19364 2004-09-01 07:19  jordi
19365
19366         * Control.cs: Init string variables with an empty object
19367
19368 2004-09-01 04:20  jordi
19369
19370         * Control.cs: fires OnFontChanged event
19371
19372 2004-08-31 20:07  pbartok
19373
19374         * ButtonBase.cs:
19375           - Enabled display of strings
19376
19377 2004-08-31 20:05  pbartok
19378
19379         * Form.cs:
19380           - Added (partial) implementation of DialogResult; rest needs to be
19381             implemented when the modal loop code is done
19382
19383 2004-08-31 19:55  pbartok
19384
19385         * CheckBox.cs:
19386           - Fixed to match the removal of the needs_redraw concept
19387
19388 2004-08-31 19:55  pbartok
19389
19390         * ButtonBase.cs:
19391           - Removed the rather odd split between 'needs redraw' and redrawing
19392           - Now handles the events that require regeneration (ambient
19393             properties and size)
19394
19395 2004-08-31 19:41  pbartok
19396
19397         * Control.cs:
19398           - Added firing of BackColorChanged event
19399           - Added TopLevelControl property
19400           - Fixed handling of WM_ERASEBKGRND message
19401
19402 2004-08-31 12:49  pbartok
19403
19404         * ButtonBase.cs:
19405           - Removed debug
19406           - Minor fixes
19407
19408 2004-08-31 12:48  pbartok
19409
19410         * CheckBox.cs:
19411           - Finished (famous last words)
19412
19413 2004-08-31 04:35  jordi
19414
19415         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
19416           scrolling bugs, adds new methods
19417
19418 2004-08-30 14:42  pbartok
19419
19420         * CheckBox.cs:
19421           - Implemented CheckBox drawing code
19422
19423 2004-08-30 14:42  pbartok
19424
19425         * ButtonBase.cs:
19426           - Made Redraw() and CheckRedraw() virtual
19427           - Improved mouse up/down/move logic to properly track buttons
19428
19429 2004-08-30 09:44  pbartok
19430
19431         * CheckBox.cs:
19432           - Updated to fix broken build. Not complete yet.
19433
19434 2004-08-30 09:28  pbartok
19435
19436         * CheckState.cs:
19437           - Initial checkin
19438
19439 2004-08-30 09:17  pbartok
19440
19441         * Appearance.cs:
19442           - Initial check-in
19443
19444 2004-08-27 16:12  ravindra
19445
19446         * ToolBarButton.cs: Added TypeConverter attribute.
19447
19448 2004-08-27 16:07  ravindra
19449
19450         * ImageIndexConverter.cs: Implemented.
19451
19452 2004-08-27 14:17  pbartok
19453
19454         * Control.cs:
19455           - Removed unneeded stack vars
19456           - First attempt to fix sizing issues when layout is suspended
19457
19458 2004-08-25 15:35  jordi
19459
19460         * ScrollBar.cs: more fixes to scrollbar
19461
19462 2004-08-25 14:04  ravindra
19463
19464         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
19465           Added the missing divider code and grip for ToolBar Control.
19466
19467 2004-08-25 13:20  pbartok
19468
19469         * Control.cs:
19470           - Control now properly passes the ambient background color to child
19471             controls
19472
19473 2004-08-25 13:20  jordi
19474
19475         * ScrollBar.cs: small bug fix regarding bar position
19476
19477 2004-08-25 12:33  pbartok
19478
19479         * Timer.cs:
19480           - Now only calls SetTimer or KillTimer if the enabled state has
19481           changed
19482
19483 2004-08-25 12:33  pbartok
19484
19485         * XplatUIWin32.cs:
19486           - Fixed timer handling, now seems to work
19487           - Improved error message for window creation
19488
19489 2004-08-25 12:32  pbartok
19490
19491         * Control.cs:
19492           - Fixed generation of MouseUp message
19493
19494 2004-08-25 12:29  jordi
19495
19496         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
19497           and fixes for progressbar
19498
19499 2004-08-24 18:43  ravindra
19500
19501         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
19502           in ToolBar control.
19503
19504 2004-08-24 17:15  pbartok
19505
19506         * Panel.cs:
19507           - Added #region
19508           - Added missing events
19509           - Alphabetized
19510
19511 2004-08-24 17:14  pbartok
19512
19513         * StatusBar.cs, PictureBox.cs:
19514           - Now uses Control's CreateParams
19515
19516 2004-08-24 16:36  pbartok
19517
19518         * XplatUIX11.cs:
19519           - Fixed background color handling
19520           - Fixed sending of enter/leave events on a grab
19521
19522 2004-08-24 16:35  pbartok
19523
19524         * X11Structs.cs:
19525           - Refined definitions for CrossingEvent
19526
19527 2004-08-24 12:37  jordi
19528
19529         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
19530           formmating, methods signature, and adds missing events
19531
19532 2004-08-24 12:24  jordi
19533
19534         * Control.cs: fire OnEnabledChanged event
19535
19536 2004-08-24 11:17  pbartok
19537
19538         * XplatUIWin32.cs:
19539           - Implemented SetTimer() and KillTimer()
19540
19541 2004-08-24 11:16  pbartok
19542
19543         * XplatUIX11.cs:
19544           - Now uses Remove instead of Add to kill the timer
19545
19546 2004-08-24 10:16  jackson
19547
19548         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
19549           picture boxes in the theme now. Draw picture box borders and obey
19550           sizing modes
19551
19552 2004-08-24 05:49  jackson
19553
19554         * Timer.cs: Remove top secret debugging code
19555
19556 2004-08-24 05:34  jackson
19557
19558         * PictureBox.cs: Temp hack to make picture boxes draw their full
19559           image
19560
19561 2004-08-24 05:29  jackson
19562
19563         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19564           XplatUIX11.cs: Move timers to the driver level. On X they are
19565           queued by the driver and checked on idle.
19566
19567 2004-08-24 01:07  jackson
19568
19569         * XplatUIX11.cs: Use a queue for async messages instead of passing
19570           them as ClientMessages since that was totally broken. Also simply
19571           check for events and return an idle message if none are found. This
19572           gives us an idle handler, and prevents deadlocking when no messages
19573           are in the queue.
19574
19575 2004-08-23 18:19  ravindra
19576
19577         * XplatUIWin32.cs: Removed the unwanted destructor.
19578
19579 2004-08-23 17:27  pbartok
19580
19581         * ButtonBase.cs:
19582           - Finishing touches. Works now, just needs some optimizations.
19583
19584 2004-08-23 16:53  jordi
19585
19586         * ScrollBar.cs: small fix
19587
19588 2004-08-23 16:45  pbartok
19589
19590         * Application.cs:
19591           - Removed debug output
19592           - Simplifications
19593
19594 2004-08-23 16:43  jordi
19595
19596         * ScrollBar.cs: [no log message]
19597
19598 2004-08-23 16:10  pbartok
19599
19600         * Form.cs:
19601           - Fixed handling of WM_CLOSE message
19602           - Removed debug output
19603
19604 2004-08-23 16:09  pbartok
19605
19606         * Application.cs:
19607           - Added handling of Idle event
19608           - Added handling of form closing
19609           - Fixed reporting of MessageLoop property
19610           - Removed some unneeded code, should provide a bit of a speedup
19611
19612 2004-08-23 15:22  pbartok
19613
19614         * Control.cs:
19615           - Added InitLayout() method
19616           - Added code to properly perform layout when Anchor or Dock property
19617             is changed
19618           - Changed 'interpretation' of ResumeLayout. MS seems to have a
19619             LAMESPEC, tried to do it in a way that makes sense
19620
19621 2004-08-23 14:10  jordi
19622
19623         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
19624           properties and methods
19625
19626 2004-08-23 13:55  pbartok
19627
19628         * Control.cs:
19629           - Properly fixed Jordi's last fix
19630           - Now uses Cursor's Position property instead of calling XplatUI
19631           directly
19632
19633 2004-08-23 13:44  jordi
19634
19635         * PaintEventHandler.cs: Adding missing attribute
19636
19637 2004-08-23 13:39  pbartok
19638
19639         * Cursor.cs:
19640           - Implemented Position property
19641
19642 2004-08-23 13:39  pbartok
19643
19644         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19645           - Added method to move mouse cursor
19646
19647 2004-08-23 13:39  pbartok
19648
19649         * XplatUIX11.cs:
19650           - Fixed setting of background color
19651           - Added method to move mouse cursor
19652
19653 2004-08-23 13:16  jordi
19654
19655         * Control.cs: avoids null exception
19656
19657 2004-08-22 17:46  jackson
19658
19659         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
19660           PictureBox
19661
19662 2004-08-22 17:40  jackson
19663
19664         * XplatUIX11.cs: Add some missing locks
19665
19666 2004-08-22 15:10  pbartok
19667
19668         * Control.cs, Form.cs:
19669           - Removed OverlappedWindow style from Control, instead it's default
19670             now is child
19671           - Made form windows OverlappedWindow by default
19672
19673 2004-08-22 13:34  jackson
19674
19675         * ScrollBar.cs: Update the position through the Value property so
19676           the OnValueChanged event is raised.
19677
19678 2004-08-22 12:04  pbartok
19679
19680         * SWF.csproj:
19681           - Added Cursor.cs and UserControl.cs
19682
19683 2004-08-22 12:03  pbartok
19684
19685         * Cursor.cs:
19686           - Started implementation, not usable yet
19687
19688 2004-08-22 12:00  pbartok
19689
19690         * UserControl.cs:
19691           - Implemented UserControl (complete)
19692
19693 2004-08-21 19:20  ravindra
19694
19695         * ToolBar.cs: Correcting the formatting mess of VS.NET.
19696
19697 2004-08-21 18:49  ravindra
19698
19699         * ToolBar.cs: Probably this completes the missing attributes in
19700           toolbar control.
19701
19702 2004-08-21 18:03  ravindra
19703
19704         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
19705           Fixed toolbar control signatures.
19706
19707 2004-08-21 16:32  pbartok
19708
19709         * LinkLabel.cs:
19710           - Signature Fixes
19711
19712 2004-08-21 16:30  pbartok
19713
19714         * Label.cs:
19715           - Signature fixes
19716
19717 2004-08-21 16:19  pbartok
19718
19719         * Control.cs, Label.cs:
19720           - Signature fixes
19721
19722 2004-08-21 15:57  pbartok
19723
19724         * ButtonBase.cs:
19725           - Added loads of debug output for development
19726           - Fixed typo in method name
19727
19728 2004-08-21 15:52  pbartok
19729
19730         * ToolBarButtonClickEventArgs.cs:
19731           - Added missing base class
19732
19733 2004-08-21 14:53  pbartok
19734
19735         * Control.cs:
19736           - Updated to match new GrabWindow signature
19737
19738 2004-08-21 14:51  pbartok
19739
19740         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19741           - Added method to get default display size
19742
19743 2004-08-21 14:23  pbartok
19744
19745         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19746           - Added method to query current grab state
19747           - Added argument to allow confining a grab to a window
19748
19749 2004-08-21 14:22  pbartok
19750
19751         * Keys.cs:
19752           - Added [Flags] attribute so that modifiers can be used in bitwise
19753           ops
19754
19755 2004-08-21 14:21  pbartok
19756
19757         * TrackBar.cs, ScrollBar.cs:
19758           - Replaced direct XplatUI calls with their Control counterpart
19759
19760 2004-08-21 13:32  pbartok
19761
19762         * Control.cs:
19763           - Implemented Created property
19764
19765 2004-08-21 13:28  pbartok
19766
19767         * Control.cs:
19768           - Implemented ContainsFocus
19769
19770 2004-08-21 13:26  pbartok
19771
19772         * Control.cs:
19773           - Implemented CausesValidation
19774
19775 2004-08-21 13:21  pbartok
19776
19777         * Control.cs:
19778           - Implemented CanFocus
19779           - Implemented CanSelect
19780           - Implemented Capture
19781
19782 2004-08-21 12:35  pbartok
19783
19784         * XplatUIWin32.cs:
19785           - Fixed bug with Async message handling
19786           - Implemented getting the ModifierKeys
19787
19788 2004-08-21 12:32  jackson
19789
19790         * AsyncMethodResult.cs: Make sure we have the mutex before we
19791           release it. Fixes BeginInvoke on windows
19792
19793 2004-08-21 11:31  pbartok
19794
19795         * XplatUIWin32.cs, XplatUIX11.cs:
19796           - Drivers now return proper mouse state
19797
19798 2004-08-21 10:54  jackson
19799
19800         * Control.cs: Implement EndInvoke
19801
19802 2004-08-21 10:48  jackson
19803
19804         * Timer.cs: Remove unneeded finalizer
19805
19806 2004-08-20 19:52  ravindra
19807
19808         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
19809           in mouse event handling in the ToolBar control.
19810
19811 2004-08-20 19:50  ravindra
19812
19813         * ImageList.cs: Changed draw method to use the arguments passed in
19814           to draw the image.
19815
19816 2004-08-20 18:58  pbartok
19817
19818         * XplatUIStructs.cs:
19819           - Added private message for async communication
19820
19821 2004-08-20 17:38  ravindra
19822
19823         * Control.cs: Made RightToLeft property virtual and removed a
19824           Console.WriteLine.
19825
19826 2004-08-20 14:39  jordi
19827
19828         * ThemeGtk.cs: use style_attach
19829
19830 2004-08-20 14:39  pbartok
19831
19832         * XplatUIWin32.cs:
19833           - Added jackson's Async code from X11 to Win32
19834
19835 2004-08-20 14:09  pbartok
19836
19837         * SWF.csproj:
19838           - Added all new files
19839
19840 2004-08-20 14:09  pbartok
19841
19842         * Control.cs:
19843           - Added call to set window background color
19844
19845 2004-08-20 14:03  pbartok
19846
19847         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
19848           - Added method for setting the window background
19849
19850 2004-08-20 14:02  pbartok
19851
19852         * XplatUIWin32.cs:
19853           - Added method for setting the background color
19854           - Added handling for erasing the window background
19855
19856 2004-08-20 13:45  jordi
19857
19858         * TrackBar.cs: fixes timer, new properties and methods
19859
19860 2004-08-20 13:34  jackson
19861
19862         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
19863           correct thread
19864
19865 2004-08-20 13:22  jackson
19866
19867         * Timer.cs: Timer Tick events are now handed through Controls Async
19868           mechanism so the callbacks are executed in the same thread as X
19869
19870 2004-08-20 13:19  jackson
19871
19872         * XplatUIDriver.cs: Expose functionality to send async messages
19873           through the driver
19874
19875 2004-08-20 13:18  jackson
19876
19877         * Control.cs: Implement Begininvoke
19878
19879 2004-08-20 13:14  jackson
19880
19881         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
19882           messages through the driver
19883
19884 2004-08-20 13:12  jackson
19885
19886         * XplatUIX11.cs: Lock before all X operations. Also added Async
19887           method functionality through XSendEvent
19888
19889 2004-08-20 13:11  jackson
19890
19891         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
19892           This will screw up on 64 bit systems)
19893
19894 2004-08-20 13:10  jackson
19895
19896         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
19897           Async messages through X/Win32
19898
19899 2004-08-19 19:39  pbartok
19900
19901         * XplatUIX11.cs:
19902           - Updated code to match new HandleData.DeviceContext type
19903
19904 2004-08-19 19:38  pbartok
19905
19906         * HandleData.cs:
19907           - Made DeviceContext a generic object to allow usage from various
19908           drivers
19909           - Added support for queueing Windows messages
19910
19911 2004-08-19 19:37  pbartok
19912
19913         * XplatUIWin32.cs:
19914           - Added generation of MouseEnter, MouseLeave and MouseHover events
19915           - Added cleanup on EndPaint
19916
19917 2004-08-19 19:17  pbartok
19918
19919         * Control.cs:
19920           - Added handling of WM_MOUSEHOVER
19921           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
19922           code
19923
19924 2004-08-19 18:55  jordi
19925
19926         * ThemeGtk.cs: fixes button order
19927
19928 2004-08-19 18:12  jordi
19929
19930         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
19931
19932 2004-08-19 17:09  pbartok
19933
19934         * Control.cs:
19935           - Added Right property
19936           - Added RightToLeft property
19937
19938 2004-08-19 16:27  jordi
19939
19940         * ThemeGtk.cs: experimental GTK theme support
19941
19942 2004-08-19 16:26  jordi
19943
19944         * ITheme.cs, Theme.cs: move themes from an interface to a class
19945
19946 2004-08-19 16:25  jordi
19947
19948         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
19949           theme enhancaments
19950
19951 2004-08-19 16:04  pbartok
19952
19953         * XplatUIX11.cs:
19954           - Added colormap basics
19955           - Added a way to re-initialize with a different display handle
19956           - Fixed setting of the window background color
19957           - Added various X11 imports related to colors and colormaps
19958
19959 2004-08-19 15:51  pbartok
19960
19961         * X11Structs.cs:
19962           - Removed packing hints (Paolo suggested this a while back)
19963           - fixed colormap type
19964           - Added default Atom types
19965           - Added Screen and color structs and enums
19966
19967 2004-08-19 15:39  pbartok
19968
19969         * ImageList.cs:
19970           - Added missing Draw() method
19971           - Added missing RecreateHandle event
19972
19973 2004-08-19 15:30  pbartok
19974
19975         * Form.cs:
19976           - Added handling of WM_CLOSE
19977
19978 2004-08-18 13:16  jordi
19979
19980         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
19981           a table
19982
19983 2004-08-18 09:56  jordi
19984
19985         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
19986
19987 2004-08-17 15:31  ravindra
19988
19989         * SWF.csproj: Updated project.
19990
19991 2004-08-17 15:25  pbartok
19992
19993         * Control.cs:
19994           - Drawing improvement; don't call UpdateBounds if we are not visible
19995             (or have been minimized)
19996
19997 2004-08-17 15:24  pbartok
19998
19999         * XplatUIWin32.cs:
20000           - Finished IsVisible
20001           - Added Win32GetWindowPlacement
20002
20003 2004-08-17 15:08  jackson
20004
20005         * Panel.cs: Initial checkin of the Panel
20006
20007 2004-08-17 14:25  pbartok
20008
20009         * Control.cs:
20010           - Fixed broken handling of default window sizes
20011
20012 2004-08-17 13:29  jackson
20013
20014         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
20015           has a large startup time.
20016
20017 2004-08-17 10:25  jackson
20018
20019         * HandleData.cs: union areas properly
20020
20021 2004-08-17 10:12  jackson
20022
20023         * HandleData.cs: union areas properly
20024
20025 2004-08-16 20:00  ravindra
20026
20027         * ToolBar.cs, ToolBarButton.cs: Added attributes.
20028
20029 2004-08-16 18:48  ravindra
20030
20031         * ToolBar.cs: Added attributes.
20032
20033 2004-08-16 17:17  ravindra
20034
20035         * SWF.csproj: Updated project.
20036
20037 2004-08-16 17:16  jackson
20038
20039         * XplatUIX11.cs: Check for more expose events before sending a
20040           WM_PAINT so they can all be grouped together. This makes dragging a
20041           window across another window redraw in a sane way.
20042
20043 2004-08-16 15:47  pbartok
20044
20045         * Control.cs:
20046           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
20047             support OnMouseEnter/Leave()
20048           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
20049             exposure handling
20050
20051 2004-08-16 15:46  pbartok
20052
20053         * XplatUIStructs.cs, XplatUIX11.cs:
20054           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
20055           OnMouseEnter/Leave()
20056
20057 2004-08-16 15:34  jackson
20058
20059         * XplatUIX11.cs: Group multiple expose events in HandleData, make
20060           sure messages get the message field set to WM_NULL if they are not
20061           handled.
20062
20063 2004-08-16 15:24  jackson
20064
20065         * HandleData.cs: HandleData is used for storing message information
20066           for window handles
20067
20068 2004-08-15 17:23  ravindra
20069
20070         * ColorDepth.cs: Added attribute.
20071
20072 2004-08-15 17:23  ravindra
20073
20074         * SWF.csproj: Updated project for ToolBar Control.
20075
20076 2004-08-15 17:20  ravindra
20077
20078         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
20079           control and also dos2unix format.
20080
20081 2004-08-15 17:13  ravindra
20082
20083         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
20084           ToolBarButtonClickEventArgs.cs,
20085           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
20086           ToolBarTextAlign.cs: First Implementation of ToolBar control.
20087
20088 2004-08-15 15:31  pbartok
20089
20090         * ButtonBase.cs:
20091           - First (mostly) working version
20092
20093 2004-08-13 16:15  pbartok
20094
20095         * Control.cs:
20096           - Fixed Anchor default
20097
20098 2004-08-13 15:43  pbartok
20099
20100         * Control.cs:
20101           - Changed GetCursorPos signature
20102
20103 2004-08-13 15:42  pbartok
20104
20105         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20106           - Changed signature for GetCursorPos
20107
20108 2004-08-13 15:25  pbartok
20109
20110         * XplatUIX11.cs:
20111           - Cleanup
20112           - Fixed resizing/exposure handling
20113
20114 2004-08-13 15:22  jordi
20115
20116         * ThemeWin32Classic.cs: removes redundant code and fixes issues
20117           with tickposition
20118
20119 2004-08-13 14:55  jordi
20120
20121         * TrackBar.cs: change from wndproc to events
20122
20123 2004-08-13 13:00  jordi
20124
20125         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20126           XplatUIX11.cs: implements PointToClient (ScreenToClient)
20127
20128 2004-08-13 12:53  pbartok
20129
20130         * XplatUIWin32.cs:
20131           - Changed GetWindowPos to also provide client area size
20132           - Fixed broken prototypes for several win32 functions
20133
20134 2004-08-13 12:53  pbartok
20135
20136         * XplatUI.cs, XplatUIDriver.cs:
20137           - Changed GetWindowPos to also provide client area size
20138
20139 2004-08-13 12:52  pbartok
20140
20141         * XplatUIX11.cs:
20142           - Added generation of WM_POSCHANGED
20143           - Changed GetWindowPos to also provide client area size
20144
20145 2004-08-13 12:52  pbartok
20146
20147         * Control.cs:
20148           - Added Dispose() and destructor
20149           - Fixed resizing and bounds calculation
20150           - Fixed Layout
20151           - Added memory savings for invisible windows
20152
20153 2004-08-13 12:46  jordi
20154
20155         * TrackBar.cs: adds timer and grap window
20156
20157 2004-08-13 10:25  jackson
20158
20159         * Timer.cs: SWF Timer
20160
20161 2004-08-12 16:59  pbartok
20162
20163         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20164           - Implemented method to get current mouse position
20165
20166 2004-08-12 14:29  jordi
20167
20168         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
20169           enhancement, fix mouse problems, highli thumb, etc
20170
20171 2004-08-12 13:31  pbartok
20172
20173         * Control.cs:
20174           - Fixed Anchoring bugs
20175
20176 2004-08-12 13:01  jackson
20177
20178         * StatusBar.cs: Don't forget things
20179
20180 2004-08-12 12:54  jackson
20181
20182         * ThemeWin32Classic.cs: Handle owner draw status bars
20183
20184 2004-08-12 12:54  jackson
20185
20186         * StatusBar.cs: Implement missing properties, events, and methods.
20187           Handle mouse clicking
20188
20189 2004-08-12 10:19  jackson
20190
20191         * StatusBarPanelClickEventArgs.cs,
20192           StatusBarPanelClickEventHandler.cs: Classes for handling status
20193           bar panel click events
20194
20195 2004-08-12 10:10  jackson
20196
20197         * Control.cs: Add missing properties
20198
20199 2004-08-12 09:46  pbartok
20200
20201         * BindingsManagerBase.cs:
20202           - Name changed to BindingManagerBase.cs
20203
20204 2004-08-12 09:25  jordi
20205
20206         * ScrollableControl.cs: calls ctrlbase instead of exeception
20207
20208 2004-08-11 16:28  pbartok
20209
20210         * InputLanguageChangingEventArgs.cs:
20211           - Never check in before compiling. Fixes the last check-in
20212
20213 2004-08-11 16:26  pbartok
20214
20215         * InputLanguageChangingEventArgs.cs:
20216           - More signature fixes
20217
20218 2004-08-11 16:20  pbartok
20219
20220         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
20221           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
20222           ImageListStreamer.cs, InputLanguage.cs,
20223           InputLanguageChangedEventArgs.cs,
20224           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
20225           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
20226           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
20227           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20228           - Signature fixes
20229
20230 2004-08-11 16:16  pbartok
20231
20232         * Application.cs:
20233           - Fixed Signature
20234           - Added .Net 1.1 method
20235
20236 2004-08-11 15:25  pbartok
20237
20238         * SWF.csproj:
20239           - Fixed BindingManagerBase.cs filename
20240
20241 2004-08-11 15:22  pbartok
20242
20243         * BindingManagerBase.cs:
20244           - Was checked in with wrong filename
20245
20246 2004-08-11 14:50  pbartok
20247
20248         * SWF.csproj:
20249           - Updated
20250
20251 2004-08-11 13:41  jordi
20252
20253         * XplatUIWin32.cs: Fixes ClientRect
20254
20255 2004-08-11 13:19  pbartok
20256
20257         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20258           XplatUIX11.cs:
20259           - We had SetWindowPos and MoveWindow to set window positions and
20260             size, removed MoveWindow. We have GetWindowPos, so it made sense to
20261             keep SetWindowPos as matching counterpart
20262           - Added some X11 sanity checking
20263
20264 2004-08-11 12:59  pbartok
20265
20266         * Control.cs:
20267           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
20268             (It seems that SetBounds is just a front for SetBoundsCore and
20269              SetBoundsCore updates the underlying window system and
20270              UpdateBounds is responsible for updating the variables associated
20271              with the Control and sending the events)
20272           - Major cleanup of Size handling; we now have two sizes, client_size
20273             and bounds. Bounds defines the window with decorations, client_size
20274             without them.
20275
20276 2004-08-11 12:55  pbartok
20277
20278         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20279           - Added method to calculate difference between decorated window and
20280             raw client area
20281
20282 2004-08-11 12:54  pbartok
20283
20284         * Label.cs:
20285           - Forcing redraw on resize
20286
20287 2004-08-11 11:43  pbartok
20288
20289         * ImageList.cs:
20290           - Removed disposing of the actual images when the list is disposed
20291
20292 2004-08-11 09:13  pbartok
20293
20294         * Control.cs:
20295           - Now properly reparents windows
20296
20297 2004-08-11 08:37  pbartok
20298
20299         * Control.cs:
20300           - Duh!
20301
20302 2004-08-11 07:47  pbartok
20303
20304         * Control.cs:
20305           - Rewrote the collection stuff. Might not be as fast now, not
20306             keeping the number of children around and accessible directly, but
20307             it's more straightforward
20308
20309 2004-08-11 07:44  pbartok
20310
20311         * AccessibleObject.cs:
20312           - Fixed to match ControlCollection rewrite
20313
20314 2004-08-11 07:43  pbartok
20315
20316         * ImageList.cs:
20317           - Added missing creation of the collection list
20318
20319 2004-08-10 20:08  jackson
20320
20321         * StatusBar.cs: Get the paint message from WndProc
20322
20323 2004-08-10 19:31  jackson
20324
20325         * ThemeWin32Classic.cs: Create Brushes as little as possible
20326
20327 2004-08-10 19:20  jackson
20328
20329         * UICues.cs: Add Flags attribute
20330
20331 2004-08-10 19:19  jackson
20332
20333         * StatusBarPanel.cs: Signature cleanup
20334
20335 2004-08-10 19:10  jackson
20336
20337         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
20338           Initial implementation of status bar item drawing
20339
20340 2004-08-10 17:27  jordi
20341
20342         * TrackBar.cs: add missing methods, properties, and restructure to
20343           hide extra ones
20344
20345 2004-08-10 16:24  jackson
20346
20347         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
20348           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
20349           attribute
20350
20351 2004-08-10 13:21  jordi
20352
20353         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
20354           enhancements and standarize on win colors defaults
20355
20356 2004-08-10 12:52  jackson
20357
20358         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
20359           ThemeWin32Classic.cs: Implement DrawItem functionality
20360
20361 2004-08-10 12:47  jordi
20362
20363         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
20364
20365 2004-08-10 12:32  jordi
20366
20367         * Control.cs: throw ontextchange event
20368
20369 2004-08-10 11:43  pbartok
20370
20371         * Control.cs:
20372           - Added more to the still unfinished Dock/Anchor layout code
20373
20374 2004-08-10 11:39  pbartok
20375
20376         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20377           - Added GetWindowPos method
20378
20379 2004-08-10 11:36  pbartok
20380
20381         * XplatUIWin32.cs:
20382           - Implemented several methods
20383
20384 2004-08-10 09:47  jackson
20385
20386         * TrackBar.cs: Allow control to handle buffering
20387
20388 2004-08-10 09:41  jackson
20389
20390         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
20391
20392 2004-08-10 09:24  jackson
20393
20394         * Label.cs, LinkLabel.cs: Let Control handle buffering.
20395
20396 2004-08-10 09:09  jackson
20397
20398         * StatusBar.cs: Let Control handle all the buffering.
20399
20400 2004-08-10 09:08  jackson
20401
20402         * Control.cs: Control will now handle the buffering code, so each
20403           control does not have to implement this.
20404
20405 2004-08-10 08:34  jackson
20406
20407         * XplatUIDriver.cs: Use default colors from the theme
20408
20409 2004-08-09 17:12  pbartok
20410
20411         * ImageList.cs:
20412           - Fixed several bugs Ravindra pointed out
20413
20414 2004-08-09 16:11  pbartok
20415
20416         * Control.cs:
20417           - Added incomplete dock layout code
20418           - Added support for mouse wheel
20419
20420 2004-08-09 16:09  pbartok
20421
20422         * XplatUIX11.cs:
20423           - Added handling for middle and right mousebutton
20424           - Added handling for mouse wheel
20425           - Added handling for key state and mouse state and position
20426           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
20427           messages
20428
20429 2004-08-09 15:40  jackson
20430
20431         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
20432           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
20433           checkin
20434
20435 2004-08-09 15:37  jackson
20436
20437         * StatusBar.cs: Initial implementation of StatusBar
20438
20439 2004-08-09 15:36  jackson
20440
20441         * ITheme.cs: Add support for drawing status bar and getting status
20442           bar item sizes
20443
20444 2004-08-09 15:35  pbartok
20445
20446         * MouseButtons.cs:
20447           - Fixed values
20448
20449 2004-08-09 15:34  jackson
20450
20451         * ThemeWin32Classic.cs: Add support for drawing status bar and get
20452           status bar item sizes
20453
20454 2004-08-09 15:21  jackson
20455
20456         * ThemeWin32Classic.cs: Use known colors for default control
20457           colours
20458
20459 2004-08-09 15:12  jackson
20460
20461         * ThemeWin32Classic.cs: Make the default font static, it is static
20462           in control so this doesn't change functionality and creating fonts
20463           is sloooooow.
20464
20465 2004-08-09 14:56  pbartok
20466
20467         * X11Structs.cs:
20468           - Added GrabMode enum
20469
20470 2004-08-09 14:55  pbartok
20471
20472         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20473           - Removed Run method, was only required for initial development
20474
20475 2004-08-09 14:51  pbartok
20476
20477         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20478           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
20479           capture
20480
20481 2004-08-09 13:48  pbartok
20482
20483         * XplatUIX11.cs:
20484           - Fixed default sizing for child windows
20485
20486 2004-08-09 12:56  pbartok
20487
20488         * XplatUIX11.cs:
20489           - Added generation of WM_DESTROY message
20490           - Added handling of window manager induced shutdown
20491
20492 2004-08-09 11:31  jackson
20493
20494         * ThemeWin32Classic.cs: New names for control properties
20495
20496 2004-08-09 11:25  jackson
20497
20498         * Control.cs: Use new color names
20499
20500 2004-08-09 11:02  jackson
20501
20502         * XplatUI.cs: Get default window properties from the theme
20503
20504 2004-08-09 11:01  jackson
20505
20506         * ITheme.cs: The theme engine now controls default window
20507           properties
20508
20509 2004-08-09 11:00  jackson
20510
20511         * ThemeWin32Classic.cs: Add default window color properties
20512
20513 2004-08-09 10:17  jackson
20514
20515         * ThemeWin32Classic.cs: Use correct default back color
20516
20517 2004-08-09 10:05  jackson
20518
20519         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
20520           the theme now.
20521
20522 2004-08-09 09:56  jackson
20523
20524         * XplatUI.cs: Remove defaults, these are handled by the theme now.
20525
20526 2004-08-09 09:54  jackson
20527
20528         * Control.cs: Get default properties from the theme.
20529
20530 2004-08-09 09:53  jackson
20531
20532         * ITheme.cs: Themes now handle default control properties
20533
20534 2004-08-09 09:53  jackson
20535
20536         * ThemeWin32Classic.cs: Themes now handle default control
20537           properties so coloring will be consistent
20538
20539 2004-08-08 16:54  jordi
20540
20541         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
20542
20543 2004-08-08 15:08  jordi
20544
20545         * XplatUIX11.cs: fixes keyboard crash
20546
20547 2004-08-08 13:47  jordi
20548
20549         * Label.cs: add cvs header info
20550
20551 2004-08-08 12:09  jackson
20552
20553         * ThemeWin32Classic.cs: Add pen_buttonface
20554
20555 2004-08-08 11:52  jordi
20556
20557         * Label.cs, LinkLabel.cs: [no log message]
20558
20559 2004-08-08 11:34  jordi
20560
20561         * ThemeWin32Classic.cs: Use Windows Standard Colours
20562
20563 2004-08-07 17:32  jordi
20564
20565         * TrackBar.cs: throw exceptions of invalid enums values
20566
20567 2004-08-07 17:31  jordi
20568
20569         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
20570           draw method name
20571
20572 2004-08-07 16:56  jackson
20573
20574         * HorizontalAlignment.cs: Initial checkin
20575
20576 2004-08-07 13:16  jordi
20577
20578         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
20579           methods
20580
20581 2004-08-07 13:05  jordi
20582
20583         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
20584           GetSysColor defines
20585
20586 2004-08-06 18:01  pbartok
20587
20588         * ThemeWin32Classic.cs:
20589           - Fixed some rounding issues with float/int
20590
20591 2004-08-06 18:00  jackson
20592
20593         * DockStyle.cs, AnchorStyles.cs:
20594
20595                   Add flags and serializable attributes.
20596
20597 2004-08-06 17:46  pbartok
20598
20599         * XplatUIX11.cs:
20600           - Implemented GetParent
20601
20602 2004-08-06 17:18  pbartok
20603
20604         * TrackBar.cs:
20605           - Fixed some rounding issues with float/int
20606
20607 2004-08-06 17:17  pbartok
20608
20609         * X11Structs.cs, XplatUIX11.cs:
20610           - Fixed Refresh and Invalidate
20611
20612 2004-08-06 15:30  pbartok
20613
20614         * Control.cs, X11Structs.cs, XplatUIX11.cs:
20615           - Fixed recursive loop when resizing
20616           - Improved/fixed redrawing on expose messages
20617
20618 2004-08-06 09:53  jordi
20619
20620         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
20621           keyboard navigation
20622
20623 2004-08-06 08:02  pbartok
20624
20625         * X11Structs.cs, XplatUIX11.cs:
20626           - Fixed reparenting
20627           - Fixed window border creation
20628
20629 2004-08-05 15:38  pbartok
20630
20631         * XplatUIX11.cs:
20632           - Attempted fix for reparenting problems
20633
20634 2004-08-04 15:14  pbartok
20635
20636         * Control.cs:
20637           - Fixed Invalidation bug (calculated wrong client area)
20638           - Added ClientSize setter
20639
20640 2004-08-04 15:13  pbartok
20641
20642         * Form.cs:
20643           - Added AutoScale properties
20644
20645 2004-08-04 15:13  pbartok
20646
20647         * SWF.csproj:
20648           - Added latest files
20649
20650 2004-08-04 14:11  pbartok
20651
20652         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20653           XplatUIX11.cs:
20654           - Added Invalidate handling
20655
20656 2004-08-03 17:09  jordi
20657
20658         * XplatUIDriver.cs: fixes spelling mistake
20659
20660 2004-07-27 09:53  jordi
20661
20662         * TrackBar.cs: fixes trackbar events, def classname, methods
20663           signature
20664
20665 2004-07-27 09:29  jordi
20666
20667         * ScrollBar.cs: fixes scrollbar events
20668
20669 2004-07-27 04:38  jordi
20670
20671         * Control.cs: changes to be able to run winforms samples
20672
20673 2004-07-26 11:42  jordi
20674
20675         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
20676           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
20677
20678 2004-07-26 05:41  jordi
20679
20680         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
20681           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
20682           implementation
20683
20684 2004-07-22 09:22  jordi
20685
20686         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
20687           check link overlapping, implement events, and fixes
20688
20689 2004-07-21 10:28  jordi
20690
20691         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
20692
20693 2004-07-21 10:19  jordi
20694
20695         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
20696           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
20697           LinkLabelLinkClickedEventArgs.cs,
20698           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
20699           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
20700           implementation
20701
20702 2004-07-19 13:09  jordi
20703
20704         * Control.cs, Label.cs: label control re-written: added missing
20705           functionlity, events, and properties
20706
20707 2004-07-19 10:49  jordi
20708
20709         * Control.cs: fixes SetBounds logic
20710
20711 2004-07-19 01:29  jordi
20712
20713         * Control.cs: Call RefreshWindow only if the window has created
20714
20715 2004-07-15 14:05  pbartok
20716
20717         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
20718           - Implemented ImageList and ImageList.ImageCollection classes
20719           - Added ColorDepth enumeration
20720           - Updated SWF VS.Net project
20721
20722 2004-07-15 11:06  jordi
20723
20724         * XplatUIStructs.cs: added MsgButons enum
20725
20726 2004-07-15 11:03  jordi
20727
20728         * Control.cs: added basic mouse handeling events
20729
20730 2004-07-15 03:38  jordi
20731
20732         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
20733           Vertical TrackBar control implementation
20734
20735 2004-07-13 09:33  jordi
20736
20737         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
20738
20739 2004-07-13 09:31  jordi
20740
20741         * Control.cs, Form.cs: commit: new properties and fixes form size
20742           problems
20743
20744 2004-07-09 14:13  miguel
20745
20746         * ProgressBar.cs: Spelling
20747
20748 2004-07-09 11:25  pbartok
20749
20750         * ProgressBar.cs:
20751           - Removed usage of Rectangle for drawing. Miguel pointed out it's
20752           faster
20753
20754 2004-07-09 11:17  miguel
20755
20756         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
20757
20758                 * ProgressBar.cs: Fixed spelling for `block'
20759
20760                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
20761                 style guidelines.
20762
20763                 Avoid using the += on rect.X, that exposed a bug in the compiler.
20764
20765 2004-07-08 23:21  pbartok
20766
20767         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
20768           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
20769           BaseCollection.cs, Binding.cs, BindingContext.cs,
20770           BindingMemberInfo.cs, BindingsCollection.cs,
20771           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
20772           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
20773           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
20774           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
20775           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
20776           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
20777           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
20778           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
20779           FrameStyle.cs, GiveFeedbackEventArgs.cs,
20780           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
20781           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
20782           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
20783           InputLanguageChangedEventArgs.cs,
20784           InputLanguageChangedEventHandler.cs,
20785           InputLanguageChangingEventArgs.cs,
20786           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
20787           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
20788           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
20789           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
20790           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
20791           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
20792           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
20793           QueryAccessibilityHelpEventArgs.cs,
20794           QueryAccessibilityHelpEventHandler.cs,
20795           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
20796           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
20797           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
20798           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
20799           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
20800           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
20801           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
20802           XplatUIX11.cs, lang.cs:
20803           - Initial check-in
20804