* Control.cs: Added missing 2.0 attributes
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2
3         * ListViewItem.cs: fixed ListViewSubItem text property.
4
5 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6         
7         * Control.cs: Added missing 2.0 attributes
8         
9 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10         
11         * MdiClient.cs: Added missing 2.0 attribute.
12         * MonthCalendar.cs: Added some missing 2.0 attributes 
13         and properties.
14         
15 2006-12-15  Daniel Nauck  <dna@mono-project.de>
16
17         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
18
19 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
20
21         * MainMenu.cs: Add the new 2.0 constructor to help out people
22         using the MainMenu in VS2005.
23
24 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
25         
26         * MdiChildContext.cs: Removed it, no longer used.
27         * MdiClient.cs: Added missing 2.0 attributes.
28         
29 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
30         
31         * InternalWindowManager.cs: Fix a NullRef with previous 
32         changes for toolwindows.
33         
34 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
35
36         * Control.cs: 
37         - Added AfterTopMostControl to allow for certain controls 
38         to always stay on top when normal controls are brought to 
39         front.
40         
41         * XplatUIWin32.cs: 
42         - (DrawInversibleRectangle): Get window rectangle from Win32 
43         in stead of from control, since Win32 doesn't calculate
44         screen coords correctly from control's Location if it 
45         have docked siblings.
46         
47         * MdiWindowManager.cs:
48         - Correct the control menu popup location when clicked on
49         the maximized form icon. (fixes #80223.1)
50         - Don't show moving rectangle if mouse hasn't moved from
51         the original clicked point.
52         - Removed FormGotFocus handler (not used).
53         - Calculate the control buttons location from the main
54         window's size and not client size (fixes #79770).
55         - Form is now closed when the form icon is double-clicked
56         (fixes #79775). 
57         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
58         
59         * InternalWindowManager.cs:
60         - Moved some MDI-only methods to MdiWindowManager.
61         - Removed unused properties and methods.
62         - Unified method naming for methods handling wm messages.
63         - Moved all message handling to seperate methods for
64         each message.
65         
66         * ThemeWin32Classic.cs:
67         - DrawManagedWindowDecorations now draws the title bar 
68         with a gradient brush.
69         - Add a CPDrawButtonInternal that allows us to specify
70         light, normal and dark colors for the buttons (control 
71         buttons for MDI children were drawn with the same light
72         color as the background, therefore loosing the 3D effect).
73         
74         * SizeGrip.cs:
75         - Add a CapturedControl property that is used to 
76         determine the control to resize (defaults to parent). 
77         Needed for MdiClient, since its SizeGrip's parent is
78         MdiClient, but the control to resize is the main form.
79         
80         * MdiClient.cs:
81         - Set SizeGrip's CapturedControl to the main form in order
82         to resize the main form and not the MdiClient.
83         - Override AfterTopMostControl to leave the scrollbars 
84         always on top.
85
86 2006-12-15  Daniel Nauck  <dna@mono-project.de>
87
88         * ListView.cs: fixed ListViewItemCollection AddRange and
89                         implemented ListViewItemCollection AddRange 2.0 support.
90
91 2006-12-15  Daniel Nauck  <dna@mono-project.de>
92
93         * ListViewGroup.cs: Add.
94         * ListViewGroupCollection.cs: Add
95         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
96         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
97                                 stub for ImageKey 2.0 support.
98
99 2006-12-14  Mike Kestner  <mkestner@novell.com>
100
101         * ListView.cs: add text padding to the autocalculation for columns
102         of width -2.  Fixes #80207.
103  
104 2006-12-14  Mike Kestner  <mkestner@novell.com>
105
106         * ListView.cs: add some index guarding for partial row navigation 
107         logic.  Fixes #80250.
108
109 2006-12-14  Mike Kestner  <mkestner@novell.com>
110
111         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
112         are added or inserted to the collection.  Fixes #81099.
113
114 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
115
116         * MenuAPI.cs: Closes menu when right click out side of popup
117         it fix problem in ContextMenu and MainMenu. Fixes #80252.
118
119 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
120
121         * ListViewItem.cs: Fix dumb error.
122
123         * ListView.cs: Add Find and ContainsKey methods in 
124         ListViewItemCollection, and also return true for IsReadOnly
125         and IsFixedSize (changes for 2.0). 
126
127 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
128
129         * Control.cs: Allow Region to be set to null.
130
131 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
132
133         * MdiWindowManager.cs: Remove unused (commented out) code.
134         * Form.cs: When the MdiChild is maximized, the form needs 
135         WM_NCMOUSELEAVE, so request it.
136         * InternalWindowManager.cs: 
137         - Added tooltips to control buttons.
138         - Removed duplicated control button handling code.
139         - Removed unused (commented out) code.
140         
141 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
142
143         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
144         was used because we must set cursor without trigger ChangeCursor event
145         and without change Cursor control property. Fixes #79963.
146
147 2006-12-12  Andreia Gaita  <avidigal@novell.com>
148         
149         * Control.cs: Check if Region setter value is null, and ignore
150
151 2006-12-12  Jackson Harper  <jackson@ximian.com>
152
153         * TextControl.cs: We were almost always drawing one more line then
154         needed, since the GetLineByPixel will return the last line found
155         at that pixel. In most cases though, we were invalidating up to
156         the junction between two lines.
157         - Improve debug code.
158
159 2006-12-12  Chris Toshok  <toshok@ximian.com>
160
161         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
162         and FillReversibleRectangle.
163
164         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
165         and FillReversibleRectangle.
166
167         * XplatUIWin32.cs: add stubs which do nothing for
168         DrawReversibleFrame, DrawReversibleLine, and
169         FillReversibleRectangle.
170
171         * XplatUIOSX.cs: add stubs which raise NIE for
172         DrawReversibleFrame, DrawReversibleLine, and
173         FillReversibleRectangle.
174
175         * XplatUIX11.cs: add working implementation for
176         DrawReversibleFrame, DrawReversibleLine, and
177         FillReversibleRectangle.
178         
179         * ControlPaint.cs: implement DrawReversibleFrame,
180         DrawReversibleLine, and FillReversibleRectangle, by calling into
181         the appropriate XplatUI method.
182
183 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
184
185         * Form.cs: Make MdiClient have the focus even if it's
186         not selectable, since it should receive WM_KEY* and WM_MOUSE 
187         messages. Fixes #79907.
188         
189 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
190
191         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
192         queried after the window is created.
193         
194         * XplatUIX11.cs: Added SendParentNotify to implement 
195         WM_PARENTNOTIFY logic. Fixes #79965.
196         
197         * Control.cs: Added MakeParam.
198         
199 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
200
201         * MdiClient.cs: Resume Layout before setting window
202         states (fixes #80201).
203
204 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
205
206         * MenuAPI.cs: Deselect a menu item after performing
207         the click (fixes #80197).
208
209 2006-12-11  Jackson Harper  <jackson@ximian.com>
210
211         * TextBoxBase.cs: We need to cap this value, since Maximum -
212         ViewPortHeight can be less than zero.
213         - Only do selection with the left mouse button.
214         * TextBox.cs: Don't tell the world that we have a context menu.
215         * Control.cs: New method so that we can control whether or not the
216         context menu is visible outside MWF.
217
218 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
219
220         * ToolBarButton.cs: Fix text positon. 
221
222 2006-12-11  Miguel de Icaza  <miguel@novell.com>
223
224         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
225
226         * Control.cs (DoubleBuffered): Add implementation.
227
228         * Application.cs (OpenForms): Add.
229
230 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
231
232         * Form.cs: Use opacity instead of Opactiy to determine if we need
233         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
234
235 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
236
237         * Control.cs: Fix NRE if Control.Site was set to null.
238
239 2006-12-11  Chris Toshok  <toshok@ximian.com>
240
241         * Control.cs: ControlCollection.Remove should return if the arg is
242         null, and ControlCollection.SetChildIndex should raise a ANE.
243
244 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
245
246         * Control.cs: Verify value set for Dock property. Code formatting
247         updates.
248
249 2006-12-11  Jackson Harper  <jackson@ximian.com>
250
251         * TextControl.cs: Draw the caret and the selection when a flag is
252         set on the owner.
253         * TextBoxBase.cs: We want to draw the caret and the selection for
254         TextBox but not for TextBoxBase.
255         - If the window is resized and scrolling is no longer needed (the
256         whole doc is visible) set the scroll position to zero.
257         - The default SelectWord (the one TextBox uses) should move the
258         caret to the end of the word.
259         - SelectAll moves the caret to the end of the selection.
260         * TextBox.cs: We don't selectall on focus, we just do it when the
261         control is created.
262         
263 2006-12-11  Mike Kestner  <mkestner@novell.com>
264
265         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
266
267 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
268
269         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
270         2.0 support.
271         * ListViewItem.cs: Add Name 2.0 property.
272
273 2006-12-11  Andreia Gaita  <avidigal@novell.com>
274
275         * TabControl.cs: Set visibility on selected or default tab 
276         when tabcontrol handle is created, so that it's contents
277         actually show up (duh). Fixes #80193
278         Don't redraw the control if there is no handle created, as
279         the selected index might be completely invalid. Added some tests
280         to check for this.
281
282 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
283
284         * ToolBar.cs: Uses maximun width and height of all buttons as 
285         button rectangle when ButtonSize specified, it looks strange but
286         is what happens in Win32. Fixes #80189.
287
288 2006-12-11  Jackson Harper  <jackson@ximian.com>
289
290         * TextControl.cs: Need to track undo levels ourself, since
291         compound actions will mess them up.
292
293 2006-12-10  Andreia Gaita  <avidigal@novell.com>
294
295         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
296         SelectedIndex value is changed (even if it's not valid).
297         Reset SelectedIndex to 0 when the handle is created and if
298         the current index is invalid.
299         Fixes SelectdeIndex unit tests and #80128
300
301 2006-12-08  Chris Toshok  <toshok@ximian.com>
302
303         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
304         calls EndEdit, it needs to be called before we set current_cell to
305         its new value.  Otherwise, we end up committing the value in the
306         textbox to the new cell as well.  Fixes bug #80160.
307
308 2006-12-08  Chris Toshok  <toshok@ximian.com>
309
310         * Form.cs (set_CancelButton): if the button's DialogResult is
311         None, set it to Cancel.  Fixes bug 80180.
312
313 2006-12-08  Jackson Harper  <jackson@ximian.com>
314
315         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
316         to watch ourselves when setting the canvas size and setting the
317         scrollbar values.
318
319 2006-12-08  Chris Toshok  <toshok@ximian.com>
320
321         * DataGrid.cs: comment out the two MakeTransparent calls for the
322         time being so people using trunk (and not 1.2.2) on windows can
323         actually use the datagrid.  This deals with bug #80151.
324
325 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
326
327         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
328         Graphics.DrawImage (image, int, int, int, int) overload instead
329         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
330         the dpi difference and was blurring images it drew.
331         [Fixes bug #79960]
332
333 2006-12-08  Chris Toshok  <toshok@ximian.com>
334
335         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
336         rowcnt is 0 (such as with an empty datasource), and make sure we
337         initialize not_usedarea.Y to cells.Y, so we don't draw over the
338         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
339
340 2006-12-08  Chris Toshok  <toshok@ximian.com>
341
342         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
343         grid.
344
345 2006-12-08  Chris Toshok  <toshok@ximian.com>
346
347         [ Fixes bug #80167 ]
348         
349         * ThemeWin32Classic.cs: don't draw the image if the button's flat
350         style is FlatStyle.System.
351
352         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
353         ButtonBase.flat_style private, and switch uses of it to the public
354         property.
355         
356 2006-12-08  Chris Toshok  <toshok@ximian.com>
357
358         [ Fixes bug #80121 ]
359         
360         * ThemeWin32Classic.cs: center the caption text in the datagrid
361         when we draw it.
362
363         * DataGrid.cs: lessen the amount we add to the caption height from
364         6 to 2.  6 was making it huge.
365
366 2006-12-08  Andreia Gaita  <avidigal@novell.com>
367
368         * UpDownBase: Handle MouseWheel call directly instead of capturing
369         the inner textbox's OnMouseWheel. Fixes #80166
370
371 2006-12-08  Jackson Harper  <jackson@ximian.com>
372
373         * TextControl.cs: We need to invalidate the textbox when we empty
374         it (how had this not been discovered before?)
375
376 2006-12-08  Jackson Harper  <jackson@ximian.com>
377
378         * TextBoxBase.cs: Reworked the mouse down code so I could get it
379         to behave like MS, we now ignore the eventargs.Click and just
380         track state ourself, which we were already doing anyways.
381         - Constrain the double click handler to the double click size.
382         
383 2006-12-08  Chris Toshok  <toshok@ximian.com>
384
385         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
386         direction if that scrollbar isn't shown.  fixes bug #80158.
387
388 2006-12-08  Andreia Gaita  <avidigal@novell.com>
389
390         * NumericUpDown.cs: Update value on getter. Fixes #79950
391
392 2006-12-08  Chris Toshok  <toshok@ximian.com>
393
394         * MenuItem.cs: add back in the event cloning code.  I didn't know
395         how to do it in the face of the EventHandlerList work i'd done
396         last week.  Fixes bug #80183.
397
398 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
399
400         * Control.cs: Add an invalidate to the BackgroundImage setter.
401         [Fixes 80184]
402
403 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
404
405         * ToolStrip*: Add some small properties reported by MoMA, fix event
406         firing and default properties based off of unit tests, and add some
407         attributes based off of the class status page.
408
409 2006-12-07  Jackson Harper  <jackson@ximian.com>
410
411         * TextBoxBase.cs: Take HideSelection into account when determining
412         whether or not to show the selection.
413         * RichTextBox.cs: After inserting the RTF into the document move
414         the cursor to the beginning of the document.
415
416 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
417
418         * Control.cs: Remove static ArrayList "controls" which maintained
419         a reference to every control created.
420         * Application.cs: Create a static FormCollection to maintain a reference
421         to every form created.  Use it in places that formerly enumerated through
422         the controls one looking for forms.
423         * Form.cs: Add and remove self from above FormCollection.
424
425 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
426
427         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
428           not libgdk (though it makes me wonder why I didn't have any
429           problems)
430
431 2006-12-07  Chris Toshok  <toshok@ximian.com>
432
433         [ you had to know this was coming after that last commit...]
434         
435         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
436         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
437         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
438         XCopyArea).
439
440 2006-12-07  Chris Toshok  <toshok@ximian.com>
441
442         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
443         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
444         all the behavior we need for double buffering.
445
446         * XplatUIDriver.cs: implement the 3 double buffer methods using a
447         client side Bitmap, just like the old Control-based double buffer
448         code did.  The methods are virtual, so each XplatUI driver
449         subclass can replace the implementation to use a faster, platform
450         specific approach.
451
452         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
453         double buffer code, and clean things up a bit in the process.
454
455 2006-12-06  Chris Toshok  <toshok@ximian.com>
456
457         * Control.cs: reindent WndProc.
458
459 2006-12-06  Chris Toshok  <toshok@ximian.com>
460
461         [ I wanna be like BenM when I grow up ]
462         
463         * Hwnd.cs: create a single static Graphics object on the static
464         Bitmap we create.  use this for our text measurements.
465
466         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
467         This was causing us to allocate a backbuffer for every control,
468         even when it wasn't flagged as double buffered.  Instead use the
469         single graphics instance.  This might have implications for
470         multithreaded applications.  If we run into problems we can switch
471         to creating 1 Graphics per control, on the static Hwnd bitmap.
472
473         this change nets us a 7M savings in private dirty mappings when
474         running FormsTest.exe.
475
476 2006-12-06  Chris Toshok  <toshok@ximian.com>
477
478         * ListView.cs: the BackgroundImage override is just to set
479         attributes.  chain up to base.BackgroundImage.
480
481         * RichTextBox.cs: same.
482
483         * ToolBar.cs: same, but we need to also redraw the toolbar when it
484         changes, so instead a handler for BackgroundImageChanged.
485         
486         * Control.cs: make background_image private.
487
488 2006-12-06  Chris Toshok  <toshok@ximian.com>
489
490         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
491         sure we even need this assignment, but roll with it for now.
492
493         * Control.cs: make the cursor field private.
494
495 2006-12-06  Chris Toshok  <toshok@ximian.com>
496
497         * Form.cs: we don't need to explicitly set ImeMode to
498         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
499         behavior in the face of ImeMode.Inherit.
500
501         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
502         change the ctor's assignment to use ImeMode instead of ime_mode.
503
504         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
505         ImeModeInherit.  Only check for the parent's imemode (and return
506         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
507         This fixes the button unit test, which sets both ImeMode and
508         DefaultImeMode to ImeMode.Disable.
509
510         also make the ime_mode field private.
511
512 2006-12-06  Chris Toshok  <toshok@ximian.com>
513
514         * Control.cs: make control_style private.
515
516         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
517         setting the styles to true, then setting them to false instead of
518         reverting to their previous values.
519
520         also, call SetStyle on the scrollbars instead of using
521         control_style directly.
522
523 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
524
525         * FormCollection.cs: Implement. [2.0]
526
527 2006-12-06  Chris Toshok  <toshok@ximian.com>
528
529         * Control.cs: make tab_stop private.
530
531         * Label.cs: set TabStop, not tab_stop.  reformat some event
532         add/remove methods to make them more compact.
533
534 2006-12-06  Chris Toshok  <toshok@ximian.com>
535
536         * RadioButton.cs: fix TabStop handling.
537
538 2006-12-06  Chris Toshok  <toshok@ximian.com>
539
540         * TextBox.cs: remove the explicit assignments to has_focus.
541         Control does that.
542
543         * ButtonBase.cs: remove the assignment to has_focus.  Control will
544         manage that.
545         
546 2006-12-06  Chris Toshok  <toshok@ximian.com>
547
548         * ButtonBase.cs: remove all uses of is_enabled from this code.
549         it's always true when any of the code containing the checks is
550         executed.
551
552 2006-12-06  Chris Toshok  <toshok@ximian.com>
553
554         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
555         with different semantics (some are present in both 1.1 and 2.0
556         profiles) so that we match MS's behavior in our unit tests.
557
558 2006-12-06  Jackson Harper  <jackson@ximian.com>
559
560         * TextControl.cs: Make this operation undoable.
561         * TextBoxBase.cs: Factor the border width into the preferred
562         height.
563         - implement Modified as per the spec.
564
565 2006-12-06  Chris Toshok  <toshok@ximian.com>
566
567         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
568
569 2006-12-06  Chris Toshok  <toshok@ximian.com>
570
571         * Control.cs: make right_to_left and context_menu fields private.
572
573 2006-12-06  Chris Toshok  <toshok@ximian.com>
574
575         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
576         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
577         Control.child_controls private.  switch all uses over to
578         Control.Controls.
579
580 2006-12-06  Chris Toshok  <toshok@ximian.com>
581
582         * System.Windows.Forms/GroupBox.cs,
583         System.Windows.Forms/AccessibleObject.cs,
584         System.Windows.Forms/ErrorProvider.cs,
585         System.Windows.Forms/Control.cs,
586         System.Windows.Forms/UpDownBase.cs,
587         System.Windows.Forms/ScrollBar.cs,
588         System.Windows.Forms/DateTimePicker.cs,
589         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
590         System.Windows.Forms/ToolTip.cs,
591         System.Windows.Forms/RadioButton.cs,
592         System.Windows.Forms/LinkLabel.cs,
593         System.Windows.Forms/Splitter.cs,
594         System.Windows.Forms/TextBoxBase.cs,
595         System.Windows.Forms/ToolStripTextBox.cs,
596         System.Windows.Forms/ContainerControl.cs,
597         System.Windows.Forms/ThemeWin32Classic.cs,
598         System.Windows.Forms/SizeGrip.cs,
599         System.Windows.Forms/ToolStripDropDown.cs,
600         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
601         private.  switch all uses over to Control.Parent.
602
603 2006-12-06  Chris Toshok  <toshok@ximian.com>
604
605         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
606         Control does this before calling emitting these events.
607
608         * TabControl.cs: same.
609
610         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
611         Control.client_rect.
612
613         * ButtonBase.cs: use the ClientSize property instead of the
614         client_size field.
615
616         * ScrollableControl.cs: same.
617
618         * Control.cs: another pass at making properties private.  also,
619         move the initialization of tab_stop to the ctor.
620
621 2006-12-05  Andreia Gaita <avidigal@novell.com>
622
623         * TabControl.cs: Let the selected index be set freely if the 
624         control handle is not yet created.
625
626 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
627
628         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
629         internal until I can rewrite DefaultLayout.
630         * ToolStrip.cs: Fix build error and some general cleaning.
631         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
632         Fix build errors caused by making some of Control's fields private.
633
634 2006-12-05  Jackson Harper  <jackson@ximian.com>
635
636         * TextControl.cs: Redo Insert a little so that it use IndexOf
637         instead of Split, this prevents it from messing up on things like
638         \n\n\n. Also more effecient since the split array doesn't need to
639         be created.
640         * TextBoxBase.cs: AppendText doesnt handle multiline and non
641         multiline text differently, this is the first of many fixes that
642         will make multiline/non-multiline the same thing as far as the
643         TextBoxBase is concerned.
644         - Don't split the text and insert lines, this can lose some line
645         endings (like is the last line a soft or hard break). Instead use
646         the new Insert.
647         - Fix an off by one when combining all the lines in the Text
648         getter.
649         - Remove separate multiline handling from the Text getter/setter.
650
651 2006-12-05  Chris Toshok  <toshok@ximian.com>
652
653         * ButtonBase.cs: a few changes:
654
655         - don't reinitialize internal Control fields in the ctor when they
656         have the same values as Control sets them.
657
658         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
659         this before calling those methods.
660
661         - we don't need to call Refresh for anything.  use Invalidate
662         instead.
663
664         - OnEnabledChanged doesn't need to redraw at all - Control.cs
665         calls Refresh in its OnEnabledChanged.
666         
667         - several of the events we were registered for in the ctor to
668         redraw ourselves already include calls to Invalidate in the
669         property setters that raise the events.  remove the extra
670         invalidation.
671
672         - reformat a switch statement that was 83274658 columns wide.
673         
674 2006-12-05  Mike Kestner  <mkestner@novell.com>
675
676         * ComboBox.cs: fix a unit test regression from a TextBox
677         SelectionLength return of -1 when there's no selection.  
678
679 2006-12-05  Chris Toshok  <toshok@ximian.com>
680
681         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
682         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
683         cleaning up some of the internal Control fields being used by
684         subclasses.
685
686 2006-12-05  Mike Kestner  <mkestner@novell.com>
687
688         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
689         listbox after AddImplicit calls since it defaults to hidden. Add a 
690         hack to preserve requested heights across DropDownStyle changes.
691
692 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
693
694         * PropertyGrid.cs: Hide FindFirstItem method from public API.
695
696 2006-12-05  Chris Toshok  <toshok@ximian.com>
697
698         * DataGridView.cs: fix compiler warnings.
699
700         * PrintControllerWithStatusDialog.cs: same.
701
702         * ToolBar.cs: same.
703
704         * FolderBrowserDialog.cs: same.
705
706         * Splitter.cs: same.
707
708         * DataGridViewComboBoxCell.cs: same.
709
710         * XplatUIWin32.cs: same.
711
712         * PictureBox.cs: same.
713
714         * Win32DnD.cs: same.
715
716         * PageSetupDialog.cs: same.
717
718         * FileDialog.cs: same.
719
720         * PrintDialog.cs: same.
721
722         * DataGridTextBoxColumn.cs: same.
723
724         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
725
726 2006-12-05  Chris Toshok  <toshok@ximian.com>
727
728         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
729         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
730         System.ComponentModel.EventHandlerList work.
731
732 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
733
734         * DrawTreeNodeEventArgs.cs: Added.
735
736 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
737         
738         * InternalWindowManager.cs: Remove an unused field.
739         
740 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
741
742         * InternalWindowManager.cs:
743         - Save the point where the title bar is clicked.
744         
745         * MdiWindowManager.cs:
746         - Only allow moving of the window as long as the 
747         clicked point on the title bar does not get out of
748         MdiClient's rectangle. Fixes #79982.
749         
750         * MdiClient.cs:
751         - Added Horizontal/VerticalScrollbarVisible.
752         - Simplified the scrollbar sizing algorithm.
753         - Cache the difference in scrolled value in
754         H/VBarValueChanged and move the calculation out
755         of the for loop.
756
757 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
758
759         * Control.cs: Make the Console.WriteLine in WndProc 
760         write more info.
761
762 2006-12-05  Chris Toshok  <toshok@ximian.com>
763
764         * ToolStripManager.cs, ToolStripButton.cs,
765         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
766         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
767         ToolStripSplitButton.cs, ToolStripSeparator.cs,
768         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
769         ToolStripProgressBar.cs, ToolStripContainer.cs,
770         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
771         to using System.ComponentModel.EventHandlerList.
772
773 2006-12-04  Chris Toshok  <toshok@ximian.com>
774
775         * LinkLabel.cs: fix up compiler warnings.
776
777         * TableLayoutSettings.cs: same.
778
779         * TreeView.cs: same.
780
781         * ToolBar.cs: same.
782
783         * TabControl.cs: same.
784
785         * RichTextBox.cs: same.
786
787         * ListViewItem.cs: same.
788
789         * PropertyGrid.cs: same.
790
791         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
792
793         * ToolTip.cs same.
794
795         * TextRenderer.cs: fix up compiler warnings.
796
797         * Label.cs: same.
798
799         * Form.cs: corcompare fixes.
800
801         * PictureBox.cs: fix up compiler warnings.
802
803         * ImageListStreamer.cs: same.
804
805         * TrackBar.cs: corcompare fix.
806
807         * Control.cs: fix up compiler warnings.
808
809         * SplitterPanel.cs: same.
810
811         * NumericTextBox.cs: same.
812
813         * ImageList.cs: same.
814
815         * StatusStrip.cs: same.
816
817         * ProgressBar.cs: corcompare fix.
818
819         * ToolStripButton.cs: fix up compiler warnings.
820
821         * ToolStripStatusLabel.cs: same.
822
823         * ToolStripSplitButton.cs: same.
824
825         * ToolStripSeparator.cs: same.
826
827         * ToolStripProgressBar.cs: same.
828
829         * ToolStripDropDownMenu.cs: same
830
831         * ToolStripDropDown.cs: same.
832
833         * ToolStripDropDownButton.cs: same.
834
835         * ToolStrip.cs: same.
836
837         * ToolStripControlHost.cs: same.
838
839         * ToolStripContentPanel.cs: same.
840
841         * ToolStripDropDown.cs: same.
842
843         * ToolStripContainer.cs: same.
844
845         * ToolStripPanel.cs: same, and add "new" where we need it to work
846         with the new ArrangedElementCollection.
847
848         * ToolStripItemCollection.cs: add "new" where we need it to work
849         with the new ArrangedElementCollection.
850
851 2006-12-04  Andreia Gaita <avidigal@novell.com>
852
853         * TabControl.cs: Fix default tab selection to after TabControl
854         gets focus and not before. Fixes #80128
855
856 2006-12-04  Chris Toshok  <toshok@ximian.com>
857
858         * DataGridTableStyle.cs: remove the gross calling of
859         datagrid.Refresh from here.  It's a broken idea and it doesn't
860         work anyway.
861
862         * DataGrid.cs: instead, just register/unregister from the
863         DataGridTableStyle events in CurrentTableStyle.  we play it
864         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
865         even though some would most likely not require it.  Fixes bug
866         #80115 (and one portion of #80117 as a side effect).
867
868 2006-12-04  Chris Toshok  <toshok@ximian.com>
869
870         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
871         so the textbox (if any) goes away.  Fixes bug #80117.
872
873 2006-12-04  Chris Toshok  <toshok@ximian.com>
874
875         * DataGridColumnStyle.cs: set the column's readonly property
876         initially based on the property descriptor's IsReadOnly.  Fixes
877         bug #80044.
878
879 2006-12-04  Chris Toshok  <toshok@ximian.com>
880
881         * ComboBox.cs: wrap the dropdown style changing work in
882         SuspendLayout/ResumeLayout.  Fixes bug #79968.
883
884 2006-12-04  Jackson Harper  <jackson@ximian.com>
885
886         * TextBoxBase.cs: Fix off by one, since these are one-based.
887         * TextBox.cs: Select all the text when we get focus.  The TextBox
888         does this but the RTB does not.
889
890 2006-12-04  Chris Toshok  <toshok@ximian.com>
891
892         * DataGridTextBoxColumn.cs: remove some spew.
893
894         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
895         but some part of me is saying "it shouldn't be here.."  At any
896         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
897         setting the value.
898
899 2006-12-04  Chris Toshok  <toshok@ximian.com>
900
901         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
902         to reassign the propertydescriptor.
903
904 2006-12-04  Jackson Harper  <jackson@ximian.com>
905
906         * TextBoxBase.cs:
907         * TextControl.cs: Remove some unused variables.  Maybe this will
908         patch things up between mike and I.
909         - don't split lines less then one char wide, if the viewport is
910         that small text won't be visible anyways.
911         
912 2006-12-04  Jackson Harper  <jackson@ximian.com>
913
914         * TextBoxBase.cs: Default selection length is -1, need to do some
915         more testing on windows to see when this is used for the property.
916         - Redid the Lines [] property to that we properly remove soft line
917         breaks
918         - added support for preserving carriage returns
919         -  CanUndo is not a variable like 'is undo enabled' it just returns
920         true if there is undo operations available.
921         - AppendText doesn't need to grab the last tag itself anymore,
922         this happens automatically when we move the cursor.
923         * TextControl.cs: Add CompoundActions to the undo class. This
924         allows combining the other operations into one big option.  ie a
925         paste will combine { delete old, insert new, move cursor }
926         - Add InsertString undo operation
927         - New method for deleting multiline text
928         - Add carriage returns to lines. So we can preserve carriage
929         returns when text is 'roundtripped'
930
931 2006-12-04  Chris Toshok  <toshok@ximian.com>
932
933         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
934         minimum 0.  Fixes the scrollbar exception in bug #80136.
935
936 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
937
938         * MdiClient.cs: 
939         * MdiWindowManager: Removed unused fields and methods.
940         
941 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
942         
943         * StatusBar.cs: Update all panels when a AutoSize=Contents
944         panel needs updating.
945         
946         * StatusBarPanel.cs: Remove twidth and only use initialize.
947         Fixes #80031.
948                 
949 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
950
951         * Form.cs: When a form's MdiParent is set add it directly
952         on top of the z-order in stead of relying on MdiClient's
953         ActivateChild to do it. Fixes #80135.
954         
955         * MdiClient.cs: 
956         - Remove original_order, mdi_child_list is already doing
957         the same thing.
958         - Create mdi_child_list on construction in
959         stead of first use (avoids a few null checks).
960
961         * MenuItem.cs: Use an already existing list of mdi children
962         to get the correct order of children and remove the other
963         redundant list.
964
965 2006-12-04  Chris Toshok  <toshok@ximian.com>
966
967         * PropertyGridView.cs: cached_splitter_location is only used in
968         !DOUBLEBUFFER code.
969
970         * PropertyGrid.cs: implement the ComComponentNameChanged event
971         using Events, hoping that would fix the warning.  Looks like a
972         compiler bug instead (#80144).
973
974         * PropertyManager.cs: remove unused method.
975
976 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
977
978         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
979         include parentesis to fix expression evaluation. Fixes #79634.
980
981 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
982         
983         * MenuAPI.cs:
984         - Changes to fix behavior in Menu control, some reported in #80097
985         and other detected during behavior refactory like a select event
986         problems.
987         - Remove unneded "if's" conditions.
988         - Created an internal to flag when popup is active in control, we need 
989         it because in .NET you can have menu active but without popup active
990         when you active menu using popup without visible items.
991         - Mimic win32 behavior for Select and Popup events.  
992         - Dont open popup menu when you dont have visible subitems.
993         - Do nothing when click on disabled menu item.
994         - Some small changes to follow the coding style guidelines.
995         - Unselect menu only when another control gives focus. Fixes #80097.
996         - Remove unused code.
997         
998         * MenuItem.cs: internal VisibleItems method to check if menu
999         theres visible subitems, it will be usefull to fix some 
1000         behavior in Menu control.
1001         
1002 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1003         
1004         * Timer.cs: Tag property for 2.0 profile.
1005         
1006 2006-12-01  Chris Toshok  <toshok@ximian.com>
1007
1008         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
1009         
1010         * Win32DnD.cs: comment out some unused fields.
1011
1012         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
1013         some unused properties/methods.
1014
1015         * XplatUIX11.cs: fix MousePosition so we override the base class's
1016         property instead of conflicting with it.
1017
1018         * PictureBox.cs: comment out some unused fields
1019
1020         * OSXStructs.cs: make some struct fields public.
1021
1022         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
1023         MousePosition so we override the base class's property instead of
1024         conflicting with it.
1025
1026         * X11Dnd.cs: comment out some unused fields
1027
1028         * X11DesktopColors.cs: fix some struct field visibility to quiet
1029         the compiler.
1030
1031         * X11Dnd.cs: remove some debug code.
1032
1033         * ThemeClearlooks.cs: comment out unused field.
1034
1035         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
1036
1037         * ThemeGtk.cs: comment out some unused pinvokes.
1038
1039         * Timer.cs: remove some unused fields.
1040
1041         * ThemeClearlooks.cs: comment out unused field.
1042
1043         * UpDownBase.cs: comment out unused field.
1044
1045         * DataObject.cs: comment out unused field.
1046
1047         * DataGridBoolColumn.cs: reomve unused field.
1048
1049         * DataGrid.cs: remove unused field.
1050
1051         * Cursor.cs: remove old ToBitmap code.
1052
1053         * ControlPaint.cs: remove unused method.
1054
1055         * ScrollBar.cs: remove unused fields.
1056
1057         * ComboBox.cs: remove unused field, and chain up to
1058         AccessibleObject ctor.
1059
1060         * ListBox.cs: remove unused field.
1061
1062         * ButtonBase.cs: wrap a couple fields in NET_2_0.
1063
1064         * GridEntry.cs: remove unused fields.
1065
1066         * Binding.cs: remove unused fields.
1067
1068         * AxHost.cs: remove unused method.
1069
1070         * ContainerControl.cs: remove unused field.
1071
1072         * ScrollableControl.cs: remove unused fields.
1073
1074 2006-12-01  Chris Toshok  <toshok@ximian.com>
1075
1076         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
1077         the Where/WhereString stuff.  it's easy enough to CWL
1078         Environment.StackTrace.
1079
1080         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
1081         unused private fields.
1082
1083 2006-12-01  Jackson Harper  <jackson@ximian.com>
1084
1085         * TextControl.cs: Do not update the view while inserting multiline
1086         text. If we update the view we might wrap lines, before entering
1087         the new lines, which causes the new line insertion calculations to
1088         be totally fubared.
1089         - Remove an old TODO
1090         - Make debug output a little nicer
1091         
1092 2006-12-01  Chris Toshok  <toshok@ximian.com>
1093
1094         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
1095
1096 2006-12-01  Chris Toshok  <toshok@ximian.com>
1097
1098         [ fix the majority of the CS0108 warnings we've been suppressing ]
1099         
1100         * TreeView.cs: mark BackgroundImageChanged as 'new'.
1101
1102         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
1103         to "LayoutToolBar" to quiet mcs.
1104         
1105         * TabControl.cs: mark our ControlCollection class as 'new'.
1106
1107         * TextBoxBase.cs: mark some events as 'new'.
1108
1109         * Splitter.cs: TabStop is 'new'.
1110
1111         * ControlBindingsCollection.cs: mark a few methods as new since
1112         they change the visibility from protected to public.
1113
1114         * RadioButton.cs: DoubleClick -> base class, and remove unused
1115         HaveDoubleClick.
1116
1117         * MonthCalendar.cs: ImeMode property -> base class, and mark many
1118         events as new.
1119
1120         * NumericUpDown.cs: TextChanged -> base class.
1121
1122         * CheckedListBox.cs: mark our ObjectCollection class as new to
1123         quiet mcs.
1124
1125         * FolderBrowserDialog.cs: make HelpRequest event new and have it
1126         muck with the base class.
1127
1128         * StatusBar.cs: fix some mcs warnings about Update being the same
1129         name as a base class method.
1130
1131         * RichTextBox.cs: mark some events as new, and make them do things
1132         to the base class impl.
1133
1134         * UserControl.cs: mark TextChanged as new, and have it manipulate
1135         base.TextChanged.
1136
1137         * UpDownBase.cs: mark some things new.
1138
1139         * CheckBox.cs: mark DoubleClick "new", and add some text about
1140         what we need to look at.
1141
1142         * Panel.cs: make the events "new", and manipulate the base
1143         version.  these are just here for attributes.
1144
1145         * AccessibleObject.cs: make owner private.
1146
1147         * Control.cs: deal with AccessibleObject.owner being private.
1148         cache our own copy if we need it.
1149
1150         * Button.cs: add "new" to the DoubleClickEvent.
1151
1152         * ListBox.cs: no need to track our own has_focus here.  let
1153         Control.has_focus do it for us.  Also some other work to clear up
1154         warnings about not overriding base class methods of the same name.
1155         
1156         * ComboBox.cs: clear up some warnings about not override base
1157         class methods of the same name.
1158
1159 2006-12-01  Chris Toshok  <toshok@ximian.com>
1160
1161         * Form.cs: flag a few things as "new" to quiet some of the mcs
1162         warnings.
1163
1164         * AxHost.cs: same.
1165
1166         * PrintPreviewDialog.cs: same.
1167
1168         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
1169         now DGV isn't so horrible on the class status page.  also, move
1170         all events to using System.ComponentModel.EventHandlerList.  my
1171         wrists hurt.
1172
1173 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1174
1175         * MdiWindowManager.cs:
1176         - Set form to active mdi child if shown,
1177         and update the active mdi child to the next 
1178         remaining child in the z-order if the form is hidden.
1179
1180         * Form.cs: 
1181         - Track if the form has been visible and if its 
1182         visibility is beeing changed, so that the MdiClient
1183         can properly decide the ActiveMdiChild. The MdiClient 
1184         cannot track this since the form can change visibility 
1185         before MdiClient is created.
1186
1187         * MdiClient.cs:
1188         - Don't activate anything of the parent form is changing
1189         its visibility.
1190         - Rework ActiveMdiChild to only return visible mdi 
1191         children and take into account several other corner 
1192         cases.
1193
1194 2006-12-01  Chris Toshok  <toshok@ximian.com>
1195
1196         * IBindableComponent.cs: new 2.0 interface.
1197
1198 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
1199
1200         * DataGrid.cs: Font for caption area is bold by default.
1201
1202 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
1203
1204         * Menu.cs: Tag property for 2.0.
1205         
1206 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
1207
1208         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
1209         
1210 2006-12-01  Chris Toshok  <toshok@ximian.com>
1211
1212         * TreeView.cs: doh, the Begin* events should be
1213         TreeViewCancelEventHandler.
1214
1215 2006-12-01  Chris Toshok  <toshok@ximian.com>
1216
1217         * Form.cs: Form.ControlCollection already stores off the
1218         form_owner field.  don't access the base class's internal "owner"
1219         field.
1220
1221         * Control.cs: make all the fields in Control.ControlCollection
1222         private.  there's no need for any internal fields here.
1223
1224 2006-12-01  Chris Toshok  <toshok@ximian.com>
1225
1226         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
1227         OnHandleCreated.  Fixes bug #80109.
1228
1229 2006-12-01  Chris Toshok  <toshok@ximian.com>
1230
1231         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
1232         SplitContainer.cs, Control.cs, StatusStrip.cs,
1233         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
1234         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
1235         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
1236         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
1237         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
1238         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
1239         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
1240         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
1241         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
1242         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
1243
1244         do most of the work to convert our code over to use
1245         System.ComponentModel.Component.Events for
1246         adding/removing/dispatching events.
1247
1248
1249 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1250
1251         * DataGridView.cs: Fix an ArgumentNullException reported 
1252         twice today in IRC.
1253
1254 2006-11-30  Mike Kestner  <mkestner@novell.com>
1255
1256         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
1257         grabbed listbox.  Fixes #80036 and #80101.
1258
1259 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1260
1261         * Message.cs: Changed ToString() to match MS.
1262         
1263 2006-11-30  Jackson Harper  <jackson@ximian.com>
1264
1265         * TextBoxBase.cs: You can still change the selected text on a read
1266         only textbox.
1267         * TextControl.cs: Lower magic number for wrap calculations. This
1268         lets text get closer to the right (far) edge.
1269
1270 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
1271
1272         * Control.cs: Tweak 2.0 layout properties.
1273         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
1274         * TextRenderer.cs: Add a new overload.
1275         * ToolStrip*: Huge amount of changes and new features.
1276
1277 2006-11-30  Mike Kestner  <mkestner@novell.com>
1278
1279         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
1280         scroll range correct.  Fixes #79994.
1281
1282 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
1283
1284         * MdiWindowManager.cs: Update main form's text when
1285         a form is closed. (fixes #80038)
1286         
1287 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
1288
1289         * ToolBar.cs:
1290         - Fix an regression in ButtonSize.
1291         - Get ImeMode default value change to "Disable".
1292         - Get ShowTooltips default value change to true, default value is 
1293         "false" but after make a test in .NET we get "true" result as default.
1294         
1295 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
1296
1297         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
1298
1299 2006-11-29  Chris Toshok  <toshok@ximian.com>
1300
1301         * XplatUIWin32.cs (GetWindowTransparency): check return value of
1302         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
1303         SetWindowTransparency hasn't been called.
1304
1305 2006-11-29  Chris Toshok  <toshok@ximian.com>
1306
1307         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
1308         if it's supported.
1309         (set_AllowTransparency): reorder things a little so that the
1310         WS_EX_LAYERED style is removed properly.
1311
1312 2006-11-29  Chris Toshok  <toshok@ximian.com>
1313
1314         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
1315         
1316         * Form.cs: only call the XplatUI transparency method (get/set) if
1317         SupportsTransparency says it's supported. Otherwise fallback to
1318         doing nothing (in the set case) or returning the instance field we
1319         cache (in the get case).
1320
1321         * XplatUIStructs.cs: add TransparencySupport flag enum.
1322         
1323         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
1324         change to SupportsTransparency.
1325
1326         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
1327         TransparencySupport.None from SupportsTransparency.
1328
1329         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
1330         TransparencySupport.Set from SupportsTransparency.
1331
1332         * XplatUIWin32.cs: implement GetWindowTransparency calling
1333         GetLayeredWindowAttributes, and implement SupportsTransparency by
1334         checking whether or not both
1335         GetWindowTransparency/SetWindowTransparency are available
1336         entrypoints.  We need to do this since SetWindowTransparency is
1337         available as of win2k, but GetWindowTransparency requires winxp.
1338         yay win32 api.
1339
1340         * XplatUI.cs: Add GetWindowTransparency, and change
1341         SupportsTransparency to allow for either/both Get/Set.
1342
1343 2006-11-29  Chris Toshok  <toshok@ximian.com>
1344
1345         * DataGrid.cs: keep from going into an infinite loop redrawing a
1346         datagrid that has no datasource.  Fixes bug #80033.
1347
1348 2006-11-29  Chris Toshok  <toshok@ximian.com>
1349
1350         * MenuItem.cs: fix the NRE when we assign text (and therefore call
1351         Invalidate) before the mainmenu has been assigned to a control.
1352
1353 2006-11-29  Chris Toshok  <toshok@ximian.com>
1354
1355         * DataGrid.cs: detect when we should be double the double click
1356         row/column autosize stuff, although that codepath has yet to be
1357         written.  part of the work for bug #79891.
1358
1359 2006-11-29  Chris Toshok  <toshok@ximian.com>
1360
1361         * Binding.cs (SetControl): fix unit test.
1362
1363 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1364
1365         * PageSetupDialog.cs: Validate the margins and set them in
1366         PageSettings. 
1367         * NumericTextBox.cs: New class to mimic the behavior of the
1368         textboxes used in the printing dialogs.
1369
1370 2006-11-29  Andreia Gaita  <avidigal@novell.com>
1371         
1372         * Form.cs: Revert previous change (remove call UpdateBounds
1373         from form constructor), because it messes with the handle creation
1374         order, and that one needs lots and lots of love.
1375         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
1376         for valid printer and throw InvalidPrinterException if document
1377         is set but printer not valid), adding a MonoTODO. Once 
1378         handle creation is done properly, we can put this back in.
1379
1380 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1381
1382         * MenuItem.cs: Create a invalidate method for menu item, to be
1383         calling from set text, it make text changes to imadiate update
1384         on screen. Fixes #80013. 
1385         
1386 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1387
1388         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
1389         fixes bug #80070 and some other problem on toolbar buttons
1390         layout.
1391
1392 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
1393
1394         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
1395         with dotted brush.      Fixes #79564
1396         
1397 2006-11-28  Andreia Gaita  <avidigal@novell.com>
1398
1399         * Form.cs: Removed call to UpdateBounds on Form
1400         constructor, it was causing a call to CreateHandle
1401         before it was supposed to.
1402         * PrintControllerWithStatusDialog: Applied patch
1403         by Chris Toshok to hide controller when there are
1404         no printers available.
1405         PrintDialog.cs: initialize printer settings to 
1406         null - correct DefaultValues test #5
1407         * PrintPreviewControl.cs: Move PrintController
1408         initialization to GeneratePreview
1409         * PrintPreviewDialog.cs: 
1410         - Remove Preview generation     from Document_set(). It is 
1411         called on OnPaint
1412         - Throw InvalidPrinterException on CreateHandle if
1413         a Document is set but there are no printers or 
1414         printer is not valid.
1415         * ThemeWin32Classic: don't paint PrintPreviewControl
1416         if there is nothing to paint    
1417
1418 2006-11-28  Miguel de Icaza  <miguel@novell.com>
1419
1420         * Form.cs: Add another popular method.
1421
1422         * TabPage.cs: ditto.
1423
1424 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1425
1426         * MenuItem.cs: Fixed a warning.
1427         * InternalWindowManager: Fixed a warning.
1428
1429 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1430
1431         * MenuItem.cs:
1432         - When cloning a menu also clone MdiList and clone the 
1433           window menu items properly (as the forms and menuitems
1434           are kept in an internal hashtable, these need updating 
1435           as well)
1436         - Rewrote the window menu code, menu items are added in the
1437           order the forms were added to their parent, and they are
1438           updated every time the window menu is shown (before the
1439           list was only generated once, in the current order of the
1440           forms, and would never be updated). A checkmark is shown
1441           next to the item corresponding to the active mdi child.
1442
1443 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1444
1445         * XplatUIStructs.cs: 
1446         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
1447         
1448         * XplatUIWin32.cs: 
1449         - Added TME_NONCLIENT to TMEFlags.
1450         - Handles WM_NCMOUSEMOVE in GetMessage to 
1451           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
1452
1453         * MdiWindowManager:
1454         - Now merges mdi child menu to parent menu when maximized.
1455         - Recalculate NC areas of both mdi child and mdi parent. 
1456           Fixes #79757 (4).
1457           on window state and size changes.Fixes #79844 (3).
1458         - Handle WM_NCCALCSIZE to properly calculate borders.
1459
1460         * Form.cs:
1461         - Add/remove to the mdi containers list of mdi children 
1462           in the order they are added.
1463         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
1464           to the maximized mdi child.
1465         
1466         * InternalWindowManager.cs:
1467         - Only execute a click on the control buttons on the mouse up,
1468           not on the mouse down. Show the state of the button 
1469           (was only showing Normal state, never Pressed state). The
1470           pressed button now follows the mouse (if you click the Close 
1471           button and move the mouse over the Maximize button, the 
1472           Maximize button will be shown as pressed). Since Win32 does
1473           not generate WM_NCLBUTTONUP if you release the button outside
1474           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
1475           it as a mouse up.
1476         
1477         * ThemeWin32Classic.cs:
1478         - Draw a missing border around mdi child forms. Fixes #79844 (2).
1479
1480         * MdiClient.cs:
1481         - Added a list of forms which contains the order the forms are
1482           added to the mdi parent.
1483         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
1484         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
1485         - If the active form changes set the scrollbars to the top
1486           of the Z order, otherwise the form could hide them.
1487         - Scrollbars are now sized according to ClientSize, not 
1488           to Size, and they take into account the other scrollbar
1489           to determine maximum.
1490         
1491 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
1492         
1493         * XplatUI.cs:
1494         * XplatUIDriver.cs:
1495         * XplatUIX11.cs:
1496         * XplatUIWin32.cs:
1497         * XplatUIOSX.cs:
1498         - Added RequestAdditionalWM_NCMessages for windows to 
1499           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
1500           Currently only implemented in XplatUIWin32.
1501
1502 2006-11-27  Chris Toshok  <toshok@ximian.com>
1503
1504         * Hwnd.cs: only add the hwnd to the windows hash in
1505         set_WholeWindow and set_ClientWindow if whole_window/client_window
1506         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
1507
1508 2006-11-27  Mike Kestner  <mkestner@novell.com>
1509
1510         * ComboBox.cs: remove redundant OnDropDown call.  It is called
1511         from the ComboListBox.ShowWindow code. Fixes #79969.
1512
1513 2006-11-27  Chris Toshok  <toshok@ximian.com>
1514
1515         * Hwnd.cs: remove the setters for ExposePending and
1516         NCExposePending - noone uses them.
1517
1518 2006-11-27  Jackson Harper  <jackson@ximian.com>
1519
1520         * TextControl.cs: new param for ReplaceSelection which determines
1521         whether we select the new selection, or set the cursor to the end
1522         of the new selection.
1523         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
1524         pasting, select the new text.
1525         * RichTextBox.cs: Use new param for ReplaceSelection.
1526
1527 2006-11-27  Jackson Harper  <jackson@ximian.com>
1528
1529         * TextBoxBase.cs: Set the selection to the caret after the caret
1530         is moved, otherwise they get out of sync.
1531
1532 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1533
1534         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
1535         it fixes #80015
1536
1537 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
1538
1539         * ThemeWin32Classic.cs: 
1540         - Fix toolbar drop down arrow position.
1541         - Fix drop down appearance when ToolBar.Appearance is normal,
1542         it fixes #80018.
1543         
1544 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
1545
1546         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
1547         * Control.cs: Same.
1548         * UpDownBase.cs: Same.
1549         * ButtonBase.cs: Same.
1550         * ScrollBar.cs: Same.
1551         * TrackBar.cs: Same.
1552         * PictureBox.cs: Same.
1553         * UserControl.cs: Same.
1554         * Label.cs: Same.
1555         * ListControl.cs: Same.
1556         * TextBoxBase.cs: Same.
1557         * ListView.cs: Same.
1558         * RichTextBox.cs: Same.
1559         * TreeView.cs: Same.
1560
1561 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
1562
1563         * PrintDialog.cs:
1564         - Text label for where 
1565         - Text label comment was not shown
1566
1567 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
1568
1569         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
1570
1571 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1572
1573         * InternalWindowManager.cs: 
1574         - Handle WM_PARENTNOTIFY to activate the form
1575         if any child control is clicked.
1576         - The form is only sizable if not minimized.
1577
1578         * MdiWindowManager.cs:
1579         - Save the IconicBounds if the form is moved.
1580         - Rework SetWindowState, now the window bounds 
1581         are stored only if the old window state is Normal.
1582         
1583         * MdiClient.cs:
1584         - In SetWindowStates store the old window state if 
1585         the window is maximized and restore window state if
1586         the window looses focus.
1587         - Don't handle any scrollbar value changes if 
1588         initializing the scroll bars. Fixes #79771.
1589         - Reworked ArrangeIconicWindows. Current algorithm
1590         tests bounds agains all other minimized windows, if
1591         any intersections create new bounds (going left to 
1592         right, bottom to top) and then test again. When 
1593         successful the bounds are saved and never computed
1594         again. Fixes #79774.
1595
1596 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1597
1598         * InternalWindowManager.cs: Added HandleTitleBarUp.
1599
1600 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1601
1602         * NumericUpDown.cs: In .NET 1.1, user entered text is still
1603         hexadecimal in ParseUserEdit.
1604
1605         
1606 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
1607
1608         * MdiWindowManager.cs: 
1609         - Handle a click on the form's icon to show the 
1610         system menu (when maximized). Fixes #79775.
1611         - Change the existing click handler for the form's
1612         icon when not maximized to show on MouseUp.
1613         Fixes #79776.
1614
1615         * Form.cs: In OnResize only layout the mdi child's
1616         parent if it actually has a parent. Might not if
1617         the window is closing.
1618
1619
1620 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1621
1622         * MdiClient.cs: Ignore active MDI client for text of parent, if
1623         child has no text set.
1624
1625 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
1626
1627         * ToolBar.cs: Fixed ToString to match MS.
1628
1629 2006-11-22  Andreia Gaita  <avidigal@novell.com>
1630
1631         * NumericUpDown: 
1632         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
1633         update inner values on set. Fixes #79966.
1634         - Override OnLostFocus to update value on NET 2. Fixes #79950.
1635         - Fix hexadecimal parsing.
1636         
1637         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
1638         parent. Fixes #79957
1639
1640 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1641
1642         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
1643         the actual size has to be queried, since if height /
1644         width is negative Win32 changes it to 0. 
1645         Fixes #79999 on Windows.
1646         
1647         * XplatUIX11.cs: Set height / width to 0 if negative
1648         in SetWindowPos. Fixes #79999 on Linux.
1649         
1650 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1651
1652         * ThemeWin32Classic.cs: Fix text redenring when button is
1653         pressed.
1654
1655 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
1656
1657         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
1658         and later navigate by mouse. Fixes #79528.
1659
1660 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1661
1662         * ToolBar.cs: Set default value for TabStop to false in
1663         constructor, it fixes remaining behavior of bug #79863.
1664
1665 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1666
1667         * MdiWindowManager.cs:
1668         * InternalWindowManager.cs:
1669         - Moved a few methods specific to Mdi from 
1670         InternalWindowManager to MdiWindowManager.
1671         Fixes #79996.
1672         
1673 2006-11-21  Chris Toshok  <toshok@ximian.com>
1674
1675         * XplatUIOSX.cs: stub out InvalidateNC.
1676
1677         * XplatUIWin32.cs: implement InvalidateNC using the call I found
1678         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
1679
1680         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
1681
1682         * XplatUIDriver.cs: add InvalidateNC abstract method.
1683
1684         * XplatUI.cs: add InvalidateNC.
1685
1686 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
1687
1688         * ToolBar.cs: Invalidate complete button area when pressed status 
1689         was changed.
1690         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
1691         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
1692         by 1 when button is pressed.
1693
1694 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1695
1696         * ToolButton.cs: Invalidate middle of DropDown button when
1697         ToolBar theres DropDownArrows.
1698         * ThemeWin32Classic.cs: Change position of DropDown arrow and
1699         fix DropDown drawing operations.
1700
1701 2006-11-20  Chris Toshok  <toshok@ximian.com>
1702
1703         * NativeWindow.cs: fix the formatting of functions ('{' on the
1704         following line), and enable the thread exception dialog.
1705
1706         * Application.cs: remove the duplicate exception catching from
1707         here.
1708
1709 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1710
1711         * Toolbar.cs: Triggers button click event when click on icon
1712         of dropdown ToolBarButton. Fixes #79912.
1713         
1714 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1715
1716         * Theme.cs:
1717         * ThemeWin32Classic.cs:
1718         - Added a property WindowBorderFont to enable themeing
1719           of mdi child windows' Text.
1720           
1721 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1722
1723         * InternalWindowManager.cs:
1724         * Form.cs:
1725         * MdiClient.cs:
1726         * MdiWindowManager.cs: 
1727         - If mdi child is maximized, set mdi parent's
1728           text to "Parent - [Child]". Fixes #79770.
1729         - If there is any maximized mdi child windows, only the active 
1730           window (and any new windows) is maximized, the rest are normal.
1731         - On a WindowState change only save mdi child's window bounds 
1732           if the old window state was normal. Fixes #79774.
1733         - The scroll bars are now calculated on hopefully all
1734           necessary events. Fixed #79771 / #79844->6 / #79906.
1735         - MdiClient.SizeScrollBars() now takes into account docked 
1736           controls in the parent when calculating available space.
1737         - InternalWindowManager now always repaints the entire title
1738           area. Fixes #79844->1/4/5.
1739         - Added RequestNCRecalc on mdi child windowstate changes.
1740           Fixes #79772.
1741
1742 2006-11-20  Mike Kestner  <mkestner@novell.com>
1743
1744         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
1745         in the MouseUp handler of the listbox and move the return handling
1746         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
1747
1748 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
1749
1750         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
1751
1752 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1753
1754         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
1755           working in 1.2.x anymore. So, updated.
1756
1757 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
1758
1759         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
1760         NumberGroupSeparator of current culture instead of assuming en-US.
1761         Fixed bug #79967.
1762
1763 2006-11-17  Mike Kestner  <mkestner@novell.com>
1764
1765         * Control.cs: Add the concept of implicit bounds setting so that
1766         dock/undock round trips preserve explicitly set size/locations.
1767         Fixes #79313.
1768
1769 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
1770
1771         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
1772           can't handle those filters. (Fixes bug #79961)
1773
1774 2006-11-17  Chris Toshok  <toshok@ximian.com>
1775
1776         [ fixes the exit/crashes associated with #79835.  it's clearly
1777         suboptimal though, we need to figure out a better way to solve
1778         this. ]
1779         
1780         * PrintPreviewControl.cs: deal with the new invalid printer
1781         exceptions.
1782
1783         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
1784         and return false (so CommonDialog.ShowDialog doesn't actually show
1785         the form.)
1786
1787         * PrintDialog.cs: enable/disable the Ok button depending on
1788         whether or not the printer is valid.
1789
1790         * CommonDialog.cs (ShowDialog): only actually show the form if
1791         RunDialog returns true.
1792
1793 2006-11-17  Jackson Harper  <jackson@ximian.com>
1794
1795         * TextControl.cs: When soft splitting a line, mark it as a soft
1796         split line. Also carry over the current line break to the next
1797         line.
1798
1799 2006-11-17  Chris Toshok  <toshok@ximian.com>
1800
1801         * XplatUIX11.cs: when scrolling a window with an invalid area, we
1802         only want to shift the part of the invalid area that overlaps the
1803         area we're scrolling.  we also don't want to clear the invalid
1804         area unless the invalid area was entirely contained within the
1805         scrolling area.
1806
1807 2006-11-16  Chris Toshok  <toshok@ximian.com>
1808
1809         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
1810         also make sure to free the memory returned by XGetWindowProperty
1811         in GetText().
1812
1813         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
1814
1815 2006-11-16  Chris Toshok  <toshok@ximian.com>
1816
1817         * XplatUI.cs: add a new super secret way to get at the totally
1818         unsupported X11 backend.
1819
1820 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
1821
1822         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
1823
1824 2006-11-16  Jackson Harper  <jackson@ximian.com>
1825
1826         * TreeView.cs: Allow more explicit setting of top node position
1827         for scrollbars. Slower algo, but more accurate.
1828         - CollapseAll should maintain the current top node.
1829         * TextBoxBase.cs: When positioning the caret, use the line, pos
1830         method, since the x, y method does not grab the correct tag, and
1831         the caret height never gets set correctly. (Maybe I should just do
1832         away with the caret having its own height, and always use the
1833         carets current tag for height).
1834
1835 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
1836
1837         [Fixes 79778, 79923]
1838
1839         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
1840         Parent to the FosterParent instead.
1841
1842 2006-11-16  Jackson Harper  <jackson@ximian.com>
1843
1844         * TreeView.cs: Need to recalc the topnode when we expand or
1845         collapse. The scrolling methods can't handle this on their own,
1846         since they use differences between the last scroll position, and
1847         those difference get completely messed up since we are expanding
1848         nodes.  This problem should probably be fixed in the scrolling
1849         methods, so they can figure out exactly where they are, but this
1850         will slow things down a little.
1851         * ThemeWin32Classic.cs: Special case for groupboxes with empty
1852         strings, makes nunit-gui look a lot nicer.
1853
1854 2006-11-16  Chris Toshok  <toshok@ximian.com>
1855
1856         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
1857         the broken multithreaded event handling we have in here.  File
1858         this entry under "Why we should move to the new X11 backend".
1859
1860         Any thread can make it into UpdateMessageQueue, which gets events
1861         from the X socket - some of which could belong to hwnds being
1862         managed by a different thread.  We can also have multiple threads
1863         in UpdateMessageQueue at the same time, with each one reading from
1864         the X socket.  This leads to many problems, with the following
1865         solutions:
1866
1867         We can't use hwnd.Queue.Enqueue anywhere in here and must use
1868         EnqueueLocked.
1869
1870         The MotionNotify compression we do can't work across threads
1871         (without locking the entire queue, perhaps) since we call
1872         hwnd.Queue.Peek, so we just punt and don't compress motion events
1873         unless the owning thread is the one which got the X event.
1874
1875         ConfigureNotify is another fun one, since it modifies the hwnd's
1876         bounds and then enqueues the event.  We add a lock to Hwnd which
1877         is held when setting configure_pending to true (and enqueuing the
1878         event).
1879
1880         There is a race wrt the wake socket.  we need to make sure that
1881         only 1 thread is waiting on that socket, or else a thread could
1882         sleep waiting for data that never comes.  It's difficult (but not
1883         impossible) to make happen, because it seems to require something
1884         like the following:
1885
1886             1. Thread 1 polls on wake_receive
1887         
1888             2. poll returns saying there's data to be read on
1889                wake_receive.
1890         
1891             3. Thread 2 polls on wake_receive and immediately returns
1892                saying there's data to be read.
1893
1894             4. Thread 2 reads the wakeup byte from wake_receive
1895
1896             5. Thread 1 attempts to read the wakeup byte from
1897                wake_receive.
1898
1899             6. Thread 2 exits (due to a form closing, perhaps).
1900
1901             7. Thread 1 blocks forever.
1902         
1903         Fun, eh?
1904
1905         Fixing the Expose handling isn't done yet, and the races inherent
1906         in that piece of code are responsible for the drawing mistakes you
1907         see when generating expose events in a MT app (like NPlot).  This
1908         one is the likely to be the hardest to bandaid, and it doesn't
1909         appear to cause anything but drawing problems.  The other issues
1910         caused apps to exit or hang.
1911
1912         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
1913         called from a different thread than the one that should be calling
1914         these functions.
1915
1916         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
1917
1918 2006-11-15  Chris Toshok  <toshok@ximian.com>
1919
1920         * Application.cs: null out the context's MainForm when we exit
1921         RunLoop.  Fixes a newly checked in unit test as well as the last
1922         ODE from bug #79933.
1923
1924 2006-11-15  Chris Toshok  <toshok@ximian.com>
1925
1926         * Form.cs (set_Owner): allow a null value so we can clear the
1927         form's owner.
1928         (Dispose): set all our owned_form's Owner properties to null, and
1929         clear the owned_forms collection.
1930         (WM_CLOSE): clean up this a little bit.. still not right though.
1931
1932         * ApplicationContext.cs: OnMainFormClosed should only call
1933         ExitThreadCore if the main form isn't recreating.  Fixes unit
1934         test.
1935
1936 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1937
1938         [Fixes 78346]
1939
1940         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
1941
1942 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1943
1944         [Fixes 79433]
1945
1946         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
1947         keep popup window types from stealing focus from the main form
1948         on Windows.
1949
1950         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
1951
1952         * MenuAPI.cs: Set above flag to true.
1953
1954 2006-11-15  Chris Toshok  <toshok@ximian.com>
1955
1956         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
1957         the button being released is not in wParam.
1958
1959 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
1960
1961         * Form.cs: Add the released button to MouseEventArgs.Button
1962         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
1963         on Win32.
1964
1965 2006-11-15  Chris Toshok  <toshok@ximian.com>
1966
1967         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
1968         GetText().  untested because it's unused in our implementation.
1969         Control.Text always caches the text, even if
1970         ControlStyles.CacheText is not set.
1971
1972         fixes bug #79939.
1973
1974 2006-11-15  Chris Toshok  <toshok@ximian.com>
1975
1976         [ fixes #79933 ]
1977         
1978         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
1979         message.  no hiding, no disposing.
1980
1981         in the WM_CLOSE handler, hide the form if it's modal.
1982
1983 2006-11-15  Chris Toshok  <toshok@ximian.com>
1984
1985         * XplatUIX11.cs: use AddExpose instead of sending a message.
1986         fixes textbox border drawing.
1987
1988 2006-11-15  Chris Toshok  <toshok@ximian.com>
1989
1990         * PropertyGridView.cs: keep from crashing on mouse move/down when
1991         the property grid is empty.
1992
1993 2006-11-14  Jackson Harper  <jackson@ximian.com>
1994
1995         * TextControl.cs: Make PageUp and PageDown more like the MS
1996         versions.
1997         * TextBoxBase.cs: When we set the text property position the
1998         cursor at the beginning of the document.
1999
2000 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2001
2002         * Form.cs: if a mdi child's WindowState has changed
2003         before it's creation, it would display wrong control
2004         buttons.
2005         
2006 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
2007
2008         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
2009           (Fixes bug #79927)
2010
2011 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2012
2013         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
2014         the window gets to paint its borders even if the window is
2015         getting smaller.
2016         
2017         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
2018         otherwise the old control buttons would still be painted 
2019         if the window gets bigger.
2020         
2021         * PaintEventArgs.cs: add an internal method so that the clip 
2022         rectangle can be changed.
2023         
2024 2006-11-13  Chris Toshok  <toshok@ximian.com>
2025
2026         [ fixes bug #79745 ]
2027         
2028         * NotifyIcon.cs: lots of cleanup.
2029
2030         * X11Structs.cs: add an enum for XEMBED messages.
2031
2032         * XplatUIX11.cs: reindent one of the giant switch statements, it
2033         was taking up an additional tab stop, and this file is already way
2034         too wide for my laptop's screen.
2035
2036         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
2037         we get it, resize the hwnd to the WMNormalHints max_width/height.
2038
2039 2006-11-13  Jackson Harper  <jackson@ximian.com>
2040
2041         * TextBoxBase.cs: Compute the value changes for the mouse wheel
2042         teh simple way.
2043
2044 2006-11-13  Chris Toshok  <toshok@ximian.com>
2045
2046         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
2047         #79898.  force a reference to the Region to stick around so the
2048         unmanaged object isn't collected (rendering our handle in the MSG
2049         stale).
2050
2051 2006-11-13  Chris Toshok  <toshok@ximian.com>
2052
2053         * XplatUIX11.cs: fix #79917 for window managers which support
2054
2055         using XStoreName on the raw utf8, and we need to convert to
2056         COMPOUND_TEXT if it's non-latin1.
2057
2058 2006-11-13  Chris Toshok  <toshok@ximian.com>
2059
2060         * Form.cs (set_DialogResult): we need to set closing to false if
2061         we're setting our result to None.  fixes bug #79908.
2062
2063 2006-11-13  Jackson Harper  <jackson@ximian.com>
2064
2065         * TextControl.cs: When formatting text, compute the adjusted tag
2066         lengths correctly, using FindTag for the end tag instead of trying
2067         to figure it out outselves.
2068         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
2069         the item, ItemHeight doesn't work, because trees with large
2070         imagelists use those for their height
2071         * TreeView.cs: ActualItemHeight factors in the image height
2072         - compute left edge of checkboxes correctly
2073         - when expanding/collapsing move the bottom down one pixel, so we
2074         aren't moving part of the node
2075
2076 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2077
2078         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
2079         stack in PaintEventStart so that it won't get disposed by the gc
2080         before reaching PaintEventEnd.
2081
2082 2006-11-13  Jackson Harper  <jackson@ximian.com>
2083
2084         * TextBoxBase.cs: Don't select the word if we are on a line with
2085         no text.
2086         - We don't need to position the caret on mouse up, since the mouse
2087         move handler should be doing this
2088         - When double clicking a blank line, the caret is advanced to the
2089         next line.
2090
2091 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
2092
2093         * TreeNodeCollection.cs: Avoid duplicating indexer code.
2094
2095 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
2096
2097         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
2098         Fixes part of bug #79910.
2099
2100 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
2101
2102         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
2103           (bug #79903). Some minor string updates to match ms.
2104
2105 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2106
2107         * FileDialog.cs: Don't add an extension if the filename
2108           already ends with that extension.
2109
2110 2006-11-10  Jackson Harper  <jackson@ximian.com>
2111
2112         * TreeView.cs: Use the currently highlighted node for the
2113         BeforeSelect event.
2114         * TextBoxBase.cs: There is no need to expand selection on
2115         MouseMove.
2116         - CanUndo means 'is there any undo operations', not 'is undo
2117         allowed on this textcontrol. Fixed ClearUndo unit test.
2118
2119 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
2120
2121         * Button.cs: only perform click when button is Selectable (so as 
2122         not to activate default buttons when they're disabled)
2123         
2124         * Control.cs: Rewrite of the SelectNextControl and related 
2125         methods. HandleClick now selects next control if the current one
2126         is being disabled.
2127         
2128         * Form.cs: OnActivated selects next active control only if Load 
2129         has already occurred. If Load hasn't run, there's no point in 
2130         selecting here, Load might change the state of controls.
2131         
2132         * FocusTest.cs: Tests marked as working again for these fixes
2133
2134 2006-11-10  Chris Toshok  <toshok@ximian.com>
2135
2136         * XplatUIX11.cs: a couple of fixes.
2137
2138         - use XInternAtoms with almost all the atoms we need to register,
2139         instead of many, many calls to XInternAtom.  should help a bit on
2140         startup time, at the expense of making the code look a little
2141         worse.
2142
2143         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
2144         isn't reparented (which seems to be a clue that we're running fon
2145         compiz) and they have an Owner form.  This fixes the tool windows
2146         in paint.net when running under compiz.
2147
2148         - when setting the opacity of a window, support both the case
2149         where the window has been reparented and also when it hasn't been.
2150         Since compiz/beryl doesn't seem to reparent windows, and these are
2151         the only window managers which support translucency, I'm not sure
2152         why we need the hwnd.reparented case at all.. but leave it in.
2153         now we get translucent windows in paint.net under compiz/beryl.
2154
2155 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2156
2157         * FileDialog.cs: Always return the value for FilterIndex that
2158           was set. Internally convert it to values that make sense.
2159
2160 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2161         
2162         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
2163
2164 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
2165
2166         * Toolbar.cs: Change default value of DropDownArrows to true, the 
2167         signature still using false to make it compatible with MS but the 
2168         initial value is true. Fixes #79855.
2169
2170 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
2171
2172         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
2173           only available on Linux.
2174
2175 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
2176
2177         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
2178         reduce number of calls to redraw method during toolbar creation.
2179
2180 2006-11-09  Mike Kestner  <mkestner@novell.com>
2181
2182         * ListView.cs : raise SelectedIndexChanged when an item is selected
2183         programmatically via the Item.Selected property.  Gert's nice 
2184         ListViewSelectedIndexChanged test fixture now runs clean.
2185
2186 2006-11-09  Mike Kestner  <mkestner@novell.com>
2187
2188         * ListView.cs : raise SelectedIndexChanged when a selected item is
2189         removed from the item collection using Remove or RemoveAt.
2190
2191 2006-11-09  Mike Kestner  <mkestner@novell.com>
2192
2193         * ListView.cs : raise SelectedIndexChanged once per selected item
2194         for compat with MS.  Fixes #79849+.
2195
2196 2006-11-09  Chris Toshok  <toshok@ximian.com>
2197
2198         * TabControl.cs: initialize row_count to 0, and set it to 1 when
2199         we need to (if we have any tab pages).  Fixes unit test.
2200
2201 2006-11-09  Chris Toshok  <toshok@ximian.com>
2202
2203         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
2204         width is 0, not 3.  Fixes a unit test.
2205
2206 2006-11-09  Mike Kestner  <mkestner@novell.com>
2207
2208         * ListView.cs : use Implicit scrollbars so that focus isn't 
2209         stolen from the listview when they are clicked. Fixes #79850.
2210
2211 2006-11-09  Chris Toshok  <toshok@ximian.com>
2212
2213         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
2214         have a root item.  Fixes #79879.
2215
2216 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
2217
2218         * FileDialog.cs:
2219           - Fix ToString ()
2220           - An ArgumentException is now thrown if a wrong filter
2221             is applied (matches ms). The previous filter doesn't change
2222             anymore if an exception is thrown.
2223           - Changing the FileName property also affects FileNames
2224         * ColorDialog.cs: The length of the CustomColors array is always
2225           16. It doesn't matter if we use a smaller array or null to update
2226           or change the custom colors property.
2227         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
2228           for RootFolder if we get a undefined value.
2229
2230 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2231
2232         * StatusBarPanel.cs: 
2233         - Width is set to MinWidth if Width is smaller than
2234         MinWidth. Fixes #79842.
2235         - MinWidth now always overrides Width (MSDN says MinWidth
2236         is set to Width when AutoSize = None, but they do not 
2237         behave like that).
2238         - Style has now the the correct default value.
2239         
2240 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2241  
2242         * TrackBar.cs: 
2243         - The control is completely invalidated on 
2244         Got/LostFocus to draw the focus rectangle correctly.
2245         - When AutoSize then height is always 45 (width for 
2246         vertical controls).
2247         
2248         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
2249         on the mouse when moved and it doesn't move when grabbed
2250         until the mouse moves as well. Also fixed some wrong 
2251         calculations when clicking on the thumb (control thought
2252         click was outside of thumb and didn't grab it).
2253         Fixes some of the issues in #79718.
2254
2255 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
2256
2257         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
2258
2259 2006-11-08  Chris Toshok  <toshok@ximian.com>
2260
2261         * PropertyGridView.cs: only call ToggleValue if the item is not
2262         readonly.
2263
2264 2006-11-08  Jackson Harper  <jackson@ximian.com>
2265
2266         * TextBoxBase.cs: The RichTextBox and textbox have very different
2267         word selection methods.  Implement the textbox's simple word
2268         selection here, and let the RichTextBox override and provide it's
2269         own.
2270         - Don't do extra selection on mouseup
2271         * RichTextBox.cs: Use the documents word selection algorithm, I
2272         think ideally, this function will be pulled into the
2273         RichTextBox.cs code someday.
2274
2275 2006-11-08  Chris Toshok  <toshok@ximian.com>
2276
2277         * RootGridEntry.cs: new class to represent GridItemType.Root.
2278
2279         * CategoryGridEntry.cs: reformat, and add boilerplate.
2280         
2281         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
2282         returns the UI parent anyway, and we need special handling to
2283         implement the GetTarget method in the face of it.  Also, implement
2284         Select().
2285
2286         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
2287         a root grid item, and use that instead of PropertyGrid.grid_items.
2288         Also, make use of TypeConverters (and add limitted support for
2289         ICustomTypeDescriptors) when initially populating the grid.
2290         Arrays now show up more or less properly.
2291
2292 2006-11-08  Chris Toshok  <toshok@ximian.com>
2293
2294         * Application.cs: set the modal dialog to non modal after we close
2295         it.  Fixes bug #79866.
2296
2297 2006-11-08  Jackson Harper  <jackson@ximian.com>
2298
2299         * TextControl.cs: When combining lines carry over the line end
2300         style from the end line.
2301         - Invalidate the selected area when setting it, if it is visible.
2302         * TextBoxBase.cs: Only rich text box can do full line selects.
2303         - Make sure to set the cursor position when there is a click,
2304         otherwise two clicks in separate areas could cause a large chunk
2305         to be selected.
2306
2307 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2308
2309         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
2310         Fixes #79863.
2311
2312 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2313
2314         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
2315         time. Remove tooltips when ToolButton click events.  Fixes #79856.
2316
2317 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2318
2319         * MenuAPI.cs: Ignore right click for menu actions and fixes
2320         menu border when clicked.  Fixes #79846.
2321
2322 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2323
2324         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
2325         MouseState after create wParam for message, this fixes mouse button 
2326         equal none in mouse up events.
2327         
2328 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
2329
2330         * Control.cs : Focus() now calls Select to set the Container's
2331         Active Control and to give it focus. To avoid infinite recursion
2332         (because ActiveControl also calls Focus at one point), a check 
2333         is made in Focus with the help of a new internal variable
2334         is_focusing.
2335
2336 2006-11-07  Mike Kestner  <mkestner@novell.com>
2337
2338         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
2339         if there's a selection.  Fixes #79849.
2340
2341 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
2342
2343         * PropertyGrid.cs: Avoid fixed height of help description label.
2344         Fixes part of bug #79829.
2345
2346 2006-11-07  Chris Toshok  <toshok@ximian.com>
2347
2348         * XplatUIX11.cs: fix #79790 again, by using the
2349         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
2350
2351 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2352
2353         * ToolBar.cs: Fix left click checking.
2354
2355 2006-11-07  Chris Toshok  <toshok@ximian.com>
2356
2357         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
2358
2359 2006-11-07  Chris Toshok  <toshok@ximian.com>
2360
2361         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
2362         PropertyManager unit tests.
2363
2364         * PropertyManager.cs: make property_name internal.
2365
2366 2006-11-07  Chris Toshok  <toshok@ximian.com>
2367
2368         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
2369         pass a unit test.  Also, don't set image_index to anything in
2370         response to setting the ImageList property.
2371
2372 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
2373
2374         * ToolBar.cs: Ignore click events when mouse button is not a
2375         left button, only accepts other button for dropdown menus.  
2376         Fixes #79854.
2377
2378 2006-11-07  Chris Toshok  <toshok@ximian.com>
2379
2380         * DataGrid.cs: make the back and parent row buttons a little less
2381         ugly.
2382
2383 2006-11-07  Jackson Harper  <jackson@ximian.com>
2384
2385         * TextBoxBase.cs: When converting to Text don't put line breaks in
2386         for soft line breaks.
2387         * TextControl.cs: There is an initial "fake" line in the document,
2388         this is now a soft break line, so that an extra line feed doesn't
2389         get added to the end of documents.
2390
2391 2006-11-07  Chris Toshok  <toshok@ximian.com>
2392
2393         [ fix bug #79778 ]
2394         
2395         * CurrencyManager.cs: if the list is readonly, don't bother
2396         checking if IBindingList.AllowNew is true.
2397
2398         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
2399         for non-DataRowView datasources..  or rather, make it not crash.
2400         (DataGridPaintRelationRow): make sure we limit the row painting to
2401         the area not covered by the row header, and make our cell width at
2402         least large enough to cover the relation area.  This allows grids
2403         that have relations but no rows to render correctly.
2404         (DataGridPaintRowContents): same type of changes here.
2405         (SetDataSource): move back to always calling
2406         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
2407         navigating back through relations.
2408         (HitTest): handle the case where we have no cells but have
2409         relations.  Right now we generate a hit in cell 0 of whatever the
2410         row is, not sure if this is strictly correct, but it works for our
2411         purposes.
2412         
2413         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
2414         bother doing anything.
2415
2416 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
2417
2418         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
2419         early version of StatusStrip.  Not responsible for eaten
2420         application or firstborn children.
2421
2422 2006-11-06  Chris Toshok  <toshok@ximian.com>
2423
2424         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
2425         call GetTabRect with a -1 index.  Fixes #79847.
2426
2427 2006-11-06  Jackson Harper  <jackson@ximian.com>
2428
2429         * TreeNodeCollection.cs: Update scrollbars after clearing.
2430
2431 2006-11-06  Chris Toshok  <toshok@ximian.com>
2432
2433         * NumericUpDown.cs: fix the ToString method for some unit test
2434         love.
2435
2436 2006-11-06  Chris Toshok  <toshok@ximian.com>
2437
2438         * PropertyGrid.cs:
2439         - set the initial SelectedGridItem if we can.
2440
2441         - Exclude non-mergable properties only if we're merging > 1
2442         object.  Merging 1 object isn't really merging, obviously.
2443
2444         - Handle PropertySort.NoSort just like Alphabetical, which is
2445         wrong of course, but at least gets things on the screen.
2446         
2447         * PropertyGridView.cs:
2448         - Add method "FindFirstItem" which finds the first property grid
2449         item, so we can select it by default.
2450
2451         - make use of GridEntry.CanResetValue.
2452
2453         - Don't call RedrawBelowItemOnExpansion here anymore, the
2454         individual GridEntry's will do that.
2455
2456         - Remove the ITypeDescriptorContextImpl internal class.
2457         
2458         * GridEntry.cs:
2459         - this class needs to implement ITypeDescriptorContext, as it's
2460         what MS's PropertyDescriptorGridEntry does, which means we can
2461         remove the ITypeDescriptorContextImpl internal class from
2462         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
2463
2464         - keep a reference to our PropertyGridView, and move the call to
2465         RedrawBelowItemOnExpansion here from PGV.  This means
2466         programmaticly setting Expanded actually does something visible.
2467
2468         - add a CanResetValue() function which takes into account our
2469         possibly multiple "selected_objects" in the merged case.  Shifting
2470         PropertyGridView to use this method fixes another unreported
2471         crasher found running the test for #79829.
2472
2473         - when Top or Bounds is updated, make sure the PropertyGridTextBox
2474         is updated to reflect this.
2475
2476         * CategoryGridEntry.cs: the ctor takes the PGV now.
2477         
2478 2006-11-06  Jackson Harper  <jackson@ximian.com>
2479
2480         * TextControl.cs: These are 1 based.
2481         * TextBoxBase.cs: When setting the selected text, don't change the
2482         selected text tags, this is done by ReplaceText, just position the
2483         cursor at the end of the new text.
2484
2485 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2486
2487         * ListView.cs: Allow label edit only when, when LabelEdit is
2488           set to true.
2489
2490 2006-11-06  Jackson Harper  <jackson@ximian.com>
2491
2492         * TextControl.cs: If a suitable wrapping position isn't found,
2493         just wrap right in the middle of a word.
2494
2495 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
2496
2497         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
2498           bug #79820.
2499
2500 2006-11-06  Jackson Harper  <jackson@ximian.com>
2501
2502         * TreeView.cs: Can't use the VisibleCount property when setting
2503         scrollbar heights, because this doesn't take into account whether
2504         or not the horz scrollbar just came visible.
2505
2506 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
2507
2508         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
2509         activated.  Fixes #79369, #79832.
2510
2511 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
2512
2513         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
2514           had to remove support for links that point to a directory. FileInfo
2515           returns no usefull information (means, the directory they point to)
2516           for such links. Replaced some empty string ("") with String.Empty.
2517
2518 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2519
2520         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
2521         NullReferenceException when attempting to remove node that is not in
2522         collection. Throw NullReferenceException when null is passed to 
2523         Remove. Allow first element of the collection to be removed. Fixes
2524         bug #79831.  In GetEnumerator ().Current return null if positioned 
2525         before the first element of the collection. In GetEnumerator ().Reset,
2526         position before first element of the collection.
2527
2528 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
2529
2530         * PropertyGrid.cs: To match MS, remove default title and description
2531         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
2532         buttons.
2533
2534 2006-11-04  Chris Toshok  <toshok@ximian.com>
2535
2536         * Theme.cs: add a Clamp method, just for kicks.
2537
2538         * ThemeWin32Classic.cs: clamp all color components to [0..255].
2539
2540 2006-11-04  Chris Toshok  <toshok@ximian.com>
2541
2542         * Form.cs: if the form isn't visible, Close() does nothing.
2543
2544 2006-11-03  Chris Toshok  <toshok@ximian.com>
2545
2546         * Form.cs (Close): if the form is modal, don't Dispose of it, only
2547         Hide it.
2548         (WndProc): don't Dispose after handling the WM_CLOSE message.
2549
2550         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
2551         them as such, instead of using casts from Control to Form.  Also,
2552         don't Dispose of the modal dialog when we fall out of the loop -
2553         Close() it instead.
2554
2555         fixes bug #79813.
2556
2557 2006-11-03  Chris Toshok  <toshok@ximian.com>
2558
2559         * Control.cs (Dispose): only go through the dispose thing if we're
2560         @disposing, and we haven't already been disposed.  Fixes bug
2561         #79814.
2562
2563         * Form.cs: no reason to call "base.Dispose()" here instead of
2564         "Dispose()".
2565
2566 2006-11-03  Mike Kestner  <mkestner@novell.com>
2567
2568         * ComboBox.cs : use ToString instead of casts in AddItem for
2569         sorting functionality.  Fixes #79812.
2570
2571 2006-11-03  Chris Toshok  <toshok@ximian.com>
2572
2573         * Application.cs: pave the way for actually using the thread
2574         exception dialog.  it's ifdefed out at the moment.
2575
2576 2006-11-03  Chris Toshok  <toshok@ximian.com>
2577
2578         * ThreadExceptionDialog.cs: until we get a better layout, actually
2579         hide the details textbox and label when we shouldn't see them.
2580
2581 2006-11-03  Jackson Harper  <jackson@ximian.com>
2582
2583         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
2584         multiline textboxes anymore.  This method also determines the
2585         width/height of a textboxes canvas area.
2586         - Sorta a revert of the last patch.  For multiline just position
2587         the controls, then bail.  This way the scrollbar width won't be
2588         altered.
2589
2590 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
2591
2592         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
2593         it dont need.  Fixes #79537.
2594
2595 2006-11-02  Jackson Harper  <jackson@ximian.com>
2596
2597         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
2598         send the status after firing the DndOver event.
2599
2600 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2601
2602         * TrackBar.cs: Now orientation only switches height / width if
2603         the control's handle is created (Win32 does it like this). Also 
2604         fixed a typo in ToString() for a test to pass, changed the 
2605         exception thrown in set_LargeChange and set_SmallChange to 
2606         match Win32 behaviour, and added TrackBar tests to the unit 
2607         tests.
2608
2609 2006-11-02  Chris Toshok  <toshok@ximian.com>
2610
2611         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
2612         not _NET_WM_STATE_NO_TASKBAR.
2613
2614 2006-11-02  Jackson Harper  <jackson@ximian.com>
2615
2616         * TextControl.cs: Increment count by one, since in the update view
2617         count - 1 is used.
2618
2619 2006-11-02  Jackson Harper  <jackson@ximian.com>
2620
2621         * TextBoxBase.cs: Use client rectangle not bounds for checking if
2622         the mouse is in the client rectangle (duh).
2623
2624 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2625         
2626         * TrackBar.cs: Fixed trackbar jumping around when clicking
2627         on it - the trackbar was not detecting correctly at which
2628         side of the thumb the click was done. (fixes #79718)
2629
2630 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
2631
2632         * ListBox.cs: scroll visible area when change SelectedIndex to
2633         a non visible area.  Fixes #79481.
2634
2635 2006-11-01  Jackson Harper  <jackson@ximian.com>
2636
2637         * TextControl.cs: When replacing the selection move the selection
2638         start/end/anchor to the end of the new text.
2639
2640 2006-11-01  Jackson Harper  <jackson@ximian.com>
2641
2642         * XplatUIWin32.cs: When setting the parent change the controls
2643         visibility to it's visibility flag, not to it's old parents
2644         visibility (.Visible walks the parent chain).
2645
2646 2006-11-01  Chris Toshok  <toshok@ximian.com>
2647
2648         * XplatUIX11.cs: revert the #79790 fix, as the simple.
2649         XSetTransientForHint fix breaks paint .net's tool windows.  more
2650         work needed for that one.
2651
2652 2006-11-01  Chris Toshok  <toshok@ximian.com>
2653
2654         * ScrollBar.cs: throw ArgumentException instead of Exception in
2655         LargeChange/SmallChange setters.  fixes unit tests.
2656
2657 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2658
2659         * ContainerControl.cs: reverted rev.67183 (which was itself
2660         a reversion of rev.66853... eh).
2661         
2662         * Control.cs: Fixes Reflector hang by changing Focus() call
2663         to what it was before rev.66643 (calling Select() here sets 
2664         ActiveControl, which in some situations calls back Focus and 
2665         eventually does a stack overflow). Temp fix.    
2666         Changes to GetNextControl() to not look for children to select when
2667         parent cannot be selectable (so it looks for siblings instead)  
2668         
2669 2006-10-31  Mike Kestner  <mkestner@novell.com>
2670
2671         * CheckedListBox.cs : off by one error in returned index from
2672         ObjectCollection.Add.  Fixes #79758.
2673
2674 2006-10-31  Chris Toshok  <toshok@ximian.com>
2675
2676         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
2677         calls for the textbox/spinner, to keep from recursing to the point
2678         where we crash.  Fixes #79760.
2679
2680 2006-10-31  Chris Toshok  <toshok@ximian.com>
2681
2682         * ListControl.cs (set_SelectedValue): don't throw exceptions on
2683         null/"" value, just return.  matches ms's behavior and fixes some
2684         failing tests.
2685
2686 2006-10-31  Chris Toshok  <toshok@ximian.com>
2687
2688         * Control.cs (set_Capture): make a logic a little easier to
2689         follow.
2690
2691         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
2692         if it's being destroyed.  A necessary fix surely, but a bandaid
2693         also, to fix the stuck capture problem in bug #78413.
2694
2695 2006-10-31  Chris Toshok  <toshok@ximian.com>
2696
2697         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
2698         convention of clearing hwnd.ClientRect when we set the
2699         width/height (so it'll be recalculated by Hwnd).
2700
2701 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
2702
2703         * ContainerControl.cs: reversed Contains check from
2704         ActiveControl due to hanging problems. This fix
2705         partly regresses #79667 (button does not have
2706         initial focus), so this might be a symptom for 
2707         a larger parenting problem (set_ActiveControl
2708         is being called but the child control does
2709         not have the parent set yet?)   
2710         
2711 2006-10-31  Mike Kestner  <mkestner@novell.com>
2712
2713         * MenuAPI.cs : fix keynav when menu is click activated.
2714
2715 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
2716
2717         * ToolStrip*: Version 0.2.
2718
2719         * MenuStrip.cs: Version 0.1.
2720
2721         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
2722
2723 2006-10-30  Chris Toshok  <toshok@ximian.com>
2724
2725         [ fixes the oversized notify icon issue in bug #79745 ]
2726         
2727         * NotifyIcon.cs: scale the icon down to the size we're given by
2728         the XplatUI layer (this would be faster if we did it once instead
2729         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
2730         since it's never invoked.
2731
2732         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
2733         pixels high by default, so let's hardcode our systray icon to that
2734         size.  The SYSTEM_TRAY protocol should really have a way for
2735         client apps to query for the correct icon size.. but oh well.  A
2736         couple of patches to deal with the screwy client_window ==
2737         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
2738         instance, and also make sure we don't XSelectInput twice).
2739
2740 2006-10-30  Chris Toshok  <toshok@ximian.com>
2741
2742         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
2743         recreating forms.  Control recreation is the bane of my existence.
2744         Fix it in a way that keeps everyone happy.
2745
2746 2006-10-30  Chris Toshok  <toshok@ximian.com>
2747
2748         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
2749         just non-CHILD ones.  otherwise sometimes scrollbars end up with
2750         client_windows not being resized to the proper size (ReportBuilder
2751         shows this extremely well).
2752
2753 2006-10-30  Chris Toshok  <toshok@ximian.com>
2754
2755         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
2756         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
2757         showing up in the gnome taskbar.  Fixes bug #79790.
2758
2759 2006-10-30  Chris Toshok  <toshok@ximian.com>
2760
2761         * ApplicationContext.cs: guard against a NRE.
2762
2763         * Application.cs: null out the old MainForm for the context, so we
2764         don't try to use it again once it's disposed.  Fixes bug #79783.
2765
2766 2006-10-30  Chris Toshok  <toshok@ximian.com>
2767
2768         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
2769         BindingContext, set the data source directly, otherwise do the
2770         lazy approach - the actual ListManager will be created when we get
2771         a BindingContext. Fixes bug #79700.
2772
2773 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2774
2775         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
2776           XplatUIX11.cs: Remove old 2 parameter SetVisible.
2777
2778         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
2779
2780 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
2781
2782         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
2783         of SetVisible that allows a window to be shown, but not activated.
2784         This is needed on Windows for MenuStrip, and can probably be used
2785         with MainMenu and ComboBox to fix the focus stealing issues on
2786         Windows.
2787
2788         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
2789
2790 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
2791
2792         * PictureBox.cs: Fix the output of the ToString method.
2793
2794 2006-10-29  Chris Toshok  <toshok@ximian.com>
2795
2796         * Control.cs (get_TopLevelControl): fix bug #79781.
2797
2798 2006-10-29  Chris Toshok  <toshok@ximian.com>
2799
2800         * ListControl.cs (set_DataSource): throw Exception here, not
2801         ArgumentException, to match MS behavior.
2802
2803 2006-10-29  Chris Toshok  <toshok@ximian.com>
2804
2805         * Form.cs: remove the try-catch's around calls to GetWindowState.
2806         We can just check the return value.
2807
2808         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
2809         Instead return -1.
2810
2811         * XplatUI.cs: Add note about additional return value for
2812         GetWindowState.
2813
2814 2006-10-29  Chris Toshok  <toshok@ximian.com>
2815
2816         * Control.cs (CreateHandle): when we create our handle, we also
2817         create the handles of our child controls.  Fixes one of the
2818         Control unit tests (CH11).
2819
2820 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2821
2822         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
2823
2824 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
2825
2826         * ThemeClearlooks.cs: A little speedup.
2827
2828 2006-10-27  Chris Toshok  <toshok@ximian.com>
2829
2830         * Control.cs: implement Control.FromChildHandle in a way that
2831         matches the docs (and fixes the failed test.)
2832
2833 2006-10-27  Chris Toshok  <toshok@ximian.com>
2834
2835         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
2836         comments).
2837
2838         * DataGrid.cs: implement ResetForeColor such that the tests
2839         succeed.
2840         
2841 2006-10-27  Chris Toshok  <toshok@ximian.com>
2842
2843         * ToolBarButton.cs: setting text/tooltiptext to null results in it
2844         being set to "".  Fixes bug #79759.
2845
2846 2006-10-27  Jackson Harper  <jackson@ximian.com>
2847
2848         * TextControl.cs: We need to clear the entire selection area when
2849         setting the start, otherwise multiline selections are still
2850         visible.
2851
2852 2006-10-26  Chris Toshok  <toshok@ximian.com>
2853
2854         * PropertyGridView.cs: 
2855
2856         - ifdef all the code specific to the double
2857         buffer case, and provide some alternatives in the non-doublebuffer
2858         code, which makes heavy use of XplatUI.ScrollWindow to move things
2859         around without having to invalidate (and cause flicker).  There
2860         are still some drawing problems in the non-doublebuffered case, so
2861         DOUBLEBUFFER is defined by default.
2862
2863         - Fix the way dropdowns are handled.  now we explicitly watch for
2864         the events which might cause the dropdown to close, and break out
2865         of the nested event loop there.  This gets rid of all Capture
2866         code, at the expense of the Msg special casing.  Seems to work,
2867         though, and fixes bug #79743.
2868
2869 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
2870         * Control.cs: SetIsRecreating now recreates implicitly added
2871         child controls as well. Finally fixes #79629. The flag passed to 
2872         SetIsRecreating has also been removed since it wasn't used.
2873         
2874 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2875
2876         * PageSetupDialog.cs: Clean some code, fix some bits, 
2877         add some checks, and add a printer sub-dialog.
2878
2879 2006-10-26  Chris Toshok  <toshok@ximian.com>
2880
2881         * PropertyGrid.cs: make set_SelectedObject call
2882         set_SelectedObjects, and move the duplicate logic to the
2883         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
2884
2885         * PropertyGridView.cs: hide the textbox when we get a
2886         SelectedObjectsChanged event.
2887
2888         Fixes bug #79748.
2889
2890 2006-10-26  Chris Toshok  <toshok@ximian.com>
2891
2892         * PropertyGridView.cs: deal with the type converter not supporting
2893         GetStandardValues() or GetStandardValues() returning null, which
2894         is does in the default case.  Fixes #79742.
2895
2896 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
2897
2898         * CheckedListBox.cs: nunit no longer crashes when selecting 
2899         Project/Edit menu option
2900         
2901 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
2902
2903         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
2904         is no menu selected. fixes #79739
2905
2906 2006-10-25  Chris Toshok  <toshok@ximian.com>
2907
2908         * PropertyGridView.cs: factor out the splitter invalidation code
2909         into the SplitterPercent setter, and for kicks implement the
2910         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
2911         amount in either direction.
2912
2913 2006-10-25  Chris Toshok  <toshok@ximian.com>
2914
2915         * PropertyGridView.cs: do some cleanup of the brush used to draw
2916         text - read only fields should be grayed out.  not sure how to do
2917         this with the textbox, though.  but the textbox's should also be
2918         readonly now at least.  Also, hide/show the textbox when resizing
2919         the control.
2920         
2921         * CursorConverter.cs: use System.Reflection when getting the
2922         properties of Cursors, as TypeDescriptor.GetProperties isn't
2923         returning static properties.
2924
2925 2006-10-25  Chris Toshok  <toshok@ximian.com>
2926
2927         * PropertyGridView.cs: factor out the up/down handling, and reuse
2928         it for page up/down.  also add End/Home support.
2929
2930 2006-10-25  Chris Toshok  <toshok@ximian.com>
2931
2932         * PropertyGridView.cs:
2933
2934         - ensure the selected grid item is visible in the scrolled area,
2935         fixes bug #79572.
2936
2937         - fix Keys.Down handling when you're on the last item in the
2938         propertygrid.
2939
2940 2006-10-25  Mike Kestner  <mkestner@novell.com>
2941
2942         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
2943         clicks too.  Fixes #79725.
2944
2945 2006-10-24  Chris Toshok  <toshok@ximian.com>
2946
2947         * PropertyGrid.cs: use property.Converter instead of
2948         TypeDescriptor.GetConverter(property.PropertyType), so we catch
2949         TypeConverters declared on the property as well as on the
2950         PropertyType.  Fixes bug #79678.
2951
2952 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
2953
2954         * MimeIcon.cs, Mime.cs:
2955           Fallback to the default platform handler if no shared mime info
2956           stuff exists (fixes #79693).
2957
2958 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
2959         * ContainerControl.cs: Incorrect contains check in ActiveControl 
2960         from previous fix (duh).
2961
2962 2006-10-20  Chris Toshok  <toshok@ximian.com>
2963
2964         * PropertyGridView.cs: the dropdown should be MIN(number of items
2965         in list, 15).  Fixes #79551.
2966
2967 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
2968         Fixes #79384, #79394, #79652, #79667
2969         * Application.cs: 
2970         
2971         - Modal windows are now destroyed in the proper order for windows
2972         
2973         * ContainerControl.cs:
2974         
2975         - ActiveControl setter has more conditions on when to return:
2976                 - if we're reselecting the active control, but it actually
2977                 didn't have focus (window hidden or some such), it runs
2978                 - if the active control being selected doesn't actually 
2979                 exist in the container, it returns
2980         
2981         * Form.cs
2982         
2983         - The ShowDialog now gets the current form as the owner when
2984         invoking without parameters, and correctly activates the owner 
2985         when returning
2986         
2987         * MessageBox.cs
2988         
2989         - MessageBox now catches the Escape key to exit
2990
2991 2006-10-20  Chris Toshok  <toshok@ximian.com>
2992
2993         * PropertyGridView.cs: fix a number of issues (bug #78565, and
2994         most of bug #79676):
2995
2996         - you can navigate around the property grid with the arrow keys.
2997
2998         - the dropdown is sized properly when the pg has a vertical
2999         scrollbar.
3000
3001         - fix the indentation for subentries, and properly select the
3002         entire label rect.
3003
3004         - fix the gray bar's drawing (only draw it to the last element,
3005         not for the height of the control.  Also make sure we draw that
3006         last horizontal grid line.
3007
3008         - use the same mechanism the datagrid uses wrt the editing textbox
3009         when scrolling/resizing/etc.  Namely, we hide it first, do the
3010         operation, then show it again (if it's still visible).
3011         
3012         - aggressively remove a lot of unnecessary refreshes (and also
3013         calls to Invalidate(). call more limited variants, and only redraw
3014         what we need.)
3015         
3016         * PropertyGrid.cs:
3017
3018         - when we're populating the merged collection, fill in the UI
3019         parent with either the passed in item, or the category item we
3020         create.
3021
3022         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
3023
3024         * GridItem.cs: drop some fully qualified names.
3025         
3026         * GridEntry.cs: add a "UIParent", which is basically the parent
3027         treenode.
3028
3029         * GridItemCollection.cs: add an IndexOf method.
3030
3031 2006-10-20  Mike Kestner  <mkestner@novell.com>
3032
3033         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
3034         a working win32 NC invalidation mechanism, we can't invalidate
3035         menus.  [Fixes #79705]
3036
3037 2006-10-20  Mike Kestner  <mkestner@novell.com>
3038
3039         * ListBox.cs : don't update the VScrollbar if the list is empty,
3040         just hide it.  [Fixes #79692]
3041
3042 2006-10-20  Jackson Harper  <jackson@ximian.com>
3043
3044         * RichTextBox.cs: Handle some special chars better, and don't skip
3045         the entire group when we encounter a special char that we don't
3046         handle correctly.
3047
3048 2006-10-18  Chris Toshok  <toshok@ximian.com>
3049
3050         * PropertyGridView.cs: address a number of issues from bug #79676,
3051         mostly of the cosmetic variety.
3052
3053         - The highlight rectangle for indented items not extends all the
3054         way to the left.
3055
3056         - Indented items aren't indented so much.
3057
3058         - the dropdown is properly sized width-wise if the pg has a
3059         vertical scrollbar.
3060
3061 2006-10-18  Chris Toshok  <toshok@ximian.com>
3062
3063         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
3064         systray stuff is rather convoluted to begin with.
3065
3066         systray icons are a single window for some reason (that I haven't
3067         figured out yet), and for them, client_window == whole_window.
3068         Given the way the tests are structured elsewhere to determine
3069         which paints are pending (client vs. nc), that situation will
3070         always yield PAINT, not NCPAINT.  So, if we have a pending
3071         nc_expose and no pending expose, remove the hwnd from the paint
3072         queue, and also set nc_expose_pending to false, to keep us from
3073         blocking further expose's adding the hwnd to the paint queue.
3074
3075         phew.  like i said, a rather convoluted change.  Fixes the
3076         notifyicon repaint issues in bug #79645.
3077
3078 2006-10-18  Chris Toshok  <toshok@ximian.com>
3079
3080         * Form.cs: when getting the backcolor of the form, don't get
3081         base.BackColor, as this allows parents to influence the background
3082         color.  This breaks mdi forms.  Instead, if the background_color
3083         is empty, return the default.
3084
3085 2006-10-18  Chris Toshok  <toshok@ximian.com>
3086
3087         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
3088         to being private instead of internal static.
3089
3090         * Control.cs: remove all the stupid ParentWaitingOnRecreation
3091         crap, it wasn't working for more deeply nested controls anyway,
3092         and we already have the is_recreating flag - use that instead.
3093         Before calling DestroyHandle in RecreateHandle, recurse through
3094         the control tree setting it to true.  this returns the recreate
3095         code to much of its original simplicity, while now guaranteeing we
3096         actually recreate everything we're supposed to.  This change gets
3097         fyireporting actually showing mdi children.
3098
3099 2006-10-17  Chris Toshok  <toshok@ximian.com>
3100
3101         * Form.cs: remove some debug spew, and collapse some duplicate
3102         code at the end of SetClientSizeCore.
3103
3104         * XplatUIX11.cs: 
3105         - add some more debug spew here too wrt Destroy handling.
3106         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
3107         in Control's handling of WM_DESTROY.
3108         - Remove the handling of zombie window DestroyNotifies from the
3109         event loop - we don't need it.  Now the only DestroyNotifies we
3110         actually handle are ones generated by X.
3111         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
3112         match gtk's (functioning) handling of this. This keep metacity
3113         from leaving droppings in the form of wm borders with no window
3114         contents all over the place.
3115
3116         * Control.cs:
3117         - add a bunch of debug spew wrt control recreation.
3118         - fix a bug where we weren't tracking Visible properly on
3119         recreated hwnds.
3120         - fixed the WM_PAINT double buffer handling to support re-entrant
3121         calls (yes, i know it's gross, but it's happening to us).
3122
3123 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3124         * ThemeWin32Classic.cs: changed drawing of selected days
3125         to make them look better.
3126
3127 2006-10-16  Chris Toshok  <toshok@ximian.com>
3128
3129         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
3130         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
3131
3132         * XplatUIX11.cs: move away from using hwnd.client_dc and
3133         hwnd.non_client_dc and on to a stack of dc's (and in window's
3134         case, PAINTSTRUCT's), so we can deal with nested Paint calls
3135         without puking or not disposing of Graphics objects.
3136
3137         * XplatUIOSX.cs: same.
3138
3139         * XplatUIWin32.cs: same.
3140
3141 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3142
3143         * FileDialog.cs: Don't call on_directory_changed inside
3144           OnSelectedIndexChanged (it changes the SelectedIndex too).
3145           Instead move it to OnSelectionChangeCommitted.
3146
3147 2006-10-13  Chris Toshok  <toshok@ximian.com>
3148
3149         * XplatUIX11.cs: more Destroy work.  the current code does the
3150         following things, in order:
3151
3152         1. Enumerates all handles of all controls at or below the one
3153         being destroyed, in pre-order.  As it is doing this, it marks the
3154         handles as zombie and clears all references to them.
3155         
3156         2. calls XDestroyWindow on the window passed in.
3157
3158         3. SendMessage's WM_DESTROY to all he handles in the accumulated
3159         list.
3160
3161 2006-10-13  Chris Toshok  <toshok@ximian.com>
3162
3163         * XplatUIX11.cs: set hwnd.zombie to true before calling
3164         SendMessage (WM_DESTROY).  this keeps us from marking the new
3165         window a zombie, and also keeps us from calling sendmessage at
3166         all.
3167
3168 2006-10-13  Jackson Harper  <jackson@ximian.com>
3169
3170         * TextControl.cs: Do not show the caret and selection at the same
3171         time.  Reduces ugliness by 35%.
3172
3173 2006-10-13  Chris Toshok  <toshok@ximian.com>
3174
3175         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
3176         zombie after we do the recursive call, so we actually do call
3177         SendMessage on the children controls.
3178         (GetMessage): if we find a pending paint event for a zombie hwnd,
3179         remove the hwnd from the paint queue, or else it will always be
3180         there (and we'll effectively loop infinitely)
3181
3182 2006-10-13  Mike Kestner  <mkestner@novell.com>
3183
3184         * MenuItem.cs : add Selected format under keynav too.
3185         Fixes #79528.
3186
3187 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
3188
3189         * PropertyGrid.cs: Fixed some NRE's and small difference between our
3190         implementation and that of MS.
3191
3192 2006-10-13  Chris Toshok  <toshok@ximian.com>
3193
3194         * Control.cs (OnInvalidated) only futz with the invalid_region if
3195         the control is double buffered.  this fixes the apparent hang in
3196         the ListView unit tests.  Someone needs to make the
3197         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
3198
3199 2006-10-13  Chris Toshok  <toshok@ximian.com>
3200
3201         * PropertyGridView.cs:
3202
3203         - do a little refactoring so that only one place calls
3204         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
3205         else call that.  Also make it Refresh, since there are redraw bugs
3206         otherwise (we should take a look at that...)
3207
3208         - do a little more refactoring work to share the body of code
3209         involved with the drop down.  it was duplicated in the code
3210         dealing with the listbox handling and in the code dealing with the
3211         UITypeEditors.
3212
3213         - add a Capture to the dropdown form's control once it's
3214         displayed, and add a MouseDown handler that checks to make sure
3215         the position is inside the control.  If it's not, close the
3216         dropdown.  This fixes #78190.
3217
3218         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
3219         if the value is different than the initial value.
3220         
3221 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
3222
3223         * Control.cs: see #78650
3224         - Fixed GetNextControl for several cases:
3225                 - Changed FindFlatForward to return 
3226                 correct sibling control when more than one
3227                 control has same TabIndex as the currently 
3228                 focused one.
3229                 - Changed FindFlatBackward to loop children
3230                 from last to first and apply same logic as in
3231                 FindFlatForward
3232                 - Changed FindControlForward to search for
3233                 children when control is not a container
3234                 but has children, or search for siblings if
3235                 control is a container...
3236                 - Changed FindControlBackward   to continue
3237                 searching for child controls when hitting 
3238                 Panel-like parents
3239                 
3240         - Fixed Focus method to update ActiveControl
3241         (FocusTest.FocusSetsActive failure)
3242         
3243         * TabControl.cs:
3244         - Focus rectangle now refreshes when gaining
3245         or losing focus
3246         - Removed grab for Tab key on IsInputKey that 
3247         was keeping tab navigation from working (#78650)
3248
3249 2006-10-13  Chris Toshok  <toshok@ximian.com>
3250
3251         * PropertyGridView.cs:
3252         - Rewrite SetPropertyValue to loop over SelectedGridItem's
3253         SelectedObjects.
3254
3255         - Deal with GridItem.Value == null a few places.
3256
3257         * PropertyGrid.cs: 
3258         - replace the PopulateGridItemCollection with a pair of methods
3259         which compute the intersection of all the properties in the
3260         SelectedObjects array.  Fixes #79615.
3261
3262         - Throw ArgumentException from set_SelectedObjects if there's a
3263         null in the array.
3264
3265         - Add GetTarget method which can be used to traverse up the
3266         GridItem.Parent chain.  It depends on the assumption that
3267         selected_objects for different GridEntries are always in the same
3268         order (a safe assumption).  Use this method and loop over all the
3269         selected objects in the entry when calling RemoveValueChanged and
3270         AddValueChanged.
3271         
3272         * GridEntry.cs: Make this handle multiple selected objects.
3273         .Value returns null if not all the selected objects share the same
3274         value.
3275
3276 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
3277         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
3278           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
3279           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
3280           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
3281           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
3282         add additional functionality.
3283
3284 2006-10-12  Mike Kestner  <mkestner@novell.com>
3285
3286         * ErrorProvider.cs : new ToolTipWindow ctor sig.
3287         * HelpProvider.cs : new ToolTipWindow ctor sig.
3288         * ToolTip.cs : remove ToolTip param from Window sig since it is
3289         not used.
3290         * ToolBar.cs : add tooltip support.  Fixes #79565.
3291
3292 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3293
3294         * ComboBox.cs: move the events in set_SelectedIndex to 
3295         after the call to HighlightIndex in order to avoid 
3296         possible recursion and subsequent problems with the call
3297         to HighlightIndex and include a range check in 
3298         set_HighlightIndex. Fixes #79588
3299         
3300 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3301
3302         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
3303         to ui thread's settings instead of sunday. 
3304         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
3305
3306 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
3307
3308         * DateTimePicker.cs
3309         * MonthCalendar.cs
3310         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
3311         and implement missing functionality (selecting different parts 
3312         of the date and edit them individually with the keyboard).
3313         
3314 2006-10-11  Chris Toshok  <toshok@ximian.com>
3315
3316         * Control.cs (OnInvalidated): fix NRE relating to last change.
3317
3318 2006-10-11  Chris Toshok  <toshok@ximian.com>
3319
3320         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
3321         atoms in _NET_WM_STATE here if the window is maximized.  We need
3322         to do this because we're *replacing* the existing _NET_WM_STATE
3323         property, so those atoms will be lost otherwise, and any further
3324         call to GetWindowState will return Normal for a window which is
3325         actually maximized.  Fixes #79338.
3326
3327 2006-10-11  Jackson Harper  <jackson@ximian.com>
3328
3329         * TextControl.cs: Special case for setting selection end to
3330         selection start, we basically kill the anchor.
3331         - some todo comments.
3332
3333 2006-10-11  Chris Toshok  <toshok@ximian.com>
3334
3335         * Control.cs: switch to using an "invalid_region" to track which
3336         parts of the image buffer need updating.  This is more code than
3337         the simple fix from r66532.  That version just attempted to always
3338         fill the entire buffer on redraw, which turns out to be
3339         inefficient when invalidating small rectangles.  This version
3340         simply adds the invalid rectangle to the invalid region.  When we
3341         get any WM_PAINT message we see if it can be filled using the
3342         image buffer, and if it can't (if the paint event's clip rectangle
3343         is visible in the invalid region) we first fill the image buffer.
3344         So, the image buffer is still a cache, we just fill it lazily.
3345
3346         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
3347         need it any longer.
3348
3349 2006-10-11  Chris Toshok  <toshok@ximian.com>
3350
3351         * XplatUIX11.cs (SetWindowPos): we need to update both position as
3352         well as size after calling XMoveResizeWindow.  This keeps us from
3353         ignoring future SetWindowPos calls.  Fixes the disappearing
3354         DateTimePicker in the ToolBarDockExample from bug #72499.
3355
3356 2006-10-11  Chris Toshok  <toshok@ximian.com>
3357
3358         * TextBoxBase.cs: reorder things a bit when it comes to
3359         resizing-causing-recalculation.  we were recalculating the
3360         document when our position was changed, which shouldn't happen.
3361         We only care about size changes.  Clear up some more redundant
3362         recalculation calls while I'm at it.  This makes the toolbar dock
3363         example snappy when you're just dragging toolbars around (since it
3364         causes a relayout whenever you move one.)
3365
3366 2006-10-11  Chris Toshok  <toshok@ximian.com>
3367
3368         * ToolBarButton.cs (get_Rectangle): this only returns
3369         Rectangle.Empty if Visible == false, or Parent == null.
3370         Parent.Visible doesn't matter.
3371
3372 2006-10-10  Chris Toshok  <toshok@ximian.com>
3373
3374         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
3375         by .net 1.1, so switch to an internal method instead.
3376
3377 2006-10-10  Chris Toshok  <toshok@ximian.com>
3378
3379         * Control.cs (WM_PAINT): when a control is double buffered we draw
3380         initially to the ImageBuffer and then copy from there.  But when a
3381         parent control which has child controls is double buffered, the
3382         initial drawing doesn't encompass the entire ClientRectangle of
3383         the parent control, so we end up with uninitialized bits (this is
3384         easily seen by dragging the top toolbar in
3385         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
3386         manually set the ClipRectangle of the paint_event (only the one we
3387         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
3388         of the nastiness in bug #72499.
3389
3390         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
3391         which we use in Control.cs's WM_PAINT handling.
3392
3393 2006-10-10  Jackson Harper  <jackson@ximian.com>
3394
3395         * TextBoxBase.cs: Finish off the autoscrolling stuff.
3396
3397 2006-10-10  Chris Toshok  <toshok@ximian.com>
3398
3399         * Cursor.cs: Apply a slightly different patch to the one suggested
3400         in #79609.
3401
3402 2006-10-10  Jackson Harper  <jackson@ximian.com>
3403
3404         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
3405         not the parent form.
3406         * TextControl.cs: use difference in old line count vs new count to
3407         calculate how many lines were added, this takes into account soft
3408         line breaks properly.
3409
3410 2006-10-10  Chris Toshok  <toshok@ximian.com>
3411
3412         * LinkLabel.cs: don't call MeasureCharacterRanges against a
3413         rectangle located at 0,0 and the size of the text.  Use
3414         ClientRectangle instead.  This fixes rendering of non-left aligned
3415         link labels.
3416
3417 2006-10-10  Jackson Harper  <jackson@ximian.com>
3418
3419         * TextBoxBase.cs: When we set the selection start position the
3420         caret.
3421         * TextControl.cs: Need to update the caret when we decrement it to
3422         zero.
3423         - Make sure that the selection_visible flag gets reset to false if
3424         the selection isn't visible.  Before this you could get it set to
3425         visible by changing the selection start, then changing the end to
3426         equal the start.
3427
3428 2006-10-09  Jackson Harper  <jackson@ximian.com>
3429
3430         * TreeView.cs: Don't update scrollbars when we aren't visible.
3431         * TreeNodeCollection.cs: Only need to update scrollbars if being
3432         added to an expanded visible node or the root node.
3433
3434 2006-10-09  Chris Toshok  <toshok@ximian.com>
3435
3436         * XplatUIX11.cs (SendMessage): fix NRE.
3437
3438 2006-10-09  Jackson Harper  <jackson@ximian.com>
3439
3440         * TextBoxBase.cs: Implement horizontal autoscrolling.
3441         * TextControl.cs: Add a movement types that allows moving forward
3442         and backwards without wrapping.
3443
3444 2006-10-09  Mike Kestner  <mkestner@novell.com>
3445
3446         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
3447         with focus "expansion" of labels.  Fixes #79532 and then some.
3448         * ThemeWin32Classic.cs : add LineLimit to ListView label format
3449         when wrapping.
3450
3451 2006-10-09  Jackson Harper  <jackson@ximian.com>
3452
3453         * TextBoxBase.cs: Set the default max values to MaxValue since
3454         we use the scrollbar for autoscrolling and the default value is
3455         100.  If we don't do this the caret won't keep up with typing
3456         after about 18 characters.
3457         * TextControl.cs: Make sure the selection is offset by the
3458         viewport x.  This fixes selection when using auto scrolling.
3459
3460 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
3461         
3462         * Form.cs: The active control should be selected after the 
3463         OnLoad so that any child control initialization that affects
3464         the selection is done. Fixes #79406
3465
3466 2006-10-06  Chris Toshok  <toshok@ximian.com>
3467
3468         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
3469         to have no evil effects.
3470
3471         - Stop selecting StructureNotifyMask on non-toplevel windows.
3472
3473           The only way children should be resized is by using the SWF api,
3474           and we already send WM_WINDOWPOSCHANGED messages in those cases.
3475           Toplevel windows can be interacted with via the window manager,
3476           and so we keep the input mask there.
3477
3478           The other event StructureNotifyMask gives us (that we care
3479           about) is DestroyNotify.  The code is already structured such
3480           that it assumes we won't be getting a DestroyNotify event for
3481           the window we pass to XDestroyWindow (which is what
3482           StructureNotifyMask is supposed to guarantee.)  So, that code
3483           shouldn't be affected by this either.
3484
3485         - Stop selecting VisibilityChangeMask altogether.
3486
3487           We weren't doing anything with the resulting events anyway.
3488         
3489         This vastly reduces the number of X requests and events we see
3490         when resizing/laying out a large ui.
3491
3492 2006-10-06  Chris Toshok  <toshok@ximian.com>
3493
3494         * ScrollableControl.cs (DisplayRectangle): we need to take into
3495         account the DockPadding regardless of whether or not auto_scroll
3496         == true.  rework this slightly to this effect, and fix bug #79606,
3497         and part of #72499 (you can now see the drag handles and drag
3498         toolbars around).
3499
3500 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
3501
3502         * ListViewItem.cs: Collections of selected and checked items are now
3503         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
3504         we mark the collection "dirty".
3505         * ListView.cs: Marked collections readonly. Modified UpdateSelection
3506         to only clear SelectedItems when a new item is selected and MultiSelect
3507         is enabled. CheckedItems and SelectedItems now subscribe to Changed
3508         event of ListViewItemCollection, and mark its list dirty whenever
3509         that event is fire. This allows us to return selected/checked items 
3510         in the same order as they are in the Items collection. This matches
3511         the MS behavior.
3512
3513 2006-10-06  Chris Toshok  <toshok@ximian.com>
3514
3515         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
3516         right mouse clicks.  Fixes bug #79593.
3517
3518 2006-10-06  Chris Toshok  <toshok@ximian.com>
3519
3520         * Splitter.cs: doh, fix splitters that don't want to cancel the
3521         movement when you drag them.  Also, impose the limits on the
3522         values we send to the SplitterMovingEvent.  Fixes #79598.
3523
3524 2006-10-06  Jackson Harper  <jackson@ximian.com>
3525
3526         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
3527         since we use this for auto scrolling also.
3528
3529 2006-10-05  Chris Toshok  <toshok@ximian.com>
3530
3531         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
3532         beginning to think that most datagrid column types don't need this
3533         method.  Fixes bug #79392.
3534
3535 2006-10-05  Chris Toshok  <toshok@ximian.com>
3536
3537         * DataGrid.cs: move back to a more lazy scheme for creating the
3538         CurrencyManager, so we aren't updating it every time you set
3539         either DataSource or DataMember.  Also, don't call
3540         RecreateDataGridRows if the currency manager hasn't changed.
3541
3542 2006-10-05  Chris Toshok  <toshok@ximian.com>
3543
3544         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
3545         emitted, SelectedIndex should already be updated.  Fixes bug
3546         #78929.
3547
3548 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
3549
3550         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
3551           ToolStripTextBox.cs: Initial commit.
3552         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
3553
3554 2006-10-05  Jackson Harper  <jackson@ximian.com>
3555
3556         * TabControl.cs: We need to invalidate the tab control area when
3557         new ones are added (duh).
3558
3559 2006-10-03  Chris Toshok  <toshok@ximian.com>
3560
3561         * Form.cs (ProcessDialogKey): if the focused control is in this
3562         form and is a button, call its PerformClick method here.  Fixes
3563         #79534.
3564
3565 2006-10-04  Jackson Harper  <jackson@ximian.com>
3566
3567         * TabPage.cs: Ignore setting of Visible, and add an internal
3568         method for setting the controls visibility.  TabPage's Visible
3569         property is a little strange on MS, this seems to make us
3570         compatible, and fixes cases where people set all the tab pages to
3571         visible.
3572         * TabControl.cs: Use the new internal setting on tab pages
3573         visibility.
3574
3575 2006-10-03  Mike Kestner  <mkestner@novell.com>
3576
3577         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
3578
3579 2006-10-03  Mike Kestner  <mkestner@novell.com>
3580
3581         * ListView.cs : use is_visible instead of Visible to check if 
3582         scrollbars should be placed/sized.  Also some max_wrap_width
3583         love for LargeIcon view.  [Fixes #79533]
3584
3585 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
3586
3587         * TextControl.cs :
3588           Make set_TextAlign() do actually update the align. Fixed #78403.
3589
3590 2006-10-03  Chris Toshok  <toshok@ximian.com>
3591
3592         * DataGrid.cs: fix a crash when switching datasources if the
3593         vertical scrollbar is at someplace other than Value = 0.  Also,
3594         reduce the number of recalculation passes we do in SetDataSource
3595         from 2 to 1.
3596
3597 2006-10-03  Jackson Harper  <jackson@ximian.com>
3598
3599         * TextBoxBase.cs: Move the if value the same bail check up, we
3600         don't want to empty the document if it is already empty, this
3601         seems to severly mess up the caret.  TODO: I should probably fix
3602         the empty statement to update teh caret somehow.
3603
3604 2006-10-03  Chris Toshok  <toshok@ximian.com>
3605
3606         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
3607         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
3608         reflection, an internal row type, properties on said type, etc.)
3609         will work with our datagrid.  Fixes #79531.
3610
3611 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
3612
3613         * FileDialog.cs: Don't crash if a path is not accessible
3614           (System.UnauthorizedAccessException). Fixes #79569.
3615         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
3616           a ':' too. Return unknown icon for those paths/files.
3617
3618 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
3619
3620         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
3621         GetContainerControl returns null.
3622
3623 2006-10-02  Chris Toshok  <toshok@ximian.com>
3624
3625         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
3626         call to XGetWindowAttributes instead of "handle".  fixes an X
3627         error using notifyicon after the NotifyIconWindow to Form base
3628         class switch.
3629
3630 2006-10-02  Chris Toshok  <toshok@ximian.com>
3631
3632         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
3633         server grab and looping we need to do to get down to the most
3634         deeply nested child window.
3635         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
3636         QueryPointer again after the WarpPointer so we can generate a
3637         proper (fake) MotionNotify event to be enqueued in the destination
3638         window's queue.
3639         (GetCursorPos): call QueryPointer.
3640
3641         Fixes #79556.
3642
3643 2006-10-02  Jackson Harper  <jackson@ximian.com>
3644
3645         * NotifyIcon.cs: Derive the notify icon from a form, so things
3646         like FindForm work on it.
3647         - Swallow the WM_CONTEXTMENU message, since that is generated on
3648         mouse down, and context menu is a mouse up kinda guy.  I believe
3649         the correct fix here is probably to make the notify icon entirely
3650         NC area, but this seems to work fine for anyone not manipulating
3651         WndProc.
3652
3653 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
3654
3655         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
3656           ToolStripItemCollection.cs, ToolStripLabel.cs,
3657           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
3658           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
3659           Initial implementation.
3660         * TextRenderer.cs: Provide padding to MeasureText.
3661
3662 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
3663
3664         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
3665         of ButtonBaseAccessibleObject. Fix bug #79552.
3666
3667 2006-10-02  Jackson Harper  <jackson@ximian.com>
3668
3669         * MdiWindowManager.cs: When maximizing use the containers client
3670         rect, not it's bounds, so nc area is accounted correctly.
3671         - Use the parent form's size for the menu position, since the
3672         client isn't always the full form size.
3673
3674 2006-10-01  Chris Toshok  <toshok@ximian.com>
3675
3676         * ScrollableControl.cs: make sure neither right_edge or
3677         bottom_edge are < 0, since they're used as LargeChange for the
3678         horiz/vert scrollbars respectively.  Fixes #79539.
3679
3680 2006-10-01  Chris Toshok  <toshok@ximian.com>
3681
3682         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
3683         the xplatuix11 code can cause us to destroy/recreate our handle.
3684
3685         * XplatUIX11.cs
3686         (SystrayAdd):
3687         - this code can be invoked many times for the same Hwnd.  Make
3688           sure we only destroy the client window once (the first time this
3689           method is called).  This fixes bug #79544.
3690         - Remove the call to the improperly bound XSync.  why we had two
3691           bindings to this, I will never know, but this call resulted in
3692           events being discarded from the queue(!).
3693         - correct a misunderstanding of _XEMBED_INFO - the second atom is
3694           not our current state but the state we wish to be in.  So, 0 if
3695           we don't want to be mapped.  Change it to 1.
3696         (SystrayRemove): The XEMBED spec makes mention of the fact that
3697         gtk doesn't support the reparent of client windows away from the
3698         embedder.  Looking at gtksocket-x11.c seems to agree with this.
3699         The only avenue we have for removing systray icons is to destroy
3700         them.  We don't want the handle to go away for good, though, so
3701         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
3702         #79545.
3703         
3704 2006-10-01  Chris Toshok  <toshok@ximian.com>
3705
3706         * Form.cs (WndProc): inline the native_enabled variable usage into
3707         the cases in which it's used.  Fixes #79536.
3708
3709 2006-09-29  Mike Kestner  <mkestner@novell.com>
3710
3711         * ListView.cs : toggle the selection state for ctrl clicks in 
3712         multiselect mode. [Fixes #79417]
3713
3714 2006-09-29  Mike Kestner  <mkestner@novell.com>
3715
3716         * ListView.cs : kill CanMultiSelect and refactor the selection
3717         code to support multiselection in the absence of mod keys. Steal
3718         arrow/home/end keys by overriding InternalPreProcessMessage to
3719         restore regressed keynav behavior.
3720         [Fixes #79416]
3721
3722 2006-09-29  Jackson Harper  <jackson@ximian.com>
3723
3724         * MdiClient.cs: Repaint the titlebars when the active window is
3725         changed.
3726
3727 2006-09-29  Chris Toshok  <toshok@ximian.com>
3728
3729         * Application.cs: when entering a runloop with a modal, make sure
3730         the hwnd is enabled.  Fixes #79480.
3731
3732 2006-09-29  Chris Toshok  <toshok@ximian.com>
3733
3734         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
3735         when ListManager.CanAddRows == false, bump us back one.
3736
3737         * DataGridColumnStyle.cs (ParentReadOnly): remove the
3738         listmanager.CanAddRows check.  This makes ArrayLists uneditable
3739         using a datagrid, which is not right.
3740         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
3741         is an IEditable, but call property_descriptor.SetValue regardless.
3742         fixes #79435.
3743
3744 2006-09-29  Chris Toshok  <toshok@ximian.com>
3745
3746         * DataGridBoolColumn.cs: we need to test equality in the face of
3747         possible null values (as is the case with the default NullValue).
3748         This patch keeps us from crashing in that case.
3749
3750 2006-09-29  Jackson Harper  <jackson@ximian.com>
3751
3752         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
3753         here, since it will get called for every node collection in the
3754         tree. This is now done in the treeview once the sorting is
3755         finished.
3756         * TreeView.cs: Recalculate the visible order, and update the
3757         scrollbars after sorting, set the top nope to the root so that the
3758         recalc actually works.
3759
3760 2006-09-29  Chris Toshok  <toshok@ximian.com>
3761
3762         * LinkLabel.cs: more handling of the default link collection in
3763         the face of LinkArea manipulation.  The default link collection
3764         contains 1 element (start=0,length=-1).  If the user sets LinkArea
3765         to anything and the links collection is the default, clear it.
3766         Then only add the link if its nonempty.  Fixes #79518.
3767
3768 2006-09-29  Chris Toshok  <toshok@ximian.com>
3769
3770         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
3771         piece correctly when we hit a '\n'.  Fixes #79517.
3772
3773 2006-09-29  Chris Toshok  <toshok@ximian.com>
3774
3775         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
3776         change the binding of gdk_init_check to take two IntPtr's, and
3777         pass IntPtr.Zero for both of them.  Fixes #79520.
3778
3779 2006-09-29  Mike Kestner  <mkestner@novell.com>
3780
3781         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
3782         [Fixes #78779]
3783
3784 2006-09-28  Jackson Harper  <jackson@ximian.com>
3785
3786         * XplatUIX11.cs: When translating NC messages make sure we go from
3787         whole window to screen, not client window to screen.
3788         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
3789         method doesn't exist
3790         - Skip over controls that aren't forms when arranging.
3791
3792 2006-09-28  Jackson Harper  <jackson@ximian.com>
3793
3794         * XplatUIWin32.cs: Clip the rect to the parent window.
3795         * XplatUIStructs.cs: Add clipping modes struct.
3796         * InternalWindowManager.cs: New private method that factors title
3797         bar heights in when calculating the pos of an NC mouse message.
3798         - Use SendMessage to force a paint when the form's size is changed
3799         instead of painting the decorations immediately.
3800         - Don't let the NC button click messages get to DefWndProc,
3801         because they will attempt to handle windowing themself, and this
3802         messes up z-order (it will put them in front of the scrollbars).
3803         * XplatUIX11.cs: Make sure that we don't reset window managers if
3804         we already have one (ie the window is an MDI window).
3805
3806 2006-09-28  Chris Toshok  <toshok@ximian.com>
3807
3808         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
3809         menu code really needs going over.
3810
3811 2006-09-27  Chris Toshok  <toshok@ximian.com>
3812
3813         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
3814         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
3815         window is maximizable.  So, we need to make sure that even if we
3816         clear the border/wm frame of those functions, they're still
3817         available (basically, we remove the decoration without removing
3818         the function).  Half the fix for #79338.
3819
3820 2006-09-27  Chris Toshok  <toshok@ximian.com>
3821
3822         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
3823         Fixes bug #79515.
3824
3825 2006-09-27  Chris Toshok  <toshok@ximian.com>
3826
3827         * Splitter.cs: reorder things a bit so that we don't actually
3828         draw/move the splitter until after calling OnSplitterMoving.  This
3829         lets users cancel/disallow the movement by explicitly setting
3830         event.SplitX/SplitY.  Fixes #79372.
3831
3832 2006-09-27  Jackson Harper  <jackson@ximian.com>
3833
3834         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
3835         because it is most likely on a window being destroyed, and that
3836         will give us an X11 error.
3837
3838 2006-09-27  Chris Toshok  <toshok@ximian.com>
3839
3840         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
3841         the dropdown button now toggles between showing and hiding the
3842         dropdown.  Also, get rid of dropdown_form_showing and just use
3843         dropdown_form.Visible.  We still don't do a grab, but I'll leave
3844         that part to someone who has handled Capture-fu before.
3845
3846 2006-09-27  Chris Toshok  <toshok@ximian.com>
3847
3848         * DataGrid.cs: return false if alt isn't pressed when '0' is
3849         pressed.  this keeps the '0' key from being swallowed, and fixes
3850         bug #79350.
3851
3852 2006-09-27  Chris Toshok  <toshok@ximian.com>
3853
3854         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
3855         Calling Refresh (in response to a scrollbar event) screws up the
3856         scrollbar painting.  Fixes bug #78923.
3857
3858 2006-09-27  Chris Toshok  <toshok@ximian.com>
3859
3860         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
3861         then insert into hashtable" blocks threadsafe.
3862
3863 2006-09-27  Chris Toshok  <toshok@ximian.com>
3864
3865         * MessageBox.cs (CreateParams): the styles should be |'ed with our
3866         baseclass's, since otherwise the
3867         ControlBox/MinimizeBox/MaximizeBox assignments above have no
3868         effect.  This gets the close button back in messageboxes.
3869
3870 2006-09-27  Chris Toshok  <toshok@ximian.com>
3871
3872         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
3873         flag, not just != 0.  this makes flags that are actually multiple
3874         bits (like WS_CAPTION) work.  fixes bug #79508.
3875
3876 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
3877
3878         * PageSetupDialog.cs: add support for getting and settings the 
3879         paper size, source and orientation.
3880
3881 2006-09-26  Chris Toshok  <toshok@ximian.com>
3882
3883         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
3884         and caption == "", we need to remove the resize handles as well as
3885         the title bar.
3886
3887         * Control.cs (set_Text): turns out that setting Text on a form
3888         should change the WM styles on the window, since if ControlBox ==
3889         false, the only way to get a window border is to have a non-""
3890         Text property.  check winforms/forms/text.cs for an example.  so,
3891         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
3892         update both window styles and title.  This fixes a lot of dialogs
3893         (including the preferences dialog in MonoCalendar.)
3894
3895 2006-09-26  Chris Toshok  <toshok@ximian.com>
3896
3897         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
3898         control isn't a Form), call Win32ShowWindow to hide the window,
3899         but don't update the control Visible property.  When we reparent
3900         back to a parent control, call SetVisible in order for the
3901         window's visibility to be reinstated.
3902
3903         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
3904         the FosterParent.
3905
3906         * Control.cs (ControlCollection.Remove): remove that value.Hide()
3907         call for good, since it breaks MonoCalendar (and other things I'm
3908         sure.) Also, set all_controls to null *after* the owner calls,
3909         which end up regenerating it.
3910         (ChangeParent): allow new_parent to be == null, passing
3911         IntPtr.Zero down to XplatUI.
3912
3913         this fixes #79294 the right way.
3914
3915 2006-09-26  Mike Kestner  <mkestner@novell.com>
3916
3917         * GridEntry.cs : internal SetParent method.
3918         * PropertyGrid.cs : attach to property changed on the proper
3919         target if we have a hierarchical grid with subobjects. Setup
3920         GridItem.Parent for hierarchical items.
3921         * PropertyGridView.cs : Set value on the correct target for
3922         hierarchical grids. [Fixes #78903]
3923
3924 2006-09-26  Chris Toshok  <toshok@ximian.com>
3925
3926         * Control.cs (ChildNeedsRecreating): this should return true if
3927         either we're being recreated and the child is in our list, or our
3928         parent is waiting for our recreation.
3929
3930 2006-09-26  Chris Toshok  <toshok@ximian.com>
3931
3932         * Control.cs (ControlCollection.Remove): reinstate the
3933         value.Hide() call as suggested in bug #79294.
3934
3935 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
3936
3937         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
3938         coordinates (versus a relative move).
3939
3940 2006-09-26  Chris Toshok  <toshok@ximian.com>
3941
3942         * Control.cs: rework child recreation a little bit.  It turns out
3943         that we race between the DestroyNotify the WM_DESTROY message.  If
3944         the parent gets its DestroyNotify before the child gets the
3945         WM_DESTROY message, the child ends up not recreating (since the
3946         parent finishes its recreation on DestroyNotify, and the child
3947         checks ParentIsRecreating.)
3948
3949         So, instead we store off a list of all the child controls which
3950         need to be recreated when the parent control starts to recreate
3951         itself.  Then, when child controls get their WM_DESTROY message we
3952         check to see if they're in the parent's pending recreation list,
3953         and if so, we recreate.  This removes all dependency on ordering
3954         from the code and fixes the initial MonoCalendar upgrade dialog.
3955         
3956 2006-09-26  Jackson Harper  <jackson@ximian.com>
3957
3958         * TextControl.cs: Use the Line to get the length of the line,
3959         since soft line breaks can change the end line.
3960
3961 2006-09-26  Chris Toshok  <toshok@ximian.com>
3962
3963         * Control.cs (ControlCollection.AddImplicit): don't add the
3964         control again if it's already in one of our lists.  This keeps us
3965         from adding controls over and over again for comboboxes when their
3966         handle gets recreated (as the combobox adds implicit controls in
3967         OnHandleCreated).  Fixes the X11 errors in bug #79480.
3968
3969 2006-09-26  Jackson Harper  <jackson@ximian.com>
3970
3971         * TextControl.cs: When deleting characters make sure that any
3972         orphaned zero lengthed tags get deleted.
3973         - Fix ToString for zero lengthed tags.
3974
3975 2006-09-25  Jackson Harper  <jackson@ximian.com>
3976
3977         * TextControl.cs: When getting a tag at the location there can be
3978         multiple tags at the same spot, these are 0-lengthed tags that
3979         appear when extra formatting has been stuck in a location.  We
3980         need to pull out the last of these 0 lengthed tags.
3981
3982 2006-09-25  Jackson Harper  <jackson@ximian.com>
3983
3984         * TextControl.cs: Fix print out in debug method.
3985         * TextBoxBase.cs: When text is set bail if we are setting to the
3986         previous value.
3987         
3988 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
3989
3990         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
3991           It is now possible to change the selected index in a FontXXXListBox
3992           with the up and down arrow keys from the FontXXXTextBoxes.
3993           Also, send the FontXXXTextBox mouse wheel event to the corresponding
3994           FontXXXListBoxes to match ms.
3995
3996 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
3997
3998         * SystemInformation.cs: Return a clone of the theme's MenuFont because
3999         anyone can dispose it, anytime. All other properties returns enums, 
4000         structs or basic types so they don't need such tricks.
4001
4002 2006-09-22  Jackson Harper  <jackson@ximian.com>
4003
4004         * XplatUI.cs:
4005         * XplatUIWin32.cs:
4006         * Clipboard.cs:
4007         * DataFormats.cs:
4008         * XplatUIOSX.cs:
4009         * XplatUIDriver.cs: Update interface to add a primary selection
4010         flag, so the driver can use the primary selection buffer if
4011         needed.
4012         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
4013
4014         * RichTextBox.cs: We need to supply the data object to paste now
4015         (so we can choose to supply CLIPBOARD or PRIMARY).
4016         * TextBoxBase.cs: Supply data object to paste (see above).
4017         - Middle click uses the primary selection data object.
4018         
4019 2006-09-21  Chris Toshok  <toshok@ximian.com>
4020
4021         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
4022         of SetWMStyles.  It's still a rat's nest and is largely
4023         order-dependent which I dislike immensely.  This also fixes the X
4024         button disappearing from toplevel forms.
4025
4026 2006-09-21  Mike Kestner <mkestner@novell.com>
4027
4028         * ListBox.cs: move Jordi's click/dblclick raising code to the
4029         mouse up handler.
4030
4031 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
4032
4033         * ListBox.cs: Fixes 79450
4034
4035 2006-09-21  Mike Kestner <mkestner@novell.com>
4036
4037         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
4038         to deal with people updating the TreeNodeCollection after the tree
4039         is disposed.  "Fixes" 79330.
4040
4041 2006-09-20  Jackson Harper <jackson@ximian.com>
4042
4043         * TextControl.cs: Push the cursor record onto the undo stack
4044         before the delete action. This fixes 78651.
4045
4046 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
4047
4048         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
4049         CreateParams. Fixes 79329.
4050
4051 2006-09-19  Chris Toshok  <toshok@ximian.com>
4052
4053         * XplatUIX11.cs: a couple of blanket code massage passes to clean
4054         things up a bit.  First, get rid of the NetAtoms array (and the NA
4055         enum), and just embed the atoms as static fields.  Also, add a
4056         couple of functions (StyleSet and ExStyleSet) to clean up all the
4057         bitmask testing of styles.
4058
4059         * X11Structs.cs: remove the NA enum, not needed anymore.
4060         
4061 2006-09-19  Chris Toshok  <toshok@ximian.com>
4062
4063         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
4064         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
4065         added cleanup to get MessageBox titles appearing again, which were
4066         broken by my earlier fix for caption-less/ControlBox-less windows.
4067
4068 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
4069
4070         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
4071           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
4072           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
4073           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
4074           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
4075           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
4076           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
4077           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
4078           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
4079           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
4080           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
4081             Inital import.
4082         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
4083           ToolStripButton.cs: Stubs needed for above.
4084         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
4085
4086 2006-09-15  Chris Toshok  <toshok@ximian.com>
4087
4088         * XplatUIX11.cs:
4089         - make the MessageQueues hashtable Synchronized.
4090         
4091         - SendMessage: if the Hwnd is owned by a different thread, use the
4092         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
4093         thread.  Fixes bug #79201.
4094
4095 2006-09-15  Chris Toshok  <toshok@ximian.com>
4096
4097         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
4098         ControlBox == false, we disallow maximize/minimize/close.  If the
4099         form Caption is "" we also disallow move (and get rid of the Title
4100         decoration).  Unfortunately, regardless of how things are set,
4101         we're stuck with the Title and WM menu.
4102
4103 2006-09-15  Chris Toshok  <toshok@ximian.com>
4104
4105         * Application.cs: add locking around the static message_filters
4106         ArrayList, part of #79196.
4107
4108 2006-09-15  Chris Toshok  <toshok@ximian.com>
4109
4110         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
4111         Form.ControlBox == false, the window has no titlebar nor resize
4112         handles.  fixes bug #79368.
4113
4114 2006-09-15  Chris Toshok  <toshok@ximian.com>
4115
4116         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
4117         >= 0.  Fixes bug #79370.
4118
4119 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
4120         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
4121         * Control.cs:
4122             Add properties: LayoutEngine, Margin, DefaultMargin.
4123             Add method: GetPreferredSize.
4124             Move layout logic from PerformLayout to layout engines. 
4125
4126 2006-09-13  Chris Toshok  <toshok@ximian.com>
4127
4128         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
4129         fix for #79326 broke #78718, so this change addresses that.
4130
4131         - in SendWMDestroyMessages remove the call to
4132         CleanupCachedWindows, since we might be recreating the control and
4133         need to maintain the references to right Hwnd handles.  Also, set
4134         the zombie flag to true for each of the children in the hierarchy
4135         instead of calling hwnd.Dispose.  This will cause GetMessage to
4136         ignore all events for the window except for DestroyNotify.
4137
4138         - In GetMessage, ignore messages except for DestroyNotify for
4139         zombie hwnds.
4140         
4141         * Control.cs: revert the is_recreating fix from the last
4142         ChangeLog.  It's definitely "right", but it breaks switching from
4143         an MDI form to a non-MDI form.  Will need to revisit that.
4144
4145         * Hwnd.cs: add a zombie flag, which means "the
4146         client_window/whole_window handles are invalid, but we're waiting
4147         for the DestroyNotify event to come in for them".  Set the flag to
4148         false explicitly if setting WholeWindow/ClientWindow, and also
4149         when Disposing.
4150         
4151 2006-09-13  Chris Toshok  <toshok@ximian.com>
4152
4153         * XplatUIX11.cs: rework window destruction slightly.
4154
4155         - when destroying the windows associated with a control, we don't
4156         need 2 separate XDestroyWindow calls.  Just the one for the
4157         whole_window (or for client_window if whole_window is somehow
4158         IntPtr.Zero -- can this happen?) is enough.
4159
4160         - reworked SendWMDestroyMessages slightly, so we always dispose
4161         the child control hwnd's after sending the messages.
4162         
4163         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
4164         the two places it was used (one was even using hwnd.Handle and the
4165         other hwnd.client_window.  ugh), adding another call in
4166         SendWMDestroyMessages.  We need this new call because now the
4167         DestroyNotify events in the queue will be ignored for the child
4168         controls (as their hwnd's were disposed, and the window id's
4169         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
4170
4171         - this fixes bug #79326.
4172
4173 2006-09-13  Chris Toshok  <toshok@ximian.com>
4174
4175         * Control.cs: don't always set is_recreating to false at the end
4176         of RecreateHandle, since sometimes we're not done (and won't be
4177         until WndProc handles the WM_DESTROY message).  Also, set
4178         is_recreating to false in the WM_DESTROY handling code.  Part of
4179         the fix for bug #79326.
4180
4181 2006-09-13  Miguel de Icaza  <miguel@novell.com>
4182
4183         * X11DesktopColors.cs: Start the droppage of debugging messages.
4184
4185         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
4186
4187 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
4188
4189         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
4190
4191 2006-09-12  Chris Toshok  <toshok@ximian.com>
4192
4193         * DataGrid.cs (get_ListManager): if the list_manager is null, try
4194         to create it using SetDataSource.  Fixes bug #79151.
4195
4196 2006-09-11  Chris Toshok  <toshok@ximian.com>
4197
4198         * XEventQueue.cs: add a DispatchIdle property.
4199
4200         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
4201         either the queue is null, or the queue has DispatchIdle set to
4202         true.
4203         (DoEvents): set queue.DispatchIdle to false around the
4204         peek/translate/dispatch message loop in this method.  This keeps
4205         Application.Doevents from emitting idle events.  Part of the fix
4206         for #78823.
4207
4208 2006-09-11  Chris Toshok  <toshok@ximian.com>
4209
4210         * DataGrid.cs (set_DataSource): make this work for both the
4211         winforms/datagrid test and ReportBuilder.  It seems as though when
4212         we've created a ListManager (or maybe it's if we have a
4213         BindingContext?), when we set the DataSource it clears the
4214         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
4215         #79333.
4216
4217 2006-09-11  Chris Toshok  <toshok@ximian.com>
4218
4219         * XplatUIX11.cs: deal with queue being null, which happens in all
4220         the Clipboard functions.  Fixes one of the two problems mentioned
4221         in #78612.
4222
4223 2006-09-11  Chris Toshok  <toshok@ximian.com>
4224
4225         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
4226         button on various spots (including outside the menu) works closer
4227         to MS, and doesn't crash.  Fixes #79343.
4228
4229 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
4230
4231         * ListView.cs: Do not initialize item_sorter in init. To match MS,
4232         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
4233         and the internal comparer is set. When a new ListViewItemSorter is set,
4234         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
4235         was specified. No further processing is necessary if SortOrder is set
4236         to it's current value. If Sorting is modified to None, and View is
4237         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
4238         (either custom or our internal ItemComparer) to null, on 1.0 profile
4239         only set item_sorter to null if its our internal IComparer. If Sorting
4240         is modified to Ascending or Descending, then use our internal IComparer
4241         if none is set, and if the current IComparer is our internal one then:
4242         on 2.0 profile always replace it with one for new Sorting, and on 1.0
4243         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
4244         Enum.IsDefined to verify whether a valid View value is specified in
4245         its setter. Automatically sort listview items when listview is
4246         created. In Sort, do nothing if ListView is not yet created, or if
4247         no item_sorter is set (no Sorting was set, Sorting was explicitly set
4248         to None or ListViewItemSorter was set to null). Added Sort overload
4249         taking a bool to indicate whether the ListView should be redrawn when
4250         items are sorted (we use this in ListViewItemCollection to avoid double
4251         redraws). Modified our internal IComparer to take the sort order into
4252         account. In Add and AddRange methods of ListViewItemCollection, also
4253         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
4254         view), but use overload with noredraw option to avoid double redraw.
4255         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
4256         true when View is Tile, and do the same when attempting to set View to
4257         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
4258         for selected/checked indices, as it involves overhead when sorting is
4259         done while these collections are not used all that often. Instead
4260         we'll build the indices on demand. Modified IList implementation of
4261         CheckedIndexCollection to use public methods if object is int.
4262         Modified CheckedListViewItemCollection to hide checked items if
4263         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
4264         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
4265         IList implementation in SelectedIndexCollection to use public methods
4266         if object is int. Modified SelectedListViewItemCollection to hide
4267         selected items if listview is not yet created.
4268         * ListViewItem.cs: CheckedIndices list no longer needs to be
4269         maintained separately (see ListView changes). Also clone font, fixes
4270         test failure.
4271
4272 2006-09-11  Mike Kestner  <mkestner@novell.com>
4273
4274         * ComboBox.cs: if we are updating the contents of the currently
4275         selected index, refresh the control or the textbox selection.
4276         [Fixes #79066]
4277
4278 2006-09-11  Mike Kestner  <mkestner@novell.com>
4279
4280         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
4281         the 'specified' logic has been moved there.  This seems like a bug 
4282         in Control.cs, since our current SetBoundsCore completely ignores 
4283         the specified parameter.  Peter's commit seems to indicate that is 
4284         the way the MS control implementation works.  [Fixes #79325]
4285
4286 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
4287
4288         * XplatUI.cs: Set default_class_name to be composed
4289         of current domain id. This allows MWF to be loaded in multiple
4290         domains on Win32.
4291
4292 2006-09-09  Miguel de Icaza  <miguel@novell.com>
4293
4294         * X11Keyboard.cs: If we are unable to obtain the input method, do
4295         not call CreateXic to create the input context.   Should fix
4296         #78944/79276.
4297
4298 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
4299
4300         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
4301           Simplified gnome support by adding more pinvokes to get the
4302           icon for a file or mime type.
4303
4304 2006-09-08  Jackson Harper  <jackson@ximian.com>
4305
4306         * MenuAPI.cs: Deslect popup context menu items before closing the
4307         window, so that you don't see the previously selected item
4308         selected when you reopen the menu.
4309         * TextControl.cs: Update the cursor position even if we don't have
4310         focus.  This fixes typing in things like the ComboBox.  I'm not
4311         totally sure we should always set the visibility if we don't have
4312         focus, but couldn't find any corner cases where the cursor showed
4313         up when it shouldn't.
4314
4315 2006-09-08  Chris Toshok  <toshok@ximian.com>
4316
4317         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
4318         our arrays are length 256.  & 0xff before indexing.  Fixes the
4319         crash in bug #78077.
4320         
4321 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4322
4323         * ThemeWin32Classic.cs: 
4324         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
4325         is true. Handle that check box too.
4326
4327 2006-09-07  Chris Toshok  <toshok@ximian.com>
4328
4329         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
4330         79244.
4331
4332 2006-09-07  Chris Toshok  <toshok@ximian.com>
4333
4334         * Control.cs: in set_BackColor only do the work if
4335         background_color != value.
4336
4337         * XplatUIX11.cs: move the clearing of invalid areas (both client
4338         and nc) to the same block of code where we set (nc_)expose_pending
4339         to false.  That is, move it from PaintEventEnd to PaintEventStart,
4340         so things that cause invalidates from within OnPaint will trigger
4341         another call to OnPaint.  Fixes bug #79262.
4342
4343 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
4344
4345         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
4346         * FileDialog.cs: Fix typo
4347
4348 2006-09-07  Jackson Harper  <jackson@ximian.com>
4349
4350         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
4351         for tab pages if they have any.
4352
4353 2006-09-06  Mike Kestner  <mkestner@novell.com>
4354
4355         * Splitter.cs: use the "current" rect when finishing drag handle
4356         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
4357
4358 2006-09-06  Mike Kestner  <mkestner@novell.com>
4359
4360         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
4361         support offset splitters. [Fixes #79298]
4362
4363 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
4364
4365         * Mime.cs: Fixed a bug that could override the global mime type
4366           result.
4367
4368 2006-09-05  Jackson Harper  <jackson@ximian.com>
4369
4370         * TabControl.cs: Better calculation method for setting the slider
4371         pos. Prevents crashes on really wide tabs.
4372         - Draw Image on tab pages if an image list is used.
4373
4374 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4375
4376         * MonthCalendar.cs: When Font changes, the Size should be
4377         updated to fit the new font's space requirements.
4378
4379 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
4380
4381         * ListBox.cs: If the items are cleared with Items.Clear set
4382           top_index to 0.
4383
4384 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4385
4386         * MonthCalendar.cs: Handle arrow keys as input keys. Also
4387         fire DateChanged event instead of DateSelected event when
4388         the date was changed by keyboard interaction.
4389
4390 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4391
4392         * DateTimePicker.cs: Handle DateChanged for the associated
4393         month_calendar control, and set month_calendar.Font from 
4394         OnFontChanged method, as well as resize the height of the
4395         control when needed. Make PreferredHeight proportional.
4396
4397 2006-09-01  Chris Toshok  <toshok@ximian.com>
4398
4399         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
4400         properties.
4401
4402         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
4403
4404 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
4405
4406         * FileDialog.cs: Set ClientSize instead of window size, to allow space
4407           for decorations (Fixes #79219)
4408
4409 2006-09-01  Mike Kestner  <mkestner@novell.com>
4410
4411         * ComboBox.cs: first stab at sorting plus some selection handling
4412         fixes to bring us more in line with MS behavior.  Also switches back
4413         to index based selection.  Alternative patches for index-based 
4414         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
4415         and latency@gmx.de on bug 78848.  I assume they were similar to this
4416         code I've had simmering in my tree forever.
4417         [Fixes #78848]
4418
4419 2006-09-01  Chris Toshok  <toshok@ximian.com>
4420
4421         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
4422         when setting list position guard against ending up with a -1 index
4423         (the other part of the fix for #78812).  Should probably make sure
4424         we don't need the analogous fix in the ItemDeleted case.
4425
4426         * DataGrid.cs:
4427         - in SetDataSource, work around the fact that the way
4428         OnBindingContextChanged is invoked will cause us to re-enter this
4429         method.  I'll remove the hack once I investigate
4430         OnBindingContextChanged.
4431
4432         - fix the logic in set_DataSource and set_DataMember (basically
4433         what to do if the other of the two is null.)
4434         
4435         - in OnListManagerItemChanged, we need to take into account the
4436         edit row when deciding whether or not to call RecreateDataGridRows
4437         (part of the fix for #78812).
4438
4439 2006-09-01  Jackson Harper  <jackson@ximian.com>
4440
4441         * Splitter.cs: Don't do anything if there is no control to affect
4442         (prevents us from crashing in weird tet cases).
4443         * TreeView.cs: Bounding box for the mouse movement reverting
4444         focus/selection back to previously selected node.  This matches
4445         MS, and makes the tree a lot more useable.
4446         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
4447         use clipping so they are not drawn.  This fixes when the control
4448         is set to have a transparent background, or if it was over an
4449         image.
4450
4451 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
4452
4453         * MimeIcon.cs: Improved handling for reading default icons when
4454           using gnome (2.16 made it necessary). Check and read svg icons
4455           first, then 48x48 and then 32x32 icons.
4456
4457 2006-08-31  Chris Toshok  <toshok@ximian.com>
4458
4459         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
4460         visible.
4461
4462         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
4463         ProcessKeyPreview.  Fixes part of #77806.
4464
4465         * DataGrid.cs: big patch.
4466
4467         - revert the queueing up of DataSource/DataMember if inside
4468         BeginInit/EndInit calls.  That's not the way the datagrid achieves
4469         its delayed databinding.  Instead, call SetDataSource in
4470         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
4471         #78811.
4472
4473         - Also, it wasn't mentioned in #78811, but the test case exhibits
4474         behavior that was lacking in our datagrid implementation - Columns
4475         that have mapping names that don't exist in the datasource's
4476         properties aren't shown.  Yuck.  To fix this I added the bound
4477         field to the column style, and basically any calculation to figure
4478         out anything about columns uses a loop to find the bound columns.
4479         still need to investigate if I can cache an array of the bound
4480         columns or if the indices must be the same.
4481
4482         - When setting CurrentCell, we no longer abort if the cell being
4483         edited was in the add row.  This fixes the other part of #77806.
4484
4485         - The new code also fixes #78807.
4486         
4487         * ThemeWin32Classic.cs: perpetrate the same disgusting
4488         column.bound field hack, and only render bound fields.
4489
4490 2006-08-31  Chris Toshok  <toshok@ximian.com>
4491
4492         * DataGridColumnStyle.cs: add bound field.  this field is true if
4493         the datasource has a property corresponding to the mapping name.
4494
4495         * DataGridTableStyle.cs: set the bound field on the column styles
4496         depending on whether or not we have a column for that property.
4497
4498 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
4499
4500         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
4501           splitter control (fixes #79228)
4502
4503 2006-08-31  Chris Toshok  <toshok@ximian.com>
4504
4505         * DataGridColumnStyle.cs: we need to delay the assignment of
4506         property descriptor until the last possible moment due to the lazy
4507         databinding stuff in the datagrid.  Also, fix the exceptions
4508         thrown by CheckValidDataSource to match MS.
4509
4510 2006-08-31  Jackson Harper  <jackson@ximian.com>
4511
4512         * Form.cs: When activated select the active control, if there is
4513         no active control, we select the first control.
4514         * XplatUIX11.cs: If there is no focus control when we get a
4515         FocusIn event, find the toplevel form and activate it.  This
4516         occurs when you popup a window, it becomes the focus window, then
4517         you close that window, giving focus back to the main window.
4518
4519 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4520
4521         * MonthCalendar.cs: 
4522         * ThemeWin32Classic.cs: Cache Font in bold style, as well
4523         as StringFormat with Center alignments in MonthCalendar,
4524         instead of creating new ones when drawing the control. 
4525         Also, draw the month name in bold style.
4526
4527 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
4528
4529         * Control.cs:
4530           - PerformLayout(): It would seem MS performs the fill even if the 
4531             control is not visible (part of #79218 fix)
4532           - ResetBackColor(): Use the setter to reset the color, to allow
4533             overriders to catch the change.
4534         * Form.cs:
4535           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
4536           - CreateHandle(): dito (part of $79218 fix)
4537           - Don't set an icon if we have a dialog
4538         * ScrollableControl.cs:
4539           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
4540           - ScrollIntoView(): No need to scroll if control is already visible
4541             (resolves fixme and fixes #79218)
4542
4543 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4544
4545         * MonthCalendar.cs: Change proportions in SingleMonthSize
4546         to match the aspect of the original control.
4547
4548 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
4549
4550         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
4551           get updated when they get maximized.
4552
4553 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
4554
4555         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
4556
4557 2006-08-29  Chris Toshok  <toshok@ximian.com>
4558
4559         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
4560
4561 2006-08-29  Jackson Harper  <jackson@ximian.com>
4562
4563         * TreeView.cs: Need to track selected node and highlighted node,
4564         they aren't always the same thing, when the mouse is down on a
4565         node it is hilighted, but not selected yet.
4566         - Do the HideSelection stuff right
4567         - Need to focus on rbutton mouse down. And redraw selection when
4568         right click is mouse upped.
4569
4570 2006-08-29  Mike Kestner  <mkestner@novell.com>
4571
4572         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
4573         when SubItems.Count < Columns.Count.  [Fixes #79167]
4574
4575 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
4576
4577         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
4578
4579 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
4580
4581         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
4582           from X. Only send based on ConfigureNotify if we don't have the
4583           correct location in hwnd (if the window manager moved us)
4584
4585 2006-08-28  Mike Kestner  <mkestner@novell.com>
4586
4587         * ListView.cs: remove a TODO. 
4588         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
4589         [Fixes ListView part of #79166]
4590
4591 2006-08-28  Mike Kestner  <mkestner@novell.com>
4592
4593         * ListView.cs: move wheel handler to parent since it is focused
4594         instead of the item_control now.  [Fixes #79177]
4595
4596 2006-08-28  Mike Kestner  <mkestner@novell.com>
4597
4598         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
4599         when the control is focused. [Fixes #79171]
4600
4601 2006-08-28  Mike Kestner  <mkestner@novell.com>
4602
4603         * ListView.cs: size the item and header controls for empty and
4604         unscrollable views.
4605         * ThemeWin32Classic.cs: draw disabled backgrounds.
4606         [Fixes #79187]
4607
4608 2006-08-28  Chris Toshok  <toshok@ximian.com>
4609
4610         * Form.cs: remove unused "active_form" static field.
4611
4612         * Hwnd.cs: lock around accesses to static windows collection.
4613
4614         * Application.cs: lock threads in Exit ().
4615
4616 2006-08-28  Chris Toshok  <toshok@ximian.com>
4617
4618         * NativeWindow.cs: lock around accesses to window_collection.
4619         
4620 2006-08-28  Chris Toshok  <toshok@ximian.com>
4621
4622         * Control.cs: err, fix this the right way, by locking on controls
4623         when using it.  not by making it synchronized.
4624
4625 2006-08-28  Chris Toshok  <toshok@ximian.com>
4626
4627         * Control.cs: make the static "controls" field synchronized, as it
4628         gets updated from multiple threads.
4629
4630 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4631
4632         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
4633           Prevent other threads from exiting when calling thread sets quit state.
4634         * XEventQueue.cs: Added PostQuitState property
4635
4636 2006-08-27  Chris Toshok  <toshok@ximian.com>
4637
4638         * AsyncMethodData.cs: add a slot for the window handle.
4639
4640         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
4641         window (the destination control's window, not the foster window).
4642
4643         * Control.cs (BeginInvokeInternal): store the window's handle in
4644         the AsyncMethodData.
4645         
4646
4647 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
4648
4649         * XplatUIX11.cs:
4650           - PostQuitMessage: Removed resetting S.D display handle, we might have
4651             another loop started after calling PostQuitMessage (Fixes #79119)
4652           - Created destructor to reset S.D handle
4653
4654 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
4655
4656         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
4657
4658 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4659
4660         * TextControl.cs (Insert): Update the caret position even if we don't
4661           have a handle yet, just don't call the driver in that case.
4662         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
4663           to the end of the new selection text (Fixes #79184)
4664
4665 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4666
4667         * Form.cs (Activate): Only activate if the handle is created)
4668         * Control.c:
4669           - Mark window as invisible when it's disposed
4670           - Check if window handle is created when setting window visible, 
4671             instead of relying just on the is_created variable
4672           - Check if object is disposed when creating the control (Fixes #79155)
4673
4674 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4675
4676         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
4677           when allowing layout again. Otherwise we re-generate the anchoring 
4678           distance to the border again and actually alter what the user wanted
4679           This is ugly, it'd be better if we used DisplayRectangle instead of
4680           ClientRectangle for Control.UpdateDistances, but that causes us to
4681           have other problems (initial anchoring positons would be wrong)
4682           (Fixes #78835)
4683
4684 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4685
4686         * Control.cs:
4687           - The size and location setters shouldn't go directly to 
4688             SetBoundsCore, but to SetBounds, which triggers layout on the
4689             parent, then calls SetBoundsCore. (Related to fix for #78835)
4690           - SetBounds: Moved actual location update code into this function
4691             from SetBoundsCore, to match MS. Added call to PerformLayout if
4692             we have a parent (to trigger resizing of anchored parents if the 
4693             child size has changed (see testcase for #78835) 
4694         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
4695           new control code
4696         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
4697
4698 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4699
4700         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
4701           System.Drawing when a toplevel window gets closed; there might
4702           be other toplevel windows belonging to the same app (Fixes #78052)
4703
4704 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
4705
4706         * FileDialog.cs: After reading FileDialog settings from mwf_config
4707           use Desktop prefix only if a real folder doesn't exist anymore.
4708         * FontDialog.cs: Added char sets.
4709           It is now possible to select the font, size or style with the
4710           textboxes.
4711
4712 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
4713
4714         * PrintPreviewDialog.cs: Use assembly name constants.
4715
4716 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4717
4718         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
4719           scrollbar from whacking it's buttons)
4720
4721 2006-08-24  Chris Toshok  <toshok@ximian.com>
4722
4723         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
4724         in this patch (aggregating setting Left/Top/Width/Height to
4725         setting Bounds on the scrollbars), but the crux of the fix is in
4726         Recalculate, where we scroll by the remaining scroll_position if
4727         we're hiding a scrollbar.  The 2*$5 reward in the comment is
4728         serious.
4729
4730 2006-08-24  Jackson Harper  <jackson@ximian.com>
4731
4732         * MdiClient.cs:
4733         * MdiWindowManager.cs: If the form is made a non-mdi window we
4734         need to remove the form closed event so that closing forms works
4735         correctly.
4736
4737 2006-08-24  Jackson Harper  <jackson@ximian.com>
4738
4739         * Control.cs: Make IsRecreating internal so that the driver can
4740         check it
4741         - Temporarily remove the Hide when controls are removed, its
4742         making a whole bunch of things not work because visibility isn't
4743         getting reset elsewhere correctly
4744         * Form.cs: Need to do a full handle recreation when the mdi parent
4745         is set.
4746         * XplatUIX11.cs: If we are recreating handles don't dispose the
4747         HWNDs.  What was happening is the handles were being recreated in
4748         SendWMDestroyMessages, but then flow continued on in that method
4749         and destroyed the new handles.
4750
4751 2006-08-23  Jackson Harper  <jackson@ximian.com>
4752
4753         * Form.cs: MdiClient is always at the back of the bus
4754         * Control.cs: When the order of items in the collection is changed
4755         we need to reset the all_controls array
4756         - do the same sorta setup thats done when adding a control when a
4757         control is set on the collection.
4758
4759 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
4760
4761         * TextBoxBase.cs (get_Text): Return an empty array if our document
4762           is empty (fixes #79052)
4763
4764 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4765
4766         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
4767           on WM_SYSCHAR messages (fixes #79053)
4768
4769 2006-08-23  Chris Toshok  <toshok@ximian.com>
4770
4771         * DataGrid.cs: fix flickering when scrolling vertically.
4772
4773 2006-08-23  Chris Toshok  <toshok@ximian.com>
4774
4775         * DataGrid.cs (EndEdit): only invalidate the row header when we
4776         need to.
4777
4778 2006-08-23  Chris Toshok  <toshok@ximian.com>
4779
4780         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
4781         methods.  fixes the flicker when scrolling around.
4782
4783 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4784
4785         * FileDialog.cs: Making sure the control is created before we get a 
4786           chance to use it with BeginInvoke (Fixes #79096)
4787
4788 2006-08-23  Chris Toshok  <toshok@ximian.com>
4789
4790         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
4791         width to use when painting the rows.
4792
4793 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
4794
4795         * TextBoxBase.cs:
4796           - Throw ArgumentException if a negative value is passed to SelectionLength
4797           - Update the selection end if start is moved. end needs to be always
4798             after start. (Fixes #79095)
4799           - Track selection length; MS keeps the selection length even if start
4800             is changed; reset on all other operations affection selection
4801
4802 2006-08-22  Jackson Harper  <jackson@ximian.com>
4803
4804         * TreeView.cs: Make sure both scrollbars get displayed and sized
4805         correctly when the other bar is visible.
4806         - Use the original clip rectangle for checking if the area between
4807         the two scrollbars is visible, not the viewport adjusted clipping
4808         rectangle.
4809
4810 2006-08-22  Jackson Harper  <jackson@ximian.com>
4811
4812         * Binding.cs: We don't use IsBinding because it requires the
4813         control to be created, which really shouldn't be necessary just to
4814         set a property on the control.
4815
4816 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4817
4818         * ComboBox.cs: Some CB.ObjectCollection methods must throw
4819         ArgumentNullReferenceException when the argument is null.
4820
4821 2006-08-21  Jackson Harper  <jackson@ximian.com>
4822
4823         * Timer.cs: Track the thread that the timer is started in (NOT
4824         CREATED), this way messages for it will only be triggered on its
4825         queue.
4826         * XEventQueue.cs: Track the timers here, this makes timers per
4827         thread, like MS.
4828         * XplatUIX11.cs: The timers are moved to the XEventQueue.
4829
4830 2006-08-19  Chris Toshok  <toshok@ximian.com>
4831
4832         * XplatUIX11.cs: after further communication with pdb, we get the
4833         best of both worlds.  SetZOrder working for un-Mapped windows, and
4834         no X errors for un-mapped windows.
4835
4836 2006-08-19  Chris Toshok  <toshok@ximian.com>
4837
4838         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
4839         as it was causing pdn toolbars to not have the correct stacking.
4840
4841 2006-08-18  Mike Kestner  <mkestner@novell.com> 
4842
4843         * ListView.cs : guard against negative ClientArea.Width in scrollbar
4844         calculation.  Not sure why control should ever be setting a negative
4845         width though.  Fixes #78931.
4846
4847 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4848
4849         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
4850         null items in ObjectCollection class.
4851         * ListBox.cs.: Likewise.
4852
4853 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
4854
4855         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
4856           as the base method in ThemeWin32Classic should work fine.
4857           Fixed bug #78607.
4858
4859 2006-08-18  Jackson Harper  <jackson@ximian.com>
4860
4861         * Binding.cs: When validating if the value entered doesn't convert
4862         properly reset to the old value.
4863         * RadioButton.cs: Don't fire click when we get focus.
4864
4865 2006-08-18  Jackson Harper  <jackson@ximian.com>
4866
4867         * FileDialog.cs: Paint the selection on the directory combobox the
4868         same way as on MS. 
4869
4870 2006-08-17  Jackson Harper  <jackson@ximian.com>
4871
4872         * ErrorProvider.cs: Don't allow the error control to be selected.
4873         * Control.cs: Don't send the SetFocus messages, the control
4874         activation will do this, and if we do it blindly here validation
4875         does not work.
4876
4877 2006-08-17  Jackson Harper  <jackson@ximian.com>
4878
4879         * Control.cs:
4880         * ContainerControl.cs: Make validation events fire in the correct
4881         order.  TODO: For some reason the first validation event is not
4882         getting fired.
4883
4884 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4885
4886         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
4887
4888 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4889
4890         * ComboBox.cs : implement scroll wheel support for popped-down
4891         state. Fixes #78945. 
4892
4893 2006-08-17  Jackson Harper  <jackson@ximian.com>
4894
4895         * TreeView.cs: Specify treeview actions (old patch that didn't get
4896         committed for some reason).
4897         - Don't let the mouse wheel scroll us too far.  Just want to make
4898         the bottom node visible, not scroll it all the ways to the top.
4899
4900 2006-08-17  Jackson Harper  <jackson@ximian.com>
4901
4902         * XplatUIX11.cs: Mouse wheel events go to the focused window.
4903
4904 2006-08-17  Mike Kestner  <mkestner@novell.com> 
4905
4906         * ComboBox.cs : don't do mouseover selection in simple mode.
4907
4908 2006-08-16  Jackson Harper  <jackson@ximian.com>
4909
4910         * Form.cs: Fire the closing events for all the mdi child windows
4911         when a window is closed.  If the cancel args are set to true, the
4912         main window still gets the event fired, but it doesn't not close.
4913         * MdiWindowManager.cs: Do this closing cleanup in a Closed
4914         handler, instead of when the button is clicked, so cancelling the
4915         close works correctly.
4916         * ComboBox.cs: Send the mouse down to the scrollbar.
4917
4918 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4919
4920         * ListBox.cs: When passing 'null' to SelectedItem,
4921         set SelectedIndex to -1, to unselect items. This is the
4922         observed behaviour in .Net.
4923
4924 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
4925
4926         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
4927           MS flags saying there won't be any. (fixes #78800)
4928         * Control.cs (HandleClick): Made virtual
4929
4930 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
4931
4932         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
4933           cultures. Fixed bug #78399.
4934
4935 2006-08-16  Jackson Harper  <jackson@ximian.com>
4936
4937         * Form.cs: Use the MdiClients MdiChildren property to access
4938         MdiChildren instead of creating the array from the child controls.
4939         * MdiClient.cs: Maintain a separate array of the mdi children, so
4940         that insertion order is maintained when the Z-order is changed.
4941
4942 2006-08-16  Mike Kestner  <mkestner@novell.com> 
4943
4944         * ListView.cs : add an ItemComparer and default to it for sorting.
4945         Fixes #79076, but sorting needs a complete overhaul to be compat with
4946         MS.
4947
4948 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
4949
4950         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
4951
4952 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4953
4954         * Hwnd.cs (Mapped): Properly traverse the tree
4955
4956 2006-08-15  Chris Toshok  <toshok@ximian.com>
4957
4958         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
4959         pass manager.Current.GetType() to ParseData.  It has to be the
4960         property type.  So, hold off doing the ParseData until we're in
4961         SetPropertyValue where we know the type.  This fixes the crash in
4962         #78821 but the textbox is still empty.
4963
4964 2006-08-15  Chris Toshok  <toshok@ximian.com>
4965
4966         * DataGrid.cs:
4967         - when we're scrolling, only call Edit() again if the
4968         current cell is still unobscured. Fixes bug #78927.
4969         - when handling mousedown on a cell, ensure the cell is visible
4970         before calling Edit.
4971         - remove the properties from DataGridRow, and remove the
4972         DataGridParentRow class altogether.
4973         
4974
4975 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4976
4977         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
4978           fire OnTextChanged by ourselves. There's no point calling base,
4979           we don't set the base value anywhere else. Fixes #78773.
4980
4981 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4982
4983         * ListBox.cs: Call CollectionChanged when modifying
4984         an item from Items indexer, to update the actual items
4985         in the list box.
4986
4987 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4988
4989         * PrintDialog.cs: Small fixes for focus and a pair of checks,
4990         to match .Net behaviour.
4991
4992 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
4993
4994         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
4995
4996 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
4997
4998         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
4999
5000 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
5001
5002         * MessageBox.cs: Prevent potential NRE exception.
5003         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
5004
5005 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5006
5007         * MessageBox.cs: Calculate the owner of a messagebox, also make
5008           it topmost. Fixes #78753
5009
5010 2006-08-14  Chris Toshok  <toshok@ximian.com>
5011
5012         * XplatUIX11.cs: A couple of fixes so that metacity will let us
5013         programmatically move windows.  first, set the PPosition hint as
5014         well as the USPosition hint.  Second include some code from pdb
5015         that sets the window type to NORMAL when we set the transient for
5016         hint.  This is because, in the absence of a window type, metacity
5017         thinks any window with TransientFor set is a dialog, and refuses
5018         to let us move it programmatically.  fascists.
5019
5020 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
5021
5022         * XplatUIX11.cs: When setting normal hints, take into consideration
5023           an different hints previously set so we don't delete them (fixes #78866)
5024
5025 2006-08-12  Chris Toshok  <toshok@ximian.com>
5026
5027         * ToolBarButton.cs: make Layout return a boolean, if something to
5028         do with the button's layout changed.
5029
5030         * ToolBar.cs:
5031         - add another parameter to Redraw, @force, which all existing
5032           calls set to true.
5033         - make the Layout function return a boolean which is true if the
5034           layout has actually changed.  Redraw now uses this (and @force)
5035           to determine when to invalidate.  At present the only place
5036           where @force can be false is the call from OnResize, when
5037           background_image == null.  So, resizing a toolbar when the
5038           layout doesn't change results in no drawing.
5039
5040 2006-08-12  Chris Toshok  <toshok@ximian.com>
5041
5042         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
5043         the VScrollBar and HScrollbar reversed.  oops.
5044
5045         * DataGrid.cs: fix the logic that assigns sizes to the implicit
5046         scrollbars.  we were assigning them twice (once in
5047         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
5048         therefore causing two scrollbar resizes (and redraws?) to happen
5049         per grid resize.
5050
5051 2006-08-12  Chris Toshok  <toshok@ximian.com>
5052
5053         * ToolBarButton.cs: redraw the entire button if the theme tells us
5054         to.
5055
5056         * Theme.cs: add ToolBarInvalidateEntireButton.
5057
5058         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
5059         buttons, just the border.
5060
5061         * ThemeNice.cs: redraw the entire toolbar button since we need to
5062         draw the highlight image.
5063
5064         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
5065         we need to redraw the entire button (not just the border).
5066
5067 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5068
5069         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
5070           for vertical bars. Fixes the mismatches shown by #78513
5071
5072 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
5073
5074         * FileDialog.cs: If a saved/remembered path doesn't exist
5075           anymore, fall back to "Desktop".
5076
5077 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
5078
5079         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
5080           parent. It's apparently legal to not have one
5081         * XplatUIX11.cs:
5082           - SetZOrder: Don't try to set Z-Order on an unmapped window
5083           - CreateWindow: 0,0 are legal coordinates for a window. don't move
5084             it unless the coordinates are negative
5085
5086 2006-08-10  Mike Kestner  <mkestner@novell.com>
5087
5088         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
5089         when setting to null per msdn docs.  Fixes #78854.
5090
5091 2006-08-10  Chris Toshok  <toshok@ximian.com>
5092
5093         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
5094         flickering by setting a clip rectangle on the Graphics when we
5095         need to redraw just a particular menuitem.  Also, rename "OnClick"
5096         to "OnMouseDown" to reflect what it actually is.
5097         
5098         * Form.cs: track the OnMouseDown change.
5099
5100 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
5101
5102         * CommonDialog.cs: Properly inherit the CreateParams from the form
5103           and only change what we need. Fixes #78865
5104
5105 2006-08-10  Chris Toshok  <toshok@ximian.com>
5106
5107         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
5108         flickering in flat mode (and most of the flickering in general) by
5109         only invalidating the button border (and not the entire rectangle)
5110         when the state changes.  A couple of cases still flicker:
5111         ToggleButtons, and the dropdown arrow case when the user mouse
5112         ups.
5113
5114 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
5115
5116         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
5117           for german keyboards. Numlock state shouldn't affect the behaviour
5118           of the Del key. Fixes bug #78291.
5119
5120 2006-08-10  Chris Toshok  <toshok@ximian.com>
5121
5122         * ListControl.cs: remove the items.Clear line from BindDataItems,
5123         as this is the first thing done by both subclasses in their
5124         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
5125         passed -1, refresh the list.  This gets databinding working when
5126         the datasource is set on the list before the datasource is
5127         populated (as in wf-apps/ReportBuilder.)
5128
5129         * ComboBox.cs: remove the argument to BindDataItems.  This call
5130         should really go away, and be initiated by the ListControl code.
5131
5132         * ListBox.cs: same.
5133
5134 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5135
5136         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
5137           if no data is in the document when the control is displayed
5138
5139 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
5140
5141         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
5142           yes (fixes #78806)
5143         * TextControl.cs: 
5144           - PositionCaret: Allow positioning of caret but don't call methods 
5145             requiring a handle if the window isn't created yet
5146           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
5147           - owner_HandleCreated: Don't position the caret, just update it's 
5148             location. User might have already set a different position
5149
5150 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
5151
5152         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
5153           windows. Screws up the returned coordinates for child windows. 
5154           Fixes #78825. I'm hoping this doesn't break something, since the
5155           code was explicitly put in 8 months ago, but no bug was attached.
5156           Menus still seem to work properly.
5157
5158 2006-08-08  Chris Toshok  <toshok@ximian.com>
5159
5160         * DataGrid.cs: make BeginInit/EndInit actually do what they're
5161         supposed to do - delay data binding until the EndInit call.  Also,
5162         make the table style collection's CollectionChangeAction.Refresh
5163         work properly.
5164
5165         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
5166         (with action = Refresh) when a consituent table's MappingName is
5167         changed.
5168
5169 2006-08-08  Chris Toshok  <toshok@ximian.com>
5170
5171         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
5172         Invalidate, since changing the text can change the size of the all
5173         toolbar buttons.
5174
5175 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5176
5177         * Form.cs (AddOwnedForm): Still need to add the form to our listif
5178           we don't have it yet
5179
5180 2006-08-08  Chris Toshok  <toshok@ximian.com>
5181
5182         * PrintControllerWithStatusDialog.cs: don't .Close() the status
5183         dialog, as this causes X errors later on, since we actually
5184         destroy the window.  Instead, .Hide() it.
5185
5186 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
5187
5188         * ComboBox.cs: Added focus reflection for popup window
5189         * XplatUIX11.cs: 
5190           - Removed transient setting for non-app windows for now, not sure it
5191             was needed
5192           - Fixed logic checking if we have captions when deciding 
5193             override_redirect, WS_CAPTION is two bits and a 0 check was not
5194             sufficient
5195           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
5196             complicated
5197         * Form.cs: 
5198           - AddOwnedForm: Don't just add the form to the list, call the property
5199             to ensure the driver is informed about the ownership as well
5200           - CreateHandle: Set the TopMost status in the driver if we have an owner
5201         * XplatUI.cs: Fixed debug statement
5202
5203 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
5204         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5205           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
5206           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
5207           TrackBarRenderer.cs: Make constructor private.
5208         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
5209         * ProfessionalColorTable.cs: Make properties virtual.
5210
5211 2006-08-06  Duncan Mak  <duncan@novell.com>
5212
5213         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
5214         is not changing.
5215
5216 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5217         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
5218           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
5219           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
5220           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
5221           Initial import of new 2.0 classes.
5222
5223 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5224         * Application.cs: Add 2.0 VisualStyles properties.
5225
5226 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
5227         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
5228           XplatUIX11.cs: Create property to allow access to existing private
5229           variable "themes_enabled"
5230
5231 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5232
5233         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
5234         file size, as otherwise our class libraries fail using windows. Fixes
5235         bug #78759.
5236
5237 2006-08-04  Jackson Harper  <jackson@ximian.com>
5238
5239         * Form.cs:
5240         * XplatUIX11.cs: Move the toolwindow window manager creation into
5241         the X11 driver, this way on win32 we can let windows create/handle
5242         the toolwindows.
5243
5244 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5245
5246         * PrintDialog.cs: Remove some redundant checks, add some others,
5247         clean some code, and move the focus to the text boxes when the
5248         values are incorrect.
5249
5250 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
5251
5252         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
5253
5254 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5255
5256         * NumericUpDown.cs: Setting the Minimum and Maximum is now
5257           handled correctly. Fixes bug #79001.
5258
5259 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5260
5261         * PrintDialog.cs: The "Copies" numeric up down must have
5262         set the Minimum property to 1; only if the value is bigger
5263         than 1, activate "Collate" check box. This is the behaviour of .Net.
5264         Also modify the Document elements only if it is not null.
5265
5266 2006-08-03  Jackson Harper  <jackson@ximian.com>
5267
5268         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
5269         length. (We have a larger array then actual node count).
5270                 
5271 2006-08-03  Jackson Harper  <jackson@ximian.com>
5272
5273         * ComboBox.cs: Don't show selection by default.
5274         - The SelectAll isn't needed here, since the focus code should do
5275         that
5276         - DDL style lists to manual selection drawing, so when they
5277         get/lose focus they have to invalidate.
5278
5279 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
5280
5281         * TextBoxBase.cs: Don't always show all selections by default.
5282
5283 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
5284         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
5285           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
5286           Fixed various typos.
5287
5288 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
5289
5290         * Control.cs: Removing the controls in a ControlCollection with
5291           Clear now hides the controls as expected. Fixes bug #78804. 
5292
5293 2006-08-03  Jackson Harper  <jackson@ximian.com>
5294
5295         * Control.cs: Revert previous focus patch, it breaks reflector.
5296
5297 2006-08-03  Jackson Harper  <jackson@ximian.com>
5298
5299         * ComboBox.cs: Cleanup selection and focus with the combobox.
5300         This also eliminates some duplicated keyboard code, since now
5301         everything is handled by the main class.
5302         - Make list selection work on mouse up instead of down, to match
5303         MS.
5304
5305 2006-08-02  Jackson Harper  <jackson@ximian.com>
5306
5307         * Control.cs: Setting focus needs to go through the whole
5308         selection mechanism.
5309
5310 2006-08-02  Chris Toshok  <toshok@ximian.com>
5311
5312         * PrintPreviewDialog.cs: change MinimumSize to use
5313         base.MinimumSize so it works.
5314
5315 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
5316
5317         * TextControl.cs:
5318           - UpdateCaret: Added sanity check in case caret isn't defined yet
5319           - Line.Delete: Now updating selection and caret markers if we're
5320             transfering a node (Properly fixes #78323)
5321           - SetSelectionEnd: Added sanity check
5322         * TextBoxBase.cs: Removed broken attempt to fix #78323
5323
5324 2006-08-01  Chris Toshok  <toshok@ximian.com>
5325
5326         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
5327         Close() call is handled in Form, not here.
5328
5329 2006-08-01  Chris Toshok  <toshok@ximian.com>
5330
5331         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
5332         layout/rendering.
5333
5334         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
5335         for sizes < 100% zoom.  The code now aggressively attempts to keep
5336         from calling document.Print (), and tries not to use the scaling
5337         g.DrawImage whenever possible (it still does if you scale to >
5338         100%, since usually that involves huge images).
5339
5340         * PrintPreviewControl.cs: hook up the close button.
5341
5342 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
5343         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
5344           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
5345           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
5346           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
5347           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
5348           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
5349           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
5350           Removed [Serializable] for 2.0 Event Handlers.
5351
5352 2006-07-31  Jackson Harper  <jackson@ximian.com>
5353
5354         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
5355         * TextControl.cs: Uncomment out the body of this method.
5356
5357 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
5358
5359         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
5360           standard cursors.
5361
5362 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5363
5364         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
5365           that embed TextBox and need selections visible even if textbox is not
5366           focused to enforce that behaviour.
5367         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
5368           selection drawing
5369
5370 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5371
5372         * TextControl.cs:
5373           - Added new SetSelectionStart/SetSelectionEnd overloads
5374           - Fixed viewport width assignment to be accurate
5375           - Adjusted alignment line shift calculations to allow cursor on right
5376             aligned lines to be always visible at the right border (like MS)
5377         * TextBoxBase.cs:
5378           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
5379           - TextBoxBase_SizeChanged: recalculating canvas on size changes
5380           - CalculateScrollBars: Use ViewPort size instead of window size, to
5381             properly consider space occupied by the border and scrollbars 
5382             (Fixes #78661)
5383           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
5384             calculations; no longer leaves artifacts
5385           - CaretMoved: Adjusted window scrolling to match MS and fixed several
5386             calculation bugs (Still missing right/center align calculations)
5387
5388 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
5389
5390         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
5391           use of both scroll rect and clip rect, as they do the same.
5392
5393 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
5394
5395         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
5396           in the event handler (fixes #78912)
5397
5398 2006-07-31  Chris Toshok  <toshok@ximian.com>
5399
5400         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
5401         grid.ListManager.Count, since grid.ListManager might be null.
5402         This of course begs the question "why are we drawing rows for a
5403         grid with no list manager (and therefor no rows)?"  Fixes the
5404         crash in bug #78929.
5405
5406 2006-07-31  Chris Toshok  <toshok@ximian.com>
5407
5408         * RelatedPropertyManager.cs: Don't always chain up to the parent
5409         ctor.  instead, call SetDataSource if the parent's position is !=
5410         -1.  Fixes the crash in #78822.
5411
5412 2006-07-31  Chris Toshok  <toshok@ximian.com>
5413
5414         * DataGrid.cs (get_ListManager): use field instead of property
5415         accessors for datasource and datamember.
5416         (RowsCount): make internal again.
5417         (OnMouseDown): end edits before resizing columns/rows.
5418         (OnMouseUp): restart edits after resizing columns/rows.
5419
5420 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
5421
5422         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
5423           This fixes the situation where the last set cursor is displayed
5424           whenever the mouse is over scrollbars.
5425
5426 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5427
5428         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
5429         Document properties, as well as initial values.
5430
5431 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
5432
5433         * XplatUIWin32.cs (SetBorderStyle): Setting both border
5434           and ClientEdge results in a 3-pixel border, which is
5435           wrong.
5436
5437 2006-07-28  Jackson Harper  <jackson@ximian.com>
5438
5439         * TreeNodeCollection.cs: Fix the clear method.
5440         - Fix the Shrink also
5441
5442 2006-07-27  Jackson Harper  <jackson@ximian.com>
5443
5444         * TreeView.cs: Make sure the visible order is computed when we
5445         attempt to size the scrollbars (for trees that mess with the
5446         scrolling when they shouldn't.
5447         - Make sure to give the scrollbars valid values.
5448
5449 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5450
5451         * XplatUIX11.cs: Move motion compression code to where it
5452           has less performance impact
5453
5454 2006-07-26  Jackson Harper  <jackson@ximian.com>
5455
5456         * UpDownBase.cs: When the control is selected make the child
5457         controls non selectable, so that a click on them won't do a
5458         focus/unfocus cycle.
5459         - Don't give focus to the text box when the spinner is selected.
5460         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
5461
5462 2006-07-26  Chris Toshok  <toshok@ximian.com>
5463
5464         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
5465         satisfied with this solution.  If the bitmaps are small, we should
5466         just cache them in the PrintPreviewDialog and draw them here.
5467         Also, the layout is broken for the 2-up and 3-up cases.
5468
5469         * Theme.cs: add PrintPReviewControlPaint.
5470
5471         * PrintPreviewDialog.cs: first pass implementation.
5472
5473         * PrintPreviewControl.cs: first pass implementation.  No
5474         scrollbars yet.
5475
5476         * PrintDialog.cs: only validate fields if that particular portion
5477         of the UI is enabled.  Also, set the document's controller to a
5478         PrintControllerWithStatusDialog wrapping the document's print
5479         controller.
5480
5481         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
5482         bring up a SaveFileDialog (i hope we don't want to match the
5483         behavior of the crappy windows file entry) and set the
5484         PrinterSettings.PrintFileName accordingly.
5485
5486 2006-07-26  Jackson Harper  <jackson@ximian.com>
5487
5488         * ContainerControl.cs: Add a field that disables auto selecting
5489         the next control in a container when the container is activated.
5490         * UpDownBase.cs: Don't select the text box when the up down is
5491         selected.
5492
5493 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
5494
5495         * XEventQueue.cs: Added methods for peeking (used for compression
5496           of successive events)
5497         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
5498           mouse move events (fixes #78732)
5499
5500 2006-07-25  Jackson Harper  <jackson@ximian.com>
5501
5502         * UpDownBase.cs: Use an internal class for the textbox so that we
5503         can control focus.  the updown control should always have focus,
5504         if either the text area or the buttons are clicked.
5505         - Send the key messages to the textbox, since it never actually
5506         has focus
5507         - Activate and decativate the textbox caret.
5508
5509 2006-07-24  Jackson Harper  <jackson@ximian.com>
5510
5511         * Control.cs: Use the directed select when selecting a control,
5512         this way the container controls override will get called and the
5513         whole ActiveControl chain will get triggered.  TODO: probably need
5514         to make sure this gets done everywhere instead of the old
5515         Select(Control).
5516         * ContainerControl.cs: Implement the directed Select method to
5517         find and activate the correct child control.    
5518         
5519 2006-07-22  Mike Kestner  <mkestner@novell.com>
5520
5521         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
5522         menu handling code so that clicks without a grab work too.
5523         [Fixes #78914]
5524
5525 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
5526
5527         * FileDialog.cs: Enable the BackButton when dirstack has one element.
5528           Added some small optimizations.
5529
5530 2006-07-21  Matt Hargett  <matt@use.net>
5531
5532         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
5533
5534 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
5535
5536         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
5537           tests pass and match MS in some strange border cases.
5538
5539 2006-07-21  Chris Toshok  <toshok@ximian.com>
5540
5541         * ThemeWin32Classic.cs: handle drawing of the relation links and
5542         parent row buttons.
5543
5544         * Theme.cs: change args to DataGridPaintParentRow.
5545
5546         * DataGrid.cs: Don't use controls for the relation links and
5547         parent buttons, so we have to handle all their interactions in
5548         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
5549         when we're navigating through child tables, so we can reinstate
5550         selection, expanded state, current cell, etc.
5551
5552 2006-07-20  Chris Toshok  <toshok@ximian.com>
5553
5554         * ToolBar.cs: When we redraw a button, for whatever reason,
5555         there's no reason to redraw the entire toolbar.  Also, don't call
5556         Control.Refresh from within Redraw, as it's much heavier than
5557         Invalidate (which is really what we want).
5558
5559 2006-07-20  Chris Toshok  <toshok@ximian.com>
5560
5561         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
5562         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
5563         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
5564         traces from within a debug IBindingList datasource
5565         (in mono/winforms/datagrid) for *days*, I've finally gotten things
5566         to work in a similar fashion.
5567
5568 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5569
5570         * ListBox.cs: Don't call Sort () when setting 
5571         the Sorted property to false (avoid an unnecessary sort).
5572
5573 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5574
5575         * ListControl.cs: DataSource should throw an ArgumentException
5576         instead of a normal exception when the argument is not of the 
5577         correct type.
5578
5579 2006-07-20  Mike Kestner  <mkestner@novell.com>
5580
5581         * Control.cs: add InternalPreProcessMessage to allow us to steal
5582         key events before MWF gets its paws on them.  Adapted from a
5583         suggestion by eno.
5584         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
5585         up/down/left/right navigation. Override the new internal control
5586         method to steal the events since they never make it to WndProc.
5587         * ToolBarButton.cs: don't worry about pushed when setting hilight
5588         since the drawing code prefers pushed to hilight. Invalidate on 
5589         Hilight changes. Fixes #78547 and #78525.
5590
5591 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5592
5593         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
5594           the canvas size. Fixes #78868
5595
5596 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
5597
5598         * Splitter.cs: Track requested split position until first layout
5599           is performed. Fixes #78871
5600
5601 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
5602
5603         * Application.cs: Removed code that forces 1.x for the version
5604           number if the version started with 0. Not sure why that code was
5605           there and I couldn't find any bugs that indicated we needed it.
5606           Fixes #78869
5607
5608 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
5609
5610         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
5611           ResetDefaults(), just write some output to the console until it's
5612           implemented. Fixes bug #78907 for now. Eliminated two warnings.
5613
5614 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
5615
5616         * PropertyGridView.cs: set StartPosition of drop down forms
5617         so they appear in correct initial spot.  Fixes #78190.
5618
5619 2006-07-19  Mike Kestner  <mkestner@novell.com>
5620
5621         * ThemeWin32Classic.cs: use parent background color when drawing
5622         flat toolbars.  Restructure the conditionals to make sure non-flat
5623         non-Divider toolbars are filled too.  Fixes #78837.
5624
5625 2006-07-19  Mike Kestner  <mkestner@novell.com>
5626
5627         * ListBox.cs: Sort on collection changes even if the handle
5628         isn't created yet.  Fixes #78813.
5629
5630 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5631
5632         * ListControl.cs: DisplayMember should never be null,
5633         and now we assign String.Empty when null is passed to it (this
5634         is the .Net way).
5635
5636 2006-07-17  Mike Kestner  <mkestner@novell.com>
5637
5638         * ListViewItem.cs: restructure Font and subitem Font handling 
5639         to hold a specific font and refer back to owner on null.
5640         Fixes #78761.
5641
5642 2006-07-17  Mike Kestner  <mkestner@novell.com>
5643
5644         * ToolBar.cs: bandaid for side-effect of previous patch which was
5645         discarding explicit heights for non-AutoSize toolbars.  Need to
5646         extend my format tester to deal with AutoSize=false. Fixes #78864.
5647
5648 2006-07-15  Jackson Harper  <jackson@ximian.com>
5649
5650         * LabelEditTextBox.cs:
5651         * TreeView.cs: Use a new LabelEdit class for node editing, this
5652         class automatically 'closes' itself when it gets the enter key or
5653         loses focus.
5654         - Use the client rectangle when setting the trees scrollbars, so
5655         border style is taken into account.
5656         
5657 2006-07-14  Jackson Harper  <jackson@ximian.com>
5658
5659         * TreeNode.cs:
5660         * TreeView.cs: Make the editing work similar to MSs, firing the
5661         events correctly and ending edits correctly.
5662
5663 2006-07-14  Mike Kestner  <mkestner@novell.com>
5664
5665         * ToolBarButton.cs:
5666         * ToolBar.cs: layout restructuring and redraw enhancements to support
5667         formatting changes gracefully, like setting TextAlign, ImageList, 
5668         ButtonSize, and Appearance.  Handles explicit button sizing quirks
5669         of the MS controls.  Things like flat toolbars ignoring button size
5670         but becoming constant sized at the largest button's size.  Normal
5671         toolbars with an image set cannot be shrunk smaller than the image,
5672         but text can be clipped/ignored.
5673         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
5674         is zero.  Seems like DrawString should be smart enough to not put
5675         anything on screen though. Also trim labels and ellipsize at the char
5676         boundary, not word.
5677         Fixes #78711 and #78483.
5678
5679 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5680
5681         * FolderBrowserDialog.cs: Disable "New Folder" button and
5682           "New Folder" contextmenu menuitem if a folder like "My Computer"
5683           is selected.
5684
5685 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5686
5687         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
5688         * FolderBrowserDialog.cs:
5689           - Use MWFConfig to store and read size and position settings
5690           - Added code to create a new folder (button or context menu).
5691             Use TreeView labeledit to change the name of the new folder.
5692
5693 2006-07-14  Jackson Harper  <jackson@ximian.com>
5694
5695         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
5696         when the tree is scrolled we end editing.
5697
5698 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
5699
5700         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
5701           Down arrows
5702
5703 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
5704
5705         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
5706         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
5707         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
5708         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
5709         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
5710         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
5711         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
5712         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
5713         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
5714         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
5715         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
5716         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
5717         ListViewItemSelectionChangedEventHandler.cs,
5718         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
5719         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
5720         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
5721         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
5722         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
5723         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
5724         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
5725         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
5726         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
5727         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
5728         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
5729         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
5730         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
5731         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
5732         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
5733         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
5734         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
5735         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
5736         WebBrowserNavigatingEventHandler.cs, 
5737         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
5738
5739 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
5740
5741         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
5742         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
5743         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
5744         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
5745         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
5746         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
5747         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
5748         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
5749         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
5750         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
5751         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
5752         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
5753         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
5754         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
5755         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
5756         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
5757         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
5758         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
5759         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
5760         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
5761         ListViewItemStates.cs, MaskFormat.cs: Added
5762
5763 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
5764
5765         * PropertyGridView.cs: Fix keyboard navigation of drop down.
5766         Patch from eno for bug 78558.
5767         
5768 2006-07-13  Jackson Harper  <jackson@ximian.com>
5769
5770         * TreeView.cs: When an edit is finished make sure that the
5771         selected node is visible.
5772         - When setting the top/bottom use the scrollbars is_visible, so
5773         everything will be set correctly even if the tree isn't visible
5774         yet.
5775
5776 2006-07-13  Jackson Harper  <jackson@ximian.com>
5777
5778         * ComboBox.cs: Revert the item->index part of my previous patch.
5779         * TreeView.cs: Use LostFocus instead of Leave for detecting when
5780         the edit box has lost focus (duh).
5781         - Just make the edit box not visible when we get return, that will
5782         take the focus, which will call EndEdit
5783         * TreeNode.cs When we start editing, notify the treeview.
5784
5785 2006-07-12  Jackson Harper  <jackson@ximian.com>
5786
5787         * ComboBox.cs: Clear out old items before setting the item list.
5788         This prevents databound controls from having their items added
5789         twice.
5790         - Switch the combobox to use indices whereever possible instead of
5791         using Item's.  This allows usto navigate through lists that have
5792         more then one item with the same string value (ie a, b, b, a).
5793         - Scroll the listboxes scrollbar when a non visible item is
5794         highlighted
5795         - Allow keypress to cycle through all the possible values. For
5796         example if you have b1, b2, b3 and hold down the B key all the
5797         values will be cycled through.
5798         
5799 2006-07-12  Jackson Harper  <jackson@ximian.com>
5800
5801         * TextBoxBase.cs:
5802         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
5803         this using the internal methods.
5804         * Control.cs: Add OnGotFocusInternal.  A new method that allows
5805         controls to "override" OnGotFocus and change focus behavior if
5806         needed.
5807         - Same thing for LostFocus
5808         * ComboBox.cs: Pass off focus to the text control properly.
5809
5810 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
5811
5812         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
5813         * FolderBrowserDialog.cs: Almost a complete rewrite.
5814           - Better support for Environment.Specialfolders
5815           - Added support for MWFVFS
5816           - Made setting SelectedPath work
5817
5818 2006-07-12  Jackson Harper  <jackson@ximian.com>
5819
5820         * Control.cs: Optimze getting all the controls.
5821
5822 2006-07-11  Jackson Harper  <jackson@ximian.com>
5823
5824         * ContainerControl.cs: Override SETFOCUS in the container control,
5825         so that it is not selected on mouse click.
5826
5827 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
5828
5829         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
5830           Hopefully we will have a better way once all of focus is complete.
5831
5832 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
5833
5834         * ThemeWin32Classic.cs: Commented out some debug code and fixed
5835           a compile error with csc.
5836
5837 2006-07-11  Jackson Harper  <jackson@ximian.com>
5838
5839         * Control.cs: When hiding a control only select the next control
5840         if the current control was focused.
5841         - Don't handle enter/leave when setting/killing focus, this is
5842         done by the container control.
5843         - Remove is_selected, it's not needed anymore.
5844         - Add utility methods for selecting a child control, and for
5845         firing the Enter/Leave events.
5846         * ContainerControl.cs: When a control is activated fire the
5847         enter/leave events.
5848         - Don't wrap when processing the tab key, so that focus can be
5849         moved outside of the container.
5850         - Use the correct active control
5851
5852 2006-07-11  Jackson Harper  <jackson@ximian.com>
5853
5854         * ComboBox.cs: Remove some debug code that was blinding me.
5855         * UpDownBase.cs: These controls actually aren't implicit, they are
5856         visible to the user.
5857
5858 2006-07-10  Chris Toshok  <toshok@ximian.com>
5859
5860         * DataGrid.cs: move back to the is_adding boolean field.  god i
5861         hate this is_editing/is_adding/is_changing stuff.
5862
5863 2006-07-10  Chris Toshok  <toshok@ximian.com>
5864
5865         * DataGridTableStyle.cs: just check if the property type is bool.
5866         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
5867         Don't use CanRenderType.
5868
5869         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
5870         if our text == NullText.  Remove CanRenderType.
5871
5872         * DataGridBoolColumn.cs: nuke CanRenderType.
5873
5874         * DataGrid.cs: reenable some code to end the current edit inside
5875         of set_CurrentCell.  This fixes the other 1.1.16 regression.
5876         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
5877         Also, remove the visible_row_count arg from CalcRowHeaders, since
5878         we don't need to worry about the actual height of the area.
5879
5880 2006-07-10  Chris Toshok  <toshok@ximian.com>
5881
5882         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
5883         mode, just return.
5884
5885         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
5886         the real sense of the IsInEditOrNavigateMode property (true =
5887         navigate, false = edit).  Also, update OnKeyPress to reflect this.
5888
5889         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
5890         column style exists, we still need to set its property descriptor
5891         to match up with our list manager.
5892
5893 2006-07-10  Chris Toshok  <toshok@ximian.com>
5894
5895         * ThemeWin32Classic.cs: implement the new row/header painting
5896         approach.  The parent row painting will likely go away and
5897         replaced with label controls, but the rest seems to work ok (and
5898         efficiently).
5899
5900         * Theme.cs: change the way we draw datagrid rows.  we don't draw
5901         the row headers as a block now.  Instead we draw them in the
5902         normal draw-row loop.  Add some calls for drawing parent rows and
5903         relation rows.
5904
5905         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
5906         a default table style.  Set the defaults from ThemeEngine.Current,
5907         not SystemColors.  Fix lots of misc issues with property setters.
5908
5909         * DataGrid.cs: move loads of style information out of this class
5910         as it's being duplicated with DataGridTableStyle.  keep track of a
5911         special DataGridTableStyle for the properties we used to mirror
5912         here.  Switch all the style properties to access this table style
5913         instead of instance fields of this class.  Also add a internal
5914         class to represent parent rows (more needs to be stored here, like
5915         the selection state from the parent table, as well as the
5916         expansion state.)  Also, for datasources with relations, do the
5917         right thing for collapse/expand, and add support for the
5918         navigation/parent row buttons.
5919
5920         Lastly, fix the crash in the 1.1.16 build.
5921
5922         * GridTableStylesCollection.cs: make the explicit interface
5923         implementations call the class's methods as opposed to duplicating
5924         them.
5925
5926         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
5927         0 so the text doesn't jump around when we move the cursor.
5928
5929 2006-07-10  Jackson Harper  <jackson@ximian.com>
5930
5931         * TextBoxBase.cs:
5932         * ListBox.cs: Match MS's ToString (this makes debugging focus
5933         stuff infinitely easier).
5934
5935 2006-07-10  Jackson Harper  <jackson@ximian.com>
5936
5937         * Control.cs (SelectNextControl): When checking the control's
5938         parent use this instead of ctrl.parent so that null can be passed
5939         to SelectNextControl. (I have unit tests for this).
5940         - Remove unused var.
5941
5942 2006-07-10  Chris Toshok  <toshok@ximian.com>
5943
5944         * CurrencyManager.cs: correct one regression, the removal of the
5945         finalType field.  Also, add a MonoTODO on CanAddRows, implement
5946         Refresh() correctly, and fix some event emission in
5947         ListChangedHandler.
5948
5949 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
5950
5951         * FileDialog.cs: Don't use brackets for new folders if they exist
5952           under *nix. Instead use -(number of existing folders +1).
5953
5954 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
5955
5956         * FileDialog.cs:
5957           - Fixed really nasty bug #78771
5958           - Don't block the whole GUI when reading directories with a lot of
5959             entries. Use an other thread instead and call BeginInvoke to
5960             update the ListView in MWFFileView
5961
5962 2006-07-07  Chris Toshok  <toshok@ximian.com>
5963
5964         * Control.cs (Dispose): release any Capture when disposing.
5965
5966 2006-07-07  Chris Toshok  <toshok@ximian.com>
5967
5968         * LinkLabel.cs (Select): if we chain up to the parent, set
5969         focused_index to -1 so we'll search for the first available link
5970         the next time the user tabs into us.  Also, if the direction is
5971         backward and focused_index == -1, start the search from the last
5972         element.
5973
5974 2006-07-07  Chris Toshok  <toshok@ximian.com>
5975
5976         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
5977         is beyond the end of the text, don't do anything.
5978         (CreateLinkPieces): set our ControlStyles.Selectable based on
5979         whether or not we have any links.
5980         (Link.Invalidate): use a loop instead of foreach.
5981         (Link.set_Start): null out owner.sorted_links so it'll be
5982         recreated by CreateLinkPieces.
5983
5984 2006-07-06  Chris Toshok  <toshok@ximian.com>
5985
5986         * LinkLabel.cs: revert the SetStyle change.
5987
5988 2006-07-06  Chris Toshok  <toshok@ximian.com>
5989
5990         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
5991         (OnEnableChanged): s/Refresh/Invalidate
5992         (OnGotFocus): if we have a focused index already, refocus it (so
5993         if we mouse out/in to the window it'll focus the right link).
5994         (OnKeyDown): move the tab handling out of here.
5995         (OnLostFocus): don't set focused_index to -1, so we can refocus it
5996         when we lose focus.
5997         (OnMouseDown): don't Capture here - Control handles it.  Also,
5998         focus the active link.
5999         (OnMouseUp): don't deal with Capture.
6000         (OnPaintBackgroundInternal): remove.
6001         (OnTextAlignChanged): CreateLinkPieces before calling the
6002         superclass's method.
6003         (OnTextChanged): call CreateLinkPieces before calling superclass's
6004         method.
6005         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
6006         move around.
6007         (Select): implement this, moving the selection between different
6008         links, and call parent.SelectNextControl if we don't have another
6009         link to focus in the given direction.
6010         (CreateLinkPieces): call Invalidate instead of Refresh.
6011         
6012 2006-07-06  Chris Toshok  <toshok@ximian.com>
6013
6014         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
6015         new LinkLabel internals.
6016
6017         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
6018         over pieces looking for active/focused/etc links.  also, deal with
6019         runs of text (and links) with embedded \n's in them, and use
6020         MeasureCharacterRanges instead of MeasureString to figure out the
6021         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
6022         two-step.
6023
6024 2006-07-04  Jackson Harper  <jackson@ximian.com>
6025
6026         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
6027         XKB or key auto repeat, do it manually.  Without key auto repeat,
6028         when a key is held down we get key press, key release, key press,
6029         key release, ... with auto repeat we get key press, key press, key
6030         press ..., and then a release when the key is actually released.
6031
6032 2006-07-03  Jackson Harper  <jackson@ximian.com>
6033
6034         * TabControl.cs:
6035         * ThemeWin32Classic.cs: Tabs do not obey normal background color
6036         rules, they are always control color regardless of the background
6037         color.
6038
6039 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
6040
6041         * FileDialog.cs: Added internal class MWFConfig.
6042           Removed Registry support and replaced it with support for the new
6043           MWFConfig class. See MWFConfig comments for more information.
6044
6045 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
6046
6047         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
6048           rectangle. Added some patches from eno from bug #78490 and fixed
6049           the arrow position for small up and down CPDrawScrollButtons.
6050
6051 2006-06-30  Jackson Harper  <jackson@ximian.com>
6052
6053         * InternalWindowManager.cs: Remove some debug code.
6054         * Form.cs: When an MdiParent is set to null, the window is
6055         "detatched" and becomes a normal window.
6056         * MdiClient.cs: Don't bring the new child form to the front until
6057         it is activated (setting it as active does this), this makes the
6058         previously active forms titlebar get redrawn as inactive.
6059
6060 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
6061
6062         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
6063           with later controls
6064
6065 2006-06-29  Mike Kestner  <mkestner@novell.com>
6066
6067         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
6068         arrow in keynav state.  Fixes #78682.
6069
6070 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6071
6072         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
6073           order (fixes #78393)
6074
6075 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
6076
6077         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
6078           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
6079           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
6080           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
6081           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
6082           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
6083           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
6084           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
6085           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
6086           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
6087           enumerations (FlagsAttribute, SerializableAttribute, added/removed
6088           values)
6089
6090 2006-06-28  Mike Kestner  <mkestner@novell.com>
6091
6092         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
6093
6094 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
6095
6096         * PropertyGrid.cs,
6097           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
6098           item lines from other area (It also makes BackColor consistent and
6099           compatible with .NET). Fixed bug #78564.
6100
6101 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
6102
6103         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
6104         Patch from Eno for #78555.
6105
6106 2006-06-27  Chris Toshok  <toshok@ximian.com>
6107
6108         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
6109
6110         * DataGridColumnStyle.cs: same.
6111
6112         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
6113         
6114         * DataGridDrawingLogic.cs: nuke.
6115
6116 2006-06-27  Chris Toshok  <toshok@ximian.com>
6117
6118         * DataGridTableStyle.cs: clean up the constructors, and build the
6119         list of child relations for this table.  I have no idea if this is
6120         where we should be doing it (it probably isn't), but since we're
6121         already iterating over the properties..
6122
6123         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
6124         struct and array for keeping track of row information, similar to
6125         what's shown in a hack on
6126         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
6127
6128         * Theme.cs: be consistent about the naming of DataGrid methods,
6129         prefering ColumnWidths and RowHeights over columnsWidths and
6130         RowsHeights.
6131
6132         * ThemeWin32Classic.cs: same, and also add support for variable
6133         sized rows (and the +/- expansion icons for related rows).
6134
6135 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6136
6137         * TextBoxBase.cs: Applied Eno's patch from #78660
6138
6139 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6140
6141         * Form.cs (ScaleCore): We don't want to scale our form if it's
6142           state is minimized or maximized, but we still need to scale our
6143           child windows. Also, added try/finally block to ensure layout
6144           gets reset (Fixes #78697)
6145
6146 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
6147
6148         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
6149
6150 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
6151
6152         * Form.cs: Fixed c+p error and added check to resize form if minimum
6153           size is bigger than current size (Fixes #78709)
6154
6155 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
6156
6157         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
6158
6159 2006-06-26  Mike Kestner  <mkestner@novell.com>
6160
6161         * ComboBox.cs: only do Keypress handling in the combo when there  
6162         are items in the collection. Fixes #78710.
6163
6164 2006-06-26  Chris Toshok  <toshok@ximian.com>
6165
6166         * Binding.cs: make this work bi-directionally.  also, clear up
6167         other mixups between Push/Pull Data (e.g. we're supposed to pull
6168         data when validating).
6169
6170         * BindingManagerBase.cs: trim some fully qualified collection
6171         types.
6172
6173         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
6174
6175 2006-06-23  Chris Toshok  <toshok@ximian.com>
6176
6177         * PropertyManager.cs: It appears (according to the unit tests)
6178         that PropertyManager doesn't use
6179         PropertyDescriptor.AddValueChanged to track propery value changes
6180         in its datasource, but uses the same scheme as Binding, where it
6181         looks for a <Property>Changed event and binds to it.
6182
6183         Also, according to the docs, IsSuspended always returns false for
6184         a property manager with a non-null datasource.
6185
6186 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
6187
6188         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
6189           need to update the actual DialogResult. (Fixes #78613)
6190
6191 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
6192
6193         * Form.cs (ShowDialog): Release any captures before running the
6194           new message pump (fixes #78680)
6195
6196 2006-06-22  Mike Kestner  <mkestner@novell.com>
6197
6198         * ListView.cs: Layout column widths properly in details mode even 
6199         if HeaderStyle.None is set.  Fixes #78691.
6200
6201 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
6202
6203         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
6204
6205 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
6206
6207         * Control.cs (ContainsFocus): Using new driver method to get focused
6208           window, instead of trying to use internal tracking var, which can
6209           recursion issues (Fixes #78685)
6210         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
6211           XplatUIWin32.cs: Added GetFocus method to return focused window
6212
6213 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6214
6215         * ColorDialog.cs: when the mouse button is pressed inside the color
6216         matrix, don't let the cursor move out of it until the button is
6217         released, which is the behavior on windows. Changed 'colours' by
6218         'colors' to use the same word consistently.
6219
6220 2006-06-21  Chris Toshok  <toshok@ximian.com>
6221
6222         * DataGrid.cs: add in some basic navigation stuff (navigating to a
6223         child relation and back, using a stack).  Also, remove
6224         GetDataSource and the code that calls it - it's not needed.  Also,
6225         track CurrencyManager.ListName's removal.
6226
6227 2006-06-21  Chris Toshok  <toshok@ximian.com>
6228
6229         * CurrencyManager.cs: push some of the original type checking from
6230         BindingContext.CreateBindingManager to here, and remove some of
6231         the finalType stuff.  Need more tests to make sure I've got the
6232         ListName part right, and we might need more in SetDataSource.
6233
6234         * PropertyManager.cs: add a ctor that takes just the datasource,
6235         and no property name.  Make SetDataSource work with a null
6236         property_name, and make Current return the data_source if the
6237         property descriptor is null.  this makes 'string foo = "hi";
6238         BindingContext[foo].Current' return "hi" as it should.
6239
6240         * RelatedCurrencyManager.cs: make this code more generic - there's
6241         no reason the parent manager has to be CurrencyManager, and
6242         there's no reason to pass the DataRelation.  It suffices to use a
6243         BindingManagerBase and PropetyDescriptor.
6244
6245         * RelatedPropertyManager.cs: make a similar change here.
6246         
6247         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
6248         flower I knew it could be.
6249
6250 2006-06-20  Chris Toshok  <toshok@ximian.com>
6251
6252         * PropertyManager.cs: the PropertyChangedHandler is invoked when
6253         data in the source has changed and we need to update the control,
6254         so s/PullData/PushData.
6255
6256         * CurrencyManager.cs: Refresh is meant to update the control from
6257         data in the datasource.  So, s/PullData/PushData.
6258
6259         * BindingContext.cs: add more ugliness (we weren't handling the
6260         case where data_source = DataTable and data_member = column_name).
6261
6262         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
6263         from the perspective of the datasource.  PullData pulls from the
6264         control, PushData pushes to the control.
6265
6266 2006-06-20  Chris Toshok  <toshok@ximian.com>
6267
6268         * BindingContext.cs: rewrite the CreateBindingManager code to
6269         handle navigation paths more or less properly.  This could
6270         definitely stand some more work, in particular to push the
6271         recursion up to the toplevel.  But that relies on fixes in other
6272         places (System.Data comes to mind).
6273
6274         Also, move to a flat hashtable (and encode the twolevel nature of
6275         the dictionary into the hash key).  This lets us implement the
6276         IEnumerable.GetEnumerator method.
6277
6278         * RelatedCurrencyManager.cs: new class.  Update our view based on
6279         our relation and our parent CurrencyManager's position.
6280
6281         * CurrencyManager.cs: split out some logic from the ctor into
6282         SetView, so it can be called from the new RelatedCurrencyManager
6283         subclass.
6284
6285         * RelatedPropertyManager.cs: new class.  Update our datasource
6286         based on the position of our parent CurrencyManager.
6287
6288         * PropertyManager.cs: split out some logic from the ctor into
6289         SetDataSource, so it can be called from the new RelatedDataSource
6290         subclass.  Also, make the Current getter return the value
6291         of the PropertyDescriptor, not the data_source.
6292
6293         * Binding.cs: no need to duplicate the string splitting code here.
6294
6295 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6296
6297         * Control.cs:
6298           - set_Enabled: OnEnabledChanged is not called if the inherited state 
6299             of the control is not altered, even though  we might be changing the
6300             internal state of the control (#78458)
6301           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
6302             OnEnabledChanged, to allow easy altering of any child window state
6303           - OnEnabledChanged: Added code to enable/disable driver window state
6304           - OnParentEnabledChanged: Instead of firing the event, call 
6305             OnEnabledChanged, which will fire the event and also a) set driver
6306             window state and pass the enabled state to any grandchildren (#78458)
6307
6308 2006-06-19  Jackson Harper  <jackson@ximian.com>
6309
6310         * InternalWindowManager.cs: We don't set the cursor explicitly
6311         thats done via the response to NCHITTESTs.
6312         - Don't need to adjust for titlebar heights anymore, the
6313         coordinates are coming in the correct coordinates now (see peters
6314         last patch).
6315
6316
6317 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
6318
6319         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
6320           being translated relative to whole window, instead of client window.
6321           That caused broken offsets on mouseclick (and caused gas for our
6322           InternalWindowManager)
6323
6324 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6325
6326         * TextControl.cs:
6327           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
6328           - Undo(): Added replay of cursor move on DeleteChars action; added
6329             calling Undo() again if a recorded cursor move is invalid (to
6330             ensure that some action is performed on Undo)
6331         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
6332
6333 2006-06-16  Jackson Harper  <jackson@ximian.com>
6334
6335         * MdiClient.cs: Instead of just sizing maximized windows when
6336         there is a resize we also have to adjust the Y of minimized
6337         windows, so they stay pinned to the bottom of the mdi container.
6338         - Eliminate separate tracking of the active control, we can just
6339         get this from the controls collection.
6340         - Paint the decorations for the newly activated titlebar so we get
6341         a pretty blue bar.
6342         * InternalWindowManager.cs:
6343         * ThemeWin32Classic.cs: Minimized windows get all three buttons
6344         even if they are a tool window.
6345         
6346 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
6347
6348         * TextControl.cs (Undo): Handle non-existent cursor locations in the
6349           undo buffer, these can happen when text was deleted and the cursor
6350           was recorded first. Since we will also have a recorded cursor
6351           after the delete this is not an issue. (Fixes #78651)
6352
6353 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
6354
6355         * AccessibleObject.cs: Remove dependence on Control.is_selected;
6356           instead properly track control states internally (allows us to
6357           remove is_selected from Control)
6358
6359 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6360
6361         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
6362         whose width is not a multiple of 8.
6363
6364 2006-06-13  Jackson Harper  <jackson@ximian.com>
6365
6366         * MdiClient.cs:  Only maximize the next child if the current one
6367         is maximized.
6368
6369 2006-06-13  Chris Toshok  <toshok@ximian.com>
6370
6371         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
6372         modified.  Also, guard against grid or grid_drawing being null in
6373         Invalidate.
6374
6375         * DataGrid.cs: Reformat tons of getters/setters.  In the
6376         DataMember setter, just call SetNewDataSource instead of
6377         duplicating some of its functionality.  In SetNewDataSource, don't
6378         check ListManager for null, since the property getter creates the
6379         object if needed.
6380
6381         * DataGridTableStyle.cs: don't set TableStyle or call
6382         SetDataGridInternal on the column here, it's done in
6383         GridColumnStylesCollection.Add.
6384
6385         * GridColumnStylesCollection.cs: fix all the explicit interface
6386         implementations to just call our methods.  Nuke AddInternal() and
6387         move the body of it to Add().  Also, add a call to
6388         column.SetDataGridInternal to Add().
6389
6390         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
6391         base()+duplicate code.  Also, use the Format property instead of
6392         format to generate an Invalidate ala MS.  Lastly, create the
6393         textbox here, unconditionally.
6394         (set_Format): call Invalidate.
6395         (get_TextBox): no need to call EnsureTextBox.
6396         (Commit): remove the message box.
6397         (Edit) remove the call to EnsureTextBox.
6398         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
6399         (EnterNullValue): no need to check textbox for null.
6400         (HideEditBox): no need to check textbox for null.
6401         (SetDataGridInColumn): add the textbox to the grid's controls.
6402         (EnsureTextBox): nuke.
6403         
6404 2006-06-13  Jackson Harper  <jackson@ximian.com>
6405
6406         * MdiWindowManager.cs: Hook up to the maximized menus paint event
6407         and redraw the buttons when needed. Unhook when the window is
6408         unmaximized.
6409         * MainMenu.cs: Add an internal Paint event, the mdi window manager
6410         needs this so that it can redraw its buttons when the menu is
6411         repainted.
6412         * InternalWindowManager.cs:
6413         * Form.cs: The method order has changed for DrawMaximizedButtons,
6414         so that it can be a PaintEventHandler.
6415         
6416 2006-06-13  Jackson Harper  <jackson@ximian.com>
6417
6418         * MdiClient.cs: When we close a maximized mdi window, the next mdi
6419         window is activated and maximized, even if it wasn't before.
6420         - When  a new window is activated repaint the decorations of the
6421         old one, so that it no longer has the Active "look" (the blue
6422         titlebar).
6423         * InternalWindowManager.cs: Open up CreateButtons to base classes
6424         so they can recreate the buttons on state changes.
6425         - If a window is maximized give it all three buttons
6426         * MdiWindowManager.cs: Create the titlebar buttons when the state
6427         is changed, this is needed because a toolwindow will not have all
6428         three buttons until it is maximized.
6429
6430 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
6431
6432         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
6433           Fixed bug #78609.
6434
6435 2006-06-12  Jackson Harper  <jackson@ximian.com>
6436
6437         * KeysConverter.cs: Make sure we handle the Ctrl special case
6438         if its the only key.
6439         
6440 2006-06-12  Jackson Harper  <jackson@ximian.com>
6441
6442         * Theme.cs: Add a method to get the size of a managed window
6443         toolbar button.
6444         * InternalWindowManager.cs: Remove the ButtonSize property, this
6445         should be retrieved from the theme.
6446         * MdiWindowManager.cs: Get the button size from the theme
6447         * ThemeWin32Classic.cs: Make the method to get the managed window
6448         titlebar button size public.
6449         - Handle the different button sizes of maximized toolwindows
6450         (should match any maximized window).
6451         - Get the titlebar height from the theme, not the WM (which gets
6452         it from the theme).
6453
6454 2006-06-12  Jackson Harper  <jackson@ximian.com>
6455
6456         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
6457         event down to the mdi window manager.
6458         - Expose some extra stuff to base classes
6459         - Make sure to end the Capture on an NC Mouse up, so that we can
6460         get double clicks properly, and the sizing doens't stick.
6461         - When doing PointToClient contain it in the workable desktop
6462         area, this prevents windows from changing size when the cursor is
6463         pulled outside of the working area while sizing.
6464         * MdiWindowManager.cs: When we get a double click maximize the
6465         window.
6466         - Reset the cursor after handling mode changes.
6467
6468 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
6469
6470         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
6471           current desktop, instead of just assuming a 0, 0 origin. This
6472           is needed for our internal window manager, to know the top
6473           margin of the desktop
6474
6475 2006-06-12  Chris Toshok  <toshok@ximian.com>
6476
6477         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
6478         we need this to get rid of the selected background in the bool
6479         column.
6480         (CancelEditing): move the ConcedeFocus call to above the Abort
6481         call.  Also, set is_changing to false and invalidate the row
6482         header if we were changing before.
6483         (ProcessKeyPreviewInternal): remove, since noone outside this
6484         class calls it anymore.  Roll the code into ProcessKeyPreview.
6485         (EndEdit): remove the internal version.
6486         (InvalidateCurrentRowHeader): make private.
6487
6488         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
6489         Keys.Escape handling (and with it the last call to
6490         DataGrid.EndEdit from outside the class.)
6491
6492
6493 2006-06-12  Chris Toshok  <toshok@ximian.com>
6494
6495         * DataGridTextBox.cs (.ctor): isedit defaults to false.
6496         (OnKeyPress): set isedit to true.
6497         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
6498         already handled by the grid.
6499
6500         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
6501         right.  ugh.
6502         (set_DataSource): SetDataSource always returns true, so stop
6503         putting it in an if statement.
6504         (EndEdit): get rid of some {}'s
6505         (ProcessGridKey): return true in case Keys.Escape.
6506         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
6507         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
6508         PositionChanged, stopped connecting to CurrentChanged.
6509         (GetDataSource): simplify this a bunch.
6510         (SetDataSource): change return type from bool to void.
6511         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
6512         to this, and make sure we don't set ListManager.Position inside
6513         set_CurrentCell.
6514         (OnListManagerItemChanged): if we're passed an actual index,
6515         redraw that row.
6516
6517         * CurrencyManager.cs (set_Position): don't call PullData here.
6518
6519 2006-06-09  Jackson Harper  <jackson@ximian.com>
6520
6521         * TreeNode.cs:  Recalculate the visible order before doing the
6522         Expand/Collapse Below calls, because those calls generate an
6523         expose.
6524         - Reduce calls to the TreeView property, which is mildly expensive
6525         by using a local var.
6526         * Form.cs: Layout the MDI child windows when creating the parent
6527         form.
6528         - Don't use the internal constructor anymore
6529         * MdiClient.cs: use the parent form width/height (if available)
6530         when laying out the child windows, we do this because the
6531         mdiclient isn't docked yet when the initial layout is done.
6532         - Don't need an internal constructor anymore.
6533
6534 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6535
6536         * FileDialog.cs: handle access errors when trying to create a folder
6537         or changing to a directory. No need to initialize out parameters.
6538
6539 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6540
6541         * FileDialog.cs: Append a number when creating a new folder if the
6542           folder already exists (use parenthesis instead of square brackets)
6543
6544 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6545
6546         * FileDialog.cs:
6547           - Disabled registry support for windows and added better registry
6548             error checking for other systems (need to investigate why it
6549             works perfectly on my system)
6550           - If a folder already exist show an error MessageBox instead of
6551             trying to create an indexed name.
6552           - Fixed a non intentional typo.
6553
6554 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6555
6556         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
6557
6558 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6559
6560         * FileDialog.cs: When creating a new folder don't crash if the
6561           folder already exists.
6562
6563 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6564
6565         * FileDialog.cs: Allmost a complete rewrite.
6566           - added a "virtual" file system that handles the differences
6567             between unix and windows file systems (especially the directory
6568             structure). Moved most of the directory and file handling code
6569             into the vfs.
6570             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
6571             UnixFileSystem and FSEntry.
6572           - Recently used folder/directory, size, location and used file names
6573             (file name ComboBox) are now stored in the registry and get read
6574             before the dialog shows up (fixes part 6 of bug #78446).
6575           - Creation of new folders/directories is now possible (context menu
6576             or ToolBar). Added TextEntryDialog for this that fills in the gap
6577             until ListView.LabelEdit works.
6578           - Fixed cursor handling (bug #78527) and focus handling for
6579             PopupButtonPanel
6580           - Various "Search in" ComboBox enhancements. The content of the
6581             dropdown listbox now almost matches ms.
6582           - Changed the behaviour when the user switches to SpecialFolder
6583             Recent to show the ListView in View.Details.
6584           - Beside using the ToolBar to change the View property of the
6585             file ListView it is now possible to use the context menu too.
6586
6587 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
6588
6589         * ComboBox.cs: Don't create a new ObjectCollection when an item
6590           gets inserted. Just insert the item in the existing object_items
6591           ArrayList.
6592
6593 2006-06-08  Jackson Harper  <jackson@ximian.com>
6594
6595         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
6596         that the treeview and root node checks are done also, this fixes a
6597         regression i caused in the unit tests.
6598
6599 2006-06-07  Wade Berrier <wberrier@novell.com> 
6600
6601         * RichTextBox.cs: More ISO8859-1 -> unicode
6602
6603 2006-06-07  Mike Kestner  <mkestner@novell.com>
6604
6605         * ComboBox.cs : use items to hold highlight/selection so that
6606         collection insertions don't require synchronization.
6607
6608 2006-06-07  Jackson Harper  <jackson@ximian.com>
6609
6610         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
6611         routine.  We now always keep the sized edge at the cursor instead
6612         of computing movement and adjusting rects.  There is one buglet
6613         with this method though when the cursor is moved over area that
6614         the window can not expand too (such as the toolbars on the desktop).
6615
6616 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6617
6618         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
6619         here. Fixes crash on startup in AlbumSurfer.
6620
6621 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
6622
6623         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
6624           values
6625
6626 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6627
6628         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
6629         statement to avoid calling XNextEvent which will block if another thread
6630         took the event that we were expecting. Fixes bug #78605.
6631
6632 2006-06-07  Mike Kestner  <mkestner@novell.com>
6633
6634         * ListView.cs : isolated checkbox clicking from the selection logic.
6635         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
6636
6637 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6638
6639         * Form.cs: Check that the value passed to Form.DialogResult
6640         is a valid enum value.
6641
6642 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6643
6644         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
6645         Computer'. Clicking it in the network view goes to 'My Computer'.
6646         Added CIFS filesystem type. Display the mount point of filesystems.
6647         Avoid duplicate mount points (happens for me with CIFS);
6648
6649 2006-06-06  Jackson Harper  <jackson@ximian.com>
6650
6651         * InternalWindowManager.cs: Draw the maximized windows buttons
6652         when resizing.
6653
6654 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6655
6656         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
6657         all other dialogs. Fixes bug #78585.
6658
6659 2006-06-06  Mike Kestner  <mkestner@novell.com>
6660
6661         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
6662         Only invalidate checkbox on checkstate changes to avoid flicker.
6663         * ListBox.cs : avoid unselect/select when clicking selected item.
6664         avoid reselection flicker for already multiselected items.
6665         Fixes #78382.
6666
6667 2006-06-06  Jackson Harper  <jackson@ximian.com>
6668
6669         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
6670         the parent form so that the menu is removed if needed.
6671
6672 2006-06-06  Mike Kestner  <mkestner@novell.com>
6673
6674         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
6675         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
6676
6677 2006-06-06  Mike Kestner  <mkestner@novell.com>
6678
6679         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
6680
6681
6682 2006-06-06  Jackson Harper  <jackson@ximian.com>
6683
6684         * Control.cs: Use the property (instead of the field) to get the
6685         default cursor so it is instantiated correctly.
6686         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
6687         resizes so we need to manually repaint the window decorations here.
6688         - Set the titlebar button locations as soon as they are created,
6689         otherwise they are not set correctly on win32.
6690         
6691 2006-06-06  Chris Toshok  <toshok@ximian.com>
6692
6693         * CurrencyManager.cs (set_Position): call PullData before
6694         OnCurrentChanged.
6695         (AddNew): after calling IBindingList.AddNew, update our
6696         listposition, and call OnCurrentChanged/OnPositionChanged (without
6697         calling PullData).
6698         (OnCurrentChanged): remove the call to PullData from here.
6699         (OnItemChanged): remove the call to PushData from here.
6700         (OnPositionChanged): change the test from == null to != null to
6701         match the other methods.
6702         (ListChangedHandler): the grossest part of the patch.  Implement
6703         this such that it passes the unit tests in CurrencyManagerTest and
6704         the output more or less matches that of MS's implementation.
6705  
6706 2006-06-06  Mike Kestner  <mkestner@novell.com>
6707
6708         * ListView.cs : only update check state on single click.
6709         * ThemeWin32Classic.cs : fix focus drawing for details view without
6710         fullrowselect.  Fixes #78454.
6711         * XplatUIX11.cs : fix for double click emission.
6712
6713 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
6714
6715         * PropertyGridView.cs : Applied Atsushi's patch to fix
6716         font dialog bug  (#78197).
6717
6718 2006-06-05  Jackson Harper  <jackson@ximian.com>
6719
6720         * TreeNode.cs: Compute the next node for expanding/collapsing
6721         correctly. We now factor in nodes without a NextNode
6722         correctly. (Fixes somes cases in nunit-gui).
6723         * InternalWindowManager.cs: Set the bounds when updating the
6724         virtual position of a tool window.
6725         
6726 2006-06-05  Chris Toshok  <toshok@ximian.com>
6727
6728         * DataGrid.cs: rename cached_currencymgr to list_manager.
6729         (set_CurrentCell): move SetCurrentCell code here, and clean it up
6730         some.
6731         (CurrentRow, CurrentColumn): single accessors so we can make the
6732         cursor movement code a lot easier to understand.
6733         (CurrentRowIndex): implement this in terms of CurrentRow.
6734         (BeginEdit): clean this up a bit.
6735         (CancelEditing): sort out the is_editing/is_changing/is_adding
6736         stuff a little.
6737         (EndEdit): minor changes.
6738         (OnKeyDown): add a comment about a (most likely) unnecessary
6739         check.
6740         (OnMouseDown): cancel editing when we click on a row header.  And
6741         use the CurrentRow setter, not CurrentCell.
6742         (ProcessDialogKey): directly call ProcessGridKey.
6743         (UpdateSelectionAfterCursorMove): factor out this common block of
6744         code (it's used everywhere that we move the cursor by updating row
6745         or column).
6746         (ProcessGridKey): pretty substantial overhaul.  Use the
6747         CurrentRow/CurrentColumn properties to make the code a lot more
6748         readable.  Only use the CurrentCell property when we have to
6749         modify both row and column at once.  Tab behavior is still broken,
6750         and Delete is untested.
6751         (Select): if we have no selected rows, set selection_start to
6752         @row.
6753         (EditCurrentCell): rename EditCell this.  It was only ever invoked
6754         with CurrentCell as the arg, so drop the arg and rename it.
6755
6756         * DataGridColumnStyle.cs: clean up the constructors a little, and
6757         drop CommonConstructor().
6758
6759         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
6760         actually get notified when the user hits it.
6761         (ProcessKeyMessage): *substantially* simplify this method.
6762         There's no reason (that I can see) for the textbox to be making
6763         calls into the datagrid at all.  Remove all of them but the ones
6764         for Enter handling.  those will take some more work.
6765
6766         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
6767         calling HideEditBox.
6768         (HideEditBox): if we have an active textbox, render it invisible
6769         without causing a re-layout of the datagrid.
6770
6771 2006-06-05  Mike Kestner  <mkestner@novell.com>
6772
6773         * ListView.cs : fix NRE crasher when focuseditem is cleared by
6774         collection changes by resetting it to Items[0].  Fixes #78587.
6775
6776 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6777
6778         * MessageBox.cs: if the height of the text is larger than the icon_size,
6779         use that. Fixes bug #78575.
6780
6781 2006-06-05  Jackson Harper  <jackson@ximian.com>
6782
6783         * TreeView.cs: Fix line drawing when scrolling.  To do this each
6784         node is basically responsible for drawing its entire horizontal
6785         area.  When drawing a node it draws its parent node lines if
6786         needed.
6787         - Adjust the clip area to the viewport rectangle
6788         - Fix Left/Right key handling to match MS. (It expand/collapses
6789         and moves to parents/first child but does not move selection to
6790         sibling nodes).
6791         - Fix SetTop to work with new bound calculation code
6792         - When scrollbars are no longer needed we need to reset scrolling
6793         vars and recalculate the visible order so the redraw is correct
6794         * TreeNode.cs: We can't expand/collapse nodes with no children.
6795
6796 2006-06-03  John Luke  <john.luke@gmail.com> 
6797
6798         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
6799         so the colors work without dev packages
6800         
6801 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
6802
6803         * Control.cs 
6804           - Select: Implemented to just use activate. Seems to match MS 
6805             behaviour closest. Documented to only do actual control walking 
6806             based on it's parameters if in a container control so I moved 
6807             the code there.
6808           - Removed selection check logic from our internal Select() method
6809         * ContainerControl.cs:
6810           - Select: Moved selection logic from Control here, since MS documents
6811             that containers obey the bool arguments. No longer calling base
6812
6813 2006-06-02  Jackson Harper  <jackson@ximian.com>
6814
6815         * TreeView.cs: If the selected node isn't changed when we get
6816         focus update the previously selected node so that we see the
6817         selection box.
6818
6819 2006-06-02  Mike Kestner  <mkestner@novell.com>
6820
6821         * ComboBox.cs: restructure grab and general mouse event handling.
6822         Make the composite control raise mouse events like it was a single
6823         control for leaves/enters/motion/up/down events.  fix dropdown list
6824         coordinate mangling and refactor it into the scrollbar subclass to
6825         reduce code duplication.  Fixes #78282 #78361 and #78457.
6826
6827 2006-06-02  Mike Kestner  <mkestner@novell.com>
6828
6829         * ScrollBar.cs: remove Capture setting/clearing, as it happens
6830         automatically in the Control.WndProc.
6831
6832 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6833
6834         * FileDialog.cs: fix crash when running SharpChess, which sets the
6835         FilterIndex to 2 with only one Filter.
6836
6837 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6838
6839         * ToolBar.cs: add SizeSpecified property.
6840         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
6841         try to figure out our real size, otherwise fallback to what the
6842         container says.
6843
6844 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6845
6846         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
6847         * Control.cs (WndProc): MS always calls the DefWndProc to pass
6848           up the event
6849
6850 2006-06-01  Mike Kestner  <mkestner@novell.com>
6851
6852         * ListView.cs: revamp the focus management in ListView.  It still
6853         causes churn of LostFocus/GotFocus emissions on clicks, but it's
6854         better than not handling focus at all.  Will revisit when pdb feels
6855         the general focus handling is solid.  Fixes #78526.
6856
6857 2006-06-01  Jackson Harper  <jackson@ximian.com>
6858
6859         * TreeView.cs: Set the default border style in the constructor.
6860         - Move painting to use OnPaintInternal instead of capturing
6861         WM_PAINT, this is the correct way of doing things
6862         - UpdateBelow shouldn't invalidate the scrollbar area
6863         - Cap the top on update below in case the node was above the top
6864         of the viewport rectangle.
6865         - ExpandBelow and Collapse below need to obey Begin/End Update.
6866         * TreeNode.cs: Make is_expanded internal so the treenode
6867         collection can change it without firing the whole event chain.
6868         * TreeNodeCollection.cs: When clearing all the child nodes make
6869         sure to recalc the visible order.
6870         - Improve algo for remove the top node
6871
6872 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
6873
6874         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
6875           SendMessage directly calling window procedures, which in turn might
6876           call SetFocus()
6877
6878 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
6879
6880         * Control.cs: Don't handle WM_SETFOCUS if the same window already
6881           has focus (works around X11 sending a FocusIn after our SetFocus)
6882         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
6883
6884 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
6885
6886         * Mime.cs: Fix for the NET_2_0 build.
6887           NameValueCollection needs StringComparer now.
6888
6889 2006-05-31  Chris Toshok  <toshok@ximian.com>
6890
6891         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
6892         return (via an out parameter) the starting X of the column.
6893         (UpdateVisibleColumn): track change to FromPixelToColumn.
6894         (HitTest): add a ColumnResize case here.
6895         (DrawResizeLine): new function, probably poorly named.
6896
6897         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
6898         only need to keep one reference.
6899         (set_ListManager): same.
6900         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
6901         Also, add support for HitTestType.ColumnResize.
6902         (OnMouseMove): add column resize behavior here, and change the
6903         cursor to the correct one as we move around the datagrid.
6904         (OnMouseUp): terminate the column resize if we're resizing.
6905         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
6906         for the current cell.
6907         (ConnectListManagerEvents): use cached_currencymgr.
6908         (DisconnectListManagerEvents): fill this in, using
6909         cached_currencymgr.
6910         (SetCurrentCell): remove cached_currencymgr_events handling.
6911         (SetDataMember): only call DisconnectListManagerEvents if
6912         cached_currencymgr is != null.
6913         (SetDataSource): same.
6914         (OnListManagerCurrentChanged): cached_currencymgr_events ->
6915         cached_currencymgr.
6916
6917 2006-05-31  Jackson Harper  <jackson@ximian.com>
6918
6919         * BindingManagerBase.cs: Remove somedebug code that creeped into
6920         SVN.
6921         * TreeNode.cs: We get the indent level dynamically right now, so
6922         don't track it as a member.
6923         * TreeNodeCollection.cs: Make sure all nodes added to the list
6924         have parents, treeviews/topnodes setup properly.
6925         - Don't attempt to track indent level.
6926
6927 2006-05-30  Jackson Harper  <jackson@ximian.com>
6928
6929         * BindingContext.cs: Create the currency manager tables here.
6930         This allows us to more easily create null tables (when bad data
6931         members are used), and more easily create related currency
6932         managers.
6933         * CurrencyManager.cs: All the table creation stuff is done by the
6934         binding context now.
6935         - Current should throw an exception if listposition is -1.
6936         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
6937         been bound yet.
6938
6939 2006-05-30  Mike Kestner  <mkestner@novell.com>
6940
6941         * ListView.cs: allow reexpansion of zero-width column headers.
6942         Fixes #78528.
6943
6944 2006-05-28  Chris Toshok  <toshok@ximian.com>
6945
6946         * CurrencyManager.cs (get_Current): after the late binding
6947         listposition = -1 fix, we need to guard against it here and return
6948         null, otherwise we raise an exception (which is swallowed
6949         elsewhere, and breaks datagrid databinding.)
6950
6951 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
6952
6953         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
6954           than WM_SYSKEY, don't throw if get something unexpected (#78507)
6955
6956 2006-05-26  Jackson Harper  <jackson@ximian.com>
6957
6958         * ControlPaint.cs:
6959         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
6960         values, it's faster and it's all we care about (we don't care if
6961         the names aren't equal).
6962         * KeyboardLayouts.cs: Eliminate some dead code.
6963         - Lazy init things
6964         * X11Keyboard.cs: Lazy init keyboard detection.
6965         - Cleanup access modifiers a little.
6966
6967 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
6968
6969         * XplatUIX11.cs: Once again, attempting to get layout just right.
6970
6971 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
6972
6973         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
6974           the sizes of each link section, that will result in sizes that
6975           match DrawString's layout (Fixes #78391)
6976
6977 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
6978
6979         * FileDialog.cs: If AddExtension property is true autocomplete the
6980           extensions in SaveFileDialog correctly. Fixes bug #78453.
6981           Set MyNetwork and MyComputer to "C:\" for windows. This should
6982           fix part 8 of bug #78446 for now.
6983
6984 2006-05-26  Chris Toshok  <toshok@ximian.com>
6985
6986         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
6987         invalidate the current row header if we need to, but presumably
6988         we'll invalidate the row corrsponding to the bounds or
6989         editingControl.
6990         (GridHScrolled): switch back to this method, as it's part of the
6991         public api.  *sigh*.
6992         (GridVScrolled): same.
6993         (OnMouseWheel): hack up something that more or less works.  Call
6994         GridHScrolled/GridVScrolled directly, instead of duplicating much
6995         of their code here.
6996         (EnsureCellVisibility): reinstate a bunch of this code, since we
6997         can't just set the scrollbar Value and expect to do all the work
6998         in the ValueChanged handler.  Also, Call Update() after scrolling
6999         in one direction so the other XplatX11.ScrollWindow call has the
7000         proper stuff in the proper places.
7001         (EditCell): set is_editing to true before calling .Edit.
7002
7003         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
7004         don't bother comparing first.
7005         (OnKeyPress): call grid.ColumnStartedEditing before calling
7006         base.OnKeyPress.  this will set is_changing and invalidate the row
7007         header if necessary.
7008         (ProcessKeyMessage): for WM_CHAR messages, call
7009         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
7010         and WM_KEYDOWN.
7011         
7012         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
7013         it's done in the DataGrid.
7014         (NextState): call grid.ColumnStartedEditing, which takes care of
7015         invalidating the row header (and setting is_changing).
7016
7017         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
7018         here.  it's done in the DataGrid.
7019
7020 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7021
7022         * Control.cs: allow changing the cursor when the mouse position is
7023         out of bounds but Capture is set.
7024         * LinkLabel.cs: handle the case when the mouse button is pressed on the
7025         linklabel but released somewhere else.
7026
7027 2006-05-25  Jackson Harper  <jackson@ximian.com>
7028
7029         * TreeView.cs: When we get focus if there is no selected node make
7030         it the top node
7031         - Remove some uneeded setup code from Draw.
7032         * TreeNodeCollection.cs: If the tree doesn't have a top node when
7033         a new node is inserted make the new node the top.
7034         * XplatUIX11.cs:
7035         * Timer.cs: Use Utc time so that no local time zone stuff needs to
7036         be used (should be faster).
7037         
7038 2006-05-25  Chris Toshok  <toshok@ximian.com>
7039
7040         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
7041         problem with the last commit.
7042
7043 2006-05-25  Chris Toshok  <toshok@ximian.com>
7044
7045         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
7046         need the invalidate call here, while scrolling right-to-left via
7047         the left arrow key (i.e. moving the editing cell while scrolling).
7048
7049         * DataGrid.cs (.ctor): remove the initialization of
7050         ctrl_pressed/shift_pressed.  We no longer track them using key
7051         up/down handlers, but by using Control.ModifierKeys.  Also, switch
7052         to using ValueChanged handlers on the scrollbars instead of
7053         Scrolled event handlers.  This simplifies a bunch of the scrolling
7054         code.
7055         (GridHValueChanged): rename from GridHScrolled, and change it to
7056         work with the new event args.
7057         (GridVValueChanged): same.
7058         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
7059         (OnMouseWheel): actually scroll the datagrid.  Don't change the
7060         selected cell.
7061         (ProcessGridKey): correct all the keyboard navigation stuff I
7062         could find.  Ctrl up/down/left/right/home/end work now.
7063         (EnsureCellVisibility): correct method name spelling.  Also,
7064         simplify this a touch by not explicitly calling the
7065         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
7066         scrollbar value.
7067         (OnKeyUpDG): no need for this method now.
7068         
7069 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7070
7071         * LinkLabel.cs: display the OverrideCursor when hovering the label.
7072         Fixes bug #78392.
7073
7074 2006-05-25  Chris Toshok  <toshok@ximian.com>
7075
7076         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
7077         r61019.
7078
7079 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7080
7081         * Application.cs: Moved setting of is_modal and closing to before
7082           we create the control, to allow the event handlers called as a
7083           result of creation affect closing. Also removed Gonzalo's previous
7084           change to setting DialogResult, the behaviour has been moved to 
7085           Form.ShowDialog()
7086         * Form.cs: 
7087           - ShowDialog(): Removed explicit creation of the form, let RunLoop
7088             handle it instead
7089           - ShowDialog(): If no dialog result is set, we need to return Cancel
7090           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
7091             the close is cancelled
7092
7093 2006-05-25  Jackson Harper  <jackson@ximian.com>
7094
7095         * StatusBar.cs: We only need to update the sizes of the other
7096         panels when we have auto size contents.  Also we are only updating
7097         the contents of the panel, not the borders, so compensate for the
7098         border width (TODO: get this width from the theme somehow).
7099         * TreeView.cs: Scrollable is true by default
7100         - Use invalidate instead of refresh where needed
7101         - Factor the scrollable value into scrollbar updating
7102         - Update the scrollbars if the Scrollable property is altered
7103         - Update the selected node if its ImageIndex is changed
7104         - Handle null nodes in UpdateNode (mainly so we don't have to
7105         check if selected is null when updating it
7106         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
7107         are factored into the visible count
7108         - Use VisibleCount for clarity in the code
7109         - When the font is changed we need to recurse through all the
7110         nodes and invalidate their sizes
7111         
7112 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7113
7114         * Application.cs: set the DialogResult to fixed when the main form is
7115         hidden or destroyed while being modal.
7116
7117 2006-05-25  Miguel de Icaza  <miguel@novell.com>
7118
7119         * Theme.cs: Use Tangoified messagebox icons. 
7120
7121         (GetSizedResourceImage): Also cope with width = 0 and do not
7122         trigger a warning in that case (0 means "give me your icon from
7123         the resouce, no special size needed).
7124
7125 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
7126
7127         * Application.cs: Leave runloop if the the main modal form is 
7128           hidden (fixes #78484)
7129
7130 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7131
7132         * BindingContext.cs : reject null datasource in Contains() and
7133           Item[].
7134         * CurrencyManager.cs : check data_member validity when data_source
7135           is dataset. When it is late binding, the initial position is -1.
7136
7137 2006-05-24  Jackson Harper  <jackson@ximian.com>
7138
7139         * TreeNodeCollection.cs: Dont't recalculate the visible order on
7140         inserted nodes that aren't visible.  This changes the
7141         max_visible_order which confuses scrollbar settings.
7142         - Use the enumerator to get the prev node instead of duplicating
7143         code.
7144         * TreeView.cs: Use new method for setting scrollbar values
7145         - Don't set the bounds every time the scrollbar is updated
7146         - When updating below the root node use an invalidate instead of a
7147         refresh to prevent the child controls (scrollbars) from being
7148         refreshed. (UpdateBelow still needs to be reworked anyways).
7149         - Reenable SetBottom now that visible orders are set correctly,
7150         added some debug code incase we ever get bad values there again.
7151         - Set the scrollbar max to 2 less then the max value, this
7152         compensates for the max value being one above the node count, and
7153         for scrollbars adding one extra "notch".
7154         - When drawing image nodes if there is an imagelist we draw the
7155         first image in the list if the supplied image index is out of the
7156         image list's bounds.
7157         
7158 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7159
7160         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
7161           we receive a size change from the WM (Fixes #78503)
7162
7163 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
7164
7165         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
7166           rectangle (Fixes #78501)
7167
7168 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
7169
7170         * ButtonBase.cs: 
7171           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
7172             as a bitfield.
7173           - Fixed MouseMove to no longer switch pressed state unless the left
7174             mouse button is pressed. Atsushi provided the original patch (#78485)
7175           
7176 2006-05-24  Jackson Harper  <jackson@ximian.com>
7177
7178         * ScrollBar.cs: New internal methods that allow us to change a
7179         couple values on the scrollbar (the most common case is maximum
7180         and large change) without getting multiple invalidates.
7181
7182 2006-05-24  Chris Toshok  <toshok@ximian.com>
7183
7184         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
7185         (Edit): save off the original state in oldState, and set
7186         grid.is_editing to true.
7187         (OnKeyDown): abort editing if escape is pressed.  also, call
7188         NextState if space is pressed.
7189         (OnMouseDown): call NextState.
7190         (NextState): factor out shared code from OnKeyDown and OnMouseDown
7191         here.  Also, only invalidate the row header once (on the initial
7192         is_changing switch) to save on redraws.
7193
7194 2006-05-24  Chris Toshok  <toshok@ximian.com>
7195
7196         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
7197         if the value in the cell is different than it was before.  This
7198         keeps us from triggering a layout when we move around a datarid
7199         with a highlighted cell.
7200         (Edit): suspend layout when creating/positining the text box, and
7201         resume passing false so we don't ever actually re-layout.
7202         (ReleaseHostedControl): same.
7203         (EnsureTextBox): reformat slightly, and set WordWrap to false.
7204
7205         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
7206         control-key sequences should go to the datagrid - remove that
7207         lock.  Also, modify the conditions under which we move between
7208         cells when moving the cursor within a cell, and remove the "this"
7209         and "base" from field accesses.  We weren't even consistent, given
7210         they all were in the base class.
7211
7212 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
7213
7214         * Binding.cs : (.ctor)
7215           An obvious NRE fix for BindingTest.CtorNullTest().
7216
7217 2006-05-23  Chris Toshok  <toshok@ximian.com>
7218
7219         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
7220         them between lines.  This fixes some quirks editing cells in the
7221         datagrid.
7222
7223 2006-05-23  Jackson Harper  <jackson@ximian.com>
7224
7225         * TreeView.cs: Use begin/end update when doing expand/collapse all
7226         so that we don't get flicker on the scrollbar.
7227
7228 2006-05-23  Jackson Harper  <jackson@ximian.com>
7229
7230         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
7231         treenode calculations to be independant of the painting code. To
7232         do this nodes track a visible order which is calculated by the
7233         treeview.
7234         - Call new methods for expanding/collapsing nodes.  These methods
7235         use scrollwindow so we don't have to update everything below the
7236         node.
7237         * TreeView.cs: Refactored drawing and scrolling code.  We don't
7238         need to update nodes when drawing anymore or calculate scrollbar
7239         stuff.
7240         - Added new methods for expanding/collapsing nodes. These methods
7241         use ScrollWindow so as to not have to redraw all the nodes below.
7242         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
7243         we add/remove nodes or sort.
7244         - Handle removing the selected and the top node properly.
7245
7246 2006-05-23  Chris Toshok  <toshok@ximian.com>
7247
7248         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
7249         maybe this should actually happen in the datagrid code?
7250         (EndEdit): no need to invalidate anything, given that
7251         ReleaseHostedControl causes the datagrid to relayout, which
7252         invalidates everything anyway.
7253
7254         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
7255         in SetCurrentCell).
7256         (set_SelectionBackColor): call InvalidateSelection instead of
7257         Refresh.
7258         (set_SelectionForeColor): same.
7259         (BeginEdit): Flesh this out a bit.
7260         (CancelEditing): only do any of this if we're editing/adding.
7261         (EndEdit): same.
7262         (OnMouseDown): there's no need to cancel editing here, it's done
7263         in SetCurrentCell.
7264         (SetCurrentCell): only invalidate the current row header if it's a
7265         different row than the new one.
7266         (ShiftSelection): fix this to work like MS does.
7267         (ResetSelection): factor out the invalidation of selected_rows to
7268         InvalidateSelection.
7269         (SetDataSource): cancel any editing that's going on.
7270
7271         * DataGridColumnStyle.cs
7272         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
7273         call the non-interface version.
7274
7275         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
7276         header rectangle with the clip rectangle so we don't redraw the
7277         entire header for just a small area.  Gets rid of the last flicker
7278         when horizontally scrolling.
7279         (DataGridPaintRow): same.
7280
7281 2006-05-23  Mike Kestner  <mkestner@novell.com>
7282
7283         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
7284         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
7285         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
7286         Critical bug report.
7287
7288 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7289
7290         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
7291           and this fixes #78493
7292
7293 2006-05-23  Miguel de Icaza  <miguel@novell.com>
7294
7295         * Theme.cs (GetSizedResourceImage): Scale images if the proper
7296         size is not found.  
7297         
7298         * FileDialog.cs: Do not change the background for the side bar as
7299         it wont work nicely with the theme, and also reduces the artifacts
7300         in rendering the icons (which I want to fix too).
7301
7302         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
7303         resources, not resgen resources. 
7304
7305         (PlatformDefaultHandler): Pull images using the new API.
7306
7307 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
7308
7309         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
7310           a reference to the hwnd and will not remove it unless there are
7311           no pending exposures (fixes #78341)
7312         * XplatUI.cs: Improved debug
7313
7314 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
7315
7316         * MenuAPI.cs : don't handle OnClick event when it was not the left
7317           button. Fixed bug #78487.
7318
7319 2006-05-23  Mike Kestner  <mkestner@novell.com>
7320
7321         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
7322         prefer submenus to the top menu for item lookup, to avoid popping down
7323         top-row items.
7324
7325 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
7326
7327         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
7328           Graphics.FillRectangle as the visual results are really bad (even
7329           on win). We now draw perfect arrows (and perfect shadows when the
7330           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
7331           Pen.DashPattern to draw the dots of each line.
7332
7333 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
7334
7335         * FileDialog.cs: Update the filename combobox when navigating through
7336           the ListView with the cursor keys. Fixes part 7 of bug #78446.
7337
7338 2006-05-22  Mike Kestner  <mkestner@novell.com>
7339
7340         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
7341         Fixes #78463.
7342
7343 2006-05-22  Mike Kestner  <mkestner@novell.com>
7344
7345         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
7346         requests. Fix a misspelled parameter and a copy paste exception error
7347         in Select.
7348
7349 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
7350
7351         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
7352           to get the same width/height (5/13) on X11 as the default font has on
7353           win32. This means that our DefaultFont emSize is smaller than the 
7354           the MS SWF equivalent (even thought the width/height stays the same)
7355
7356 2006-05-20  Jackson Harper  <jackson@ximian.com>
7357
7358         * MdiClient.cs:
7359         * MdiWindowManager.cs:
7360         * InternalWindowManager.cs: Make sure to use the border width from
7361         the theme.
7362
7363 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
7364
7365         * PrintDialog.cs: Implements printer details
7366
7367 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
7368
7369         * FileDialog.cs: Added focus handling for PopupButtonPanel.
7370           Fixes part 1 and 2 of bug #78446
7371
7372 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
7373
7374         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
7375           instead of sticking to the first ever calculated value
7376
7377 2006-05-19  Mike Kestner  <mkestner@novell.com>
7378
7379         * ComboBox.cs: fix mouse motion selection to use MousePosition and
7380         PointToClient, since Capture is set. Fixes #78344.
7381
7382 2006-05-19  Mike Kestner  <mkestner@novell.com>
7383
7384         * ListView.cs: match MS behavior in Details view where items are not
7385         drawn if Columns.Count == 0. 
7386         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
7387         Use a separate pen to draw the check, since changing the width affects
7388         the box as well.  Fixes #78454.
7389
7390 2006-05-18  Miguel de Icaza  <miguel@novell.com>
7391
7392         * ListView.cs: ArgumentOutOfRangeException, single versions of the
7393         exception should throw the name of the invalid argument.
7394
7395         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
7396         there are no files listed. 
7397
7398 2006-05-18  Jackson Harper  <jackson@ximian.com>
7399
7400         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
7401         up.
7402
7403 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7404
7405         * Control.cs: Brought back our old UpdateZOrder method as a private
7406           function and switched our calls from UpdateZOrder to the new one.
7407           This fixes the Paint.Net canvas disappearing bug.
7408
7409 2006-05-18  Jackson Harper  <jackson@ximian.com>
7410
7411         * Theme.cs:
7412         * ThemeWin32Classic.cs:
7413         * InternalWindowManager.cs: Move the drawing into the theme,
7414         expose everything the theme should need from the window manager.
7415
7416 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7417
7418         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
7419           from the call to NativeWindow to avoid walking up the parent chain
7420           further than needed (speeds up setting cursors and avoids setting
7421           the wrong cursor if a parent has another cursor defined)
7422         * Cursor.cs: When loading an icon as cursor, MS uses the center of
7423           the icon as hotspot, not what's contained as hotspot in the icon
7424           file. This fixes the perceived drawing offset seen with Paint.Net
7425         
7426 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
7427
7428         * XplatUIX11.cs: 
7429           - Store the calculated rectangle in Hwnd object and use it when 
7430             setting the client size
7431           - Force Toolwindows to always be type Dock, to ensure they're on top
7432
7433 2006-05-18  Mike Kestner  <mkestner@novell.com>
7434
7435         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
7436         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
7437         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
7438         Substantial refactoring to remove confusing nested classes. Coding
7439         standard and Get+Set->property refactorings.  Shift to index based
7440         highlighting in ComboListBox instead of constantly using IndexOf and
7441         Items[]. Add invalidations on resize for DropDownList to fix ugliness
7442         in FileDialog growth.  Draw borders manually since Simple mode needs
7443         to look like two independent controls.  Make listbox border
7444         conditional to DropDownStyle.  Improved OwnerDraw support.
7445
7446 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
7447
7448         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
7449         Don't set the disposed graphics to null, so we can throw the "right"
7450         exception if the graphics is reused later (added a flag to avoid 
7451         double disposing). Some behaviours are different under 2.0 and are
7452         filled under bug #78448.
7453
7454 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
7455
7456         * Control.cs: When double-buffering is enabled, we need to reset
7457           our graphics context between paint calls. Otherwise, any 
7458           transformations and other alterations on the context will 
7459           become cumulative (#77734)
7460
7461 2006-05-18  Mike Kestner  <mkestner@novell.com>
7462
7463         * ListView.cs: do focused item selection like MS on clicks. 
7464         Rework focus handling for ItemControl so LostFocus invalidates as
7465         well.
7466         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
7467         the ListView ItemControl has focus.
7468
7469 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
7470
7471         * XplatUIX11.cs: If client_window ends up being width or height zero
7472           due to border settings, move it off window inside whole_window (#78433)
7473
7474 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7475
7476         * Mime.cs: Shrink the mime file cache correctly.
7477
7478 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
7479
7480         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
7481
7482 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7483
7484         * XplatUIX11.cs (AddExpose): More sanity checks
7485
7486 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7487
7488         * XplatUIX11.cs:
7489           - AddExpose: Don't add expose ranges outside the size of our
7490             window
7491           - Cast opacity values to Int32 to avoid crashes with certain
7492             values
7493           - Added disabled code paths that protect against illegal cross-
7494             thread painting (Developers.exe)
7495
7496 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7497
7498         * ProgressBar.cs: Invalidate the control when it's resized
7499           since block size is based on control size. (#78388)
7500
7501 2006-05-16  Miguel de Icaza  <miguel@novell.com>
7502
7503         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
7504         of setting the incoming argument to the "reset" value, we set the
7505         this.datamember to string.empty (before we were invalidating the
7506         incoming data).   
7507
7508         Fixes 78420
7509
7510 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7511
7512         * Form.cs: Only apply transparency settings after the form
7513           is created. (Fixes #77800)
7514
7515 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
7516
7517         * ApplicationContext.cs: Grab the HandleDestroyed event so
7518           we know when to fire OnMainFormClosed 
7519
7520 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7521
7522         * Application.cs: Introduced sub-class to allow tracking of
7523           threads and centralized triggering of the event mess for
7524           ThreadExit, AppExit, etc..  (#76156)
7525
7526 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
7527
7528         * MimeIcon.cs:
7529           - Do not return a null icon index value for a mime subclass.
7530             Instead try the main mime type class too.
7531           - Seems that some newer distributions don't have a link to some
7532             gnome default icons anymore. So check the default gnome dir too.
7533           
7534
7535 2006-05-16  Jackson Harper  <jackson@ximian.com>
7536
7537         * MdiClient.cs: Don't paint the parent background image if we have
7538         our own background image.
7539
7540 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
7541
7542         * Control.cs:
7543           - PerformLayout: Do not shrink space filled by DockStyle.Fill
7544             controls, all filled controls are supposed to overlap (#78080)
7545           - UpdateZOrder is supposed to update the control's z-order in the
7546             parent's z-order chain. Fixed to behave like that
7547           - BringToFront: Removed obsolete code
7548           - SendToBack: Simplyfied
7549           - SetChildIndex: Trigger layout calculations when Z-order changes
7550             since layout is done by z-order
7551
7552 2006-05-16  Chris Toshok  <toshok@ximian.com>
7553
7554         [ fixes bug #78410 ]
7555         * DataGrid.cs (set_AlternatingBackColor): use
7556         grid_drawing.InvalidateCells instead of Refresh().
7557         (set_BackColor): call grid_drawing.InvalidateCells.
7558         (set_BackgroundColor): use Invalidate instead of Refresh.
7559
7560         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
7561         invalidate the cell area.
7562
7563 2006-05-15  Chris Toshok  <toshok@ximian.com>
7564
7565         [ fixes bug #78011 ]
7566         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
7567         on to DataGridPaintRow.
7568         (DataGridPaintRow): take a clip argument, and only draw the cells
7569         which intersect it.  same with the not_usedarea.
7570
7571         * Theme.cs (DataGridPaintRow) add @clip parameter.
7572
7573         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
7574         XplatUI.ScrollWindow.
7575         (ScrollToRow): same.
7576
7577         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
7578         with last column which was causing a gray swath to appear with the
7579         XplatUI.ScrollWindow code.
7580
7581 2006-05-15  Chris Toshok  <toshok@ximian.com>
7582
7583         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
7584         use XplatUI.ScrollWindow.
7585         (VerticalScrollEvent): use XplatUI.ScrollWindow.
7586
7587 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
7588
7589         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
7590
7591 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7592
7593         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
7594           file since there are no equivalent X11 cursors
7595
7596 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7597
7598         * MonthCalendar.cs : DateTimePicker should reflect selected date
7599           on mouse*up*, not mouse*down*. Fixed originally reported part of
7600           bug #76474.
7601
7602 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7603
7604         * TabControl.cs : When argument index is equal or more than tab
7605           count, just ignore. Fixed bug #78395.
7606
7607 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
7608
7609         * Control.cs: Dispose all child controls when control is diposed (#78394)
7610
7611 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7612
7613         * ColorDialog.cs: Finally it is possible to select the color with
7614           the text boxes
7615
7616 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7617
7618         * PrintDialog.cs: Fix typo
7619
7620 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
7621
7622         * PrintDialog.cs: PrintDialog is not resizable
7623         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
7624           color. Made some ToolBar drawing methods protected virtual.
7625
7626 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
7627
7628         * PrintDialog.cs: Implementation of the PrintDialog
7629
7630 2006-05-12  Chris Toshok  <toshok@ximian.com>
7631
7632         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
7633         thumb, instead use MoveThumb.  This has the side effect of making
7634         most of the other thumb moving machinery use MoveThumb as well.
7635         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
7636         need to actually invalidate the rectangle where the new thumb will
7637         go.
7638         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
7639         We force an Update() after, so it's not as fast as it could be,
7640         but at least there's zero flicker and no droppings.
7641         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
7642         (UpdateThumbPos): add another argument (dirty), which says whether
7643         or not to calculate/add dirty regions which we later invalidate.
7644         For cases where we know we're going to use MoveThumb, we pass
7645         false for this.  Otherwise, pass true.
7646
7647 2006-05-12  Jackson Harper  <jackson@ximian.com>
7648
7649         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
7650         the status bar.
7651         
7652 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
7653
7654         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
7655           and GetClipRegion methods and UserClipWontExposeParent property.
7656         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
7657           overriding UserClipWontExposeParent property, setting to false, since
7658           Win32 handles the required expose messages to draw our clipped parent
7659           areas internally
7660         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
7661           PaintEventStart to set the user clip region if set.
7662         * Control.cs: 
7663           - Now internally tracking the Region for the control since we need to
7664             store it if the handle is not yet created and only set it when it
7665             becomes created. Before setting the region forced handle creation
7666           - Added code to draw the parents underneath a user-clipped region
7667         * Hwnd.cs: Added UserClip property
7668
7669 2006-05-12  Chris Toshok  <toshok@ximian.com>
7670
7671         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
7672         (set_Maximum): same.
7673         (set_Minimum): same.
7674         (set_SmallChange): same.
7675         (OnMouseUpSB): remove the call to refresh when releasing the
7676         thumb.  We shouldn't need it.
7677         
7678 2006-05-12  Miguel de Icaza  <miguel@novell.com>
7679
7680         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
7681         AutoSize set to None, we do not need to relayout everything, we
7682         just need to invalidate the current region.
7683
7684         (Draw): Do not draw the entire ClientArea, just redraw the
7685         clip area being passed.
7686
7687         * MdiClient.cs: Make MdiClient constructor with the Form argument
7688         internal. 
7689
7690 2006-05-12  Jackson Harper  <jackson@ximian.com>
7691
7692         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
7693         parents background image,  but strangely not their own.
7694         - (DrawStatusBarPanel): Take into account horizontal alignment
7695         when drawing the strings and icons.
7696
7697 2006-05-12  Mike Kestner  <mkestner@novell.com>
7698
7699         * ListBox.cs: avoid invalidations for focus when the collection is
7700         empty. 
7701
7702 2006-05-12  Chris Toshok  <toshok@ximian.com>
7703
7704         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
7705         invalidate the entire thumb area.  Call InvalidateDirty which
7706         limits the redraw to the thumb itself and surrounding pixels.
7707
7708         * XplatUIX11.cs (ScrollWindow): optimize copying.
7709         
7710 2006-05-12  Chris Toshok  <toshok@ximian.com>
7711
7712         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
7713         Figure out the positioning/layout in a single pass instead of
7714         multiple recursive invocations.  Speeds up the initial display of
7715         the data grid.  Also, make many things private that were
7716         originally public but unused outside this class.
7717
7718 2006-05-11  Jackson Harper  <jackson@ximian.com>
7719
7720         * MdiClient.cs: Improved layout code.
7721
7722 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
7723
7724         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
7725           not SelectedObject.
7726
7727 2006-05-11  Chris Toshok  <toshok@ximian.com>
7728
7729         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
7730         union of that will always be {0,0,width,height}.
7731
7732 2006-05-11  Jackson Harper  <jackson@ximian.com>
7733
7734         * Form.cs: Match MS's DefaultSize for forms (they must have
7735         changed the size in sp2).
7736
7737 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7738
7739         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
7740
7741 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
7742
7743         * TextControl.cs : Fixed bug #78109. This incorrect position
7744           comparison caused crash on automatic line split.
7745         * TextBoxBase.cs : reduce duplicate code.
7746
7747 2006-05-10  Jackson Harper  <jackson@ximian.com>
7748
7749         * MdiClient.cs: Active form is only sent to the back when using
7750         the Next form functionality, when a form is clicked the current
7751         active shouldn't be sent to the back.
7752         - Layout the mdi windows when the container is first made visible.
7753         * Form.cs: Give the MdiClient a ref to the containing form when we
7754         create it.
7755         
7756 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7757
7758         * LinkLabel.cs : link_font could be uninitialized, so populate one
7759           before actual use. Fixed bug #78340.
7760
7761 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
7762
7763         * XplatUIX11.cs : clipboard format native value is IntPtr.
7764           Fixed bug #78283.
7765
7766 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7767
7768         * Control.cs: 
7769           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
7770             which is passed up the parent chain by DefWndProc
7771           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
7772             to DefWndProc (#77956)
7773         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
7774
7775 2006-05-10  Jackson Harper  <jackson@ximian.com>
7776
7777         * MdiClient.cs: We need to remove the controls from the mdi
7778         collection, when we close the window.
7779         * MdiWindowManager.cs: Special handling of closing mdi windows.
7780         * InternalWindowManager.cs: Make the close method virtual so the
7781         mdi window manager can handle it specially.
7782
7783 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
7784
7785         * DataGrid.cs:
7786           - Recalculate grid when the data source has changed
7787           - Matches styles provided by user from all data sources types
7788         * DataGridTableStyle.cs: For columns that provided by the user set the
7789         with the preferred value is there was unassigned.
7790         * CurrencyManager.cs: throw OnItemChanged event
7791
7792 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
7793
7794         * PictureBox.cs: Don't animate until handle is created. Start animation
7795           when handle is created.
7796
7797 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7798
7799         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
7800           current codebase.
7801         * XEventQueue.cs: We don't need to provide the extra info
7802
7803 2006-05-10  Jackson Harper  <jackson@ximian.com>
7804
7805         * MdiClient.cs: If the mdi clients parent form has a background
7806         image set, we draw that background image for the mdi area's
7807         background.
7808
7809 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
7810
7811         * TextBoxBase.cs: Set IBeam cursor (#78347)
7812
7813 2006-05-10  Mike Kestner  <mkestner@novell.com>
7814
7815         * ToolBar.cs: fix some text padding issues with ButtonSize
7816         calculation. Update the default size to match MS documentation.
7817         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
7818         button size. Fixes #78296.
7819
7820 2006-05-10  Mike Kestner  <mkestner@novell.com>
7821
7822         * ListBox.cs: use is_visible for scrollbar positioning in case the
7823         control isn't on screen yet.  Fix off by one with Right vs Width
7824         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
7825         
7826 2006-05-10  Jackson Harper  <jackson@ximian.com>
7827
7828         * X11Dnd.cs: Drop to a control with another control on top of it.
7829         * ToolBar.cs: Work on a copy of the buttons list, so that it can
7830         be modified in click handlers. TODO: Look for similar problems in
7831         other controls.
7832
7833 2006-05-09  Jackson Harper  <jackson@ximian.com>
7834
7835         * Form.cs: Window managers need the old window state when setting
7836         window state now.
7837         * InternalWindowManager.cs: Allow the base mdi window manager to
7838         handle more of the MDI only stuff (like maximize buttons).
7839         * MdiWindowManager.cs: Fix some snafus in changing the window
7840         state.  Add all the menu functionality, for both popup and
7841         maximized menus.
7842         * MdiClient.cs: When a new form is selected the currently
7843         activated form is sent to the back, this matches MS.
7844         - Implement a new method to activate the next mdi child window.
7845
7846 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
7847
7848         * Control.cs: 
7849           - Added new InternalCapture method to allow controls to prevent
7850             the capture behaviour on the click handlers
7851           - Switched to use InternalCapture
7852         * ComboBox.cs:
7853           - Using InternalCapture to prevent mouse captures from being released
7854             on mouse button release (Fixes #78100)
7855         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
7856           returns Form borders if a caption is present. (Fixes #78310)
7857
7858 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
7859
7860         * TreeNode.cs: Changed serialization .ctor to not require every field
7861           to be present. (#78265)
7862         * OwnerDrawPropertyBag.cs: Added serialization .ctor
7863
7864 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
7865
7866         * MimeIcon.cs: for is faster than foreach for strings.
7867
7868 2006-05-05  Mike Kestner  <mkestner@novell.com>
7869
7870         * CheckedListBox.cs: update check handling code to not use selected.
7871         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
7872         behavior for visual feedback, motion response, shift/ctrl handling,
7873         and properly deal with all 4 selection modes. Updates to bounds
7874         handling logic.  Add scroll wheel support. [Fixes #77842]
7875
7876 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
7877
7878         * ListView.cs:
7879           - Moved adding of Implicit controls into .ctor. That way, subsequent
7880             creation of the controls will not cause them to think they are 
7881             toplevel windows (fixes #78200 header problem)
7882           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
7883           - Switched visibility setting of header control to use internal field
7884             to avoid triggering handle creation
7885           - Now checking if handle is created before causing a refresh when items
7886             are added (This makes us now match handle creation time with MS)
7887         * Splitter.cs: Removed loading of private splitter cursor, switched to
7888           Cursors version now that that is loading the right ones
7889         * Cursors.cs: Load proper splitter cursors from resources
7890         * Cursor.cs: Added second method of loading resource cursors for the 
7891           VS.Net users amongst us
7892
7893 2006-05-05  Mike Kestner  <mkestner@novell.com>
7894
7895         * ListView.cs: give header_control a minimum size based on the
7896         ListView size.
7897
7898 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
7899
7900         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
7901           window seems to do that with metacity, so set that type. (#78120)
7902
7903 2006-05-05  Mike Kestner  <mkestner@novell.com>
7904
7905         * ListViewItem.cs: fix Details mode checkbox layout bug.
7906         * ThemeWin32Classic.cs: draw a ListView column header for unused space
7907         at the end of the header, if it exists. [Fixes for #78200]
7908
7909 2006-05-04  Jackson Harper  <jackson@ximian.com>
7910
7911         * MdiClient.cs: Add a helper property to get the container form.
7912         * MdiWindowManager.cs: We have to make sure to use the menu origin
7913         when drawing the icons and buttons, this fixes maximized window
7914         icons/buttons on win32.
7915         * InternalWindowManager.cs: Reset the restore captions when a
7916         window goes from Maximized to Minimized and vice versa. Move the
7917         DrawMaximizedButtons into the MdiWindowManager source, tool
7918         windows can't be maximized. NOTE: This could use a little
7919         refactoring if time ever permits.
7920         
7921 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
7922
7923         * TextBox.cs: Add MWFCategoryAttributes
7924         * TextBoxBase.cs: Add MWFCategoryAttributes
7925         * Form.cs: Add MWFCategoryAttributes
7926
7927 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
7928
7929         * Control.cs: Add MWFCategoryAttributes
7930         * ScrollableControl.cs: Add MWFCategoryAttributes
7931
7932 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
7933
7934         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
7935           Divider is true. Fix a little glitch in PropertyToolBar
7936           drawing code
7937
7938 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
7939
7940         * Control.cs:
7941           - Dispose: Call base.Dispose, this causes the disposed event
7942             to be fired (and probably other, more important stuff)
7943           - SetVisibleCore: Set is_visible to true after creating the
7944             window so that the window still gets created invisible (if
7945             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
7946             to generate a WM_ACTIVE message
7947         * Form.cs: Call Dispose when we want to destroy the window, instead of
7948           just destroying the handle (Dispose will do that for us)
7949         * XplatUIX11.cs:
7950           - RootWindow also needs a queue, so we can properly process the
7951             property change events from RootWindow (like Activate)
7952           - Generatic synthetic WM_ACTIVE message when the active window is
7953             being destroyed
7954
7955 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
7956
7957         * LinkLabel.cs: Trigger a recalc of our label dimensions when
7958           bounds are changed
7959
7960 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
7961
7962         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
7963           for determining width and height (image might not be assigned if
7964           we're drawing an imagelist)
7965
7966 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
7967
7968         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
7969         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
7970           height from system
7971         * Theme.cs: No longer returns hardcoded menu height, instead calls
7972           new driver method
7973         * Form.cs (OnLoad): Scaling happens before triggering Load events 
7974           on MS (# 78257)
7975
7976 2006-05-01  Mike Kestner  <mkestner@novell.com>
7977
7978         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
7979
7980 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
7981
7982         * TextBoxBase.cs: Removed Fixme
7983         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
7984
7985 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
7986
7987         * XplatUIX11.cs:
7988           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
7989             the rectangle relative to the parent, considering borders. We
7990             don't really want that.
7991           - ScrollWindow: Fixed warning to be more understandable
7992         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
7993           scrollbars and scroll only the visible area
7994         * RichTextBox.cs: Removed debug output
7995
7996 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
7997
7998         * NumericUpDown.cs (Text): Just use base
7999         * UpDownBase.cs: Ensure txtView is created before using it
8000
8001 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8002
8003         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
8004           casting to IntPtr to avoid 64bit overflow errors
8005
8006 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8007
8008         * Control.cs:
8009           - AllowDrop: Don't force handle creation.
8010           - CreateHandle: Added call to tell driver if we're allowed to drop
8011
8012 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8013
8014         * FileDialog.cs: Remember the last directory not only for the
8015           current instance but also for new FileDialog instances.
8016
8017 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
8018         
8019         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
8020           broke sending async messages
8021
8022 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
8023
8024         * XplatUIX11.cs:
8025           - ScrollWindow: Fixed method. We finally generate expose events again
8026             for scrolled areas. This was causing 'garbage' when scrolling
8027             textbox and other controls that used ScrollWindow
8028           - Switched from using the regular queue for paint events to the MS 
8029             model of 'generating' paint events when the queue is empty.
8030             We use the new XQueueEvent.Paint subclass to store which windows
8031             need painting.
8032           - AddExpose now takes the x/y/width/height of the exposed area
8033             and inserts the window into the paint queue if not already there
8034           - InvalidateWholeWindow: Switched to use new AddExpose method
8035           - UpdateMessageQueue: Added which queue to monitor for paint events
8036           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
8037             the unlikely case nothing above handles it. We reset the expose
8038             pending states to get them off the queue.
8039           - GetMessage: Now pulls a paint event if no other events are in the
8040             queue
8041           - Invalidate: Switched to new AddExpose method
8042           - PeekMessage: Updated to understand pending paint events
8043           - UpdateWindow: Fixed logic bug. We were only updating if the window
8044             didn't need updating. Also switched to sending WM_PAINT directly,
8045             like MS does.
8046         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
8047           and random access Remove(). The random access is needed to handle
8048           UpdateWindow() where a WM_PAINT is sent directly without accessing
8049           the queue.
8050         * ScrollBar.cs: Added Update() calls to cause immediate updates to
8051           allow for better feedback when scrolling. Scrollbars are small and
8052           the immediate update should make it 'feel' more responsive without
8053           slowing things down. ScrollBar still needs it's invaliate logic
8054           updated to not always invalidate the whole bar on certain changes.
8055
8056 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8057
8058         * Control.cs:
8059         (BackColor): if the control does not support a transparent background,
8060         return the default backcolor when the parent backcolor is transparent.
8061
8062 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
8063
8064         * Application.cs: Updated to new StartLoop/GetMessage API
8065         * RichTextBox.cs: Provide some output on RTF parsing errors
8066         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
8067           new queue_id argument to GetMessage and PeekMessage to allow faster
8068           handling of per-thread queues in drivers.
8069         * Hwnd.cs: Added Queue tracking and property
8070         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
8071         * XEventQueue.cs: Added thread trackingA
8072         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
8073         * XplatUIX11.cs:
8074           - Implemented new per-thread queue
8075           - GetMessage: Fixed return/break behaviour on several cases. We were
8076             returning stale messages in some cases, instead of just processing
8077             the next message
8078
8079 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8080
8081         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
8082
8083 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
8084
8085         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
8086           fixed off-by-one comparisons between Width/Height and Right/Bottom.
8087
8088 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
8089
8090         * PropertyGridView.cs: Fix drop down width.
8091
8092 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8093
8094         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
8095           a mess in DrawToolBar, so I removed one of them.
8096
8097 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
8098
8099         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
8100           needed (clip). Otherwise we get artifacts.
8101
8102 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8103
8104         * FixedSizeTextBox.cs: Added constructor to allow specifying which
8105           dimension is fixed
8106         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
8107           and switched FixedSizeTextBox to only be fixed vertical (#78116)
8108         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
8109           if it matches the scale base font (avoids unneeded scaling)
8110
8111 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8112
8113         * X11DesktopColors.cs: One gtk_init_check should be enough
8114
8115 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
8116
8117         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
8118           match MS behaviour
8119
8120 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
8121
8122         * TextBoxBase.cs: 
8123           - Generate OnTextChanged for Backspace even if we're only deleting
8124             the current selection
8125           - When setting the Text property, only select all text if the
8126             control does not have focus when it is being set. Otherwise
8127             just place the cursor at the beginning of the control
8128
8129 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
8130
8131         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
8132           Added a little helper to draw PropertyGrid ToolBar with a different
8133           border and a different BackColor.
8134         * PropertyGrid.cs: Some background parts didn't get painted with the
8135           correct background color. Added a class that helps us to draw the
8136           correct border for PropertyGridView and a class that helps us to
8137           draw ToolBars with a different backcolor
8138         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
8139
8140 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
8141
8142         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
8143         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
8144
8145 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8146
8147         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
8148           into the palette entries. Also, since we're working on a copy
8149           we needed to copy the palette back onto the bitmap.
8150         * Cursor.cs: Same fix as XplatUIWin32.cs.
8151
8152 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
8153
8154         * ImageListStreamer.cs: Need to read the var (or we're off)
8155
8156 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
8157
8158         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
8159           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
8160           TextBoxBase.cs: Unused var fixes
8161         * AxHost.cs: Small 2.0 fix
8162         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
8163           as it seems that is what at least Metacity expects. This will make
8164           icons show up on 64bit platforms. We still have some 64bit size
8165           issues, though, since the startup app window size still won't match.
8166
8167 2006-04-25  Mike Kestner  <mkestner@novell.com>
8168
8169         * *.cs: cleanup newly reported exception var unused warnings.
8170
8171 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8172
8173         * ThemeWin32Classic.cs: Button image alignment now matches exactly
8174           ms
8175
8176 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8177
8178         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
8179           image. The image position is always the same, no matter if the
8180           button is pressed or not.
8181
8182 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
8183
8184         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
8185           selection and set the correct filename for SaveFileDialog.
8186           Patch by Emery Conrad.
8187
8188 2006-04-24  Mike Kestner  <mkestner@novell.com>
8189
8190         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
8191         check for item.X outside the ClientRect instead of item.Y. Fixes
8192         #78151.
8193
8194 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8195
8196         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
8197         trust that value blindly and do some sanity check. Fixes bug #77814.
8198
8199 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8200
8201         * ImageListStreamer.cs: save the mask as a 1bpp image.
8202
8203 2006-04-21  Mike Kestner  <mkestner@novell.com>
8204
8205         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
8206         pass Checked and Indeterminate to the Theme Engine. Improve
8207         encapsulation with ListBox.
8208         * ListBox.cs: Keep a StringFormat instead of calculating it every item
8209         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
8210         nested types.  Move all CheckState functionality to CheckedListBox.
8211         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
8212         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
8213         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
8214         single base list. Fix scrollbar sizing and placement to mirror MS.
8215         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
8216         used.
8217         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
8218         for CheckedListBox by using new DrawItemState info.  Center the
8219         checkboxes on the items. Use new StringFormat property.
8220
8221 2006-04-18  Jackson Harper  <jackson@ximian.com>
8222
8223         * Form.cs: MdiChildren don't do default locations the same way as
8224         regular forms.  This prevents a crash when trying to position the
8225         mdi windows.
8226
8227 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
8228
8229         * PropertyGridTextBox.cs: Formatting, copyright
8230         * PropertiesTab.cs: Formatting
8231         * PropertyGrid.cs: Formatting
8232         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
8233           click toggling of values
8234           
8235 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
8236
8237         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
8238         * Control.cs (.ctor): verify_thread_handle is static, don't reset
8239           every time a control is created
8240         * Application.cs: Removed obsolete EnableRTLMirroring method
8241
8242 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
8243
8244         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
8245         SelectedIndex to -1. Fixes bug #78121.
8246
8247 2006-04-17  Jackson Harper  <jackson@ximian.com>
8248
8249         * Binding.cs: Handle null values for Current and BindingContext.
8250         This occurs when binding is a little delayed.
8251         * CurrencyManager.cs: return null for Current when there are no
8252         items in the list.
8253         - Hookup to the listchanged event on the DataView and update
8254         bindings when the list is changed.  This fixes late binding of
8255         controls.
8256
8257 2006-04-17  Jackson Harper  <jackson@ximian.com>
8258
8259         * X11Dnd.cs:
8260         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
8261         Ringenbach.
8262
8263 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
8264
8265         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
8266           place
8267         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
8268           with the correct ButtonState
8269
8270 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
8271
8272         * XplatUIX11.cs: Improved distinguishing between window types to
8273           tell the WM a type closer to what the app wants (Fixes #78107)
8274
8275 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8276
8277         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
8278           GrabHandle
8279
8280 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
8281
8282         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
8283           drawing code to reflect the size grip changes
8284
8285 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8286
8287         * ImageListStreamer.cs: fix handling of the mask that follows the main
8288         bitmap when deserializing and serialize it properly. The generated mask
8289         should better be a 1bpp image, but I'll do that later.
8290
8291 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8292
8293         * FileDialog.cs: Show something in the DirComboBox on *nix if the
8294           path doesn't fit into some of our Current.Places
8295
8296 2006-04-13  Jackson Harper  <jackson@ximian.com>
8297
8298         * ComboBox.cs: Use borders instead of drawing our own decorations,
8299         try to obey correct rules for heights.
8300         * Theme.cs:
8301         * ThemeNice.cs:
8302         * ThemeClearLooks.cs:
8303         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
8304         this is now handled by borders.
8305         - Remove unused DrawListBoxDecorationSize method.
8306         
8307 2006-04-13  Mike Kestner  <mkestner@novell.com>
8308
8309         * MenuAPI.cs: null guarding for the disbled click check fixes crash
8310         reported by Alex.
8311
8312 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
8313
8314         * ThemeWin32Classic.cs: 
8315           - Fixed CPDrawStringDisabled
8316           - Corrected drawing of disabled menu items
8317           - Fixed drawing of disabled radio buttons (bug #78095)
8318           - Draw check in a disabled CheckBox with color ControlDark 
8319
8320 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8321
8322         * Form.cs: Use the provided width when calculating the menu size;
8323           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
8324           and ClientSize.Width won't be updated yet
8325         * Application.cs: Use Visible instead of Show() to make form visible,
8326           this way we create the handle later and menusize is considered
8327
8328 2006-04-12  Mike Kestner  <mkestner@novell.com>
8329
8330         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
8331         reporting.
8332
8333 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8334
8335         * TextBox.cs: Implemented context menu
8336
8337 2006-04-12  Mike Kestner  <mkestner@novell.com>
8338
8339         * ListView.cs: implement box selection. fixes #77838.
8340         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
8341
8342 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8343
8344         * XplatUIX11.cs: Added setting of window type when transient window
8345           is created (metacity would move it otherwise)
8346         * X11Structs.cs: Added WINDOW_TYPE atoms
8347         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
8348           background (the control is Opaque but still wants transparent
8349           backgrounds)
8350
8351 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8352
8353         * Control.cs: Added OnPaintBackgroundInternal to allow controls
8354           that set Opaque but don't mean it (like all ButtonBase-derived
8355           controls) to still draw their background
8356         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
8357           the background
8358
8359 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
8360
8361         * Control.cs (PaintControlBackground): Set the graphics object
8362           on our PaintEvent to null to prevent it from being disposed
8363           when the PaintEvent gets disposed
8364
8365 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
8366
8367         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
8368         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
8369
8370 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
8371
8372         * Control.cs: 
8373           - Added transparency check to BackColor property. Transparent
8374             backgrounds are only allowed if the control styles permit it
8375           - Added recursive painting of parent control background and
8376             foreground if a control with a transparent backcolor is drawn
8377             (Thanks to Tim Ringenback for providing his 'hack' as a base
8378              for this patch) Fixes #77985 and #78026.
8379           - Added Opaque style check before calling OnPaintBackground, no
8380             need to draw the background if the control is opaque
8381           - Removed ControlAccessibleObject owner variable (inherited from
8382             base, no need to define again)
8383           - Added some documentation links explaining the drawing events
8384             and styles
8385
8386 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8387
8388         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
8389           that the affected control is the located at the left border of our
8390           parent (Fixes #77936)
8391
8392 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8393
8394         * TextBoxBase.cs: When rendering disabled or readonly controls,
8395           draw the background with 'Control' instead of 'Window' color as
8396           long as the user hasn't specifically set a color
8397
8398 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
8399
8400         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
8401           since that won't be updated if the user types text (only if it's
8402           programatically set)
8403
8404 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8405
8406         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
8407           layout changes do to app-triggered resizes will have the proper
8408           display rectangle for layout
8409
8410 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
8411
8412         * ThemeWin32Classic.cs:
8413           - Make use of the SystemBrushes and SystemPens wherever possible
8414           - Corrected some highlight colors
8415           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
8416             drawing
8417         * Theme.cs: Added Empty field to CPColor struct
8418
8419 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
8420
8421         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
8422           is displayed when calculating the display rectangle. Thanks to Mike
8423           for teaching me the err of my ways.
8424
8425 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
8426
8427         * ScrollableControl.cs:
8428           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
8429             (instead of 0,0) and we now return the real width/height instead of
8430             just the clientrectangle, adjusted for padding. The rectangle is
8431             now cached and created by the new CalculateDisplayRectangle method.
8432           - Created new CalculateDisplayRectange method, which basically does
8433             what get_DisplayRectangle() did originally, but now using the 
8434             right edge instead of DisplayRectangle to determine the size of
8435             our scrollbars
8436           - get_Canvas(): Fixed it to properly calculate canvas for 
8437             right/bottom controls which seem to be placed to the right/bottom
8438             of any controls that have a fixed location
8439           - Removed TODO that's taken care of
8440           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
8441             and SetDisplayRectLocation according to new MSDN2 docs
8442           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
8443             event when that is called, this is added for compatibility
8444           - ScrollControlIntoView(): Implemented.
8445           - Switched scrollbars to be implicit, they shouldn't be selectable
8446         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
8447           call it when the active control is set/changed
8448         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
8449         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
8450           implicit_control variable (used for native Win32 message generation)
8451         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
8452           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
8453         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
8454         * XplatUIStructs.cs: Added ScrollBarCommands enum
8455
8456 2006-04-10  Jackson Harper  <jackson@ximian.com>
8457
8458         * ButtonBase.cs:
8459         * CheckedListBox.cs:
8460         * ComboBox.cs:
8461         * DataGrid.cs:
8462         * DataGridView.cs:
8463         * Form.cs:
8464         * GroupBox.cs:
8465         * ListBox.cs:
8466         * PrintPreviewControl.cs:
8467         * ProgressBar.cs:
8468         * PropertyGrid.cs:
8469         * Splitter.cs:
8470         * StatusBar.cs:
8471         * TrackBar.cs:
8472         * UpDownBase.cs: Fixup base event overrides.
8473         
8474 2006-04-06  Mike Kestner  <mkestner@novell.com>
8475
8476         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
8477         all user-initiated value changes to min <= value <= max-thumbsz+1.
8478         (set_Value): check for vert/horiz when calculating new thumb position.
8479         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
8480         like MS does.
8481         (OnMouseMoveSB): refactor the thumb dragging code and refine
8482         invalidation logic to reduce flicker.
8483         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
8484         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
8485         (UpdateThumbPosition): small code readability cleanup
8486
8487 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
8488
8489         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
8490           different
8491
8492 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8493
8494         * ThemeNice.cs: Use a better graphics effect when a button is pressed
8495
8496 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
8497
8498         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
8499         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
8500           This dramatically reduces the number of Pen.Dispose calls. 
8501           Where possible call ResPool methods only once instead of calling it
8502           over and over again (for example for the same color).
8503
8504 2006-04-06  Mike Kestner  <mkestner@novell.com>
8505
8506         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
8507         Also remove an unused private field on the collection. Fixes #77972.
8508
8509 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8510
8511         * ThemeNice.cs: Added ToolBar drawing code
8512
8513 2006-04-06  Mike Kestner  <mkestner@novell.com>
8514
8515         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
8516         I'm assuming that means we need to look up the toplevel for the
8517         provided control. Fixes the crash trace in #77911 but exposes another
8518         crash in some strange reflection usage in NDocGui.
8519
8520 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
8521
8522         * ThemeNice.cs: Gave it a little silver touch and added Images
8523           method
8524         * FontDialog.cs: FontDialog is not resizable
8525         * FileDialg.cs: Added SizeGripStyle.Show
8526
8527 2006-04-05  Jackson Harper  <jackson@ximian.com>
8528
8529         * KeyboardLayouts.cs: Remove warning.
8530
8531 2006-04-05  Jackson Harper  <jackson@ximian.com>
8532
8533         * Control.cs: Enable OnPaintInternal so we can use it for drawing
8534         all of our controls instead of Paint +=.
8535         * ListBox.cs:
8536         * ListView.cs:
8537         * MenuAPI.cs:
8538         * MessageBox.cs:
8539         * NotifyIcon.cs:
8540         * ProgressBar.cs:
8541         * ScrollBar.cs:
8542         * Splitter.cs:
8543         * StatusBar.cs:
8544         * TabControl.cs:
8545         * TextBoxBase.cs:
8546         * ToolBar.cs:
8547         * TrackBar.cs:
8548         * UpDownBase.cs:
8549         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
8550         use OnPaintInternal. Remove Width/Height and Visible checks in
8551         paint handler, this is done at a higher level now.
8552         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
8553         * PaintEventArgs.cs: Add a handled flag so controls that don't
8554         want anymore painting after OnPaintInternal can make sure OnPaint
8555         isn't called.
8556
8557 2006-04-05  Mike Kestner  <mkestner@novell.com>
8558
8559         * Form.cs: fix the menu WndProc hacks to respect the native enabled
8560         state of the form, so that we don't process events when Modal dialogs
8561         are up. Fixes #77922.
8562
8563 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
8564
8565         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
8566           checking is done.
8567
8568 2006-04-05  Mike Kestner  <mkestner@novell.com>
8569
8570         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
8571
8572 2006-04-05  Mike Kestner  <mkestner@novell.com>
8573
8574         * ListView.cs (HeaderMouseMove): null guarding for the over column
8575         when setting up the drag_to_index.  Fixes #78015.
8576
8577 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
8578
8579         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
8580           in the taskbar. Transient windows seem to accomplish that.
8581
8582 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
8583
8584         * Form.cs:
8585           - Re-enabled CreateParams.X/Y code for FormStartPosition
8586           - Added code for manual placement when creating the Control
8587           - Incomplete patch to treat MDI forms differently when
8588             setting the ClientSizeCore. (Still need to figure out handling
8589             x/y coords there)
8590         * XplatUIX11.cs:
8591           - When we're explicitly setting the X/Y position of a non-Child
8592             window, let the WM know. Metacity really wants this.
8593
8594 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8595
8596         * ThemeNice.cs: Added CPDrawButton
8597
8598 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8599
8600         * ThemeNice.cs: Changed the color for focused buttons and activated
8601           the arrows for small scroll buttons.
8602
8603 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
8604
8605         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
8606           anymore. Changed some method modifiers to protected (virtual)
8607         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
8608           changes
8609         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
8610           Updated drawing of menus, buttons and progressbars; added
8611           CPDrawBorder3D 
8612
8613 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8614
8615         * ImageListStreamer.cs: implemented serialization/deserialization
8616         of the images.
8617
8618 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
8619
8620         * ThemeWin32Classic.cs:
8621           - Removed all the DrawFrameControl stuff; CPDrawButton,
8622             CPDrawCheckBox and CPDrawRadioButton are now handled directly
8623             inside the methods
8624           - Updated and corrected the drawing code of CPDrawButton,
8625             CPDrawCheckBox and CPDrawRadioButton to better match ms
8626           - Updated theme checkbox and radiobutton code to use the CP*
8627             methods
8628
8629 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8630
8631         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
8632           bug is fixed
8633
8634 2006-03-31  Jackson Harper  <jackson@ximian.com>
8635
8636         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
8637         sometimes.
8638         * UpDownBase.cs: Don't CreateGraphics manually, use a
8639         Refresh. Ideally we would invalidate the correct areas here.
8640
8641 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
8642
8643         * XplatUIX11.cs: 
8644           - We now track the mapping state of windows. If a window (or 
8645             one of it's parents) is not mapped we no longer permit
8646             WM_PAINT messages to be generated since we'd otherwise get 
8647             lots of BadMatch X errors. Jackson did all the work figuring
8648             out the problem.
8649           - Destroying the caret if the window it's contained in is 
8650             destroyed. Can't use regular DestroyCaret method since it
8651             might fall into a drawing function (trying to remove the
8652             caret) and with that generate new BadMatch errors. Again,
8653             Jackson tracked this down.
8654           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
8655             make sure we send the messages to all windows. (The old code
8656             would send the WM_DESTROY to the window, and then all child
8657             windows would be 'gone' because the WM_DESTROY handle lookup
8658             would no longer find the destroyed window)
8659         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
8660         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
8661
8662 2006-03-31  Jackson Harper  <jackson@ximian.com>
8663
8664         * ScrollableControl.cs: Dont recalc if we are not visible.
8665
8666 2006-03-31  Mike Kestner  <mkestner@novell.com>
8667
8668         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
8669         the visibility branch.
8670
8671 2006-03-31  Jackson Harper  <jackson@ximian.com>
8672
8673         * ScrollBar.cs: Cap values when incrementing/decrementing.
8674
8675 2006-03-31  Mike Kestner  <mkestner@novell.com>
8676
8677         * MenuAPI.cs: setup menu.tracker for popup/context menus.
8678         * ToolTip.cs: guard against timer expirations with no active control.
8679         Not sure why it happened.
8680
8681 2006-03-31  Mike Kestner  <mkestner@novell.com>
8682
8683         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
8684         text.
8685         * ToolTip.cs: Position the tooltip based on where the cursor is at
8686         popup time, not at MouseEnter time.  Add a Down state so that we don't
8687         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
8688         positioning offset. Lookup DisplaySize at positioning time, since it
8689         can theoretically change during invocation.
8690         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
8691         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
8692
8693 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8694
8695         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
8696           Fixes behaviour when the Text property of the box is String.Empty
8697
8698 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
8699
8700         * XplatUIX11.cs: Only send mouseleave for our client windows, not
8701           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
8702           a window)
8703
8704 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8705
8706         * FileDialog.cs: Visual enhancement for the popup buttons in 
8707           PopupButtonPanel
8708
8709 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
8710
8711         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
8712           code
8713
8714 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
8715
8716         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
8717           highlighted menu items to match ms
8718
8719 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
8720
8721         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
8722
8723 2006-03-30  Mike Kestner  <mkestner@novell.com>
8724
8725         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
8726         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
8727         go active to account for HotLight to Selected transition.
8728         * MenuItem.cs: add internal Selected prop. Fill out the Status
8729         property by calculating it from item info. Add HotLight,
8730         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
8731
8732 2006-03-30  Mike Kestner  <mkestner@novell.com>
8733
8734         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
8735
8736 2006-03-29  Jackson Harper  <jackson@ximian.com>
8737
8738         * Form.cs: Implement TODO.
8739
8740 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
8741
8742         * PrintPreviewDialog.cs: Implemented missing methods and events; still
8743           missing proper dialog setup in the constructor
8744
8745 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
8746
8747         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
8748         * Control.cs:
8749           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
8750           - Fixed ResetBindings and removed TODO
8751           - Added check for cross-thread calls to get_Handle()
8752           - Added Marshaller attribute for set_Font to satisfy class status
8753         * FontDialog.cs: Removed TODOs that seemed implemented
8754         * UpDownBase.cs: Removed unneeded TODO and Fixme
8755         * MessageBox.cs: Implemented support for Default button and removed TODO
8756         * FileDialog.cs: Removed obsolete TODO
8757         * DomainUpDown.cs: Removed obsolete TODO
8758         * ButtonBase.cs: Removed obsolete TODO
8759         * XplatUIWin32.cs: Removed obsolete TODO
8760         * Form.cs:
8761           - Removed obsolete TODO
8762           - Calling CheckAcceptButton when the acceptbutton is changed to allow
8763             internal status updates
8764           - Making sure the active control is selected when the control is created
8765         * CurrencyManager.cs: Removed obsolete TODO
8766
8767 2006-03-29  Mike Kestner  <mkestner@novell.com>
8768
8769         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
8770         of PrintPreviewDialog and RichTextBox.
8771
8772 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8773
8774         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
8775           DarkDark, Light and LightLight colors for a specific color
8776         * ThemeWin32Classic.cs:
8777           - Use Button drawing code to draw RadioButtons and CheckBoxes with
8778             Appearance = Button 
8779           - Make use of the new ResPool helper CPColor
8780           - Draw ProgressBar and StatusBar with correct 3D borders
8781
8782 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
8783
8784         * ColorDialog.cs: Return selected color. Fixes bug #77940.
8785
8786 2006-03-28  Mike Kestner  <mkestner@novell.com>
8787
8788         * ListView.cs: fix Icon layout to plan for scrollbar widths when
8789         calculating col/row counts.
8790
8791 2006-03-28  Mike Kestner  <mkestner@novell.com>
8792
8793         * ColumnHeader.cs:
8794         * ListView.cs:
8795         * ListViewItem.cs:
8796         * Menu.cs: 
8797         switch to explicit interface method implementation for some methods
8798         corcompare identifies as inconsistent with MS.
8799
8800 2006-03-28  Mike Kestner  <mkestner@novell.com>
8801
8802         * MainMenu.cs: 
8803         * Menu.cs:
8804         add a few missing methods from the class status output.
8805
8806 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
8807
8808         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
8809           correct.
8810
8811 2006-03-28  Mike Kestner  <mkestner@novell.com>
8812
8813         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
8814
8815 2006-03-27  Mike Kestner  <mkestner@novell.com>
8816
8817         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
8818         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
8819
8820 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
8821
8822         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
8823
8824 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8825
8826         * ThemeWin32Classic.cs:
8827           - GroupBox: Inserted a little gap between the text and the lines
8828             on the right side
8829           - Made the code in CPDrawBorder3D more readable
8830           - Corrected the drawing location of the up and down arrows in 
8831             CPDrawScrollButton
8832
8833 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8834
8835         * ControlPaint.cs: Corrected line widths in DrawBorder for
8836           ButtonBorderStyle Inset and Outset
8837
8838 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8839
8840         * ThemeWin32Classic.cs:
8841           - Rewrote the totally broken CPDrawBorder3D method. That was
8842             one of the main problems for the terrific ThemeWin32Classic
8843             look
8844           - Updated and corrected Button drawing
8845           - Correct the dimensions of the SizeGrip to match ms ones
8846           - Removed a small drawing glitch in DrawComboBoxEditDecorations
8847         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
8848           Border3DStyle.Sunken to match ms.
8849
8850 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
8851
8852         * ThemeWin32Classic.cs: First small part of the "de-uglify
8853           ThemeWin32Classic" effort, SizeGrip
8854
8855 2006-03-24  Jackson Harper  <jackson@ximian.com>
8856
8857         * XplatUIX11.cs: Give a max idle time of one second, this matches
8858         MS and forces an Idle event every second when there are no other
8859         events in the queue.
8860
8861 2006-03-24  Mike Kestner  <mkestner@novell.com>
8862
8863         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
8864         * ListView.Item.cs: fix layout issues with null image lists and images
8865         smaller than checkbox size.
8866         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
8867         mode like MS does.  It's weird, but consistent.  ;-)
8868         Fixes #77890.
8869
8870 2006-03-24  Mike Kestner  <mkestner@novell.com>
8871
8872         * ListView.cs: Scroll wheel support for the item control.  Fixes
8873         #77839.
8874
8875 2006-03-23  Jackson Harper  <jackson@ximian.com>
8876
8877         * ScrollableControl.cs: Special case negative sized areas, not
8878         zero.
8879         * MonthCalendar.cs: Save the rect of the clicked date so we can
8880         use it for invalidation.
8881         - Try to cut down on the number of invalidates
8882         - Invalidate the rect the mouse is over and was over when moving
8883         the mouse, so we get the focus box following the cursor.
8884
8885 2006-03-23  Mike Kestner  <mkestner@novell.com>
8886
8887         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
8888         focus rectangle drawing. Fixes #77835.
8889
8890 2006-03-23  Mike Kestner  <mkestner@novell.com>
8891
8892         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
8893         the if and else if and reverting back to the original == check on the
8894         None conditional.
8895
8896 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
8897
8898         * FontDialog.cs: Update the example panel if the selected index of
8899           the fontListBox changes.
8900
8901 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
8902
8903         * FileDialog.cs: Make FileDialog remember which directory it was in
8904           last in the same execution.
8905
8906 2006-03-22  Mike Kestner  <mkestner@novell.com>
8907
8908         * FileDialog.cs: make the DropDownMenu on the toolbar display
8909         RadioChecks since they are mutually exclusive and that's what MS does.
8910
8911 2006-03-22  Mike Kestner  <mkestner@novell.com>
8912
8913         * Theme.cs: add Color param to CPDrawMenuGlyph.
8914         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
8915         checks and radio marks and arrows are visible on highlighted items.
8916         * ControlPaint.cs: update to use new Theme signature.
8917
8918 2006-03-22  Mike Kestner  <mkestner@novell.com>
8919
8920         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
8921         is active. Fixes #77870.
8922
8923 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
8924
8925         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
8926           to be focused/selected after startup
8927
8928 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
8929
8930         * ColorDialog.cs: 
8931           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
8932             CustomColors and ShowHelp properties
8933           - Some internal rewrites to get better results when using the
8934             ColorMatrix
8935
8936 2006-03-22  Mike Kestner  <mkestner@novell.com>
8937
8938         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
8939         HoverSelection.  Fixes #77836.
8940
8941 2006-03-22  Mike Kestner  <mkestner@novell.com>
8942
8943         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
8944         ToggleButtons.  (De)Sensitize the Back button around a stack count of
8945         1, not 0.  Update ButtonSize based on a pixel count of the win32
8946         control.  Adjust the toolbar size/location for new button size.
8947
8948 2006-03-22  Jackson Harper  <jackson@ximian.com>
8949
8950         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
8951         true.
8952         * ScrollBar.cs: When doing increments and decrements we need to
8953         set the Value property so that ValueChanged gets raised. A
8954         possible optimization here would be to make an internal SetValue
8955         that doesn't invalidate immediately.
8956         * ToolTip.cs: Tooltips get added to their container (when
8957         supplied) so they get disposed when the container is disposed.
8958         - Don't create tooltips for String.Empty. This prevents all these
8959         little 2-3 pixel windows from showing up when running nunit-gui
8960         and driving me mad.
8961         * Form.cs: Don't set topmost when setting the owner if the handles
8962         haven't been created yet.  The topmost set will happen when the
8963         handles are created.
8964
8965 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
8966
8967         * XplatUIX11.cs:
8968           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
8969           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
8970             visible (to allow them to recalculate their sizes)
8971
8972 2006-03-21  Mike Kestner  <mkestner@novell.com>
8973
8974         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
8975         methods. Removed a ton of redundant code.  Still not really happy with
8976         the border rendering, but I think that's mainly because of the
8977         ControlDarkDark being black instead of a dark grey. Depending on how 
8978         close we want to be, we might want to revisit those color choices.
8979         Among the new features added during the refactor were DropDownArrow
8980         pressed rendering, Disabled image rendering.  Proper flat appearance
8981         boundary rendering.  Removed the Divider and Wrapping dividers since I
8982         can't figure out any combination of themes and conditions to make the
8983         MS control draw a horizontal line on a toolbar despite what the
8984         Divider property docs indicate.
8985         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
8986         conditions and incorrect layout.  Updated to coding standard.
8987         * ToolBarButton.cs: refactored layout and positioning code from
8988         ToolBar to here.  Invalidate wherever possible instead of forcing
8989         redraws of the whole toolbar. 
8990         (Known remaining issues: explicit ButtonSize smaller than provided
8991         images.)
8992
8993 2006-03-21  Mike Kestner  <mkestner@novell.com>
8994
8995         * ContextMenu.cs (Show): use the position parameter instead of just
8996         showing at the MousePosition.
8997
8998 2006-03-21  Jackson Harper  <jackson@ximian.com>
8999
9000         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
9001         control handle this.
9002         * TreeNodeCollection.cs: If we are clearing the root node we need
9003         to reset top_node so calcs can still happen.
9004         * ThemeWin32Classic.cs: This is a Flags so we need to check
9005         properly.
9006         
9007 2006-03-21  Jackson Harper  <jackson@ximian.com>
9008
9009         * DataGrid.cs: Create columns when the binding context has been
9010         changed.
9011         * X11Structs.cs: Keysyms are uints.
9012         - Add size to fix build.
9013
9014 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
9015
9016         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9017           XplatUIOSX.cs: 
9018           - Added ResetMouseHover method to allow controls to retrigger
9019             hovering if they need it more than once
9020           - Implemented MouseHoverTime and MouseHoverSize properties
9021         * Timer.cs: Start() must reset the interval
9022         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
9023           properties
9024
9025 2006-03-21  Jackson Harper  <jackson@ximian.com>
9026
9027         * X11Keyboard.cs: improved layout detection. Move the nonchar
9028         tables into this file.
9029         * KeyboardLayouts.cs: Move the tables into resource files.
9030
9031 2006-03-21  Mike Kestner  <mkestner@novell.com>
9032
9033         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
9034
9035 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
9036
9037         * Mime.cs: Various speed optimizations. Looking up mime types
9038           is now 2 times faster than before
9039
9040 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
9041
9042         * CreateParams.cs: Added internal menu field
9043         * Control.cs: 
9044           - Switched call order for UpdateBounds; now we always call
9045             the one that also takes ClientSize, and we're calculating the 
9046             client size via driver method in the others. The previous
9047             method of tracking client size by difference wasn't working
9048             for forms where even the starting client size wouldn't match
9049             the overall form size (due to borders) (Part of fix for #77729)
9050           - CreateParams(): Do not use parent.Handle unless the handle is
9051             already created. Causes havoc with Nexxia and throws off our
9052             creation of controls
9053         * XplatUIX11.cs:
9054           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
9055           - Switched handling of ConfigureNotify over to new PerformNCCalc 
9056             method (consolidates code)
9057           - Changed RequestNCRecalc to use new PerformNCCalc method
9058           - Added calls to RequestNCRecalc when menus and borders are changed
9059             to allow app to set NC size. (Part of fix for #77729) This matches
9060             when MS send a WM_NCRECALC on Win32 windows.
9061           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
9062             (Part of fix for #77729). This matches what MS does, they also
9063             send that message when the form is made visible.
9064           - XException.GetMessage: Improved usability of X errors by including
9065             a translation of the window into Hwnd and Control class
9066           - Improved debug info for window creation, reparenting and destruction
9067           - Created helper method WindowIsMapped() [Currently not used]
9068         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
9069         * Form.cs:
9070           - CreateParams: Now setting our menu on the new internal menu field
9071           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
9072             avoid calculating the same property twice
9073         * Hwnd.cs:
9074           - Improved usability of ToString() for debugging purposes
9075           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
9076             determine the height of the menu, instead of just the font. This
9077             required to also create a graphics context and to keep a bmp 
9078             around (for performance reasons)
9079
9080 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
9081
9082         * MenuAPI.cs: Added OnMouseUp method
9083         * Form.cs:
9084           - Now remembering the requested client size, avoids size errors
9085           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
9086             instead of base if the menu is active. This is required due to
9087             control now capturing and releasing on down/up and it would
9088             prematurely release our menu capture
9089
9090 2006-03-17  Jackson Harper  <jackson@ximian.com>
9091
9092         * KeyboardLayouts.cs: Add the czech layouts.
9093
9094 2006-03-16  Jackson Harper  <jackson@ximian.com>
9095
9096         * Control.cs: Use the viewport space when sizing not the controls
9097         client size, so things like ScrollableControl that effect the
9098         viewport size (when scrollbars are added) are computed correctly.
9099         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
9100         of ManagerEntrys.
9101         - Handle creating BindingManagers for null data sources.
9102         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
9103         source, otherwise when rows are added they are added to the 'fake'
9104         datasource and we will crash when trying to set the position in
9105         those rows.
9106         - Use Implicit scrollbars on the datagrid so they arent
9107         selectable.
9108         
9109 2006-03-16  Jackson Harper  <jackson@ximian.com>
9110
9111         * Binding.cs:
9112         * InternalWindowManager.cs:
9113         * MdiWindowManager.cs:
9114         * X11Keyboard.cs: I really want Mike to love me again (fix
9115         compiler warnings).
9116
9117 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
9118
9119         * DataGrid.cs:
9120           - OnMouseDown: Switch to editing mode when clicking on the cell
9121                          even if we're clicking on the cell that's currently 
9122                          selected
9123           - ProcessGridKey: Left/Right now wrap like MS.Net does
9124           - ProcessGridKey: Tab now knows to add a new row when tab is
9125                             pressed in the cell of the last column of the 
9126                             last row
9127           - ProcessGridKey: Enter now adds another row  if pressed in the last
9128                             row and selectes the new row, same column cell
9129           - ProcessGridKey: Home/End navigate columns, not rows, like 
9130                             originally implemented
9131           - Broke ProcessKeyPreview code out into an extra Internal method
9132             so it can be called from the edit code
9133         * DataGridTextBox.cs (ProcessKeyMessage):
9134           - Switched to accept Tab keypresses
9135           - Added F2 handling to allow jumping to the end of the edited cell
9136           - Added logic to allow moving caret left/right inside edited cell
9137             and making the edited cell jump when the caret hits cell borders
9138           - Tab and Enter are now passed to the datagrid after being handled
9139         * TextBoxBase.cs:
9140           - Removed capture code now that Control handles it
9141           - set_SelectionStart now ensures caret is visible
9142
9143 2006-03-16  Jackson Harper  <jackson@ximian.com>
9144
9145         * TrackBar.cs: Debackwards the increment/decrement for handling
9146         mouse clicks on the bar with vertical trackbars.
9147         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
9148         bottom to match MS.
9149
9150 2006-03-16  Mike Kestner  <mkestner@novell.com>
9151
9152         * ListView.cs: make shift/ctrl keyboard and mouse selection 
9153         consistent with the MS control. Fix a bug in
9154         SelectedListViewItemCollection.Clear that was pissing me off for the
9155         better part of a day because the collection was being altered
9156         underneath us as we walked the list.
9157
9158 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
9159
9160         * Control.cs: Not sure how we could miss this so long, but it seems
9161           that MS.Net has Capture set all the way from before calling 
9162           OnMouseDown through sending the mouse events until after
9163           OnMouseUp. This will fix DataGrid's selection being set to end
9164           at the location of the MouseUp.
9165
9166 2006-03-15  Jackson Harper  <jackson@ximian.com>
9167
9168         * BindingContext.cs: Check the binding after its added so that it
9169           can initialize the binding managers and hookup to events.
9170         * Binding.cs: Data members seem to sometimes include rows/cols in
9171           the format Row.Column we now take this into account.
9172           - Hookup to the position changed event so we can update the
9173           control when the position has changed in the data set.
9174         * CurrencyManager.cs: Take into account the row/col naming
9175           convention when creating dataset tables.
9176         * BindingContext.cs: Using a newer better way of storing
9177           datasource/datamember pairs.  Hopefully this better matches MS for
9178           looking up binding managers.
9179
9180
9181 2006-03-15  Jackson Harper  <jackson@ximian.com>
9182
9183         * BindingContext.cs: The currency manager needs the data member
9184         name, if the member is a data set we use the name to find the
9185         correct table.
9186         * CurrencyManager.cs: When creating the list prefer an IList over
9187         an IListSource.
9188         - Attempt to create a DataTable from a DataSet (TODO: might need
9189         some better error checking here, although MS doesn't seem to have much)
9190         - If we have a DataTable create a view and use it as our list.
9191
9192 2006-03-15  Mike Kestner  <mkestner@novell.com>
9193
9194         * ListView.cs: keep a matrix of the icon mode layout to facilitate
9195         keyboard navigation. Support Up/Down/Left/Right selection correctly
9196         for all 4 View modes.
9197         * ListViewItem.cs: add internal row/col fields for icon layouts.
9198
9199 2006-03-15  Jackson Harper  <jackson@ximian.com>
9200
9201         * TabControl.cs: Redraw the tabs when we resize so their newly
9202         calculated sizes are drawn on screen.
9203         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
9204         composite characters.
9205         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
9206         - filter events so that composite characters can be created
9207         patches by peter
9208         * X11Structs.cs: Add XIMProperties enum.
9209
9210 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9211
9212         * Control.cs (BringToFront, SendToBack): Don't use window or handle
9213           unless it's created
9214
9215 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9216
9217         * Control.cs (PerformLayout): We don't need to consider visiblity
9218           for anchoring, only for docking. This fixes 'whacky' alignment
9219           in listbox and other controls that use implicit scrollbars after
9220           the previous PerformLayout patch
9221         * ListBox.cs: Switched to use implicit scrollbars
9222           
9223 2006-03-14  Mike Kestner  <mkestner@novell.com>
9224
9225         * ToolBar.cs: 
9226         * VScrollBar.cs:
9227         - chain up the "new event" overrides to base and use
9228         OnEvent to raise them.  Part of fix for bug #76509.
9229
9230 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
9231
9232         * FileDialog.cs: Do not select an item in the parent directory
9233           on backspace
9234
9235 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
9236
9237         * Control.cs (PerformLayout): It would seem that we considered
9238           invisible windows for our layout. Not quite the right thing
9239           to do. Now we don't any longer, thereby fixing bug #76889.
9240
9241 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
9242
9243         * Control.cs (CanFocus): I goofed. A control can have focus 
9244           even though it's not selectable. Made it match MS docs.
9245
9246 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9247
9248         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
9249           center by default (fixes #76895)
9250         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
9251           all uses of Border3DSides.All with the explicit ORd together
9252           Left|Right|Top|Bottom because I assume that nobody was aware 
9253           that All also implies a center fill. Most places I checked had
9254           a fill right above.
9255         * ProgressBarStyle.cs: Added
9256
9257 2006-03-13  Mike Kestner  <mkestner@novell.com>
9258
9259         * ListView.cs: fix breakage in drag shadow header positioning 
9260         from Peter's csc compilation fix.
9261
9262 2006-03-13  Mike Kestner  <mkestner@novell.com>
9263
9264         * ListView.cs: fix NRE produced by backspacing twice in a focused
9265         FileDialog.
9266
9267 2006-03-13  Mike Kestner  <mkestner@novell.com>
9268
9269         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
9270
9271 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9272
9273         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
9274           be changed
9275         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
9276           the allowed size before making programmatic size changes
9277
9278 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
9279
9280         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
9281           set, metacity is broken and will still use the emty sizes in 
9282           the struct. (Fix for #77089)
9283
9284 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
9285
9286         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
9287           WindowExStyles and marked both enums as Flags
9288         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
9289           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
9290           to match WindowStyles split
9291         * XplatUIX11.cs:
9292           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
9293           - Updated to match WindowStyles split
9294         * XplatUIWin32.cs:
9295           - Fixed FosterParent creation, was using ExStyle on the Style field
9296             (This should help with Popup focus issues)
9297           - Updated to match WindowStyles split
9298
9299 2006-03-13  Jackson Harper  <jackson@ximian.com>
9300
9301         * MdiWindowManager.cs: Use the system menu height. Fixes some
9302         strange sizing issues.
9303
9304 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9305
9306         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
9307         * TextBoxBase.cs:
9308           - Scroll to caret after inserting text (#77672)
9309           - Make scroll range one pixel higher, fixes off-by-one error (and
9310             makes underlines visible on the last line)
9311
9312 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
9313
9314         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
9315           the keyboard state from being stuck with keys in 'pressed' state when
9316           focus is switched away via keyboard
9317         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
9318           reset the keyboard if no X11 KeyUp events are expected to come
9319         * X11Structs.cs: Switched type of Visible to bool to match driver
9320
9321 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
9322
9323         * TextControl.cs:
9324           - Switched caret to be just 1 pixel wide, matches MS and looks less
9325             clunky
9326           - Moved caret display 1 pixel down from the top of the control
9327             to improve view
9328           - InsertCharAtCharet: Update the selection start if moving the caret
9329             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
9330           - No longer always creating the caret when the caret methods are
9331             called. Only the actual ShowCaret/HideCaret will do that now
9332           - Only setting caret visible if the owner control has focus
9333           - UpdateView: Added invalidation-shortcut logic for center and right 
9334             aligned text. Previously we'd update all according to the left
9335             logic which caused drawing errors. Also fixed height of invalidated
9336             areas, now properly invalidating the whole area (was off-by-one)
9337           - owner_HandleCreated: Always generate the document when the
9338             handle is created; this ensures that 
9339         * TextBoxBase.cs:
9340           - Fixed situation where caret would disappear under the right
9341             window border, also improved scrolling behaviour on left-
9342             aligned textboxes
9343           - Fixed right-aligned textboxes to have a border to the
9344             right instead of the caret being under the right border
9345         * XplatUIX11.cs:
9346           - Switched from 'nested' to simple visible/not visible tracking 
9347             for caret (part of fix for #77671)
9348           - No longer passing through translated FocusIn/FocusOut messages
9349             since we were notifying too often and the wrong windows. Instead
9350             we just notify our focussed window of receiving or loosing focus
9351         * XplatUIWin32.cs: Switched from 'nested' show/hide 
9352           counting for caret to simple visible yes/no behaviour (part of 
9353           fix for #77671)
9354
9355 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9356
9357         * Mime.cs: Remove debug code...
9358
9359 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
9360
9361         * MimeGenerated.cs: Removed
9362         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
9363           and subclasses) from /usr/(local/)share/mime and
9364           $HOME/.local/share/mime.
9365
9366 2006-03-10  Jackson Harper  <jackson@ximian.com>
9367
9368         * MdiWindowManager.cs: Recalc the NC area when a window is
9369         maximized/restored so that the menu area is drawn on forms that
9370         don't have a menu.
9371
9372 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9373
9374         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
9375           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
9376           us to force a WM_NCCALCRESIZE message being sent. This is needed
9377           for MDI maximizing.
9378
9379 2006-03-10  Jackson Harper  <jackson@ximian.com>
9380
9381         * Form.cs: We need to use the ActiveMenu when calculating menu
9382         height.
9383         - Fix nullref when the window manager hasn't been created yet.
9384         * Control.cs: Fix nullref when we try to bring a control to the
9385         front that has no parent.
9386         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
9387         height.
9388         - Add a dummy item to the maximized menu so it always has the
9389         correct height. Otherwise when there are no menus we don't get our
9390         icon and buttons.
9391         
9392
9393 2006-03-10  Jackson Harper  <jackson@ximian.com>
9394
9395         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
9396         stuff.
9397         * Form.cs: Make the window_state internal so the window managers
9398         can track it.
9399         - When an MDI child is maximized let its window manager create the
9400         main menu (so it can add its icon).
9401         - Notify the window managers of state changes
9402         - Let the window manager paint its buttons and handle button
9403         clicks on the menu when it is maximized.
9404         * InternalWindowManager.cs: Move the prev_bounds into the mdi
9405         window manager, since tool windows don't use it, only mdi windows.
9406         - Tell the main form that we don't want it to handle NCPAINT
9407         itself to avoid extra painting.
9408         - Handle clicks on a maximized windows menu.
9409         - Handle window state changes
9410         - Handle minimize/maximize clicks correctly by setting the window state.
9411         * MdiWindowManager.cs: Add an icon menu that (the menu you get
9412         when clicking on the forms icon).
9413         - New method to create a forms maximized menu. This is its normal
9414         menu + an icon.
9415         - Handle window state changes.
9416         - Handle sizing of maximized windows.  Maximized windows are just
9417         drawn bigger then the parent visible area. All controls are still
9418         there, they are just outside the visible area (this matches windows).
9419         * MdiClient.cs: No scrollbars when a child window is maximized.
9420         - Let the children windows figure out how big they should be when
9421         sizing maximized windows.
9422         - Implement a version of ArrangeIconicWindows somewhat similar to
9423         Windows version.  There are some little differences, but I don't
9424         think any app will rely on the layout of minimized mdi windows.
9425
9426 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9427
9428         * Padding.cs: Several fixes to allow compiling with csc 2.0
9429
9430 2006-03-09  Jackson Harper  <jackson@ximian.com>
9431
9432         * Menu.cs:
9433         * MenuItem.cs: Cheap hack so we can add items to the list without
9434         the events being raised.  This allows adding mdi items during
9435         drawing. TODO: Should probably find a better time to add the items.
9436
9437 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9438
9439         * ThemeWin32Classic.cs:
9440           - CheckBox_DrawText: Added logic to not wrap if not enough space
9441             is available (Fix for bug #77727)
9442           - RadioButton_DrawText: Added logic not to wrap if not enough
9443             space is available (Fix for bug #77727). Also removed some
9444             duplicate code, DrawString always drawing the regular text
9445             before hitting the if statement.
9446
9447 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
9448
9449         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
9450
9451 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
9452
9453         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
9454         * ContainerControl.cs: Partial implementation of some 2.0 scaling
9455           methods. Moved the new 2.0 properties into alphabetical order with
9456           other properties and added MonoTODO tags
9457
9458 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9459
9460         * AutoScaleMode.cs: Added. Fix build.
9461
9462 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9463
9464         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
9465           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
9466           and was requiring premature handle creation for calls from above
9467         * Form.cs, Control.cs: Removed handle arguments from calls to
9468           CalculateClientRect()
9469
9470 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9471
9472         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
9473           drag_column.column_rect is MarshalByRef and can't be used that way
9474
9475 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9476
9477         * AxHost.cs: Added deserialization constructor for 
9478           AxHost+State (fixes 77743)
9479
9480 2006-03-09  Mike Kestner  <mkestner@novell.com>
9481
9482         * ListView.cs: 
9483         - Added column drag reordering for details view.
9484         - fixed behavior when mouse is dragged off column and
9485         AllowColumnReorder is false.
9486         * ColumnHeader.cs: clone the format too in Clone.
9487         * Theme.cs: add DrawListViewHeaderDragDetails method.
9488         * ThemeWin32Classic.cs:
9489         - impl new method for drawing drag column shadows and targets.
9490         - support column offset for details mode in DrawListViewItem.
9491
9492 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9493
9494         * TextControl.cs: Reset the char_count when the document is cleared
9495           (Fixes bug reported on mono-winforms mailing list)
9496
9497 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
9498
9499         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
9500           of calling base we simply process the key ourselves, since both
9501           DefWindowProc and the handled method would set m.Result. 
9502           (Fixes #77732)
9503
9504 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
9505
9506         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
9507           method also moves the window; instead implemented a copy of
9508           Control.ScaleCore (Part of fix for #77456)
9509         * TextBoxBase.cs: 
9510           - Created new CreateGraphicsInternal method to allow providing
9511             a graphics context when no handle is created without triggering
9512             handle creation. (Part of fix for #77456)
9513           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9514         * TextControl.cs: 
9515           - Switched Constructor to require TextBoxBase instead of Control (to
9516             allow uncast access to CreateGraphicsInternal)
9517           - Safeguarded use of owner.Handle property. No longer accessing it
9518             unless the handle is already created.
9519           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
9520           - Now triggering a recalc when owning control becomes visible
9521         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
9522           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
9523           premature handle creation (Part of fix for #77456)
9524         * Control.cs:
9525           - We now only destroy our double-buffering buffers when the
9526             control is resized or disposed, but not when visibility
9527             changes. (The code even re-created them twice every time)
9528           - Now requiring a redraw of the buffer on visibility changes
9529             (fixes bug 77654 part 2)
9530           - Not passing OnParentVisibleChanged up unless the control
9531             is visible
9532           - CanFocus: Fixed to match MS documentation
9533           - Focus: Fixed to return actual focus state and to check if
9534             setting focus is legal before setting it
9535
9536 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
9537
9538         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
9539           when to draw focus rectangle by looking at parent focus and
9540           selected state instead. This fixes TabPages on Linux sometimes
9541           having none or multiple focus rectangles.
9542         * XplatUIX11.cs (SetFocus): 
9543           - Don't set the focus if the same window already has focus
9544           - Use SendMessage instead of PostMessage (like it's Win32
9545             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
9546             to match MS behaviour
9547         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
9548           are not selectable.
9549
9550 2006-03-07  Jackson Harper  <jackson@ximian.com>
9551
9552         * PictureBox.cs: Revert line I accidently committed last week.
9553
9554 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9555
9556         * Control.cs: 
9557           - Added new IsRecreating and ParentIsRecreating properties to
9558             allow testing if RecreateHandle has been called on ourselves
9559             or one of our parents
9560           - WndProc(WM_DESTROY): If our control handle is being recreated
9561             we immediately need to create the handle when receiving the
9562             destroy, that way our child windows find a valid parent handle
9563             when they themselves are being recreated upon WM_DESTROY receipt
9564             (fix for bug #77654 part 1)
9565         * XplatUIX11.cs:
9566           - DestroyWindow: WM_DESTROY must be sent to our own window before
9567             notifying any child windows. MS documents that child windows
9568             are still valid when WM_DESTROY is received. (Control now relies on
9569             this behaviour)
9570           - Added some fine-grain debug options
9571
9572 2006-03-06  Jackson Harper  <jackson@ximian.com>
9573
9574         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
9575         box and base calculations off this.
9576         * MdiChildContext.cs:
9577         * MdiWindowManager.cs: Don't need to ensure scrollbars here
9578         anymore.
9579         
9580 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
9581
9582         * Splitter.cs: In situations where the affected control is added
9583           to the parent's control list after the splitter, we would not
9584           populate affected. Now we try populating it on mousedown, if
9585           it's not already set, and force it to be re-set whenever our
9586           parent changes.
9587
9588 2006-03-03  Matt Hargett  <matt@use.net>
9589
9590         * Control.cs: implement Control.Padding
9591         * Padding.cs: -Padding.All returns -1 when constructing with the
9592         implicit default ctor
9593         -Padding.ToString() matches MS.NET
9594         * ContainerControl.cs: implement
9595         ContainerControl.AutoScaleDimensions
9596         * ListControl.cs: implement ListControl.FormattingEnabled
9597         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
9598         * ButtonBase.cs:
9599         * TabPage.cs: Implement UseVisualStyleBackColor.
9600         * PictureBox.cs: Implement PictureBox.InitialImage.
9601
9602 2006-03-03  Mike Kestner  <mkestner@novell.com>
9603
9604         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
9605         event declarations to proxy to base event.
9606         * ListViewItem.cs: update to use ItemControl.
9607         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
9608         * ThemeWin32Classic.cs: update to new ListView theme API and fix
9609         column header label rendering for 0 width columns.
9610
9611 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
9612
9613         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
9614           that causes the control to be created. Fixes #77476.
9615
9616 2006-03-02  Jackson Harper  <jackson@ximian.com>
9617
9618         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
9619         expose_pending.
9620
9621 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
9622
9623         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
9624           passed in for the EventArgs (fixes #77690)
9625
9626 2006-03-01  Jackson Harper  <jackson@ximian.com>
9627
9628         * ScrollBar.cs: Refresh afterbeing resized.
9629
9630 2006-02-28  Mike Kestner  <mkestner@novell.com>
9631
9632         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
9633         Clean up a tracker compile warning.
9634         * MenuItem.cs: add internal PerformPopup method.
9635         [Fixes #77457]
9636
9637 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9638
9639         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
9640           implicit expose) when the text is set to null
9641
9642 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
9643
9644         * RichTextBox.cs (FlushText): When newline is true, we always
9645           need to split the line, even if no text is on it and we may
9646           never eat newlines. (Fixes #77669)
9647
9648 2006-02-28  Mike Kestner  <mkestner@novell.com>
9649
9650         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
9651         and set Selected instead.
9652         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
9653         collections.
9654
9655 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
9656
9657         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
9658
9659 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
9660
9661         * FontDialog.cs:
9662           - Got rid of the panel. All controls are now directly added to
9663             the dialog form
9664           - It is now possible to set a font with the Font property
9665           - MinSize and MaxSize property do now what they should
9666           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
9667           - Searching and selecting a font with the font textbox works now,
9668             the same applies to the style and size textbox
9669           - Draw the correct 3D border in the example panel
9670           - Fixed a little mem leak (unused fonts didn't get disposed)
9671           - Many other internal updates/rewrites...
9672           - Fix typo
9673
9674 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9675
9676         * TextControl.cs: 
9677           - InsertRTFFromStream: Added 'number of characters inserted' argument
9678           - set_SelectedRTF: Now using the number of characters to calculate
9679             the new location for the selection and cursor (x/y cannot be used
9680             due to potentially already wrapped text)
9681
9682 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
9683
9684         * TextControl.cs: Added property and implemented means to allow 
9685           disabling recalculation of a document (can be used to speed up
9686           multiple inserts and is needed to make RTF inserts predictable, see
9687           bug #77659)
9688         * RichTextBox.cs: Using the new NoRecalc property of Document to
9689           keep x/y insert locations predictable. Also makes it faster inserting
9690           large chunks of RTF
9691
9692 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
9693
9694         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
9695           it's easier for a child control to handle the other messages without
9696           having to duplicate the special functionality
9697         * TextBoxBase.cs
9698           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
9699             code to handle processing the key ourselves, in order to get 
9700             access to the result of KeyEventArgs.Handled. We now only call 
9701             ProcessKey if they key hasn't been handled already. Fixes #77526.
9702           - set_Text: If null or empty string is given, just clear the 
9703             document. Fixes part of #77526
9704
9705 2006-02-27  Jackson Harper  <jackson@ximian.com>
9706
9707         * SizeGrip.cs: Paint the background color before painting the grip
9708         so things look right.
9709         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
9710
9711 2006-02-27  Mike Kestner  <mkestner@novell.com>
9712
9713         * ListView.cs:
9714           - Restructure layout and invalidation model to remove a ton of
9715           flicker from the control and speed up performance in general.
9716           - Add manual column resize, flickers like crazy, but I already have
9717           some ideas on how I'll fix that. (#76822)
9718           - Merge the three Icon-based views into a single layout method.
9719           - Move item selection interaction logic from the item since 
9720           interaction with the collections is more appropriate to the view.
9721           - Deselection on non-item clicks.
9722         * ListViewItem.cs:
9723           - Encapsulate most of the layout. Add some internal props to trigger
9724           layout.  Move to a model where Items invalidate themselves instead
9725           of just invalidating the whole control every time something changes.
9726           - Invalidate on Text/Caption changes.
9727           - switch to an offset based layout model to avoid having to absolute
9728           position every element on item moves.
9729           - correct checkbox layout to conform to MS layout.
9730         * ThemeWin32Classic.cs:
9731           - refactor some column header drawing code.
9732           - fix string justification for column headers (#76821)
9733           - make SmallIcon labels top justified for compat with MS impl.
9734         * ThemeClearlooks.cs:
9735           - adjust to new ListViewItem internal checkbox bounds api.
9736
9737 2006-02-27  Jackson Harper  <jackson@ximian.com>
9738
9739         * Control.cs:  Change where implicit controls fall in the zorder.
9740         They are now on top of all children.
9741         - Synced AddImplicit code with Add
9742         - Removed unused enumerator.
9743         * SizeGrip.cs: Remove the TODO as its been TODONE.
9744
9745 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
9746
9747         * TextControl.cs(Insert): Combine the last lines unless the insertion
9748           string ends with \n\n, otherwise we leave one line too many (Fixes
9749           something I noticed with the testapp for #77526; the bug itself was
9750           already fixed in the previous checkin)
9751
9752 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * RichTextBox.cs:
9755           - SelectionColor and SelectionFont methods no longer set absolute
9756             styles. Instead, the keep font or color respectively (This 
9757             resolves a long-standing FIXME in the code)
9758           - When flushing RTF text, the insert code now considers text trailing
9759             behind the insertion point (Fixes the bug where when replacing
9760             the selected text via SelectedRTF the remainder of the line behind 
9761             the selection would stay on the first insertion line)
9762         * TextBoxBase.cs:
9763           - AppendText now updates the selection points after inserting text
9764           - AppendText now ensures that the last tag (sometimes 0-length) of
9765             the document is used for the style information (Fixes part of 
9766             bug #77220)
9767         * TextControl.cs:
9768           - Created new FontDefiniton class to allow describing partial style
9769             changes
9770           - StreamLine() now takes a lines argument, to allow it to decide
9771             whether an encountered zero-length tag is the last in the document
9772             (which must be kept to not loose the font/color contained in it,
9773             for later appends)
9774           - Created Combine() and Split() methods for Marker structs, to 
9775             support marker updates due to reformatted documents (soft line
9776             wraps)
9777           - Implemented Document.CaretTag setter
9778           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
9779             of the last line (Not the cause, but also exposed by bug #77220)
9780           - Added LineTag argument to InsertString method, to allow callers
9781             to force a certain tag to be used (required to force use of the
9782             trailing zero-length tag of a document)
9783           - Now updating markers in Combine(), to avoid stale tag markers
9784           - Added some method descriptions to aid maintenance
9785           - Implemented new FormatText concept, allowing additive/subtractive
9786             formatting by only specifying the components that are to be 
9787             changed. This was needed for resolving the RTB.SelectedColor/
9788             RTB.SelectedFont fixmes
9789           - Added Break() support method to allow breaking up linetags (used
9790             for partial formatting)
9791           - Added GenerateTextFormat() method. It is used for partial 
9792             formatting and allows to generate a full font/color from given
9793             attributes and an existing tag.
9794
9795 2006-02-26  Jackson Harper  <jackson@ximian.com>
9796
9797         * XplatUIX11.cs:  Use the correct caption height.
9798         - Translate hittest coordinates to screen coords to match MS.
9799         * XplatUIWin32.cs: When we create MDI windows we need to reset
9800         some of the style flags, so we get a nice blank window, and can
9801         draw all the decorations ourselves.
9802         - Set a clipping rectangle on the non client paint event, the
9803         window manager drawing code needs one.
9804         * Form.cs: The window manager needs to know when the window state
9805         has been updated.
9806         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
9807         don't need to factor in border and title sizes in these
9808         methods. TODO: Remove the args and fix the call points.
9809         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
9810         properly.
9811         - Let the driver set the cursors.
9812         - Improve active window handling
9813         - Correct sizes for title bars and buttons.
9814         - Match MS drawing better
9815         * MdiWindowManager.cs: We don't need to handle border style
9816         updates specially anymore.
9817         - Check for scrollbars when windows are done moving
9818         - Handle Active properly.
9819         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
9820         correctly. I am spewing the exception though, so we don't hide the
9821         bugs.
9822         
9823 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
9824
9825         * DataGridViewRowPostPaintEventArgs.cs,
9826           DataGridViewCellPaintingEventArgs.cs,
9827           DataGridViewRowCollection.cs,
9828           DataGridViewRowPrePaintEventArgs.cs,
9829           DataGridViewCell.cs: Clear a few warnings and implement a few
9830           exceptions that should be thrown.
9831
9832 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9833
9834         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
9835           'inheriting' our parent's (non-default) cursor. (Part of
9836            the fix for #77479)
9837
9838 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
9839
9840         * XplatUIX11.cs: Fixed cast to make csc happy
9841
9842 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
9843
9844         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
9845           it's for the client area (part of fix for #77479 and needed
9846           for MDI window cursor handling)
9847         * XplatUIX11.cs
9848           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
9849             the appropriate default cursors and also passing the message
9850             up the parent chain 
9851           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
9852             for non-client areas
9853
9854 2006-02-15  Jackson Harper  <jackson@ximian.com>
9855
9856         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
9857         is a real MDI window
9858
9859 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
9860
9861         * X11DesktopColors.cs: Instead of checking the desktop session
9862           string for "KDE" check if it starts with "KDE"
9863
9864 2006-02-10  Jackson Harper  <jackson@ximian.com>
9865
9866         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
9867         systems).
9868
9869 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
9870
9871         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
9872           errors
9873         * ColorDialog.cs:
9874           - Got rid of the panel. All controls are now directly added to
9875             the dialog form
9876           - Changed to mono coding style
9877
9878 2006-02-10  Jackson Harper  <jackson@ximian.com>
9879
9880         * InternalWindowManager.cs: We don't need the set visibility to
9881         false hack anymore now that peter has written beautiful shutdown
9882         code.
9883
9884 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
9885
9886         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
9887           where already explicitly destroyed
9888
9889 2006-02-10  Jackson Harper  <jackson@ximian.com>
9890
9891         * MdiClient.cs: Handle the case where windows are too high or to
9892         the left and we need scrollbars.
9893
9894 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
9895
9896         * MimeIcon.cs: Added some icons
9897         * FileDialog.cs:
9898           - Fixed bug #77477
9899           - Got rid of the panel. All controls are now directly added to
9900             the dialog form
9901           - Changed to mono coding style
9902           - On Linux "My Computer" and "My Network" will now show some
9903             more usefull information. A new class, MasterMount, gathers
9904             this information from /proc/mount. Updated MWFFileView to make
9905             use of this information
9906           - Fixed a bug that caused FileDialog to crash when
9907             ".recently_used" file had a zero size
9908           - FilterIndex does now what it should
9909           - Some Refactoring
9910         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
9911             FileDialog changes
9912
9913 2006-02-09  Jackson Harper  <jackson@ximian.com>
9914
9915         * ComboBox.cs: Don't touch if null.
9916
9917 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
9918
9919         * Cursor.cs: 64bit safeness fix
9920         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
9921
9922 2006-02-09  Jackson Harper  <jackson@ximian.com>
9923
9924         * Form.cs: If a form is made into an MDI form update the styles so
9925         all the props can get set correctly.
9926         - Kill the mdi_container when we dont need it anymore.
9927         * InternalWindowManager.cs: Add missing NOT
9928
9929 2006-02-08  Jackson Harper  <jackson@ximian.com>
9930
9931         * InternalWindowManager.cs: Respek clipping when drawing MDi
9932         decorations.
9933
9934 2006-02-08  Jackson Harper  <jackson@ximian.com>
9935
9936         * Hwnd.cs: Add bits to track non client expose events.
9937         * XplatUIX11.cs: Track non client expose events on the hwnd. This
9938         gives us a proper invalid rect and will allow for some nice
9939         optimizations with NC client drawing
9940         - MDI windows are children windows, so move their style handling
9941         into the child window block.
9942         * InternalWindowManager.cs: Remove a state reset that was
9943         getting invoked at the wrong time. Fixes managed windows getting
9944         into a 'stuck' captured state.
9945
9946 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
9947
9948         * TextControl.cs (Document.ctor): Now initializing 
9949           selection_anchor. Fixes #77493
9950
9951 2006-02-07  Jackson Harper  <jackson@ximian.com>
9952
9953         * TrackBar.cs: The increment/decrements were backwards.
9954
9955 2006-02-07  Mike Kestner  <mkestner@novell.com>
9956
9957         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
9958         to the instance itself.
9959
9960 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
9961
9962         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
9963           on ulongs and pointers, the size differs between 32bit and 64bit
9964           systems. 
9965
9966 2006-02-07  Mike Kestner  <mkestner@novell.com>
9967
9968         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
9969         for 64 bit platforms to work around a metacity bug. 
9970
9971 2006-02-07  Jackson Harper  <jackson@ximian.com>
9972
9973         * TrackBar.cs: Process the input keys we need, and hookup to
9974         KeyDown instead of using WndProc, so we get key messages.
9975
9976 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
9977
9978         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
9979           machine we're on. 
9980         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
9981           we need to translate the XdndVersion atoms array before sending it
9982
9983 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
9984
9985         * XplatUIX11.cs: 
9986           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
9987             number of bits for the property, not the number of bytes. The
9988             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
9989             but would not crash since it specified 8 bits instead of 4 bits)
9990           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
9991             defined as XID -> long in the C headers)
9992           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
9993             references since those are now IntPtr to begin with
9994           - Switched all Atom.XXX 'int' casts to IntPtr casts
9995           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
9996           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
9997           - Added XChangeActivePointerGrab DllImport (for X11DnD)
9998         * X11Structs.cs:
9999           - Changed 'int' type for Atoms in XEvent structures to IntPtr
10000           - Changed atom in HoverStruct to be IntPtr
10001         * X11DnD.cs:
10002           - Removed local DllImports, switched code to use those from XplatUIX11
10003           - Removed/fixed casts related to the switch of Atom to be a IntPtr
10004
10005 2006-02-06  Mike Kestner  <mkestner@novell.com>
10006
10007         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
10008         method signatures in the import region.  There may still be some
10009         lingering struct marshaling issues, as I didn't drill down into those.
10010         Yet.
10011
10012 2006-02-06  Jackson Harper  <jackson@ximian.com>
10013
10014         * ComboBox.cs: Dont manually set the top_item, this is computed
10015         when the scrollbar position is set.
10016
10017 2006-02-06  Mike Kestner  <mkestner@novell.com>
10018
10019         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
10020         startup crashes on amd64.  There's other fixes needed.  All pinvoke
10021         usage of Atom needs to be mapped to IntPtr for example.  And there are
10022         likely other int/long issues to be addressed.
10023
10024 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
10025
10026         * FileDialog.cs: One more...
10027
10028 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10029
10030         * FileDialog.cs: Next try
10031
10032 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10033
10034         * FileDialog.cs: First part of fix for #77464
10035
10036 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
10037
10038         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
10039           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
10040           AcceptButton border drawing.
10041
10042 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
10043
10044         * Form.cs: Moved positioning of form after auto scaling is applied,
10045           otherwise it would possibly use wrong form size.
10046
10047 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
10048
10049         * Control.cs (RecreateHandle): No need to re-create any child
10050           controls, the child windows will get destroyed automatically by
10051           the windowing system or driver, and re-created when the handle
10052           is being accessed the first time. Fixes #77456
10053         * Form.cs: No longer setting the form to closing if the handle is 
10054           being recreated. This seems like the right thing to do, don't
10055           have a bug or testcase for this, though.
10056
10057 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10058
10059         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
10060           controls to avoid unwanted side effects
10061
10062 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
10063
10064         * Control.cs: 
10065           - ScaleCore needs to scale the bounds, not the ClientSize of the 
10066             control. Fixes #77416.
10067           - DefaultSize is 0,0 for control
10068         * TextBoxBase.cs: 
10069           - DefaultSize is 100, 20
10070           - SetBoundsCore: Now enforcing the height, no matter if the provided
10071             height is more or less than the preferred one, as long as AutoSize
10072             is on
10073         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
10074
10075 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
10076
10077         * Control.cs:
10078           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
10079             call unless both performLayout is true *and* we have a pending
10080             layout change
10081           - ResumeLayout: MS does not completely nest Suspend and Resume,
10082             they bottom out at 0, fixed our code to match that.
10083           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
10084             SetBoundsCore, we were updating even when we shouldn't. This fixes
10085             swf-anchors mis-anchoring when resizing the app fast and lots.
10086           - UpdateDistances: Now only setting the left and top distance if 
10087             we have a parent and are not suspended, this is based on
10088             a suggestion by Don Edvaldson in bug #77355.
10089           - OnVisibleChanged: Fixed logic when to create the control. We may
10090             not create the control if we have no parent or if it's not visible;
10091             switched to using Visible property instead of is_visible field 
10092             since the property also considers parent states. This fixes a bug
10093             when starting Paint.Net
10094
10095 2006-02-02  Jackson Harper  <jackson@ximian.com>
10096
10097         * Form.cs: If the forms handle hasn't been created yet don't call
10098         into xplatui to make it top most, just set the topmost flag on the
10099         form in CreateParams
10100         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
10101
10102 2006-02-01  Jackson Harper  <jackson@ximian.com>
10103
10104         * ScrollableControl.cs: Refactored the Recalculate method a
10105         little, this wasn't handling all the variants of bottom and right
10106         bars needed to be added and added/removed based on their
10107         counterparts being added/removed (which changes the drawable
10108         size). Also we special case client widths and heights of 0 and
10109         don't add the scrollbar for those.
10110
10111 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
10112
10113         * XplatUIX11.cs: 
10114           - Added method to get AbsoluteGeometry(); currently unused, but might
10115             be used in the future, if we try again to figure out toplevel
10116             coordinates with some more crappy window managers
10117           - Added FrameExtents() method to retrieve the WM set decoration size
10118           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
10119             to deal with at least KDE, FVWM and metacity (Fixes #77092)
10120         * Hwnd.cs: 
10121           - Added whacky_wm tracking var for metacity
10122           - Added logic to have default menu height if the actual menu height
10123             has not yet been calculated (part of fix for #77426)
10124         * Form.cs: Keep track whether client size has been set and re-set 
10125           it if a menu is added/removed afterwards (Fixes #77426)
10126
10127 2006-01-31  Jackson Harper  <jackson@ximian.com>
10128
10129         * Control.cs: When a new Site is set on the component attempt to
10130         pull the AmbientProperties from it.
10131
10132 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
10133
10134         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
10135           in the background of the owning form. Fixes #77332
10136
10137 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10138
10139         * MimeIcon.cs: Fix for #77409
10140
10141 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
10142
10143         * XplatUIX11GTK.cs: Initial import
10144
10145 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
10146
10147         * FixedSizeTextBox: fixes class signature
10148
10149 2006-01-30  Jackson Harper  <jackson@ximian.com>
10150
10151         * FixedSizeTextBox.cs: New internal class that represents a
10152         textBox that will not be scaled.
10153         * TreeView.cs:
10154         * ComboBox.cs:
10155         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
10156         standard TextBox.
10157                 
10158 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
10159
10160         * XplatUIX11.cs: Retrieve default screen number instead of
10161           assuming 0. Attempted fix for #77318
10162
10163 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
10164
10165         * XplatUIWin32.cs: 
10166           - GetWindowPos: When a window is parented by FosterParent, use 
10167             the desktop instead of FosterParent as the base to get coordinates
10168           - CreateWindow: Don't make FosterParent the parent window for Popups
10169             if we don't want a taskbar entry, Popups automatically don't get one
10170         * Hwnd.cs: Need to call remove to actually remove the key from the
10171           hash table
10172
10173 2006-01-30  Mike Kestner  <mkestner@novell.com>
10174
10175         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
10176
10177 2006-01-30  Jackson Harper  <jackson@ximian.com>
10178
10179         * TreeView.cs:
10180         * TreeNode.cs: Raise events no matter how the treenode is
10181         checked. Patch by Don Edvalson.
10182
10183 2006-01-30  Jackson Harper  <jackson@ximian.com>
10184
10185         * TreeNode.cs: Signature fix.
10186
10187 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
10188
10189         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
10190
10191 2006-01-20  Mike Kestner  <mkestner@novell.com>
10192
10193         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
10194         event forwarding when menus are active.
10195         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
10196         Most of the patch is pdb's with a little rework.
10197
10198 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10199
10200         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
10201           Removed GetMenuDC and ReleaseMenuDC methods; replaced
10202           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
10203         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
10204         * InternalWindowManager.cs: Added use of PaintEventStart/End to
10205           handling of WM_NCPAINT message, now passing the PaintEventArgs to
10206           the PaintWindowDecorations method
10207         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
10208         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
10209         * MenuAPI.cs: Made tracker window invisible
10210         * XplatUIWin32.cs:
10211           - Removed GetMenuDC and ReleaseMenuDC methods
10212           - Implemented the client=false path for PaintEventStart and
10213             PaintEventEnd
10214
10215 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10216
10217         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
10218         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
10219           styles
10220         * Form.cs: 
10221           - MaximizeBox, MinimizeBox: Recreate the handle when setting
10222             the style
10223           - CreateParams: Reworked the styles to match MS look'n'feel,
10224             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
10225             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
10226
10227 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
10228
10229         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
10230           window is not mapped, since otherwise every form that's being 
10231           created is considered minimized, which is wrong.
10232         * Form.cs: Catching the exception and returning our internal value
10233           instead
10234
10235 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
10236
10237         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
10238           SetWindowMinMax() to have means to tell the driver about the minimum,
10239           maximum and maximized state window sizes. (Part of the fix for #76485)
10240         * Form.cs:
10241           - Implemented tracking of minimum and maximum window size, now calling
10242             new SetWindowMinMax() driver method to tell the driver (Part of the
10243             fix for #76485)
10244           - Finished handling of WM_GETMINMAXINFO method, now setting all values
10245             (Completes fix for #76485)
10246           - Calling new SetWindowMinMax driver method when the handle for a 
10247             form is created, to make sure the driver knows about it even if
10248             the values have been set before the window was created
10249           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
10250             to avoid messing up our anchoring calculations (partial fix
10251             for #77355)
10252         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
10253         * XplatUIX11.cs:
10254           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
10255           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
10256             (and presumably other freedesktop.org compliant WMs). Left the
10257             assumption unmapped=minimized, needed for SetVisible to work.
10258           - Now setting the window state when creating windows
10259           - Fixed SetVisible to consider/set the window state when mapping
10260             a Form. We cannot set the state before it's mapped, and we cannot
10261             use Form.WindowState once it's mapped (since it would ask the
10262             driver and get 'normal'. Therefore, we grab the state before
10263             mapping, map, and then set state.
10264           - Implmemented SetWindowMinMax method; Metacity does not seem to
10265             honor the ZoomHints, though.
10266         * XplatUIWin32.cs:
10267           - Removed MINMAXINFO (moved to XplatUIStructs)
10268           - Added SetWindowMinMax stub (on Win32 the only way to set that
10269             information is in response to the WM_GETMINMAXINFO message, which
10270             is handled in Form.cs)
10271           - Added logic to SetVisible to set the proper window state when a 
10272             form is made visible (fixes #75720)
10273
10274 2006-01-26  Jackson Harper  <jackson@ximian.com>
10275
10276         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
10277         same way we handle them with Invoke.
10278
10279 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
10280
10281         * Form.cs:
10282           - Added tracking of window state so CreateParams can return
10283             the appropriate style
10284           - Moved setting of WS_CAPTION style in CreateParams to allow
10285             styles without caption
10286         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
10287           control if the TextBox property is accessed. Fixes #77345
10288         * Control.cs:
10289           - get_Created: now uses is_disposed and is_created to determine
10290             return value (suggested by Jackson)
10291           - CreateHandle: No longer exits if the handle is being recreated
10292           - RecreateHandle: If the handle is not yet created call the 
10293             appropriate method to create either control or handle. If the
10294             control is already created CreateHandle will simply exit instead
10295             of just creating the handle
10296         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
10297           now SendMessage WM_DESTROY directly to the control when DestroyWindow
10298           is called.
10299         * XplatUIX11.cs: 
10300           - When DestroyWindow is called, instead of waiting for the 
10301             DestroyNotification from X11, we directly post it to the WndProc
10302             and immediately dispose the hwnd object.
10303             Same applies to DestroyChildWindows, and this obsoletes the
10304             expose_pending tracking. Contrary to Win32 behaviour we destroy our
10305             child windows before our own, to avoid X11 errors.
10306           - Removed the direct sending of WM_PAINT on UpdateWindow
10307         * XplatUIWin32.cs:
10308           - Reworked DoEvents and GetMessage to allow access to internal queue
10309             even when trying non-blocking access to the queue.  Fixes #77335. 
10310             Based on a patch suggestion by Don Edvalson. The new private
10311             GetMessage can now also be used as a backend for a PeekMessage
10312             frontend version.
10313         * XplatUI.cs: Improved debug output for CreateWindow
10314
10315 2006-01-25  Jackson Harper  <jackson@ximian.com>
10316
10317         * Help.cs: Allow param to be null. Patch by Don Edvalson.
10318
10319 2006-01-24  Jackson Harper  <jackson@ximian.com>
10320
10321         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
10322         when we have a MaxDropItems lower then the selected index.
10323
10324 2006-01-24  Jackson Harper  <jackson@ximian.com>
10325
10326         * Control.cs: Don't allow selection of non visible controls, allow
10327         selection of controls without parents.
10328
10329 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10330
10331         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
10332         * DataGridDrawingLogic.cs: Add editing row only when is necessary
10333
10334 2006-01-23  Jackson Harper  <jackson@ximian.com>
10335
10336         * UpDownBase.cs: Make the textbox handle all the selection and
10337         tabbing. This fixes tabing to updown controls.
10338
10339 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
10340
10341         * TextBoxBase.cs: fixes exception thown the object was null
10342
10343 2006-01-23  Jackson Harper  <jackson@ximian.com>
10344
10345         * ButtonBase.cs: Just use the base CreateParams. They set
10346         visibility and enabled correctly.
10347         * ComboBox.cs:
10348         * TrackBar.cs:
10349         * MonthCalendar.cs: Lets let the base set as much of the
10350         createparams as possible so we don't have duplicate code all over
10351         the place.
10352
10353 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
10354
10355         * ThemeGtk.cs: Added TrackBar and some experimental code to
10356           get double buffering back
10357
10358 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10359
10360         * DataGrid.cs: Allows row number set internally higher than the last
10361         when creating a new row. Restores the editing functionality.
10362
10363 2006-01-20  Mike Kestner  <mkestner@novell.com>
10364
10365         * MimeIcon.cs: delay Image creation until the icons are accessed
10366         instead of creating 190 scaled images on GnomeHandler startup.
10367
10368 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
10369
10370         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
10371           first call base before processing the event. Fixes #77279
10372
10373 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
10374
10375         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
10376           that the stride for the GDI bitmap would match the stride of
10377           a DIB or a Cursor.
10378
10379 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
10380
10381         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
10382
10383 2006-01-19  Jackson Harper  <jackson@ximian.com>
10384
10385         * ComboBox.cs: Hookup the text controls keydown event so we get
10386         those when the text control has the focus.
10387
10388 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10389
10390         * Label.cs: Now using the base events instead of defining new ones;
10391           this allows us to just call the base properties without having to
10392           duplicate all base property logic 
10393
10394 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10395
10396         * Label.cs: A label by default is not a tabstop (Fixes one of our
10397           failing nunit tests)
10398
10399 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
10400
10401         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
10402         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
10403
10404 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
10405
10406         * Cursor.cs: Reimplemented creating cursor bitmaps without using
10407           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
10408           This fixes #77218
10409         * XplatUIWin32.cs: 
10410           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
10411             constructor creates images that can't be saved. Part of the fix
10412             for #76103
10413           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
10414           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
10415             bug fix for handling window state in forms properly)
10416
10417 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10418
10419         * ThemeGtk.cs: Simplify ScrollBar drawing
10420
10421 2006-01-18  Jackson Harper  <jackson@ximian.com>
10422
10423         * Splitter.cs: Set the default dock style for the splitter control
10424         in the constructor.
10425
10426 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10427
10428         * ThemeGtk.cs: Corrected StateType and ShadowType for
10429           gtk_paint_box
10430
10431 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10432
10433         * Control.cs: Make use of Theme.DoubleBufferingSupported
10434         * ThemeGtk.cs:
10435           - Added drawing for flat style buttons
10436           - Added ScrollBar drawing
10437
10438 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
10439
10440         * ThemeClearlooks.cs: Removed some unneeded code.
10441         * ThemeGtk.cs: First part of ThemeGtk enhancements.
10442
10443 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10444
10445         * LinkLabel.cs: We need to update the hover drawing when
10446           leaving the control as well.
10447
10448 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
10449
10450         * DataGrid.cs: Clicking on non empty areas in the columns
10451            area was giving an exception
10452
10453 2006-01-17  Jackson Harper  <jackson@ximian.com>
10454
10455         * ThemeWin32Classic.cs:
10456         * ListView.cs: Do not draw/clip the headers when the header style
10457         is None.
10458
10459 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10460
10461         * DataGrid.cs: Fixes 77260
10462         
10463 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
10464
10465         * DataGrid.cs: Clicking on a column on a empty grid was giving
10466           an exception
10467
10468 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
10469
10470         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
10471           or any keypress will crash the grid.
10472
10473 2006-01-17  Mike Kestner  <mkestner@novell.com>
10474
10475         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
10476         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
10477         invisible/previously-visible items.
10478         [Fixes #76909]
10479
10480 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
10481
10482         * ThemeClearlooks.cs:
10483         - Added CL_Draw_Button method; now other theme controls that are 
10484           not derived from button or do not have a button can draw buttons
10485           too
10486         - Updated ComboBox drawing
10487         - Beautified RadioButton drawing
10488         - Corrected drawing of bottom and left tabs
10489         - Beautified DateTimePicker and MonthCalendar
10490         - Added CPDrawButton and CPDrawRadioButton
10491
10492 2006-01-16  Jackson Harper  <jackson@ximian.com>
10493
10494         * ComboBox.cs: Set the initial value of the scrollbar to the
10495         current index. Reduce the numbers of refreshs and IndexOfs called.
10496
10497 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
10498
10499         * FileDialog.cs: When the file listview is focused hitting the
10500           backspace key moves the fileview to the parent directory
10501
10502 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10503
10504         * Form.cs: 
10505           - Added RecreateHandle call when changing taskbar visibility to 
10506             trigger reparenting in Win32 driver (Fixes #75719)
10507           - If a window has minimize or maximize buttons, it cannot have
10508             a help button
10509         * XplatUIWin32.cs:
10510           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
10511             the toplevel form with FosterParent (A toolwindow not on the
10512             taskbar) (Fixes #75719)
10513           - Made FosterParent a toolwindow
10514
10515 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10516
10517         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
10518
10519 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10520
10521         * ToolTip.cs: If SetToolTip is called from a control and the mouse
10522           is currently over that control, make sure that tooltip_window.Text
10523           gets updated
10524
10525 2006-01-13  Mike Kestner  <mkestner@novell.com>
10526
10527         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
10528
10529 2006-01-13  Jackson Harper  <jackson@ximian.com>
10530
10531         * TreeView.cs: On MS GetNodeAt never actually factors in the X
10532         value passed.  Also redraw the selected node when we recieve
10533         focus, so tabbing between trees works correctly.
10534
10535 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
10536
10537         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
10538           ~/.gconf/%gconf-tree.xml, so use
10539           .gconf/desktop/gnome/interface/%gconf.xml
10540
10541 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10542
10543         * TextControl.cs: Draw text in gray if control is disabled
10544
10545 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
10546
10547         * TreeView.cs: Draw the focus rectangle outside the highlight, to
10548           make sure it's always visible. Fixes #76680.
10549
10550 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
10551
10552         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
10553
10554 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
10555
10556         * PageSetupDialog.cs: Added.
10557         * PrintDialog.cs: Attributes.
10558         * PrintPreviewControl.cs: Updates.
10559         * PrintPreviewDialog.cs: Updates.
10560         
10561 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10562
10563         * Control.cs: Undid my selection check fix, since it's not needed
10564         * TextBoxBase.cs:
10565           - Now considering the presence of hscroll/vscroll when sizing
10566             vscroll/hscroll respectively. Fixed bug #77077
10567           - Added Left/Up/Down/Right to IsInputKey list to prevent
10568             ContainerControl from stealing them. This fixes what I broke
10569             with my last checkin.
10570
10571 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
10572
10573         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
10574           I finally understand how the property can be set without a setter :-)
10575
10576 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10577
10578         * Application.cs:
10579           - Switched RunLoop to use static Message.Create to create a 
10580             Message object
10581           - Added PreProcessMessage call in runloop for keyboard events; this
10582             is part of the fix for #77219, I overlooked this originally in the
10583             MSDN doc for PreProcessMessage
10584         * Control.cs:
10585           - Removed call to PreProcessMessage from handling of keyboard 
10586             messages; it's supposed to be done in the message pump
10587           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
10588             per MSDN documentation.
10589           - IsInputChar: All chars are input chars by default; removed the 
10590             parent calling chain, MS does not document that
10591           - PreProcessMessage: If IsInputChar is true, we want to return false
10592             to allow dispatching of the message
10593           - When selecting the next control, now also check that we're not
10594             selecting ourselves again and therefore return a false positive.
10595         * TextBoxBase.cs:
10596           - Tried to match return values for IsInputKey and ProcessDialogKey
10597             to what MS returns; moved processing of our special keys outside
10598             ProcessDialogKey since MS does not seem to return true on those.
10599           - Moved code that previously was in ProcessDialogKey into new private
10600             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
10601           - Reworked handling of WM_CHAR to not have to duplicate code from
10602             Control.cs anymore, instead we simply call down to base.
10603            
10604 2006-01-12  Jackson Harper  <jackson@ximian.com>
10605
10606         * ComboBox.cs: We always need to refresh the text area when
10607         EndUpdate is called. Fixes the combobox in the file dialog.
10608         * Control.cs: Don't create the creator_thread until the controls
10609         handle is created.  Also in InvokeRequired we check if the
10610         creator_thread is null. This gives the effect of InvokeRequired
10611         returning true if the controls handle is not created yet, and
10612         matches MS.
10613
10614 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10615
10616         * XplatUI.cs:
10617           - Added StartLoop() driver method. This is used to allow drivers to
10618             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
10619             loop for a particular thread
10620           - Added EndLoop() driver method. This is called once the message
10621             pump for the thread is shut down
10622           - Added SupportsTransparency method to allow the driver to indicate
10623             opacity support for windows
10624         * Form.cs:
10625           - Removed TODO attribute, completed AllowTransparency property
10626           - Added documented logic to Opacity
10627         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
10628           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
10629           versions of CompatibleTextRendering
10630         * X11Structs.cs: Added opacity atom to our atom enumeration
10631         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
10632           of a form might be set before it's reparented by the WM, and we need
10633           the opacity value without calling up to Form)
10634         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
10635           SupportsTransparency() driver methods
10636         * Application.cs: Now calling StartLoop and EndLoop driver methods
10637         * XplatUIX11.cs:
10638           - Added opacity atom registration
10639           - Added StartLoop()/EndLoop() methods. They're empty right now but
10640             will need to get implemented when we switch to a per-thread queue
10641           - Implemented SupportsTransparency() method
10642           - Implemented SetWindowTransparency() method
10643           - Added support for setting the opacity value when a window is
10644             reparented (since the opacity needs to be set on the WM frame)
10645         * XplatUIOSX.cs, XplatUIWin32.cs:
10646           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
10647
10648 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10649
10650         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
10651
10652 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
10653
10654         * FileDialog.cs: Added ToolTip for MWFFileView
10655         * MimeIcon.cs: Rewrote GnomeHandler.
10656           - Get currently used gnome icon theme from
10657             ($HOME)/.gconf/%gconf-tree.xml
10658           - Make use of inherited icon themes
10659           - Support SVG icon themes like Tango via librsvg
10660
10661 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10662
10663         Revert's Jackson's revert which broke 2.0 builds.   Fix both
10664         builds. 
10665         
10666         * Application.cs: Move the use_compatible_text_rendering outside
10667         the NET_2_0 define.  If we ever need to use the
10668         use_compatible_text_rendering on the individual controls they will
10669         access the variable from the common shared code paths.
10670
10671 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
10672
10673         * XplatUI.cs:
10674           - Added more granular debug options
10675           - Added method to print both window text and id
10676           - Switched debug output to use new Window() debug method
10677           - Added IsEnabled() driver method
10678           - Added EnableWindow() driver method
10679         * Form.cs:
10680           - Removed end_modal; no longer needed, new loop handles termination
10681             via 'closing' variable
10682           - If form is modal, setting DialogResult will now initiate loop
10683             termination via 'closing' variable
10684           - Added support for is_enabled/WS_DISABLED to CreateParams
10685           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
10686             does all the work
10687           - Removed code that's now in RunLoop from ShowDialog()
10688           - Added various documented sanity checks to ShowDialog()
10689           - Added handling of WM_DESTROY message; we set 'closing' on getting
10690             the message to indicate the message pump to terminate
10691           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
10692             send by the Application.ExitThread method. (We send the message
10693             to destroy the window after all other events have been
10694             processed through the queue, instead of destroying the handle 
10695             directly)
10696           - Moved code from Close() method to WM_CLOSE handler; added logic
10697             to only send close-related events if the form is not displayed
10698             modal
10699         * Splitter.cs (..ctor): Fixed typo in resource name
10700         * Control.cs:
10701           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
10702             brush now
10703           - set_Cursor: Now only setting calling into XplatUI if the handle for
10704             the control is already created; this avoids implict handle creation
10705             or crashes if it's not created
10706           - set_Enabled: Now setting the enabled state via the new driver method
10707             instead of just tracking it
10708           - CreateParams: Added logic to set WS_DISABLED based on enabled state
10709           - CreateControl: Reordered event firing and method calls to more
10710             closely fire events in the order MS does. Now setting the
10711             enabled state in the driver when creating the control.
10712           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
10713             match MS order
10714         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
10715           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
10716         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
10717         * Hwnd.cs:
10718           - Added tracking of window enabled state (get_Enabled/set_Enabled)
10719           - Added EnabledHwnd property to easily allow a driver to find the
10720             handle of the first enabled window in the parent chain (this is
10721             used by drivers to pass up input events of disabled windows)
10722         * XplatUIDriver.cs: Added IsEnabled() method
10723         * Application.cs:
10724           - Removed crude and obsolete exiting tracking variable
10725           - Removed internal ModalRun(); replaced by RunLoop()
10726           - Implemented private CloseForms() method to allow closing all 
10727             windows owned by a particular (or all) threads
10728           - Exit() now properly closes all windows without forcing the message
10729             pump to quit
10730           - Removed obsolete InternalExit() method
10731           - Changed Run() methods to use new RunLoop() message pump
10732           - Implemented new RunLoop() method for both modal and non-modal forms
10733         * CommonDialog.cs:
10734           - get_CreateParams: Added setting of WS_DISABLED
10735           - Simplified ShowDialog(); now all the work is done in RunLoop(),
10736             invoked via Form.ShowDialog()
10737         * NativeWindow.cs: We don't remove the window from the collection when
10738           the handle is destroyed; there might still be messages for it in the
10739           queue (mainly the resulting WM_DESTROY); instead it will be removed
10740           when Control calls InvalidateHandle in the WM_DESTROY handler
10741         * XplatUIX11.cs:
10742           - CreateWindow: Added logic to handle the WS_DISABLED window style
10743           - EnableWindow: Implemented based on Hwnd.Enabled
10744           - GetMessage: Reset PostQuitState so the method can be called again
10745           - Implemented support for disabled windows (passing messages to the
10746             first enabled parent) in handling all input messages
10747           - Added optimizations for handling Expose events
10748           - Implemeted new driver method IsEnabled()
10749           - Now always resetting paint pending tracking vars when we start paint
10750           - Re-implemented UpdateWindow via just sending a WM_PAINT message
10751         * XplatUIOSX.cs: Added IsEnabled method stub
10752         * XplatUIWin32.cs: Implemented new IsEnabled() method
10753
10754 2006-01-11  Jackson Harper  <jackson@ximian.com>
10755
10756         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10757         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
10758         variables a little.
10759         * ColorDialog.cs: Clear out the old form before adding the new
10760         panel.  
10761
10762 2006-01-11  Jackson Harper  <jackson@ximian.com>
10763
10764         * X11Dnd.cs: Make sure to add all the text formats when adding
10765         strings to the data object.
10766         * TreeNodeCollection.cs: When adding to a sorted tree we need to
10767         do some redrawing too.  Also change the UpdateNode to an
10768         UpdateBelow so the newly added node gets painted.
10769         
10770 2006-01-11  Miguel de Icaza  <miguel@novell.com>
10771
10772         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
10773         LinkLabel.cs, PropertyGrid.cs: Implement the
10774         UseCompatibleTextRendering property for 2.x
10775
10776         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
10777
10778 2006-01-11  Jackson Harper  <jackson@ximian.com>
10779
10780         * TreeView.cs: Use the property for setting the selected node so
10781         the correct events get raised.
10782         * TreeNode.cs: Update the tree when the fore/back colours of a
10783         node are set.
10784
10785 2006-01-10  Jackson Harper  <jackson@ximian.com>
10786
10787         * TreeView.cs: Allow setting SelectedNode to null.
10788
10789 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10790
10791         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
10792
10793 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10794
10795         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
10796
10797 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10798
10799         * PrintDialog.cs: Added attributes and set default property values.
10800
10801 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10802
10803         * PrintControllerWithStatusDialog.cs: 
10804         Added PrintControllerWithStatusDialog.
10805
10806 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10807
10808         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
10809         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
10810
10811 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
10812
10813         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
10814
10815 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10816
10817         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
10818         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
10819
10820 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10821
10822         * MimeIcon.cs: Added internal class SVGUtil.
10823
10824 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
10825
10826         * FileDialog.cs: Don't crash if there are two files with the
10827           same name but different locations.
10828
10829 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
10830
10831         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
10832         dates across multiple month grids. Used to not highlight entire 
10833         month, but does now.
10834         
10835 2006-01-06  Jackson Harper  <jackson@ximian.com>
10836
10837         * MonthCalendar.cs: Removed DoEvents call to prevent a running
10838         message loop. Change timer intervals to numbers that seem more
10839         natural.
10840
10841 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
10842
10843         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
10844           object for location info since screen object is now implemented.
10845
10846 2006-01-05  Jackson Harper  <jackson@ximian.com>
10847
10848         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
10849         * AsyncMethodResult.cs: We no longer use a WeakReference for the
10850         AsyncMethodResult, this is because we ALWAYS want the
10851         ManualResetEvent to get set.
10852         * Control.cs: When disposing use an async invoke to call shutdown
10853         code, so that thigns don't block on the finalizer thread.  Also
10854         check if we even have a message loop before trying to send
10855         messages, if we don't then don't bother sending messages.
10856         - No more weak references for async methods
10857         * XplatUIDriver.cs: No more weak references for async methods.
10858
10859 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10860
10861         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
10862           returns two FontFamily with the same name
10863
10864 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10865
10866         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
10867           drawing disabled text. Instead using the ColorGrayText color
10868
10869 2006-01-04  Jackson Harper  <jackson@ximian.com>
10870
10871         * TreeNode.cs: redraw the node when its image index is changed.
10872
10873 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
10874
10875         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
10876           time I checked there are no others like it.
10877
10878 2006-01-04  Jackson Harper  <jackson@ximian.com>
10879
10880         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
10881         this gives the behavoir I was looking for.
10882         * Control.cs: Special case Invoking EventHandlers, this matches MS
10883         and fixes part of bug #76326.
10884
10885 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10886
10887         * ThemeClearlooks.cs, FileDialog.cs:
10888           - Reflect the latest Theme class changes
10889           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
10890             with DateTime
10891             
10892 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
10893
10894         * Theme.cs: Cache UI resource images and resize them if needed
10895
10896 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
10897
10898         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
10899           is called. This fixes the crash in Nexxia when setting the font
10900           attributes in the chat. [However, RTF needs a look-over to make sure
10901           that all SelectionXXX methods handle the special case that selection
10902           is empty and therefore the change must be applied to all text starting
10903           at the cursor/selection start]
10904
10905 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
10906
10907         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
10908           XplatUIOSX.cs: Added SendMessage and PostMessage methods
10909         * X11Keyboard.cs: Switched to new way of calling PostMessage
10910
10911 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
10912
10913         * Theme.cs: Added theme interface for images to allow the theme to
10914           control what images are used for things like FileDialog, MessageBox
10915           icons, etc.
10916         * MessageBox.cs: Now uses the new Theme icon/image interfaces
10917
10918 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
10919
10920         * FileDialog.cs:
10921           - Removed some dead code
10922           - Opening a recently used file does work now
10923           - Small UI enhancements
10924           - Refactoring
10925
10926 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
10927
10928         * FileDialog.cs: Forgot too add __MonoCS__
10929
10930 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
10931
10932         * FileDialog.cs: We are able to read recently used files now let's
10933           go on and write them.
10934
10935 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
10936
10937         * FileDialog.cs: Breathe some life into "last open"/"recently used"
10938           button
10939         * MimeIcon.cs: Do a check for the top level media type also
10940
10941 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
10942
10943         * ThemeClearlooks.cs:
10944           - Added CPDrawStringDisabled
10945           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
10946             some chars if the text doesn't fit into text_rect
10947           - DrawListViewItem: If View = View.LargeIcon center the image;
10948             rewrote the drawing of ListViewItem.Text if View = 
10949             View.LargeIcon
10950
10951 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
10952
10953         * MimeIcon.cs: Use default KDE icon theme if there is no
10954           "48x48" directory for the current icon theme, fixes #77114
10955         * Mime.cs: Disable not working and actually not used code. 
10956         * ThemeWin32Classic.cs:
10957           - Replace "new SolidBrush" in GetControlBackBrush and
10958             GetControlForeBrush with ResPool.GetSolidBrush
10959           - Changed DrawListViewItem from private to protected virtual
10960         * FileDialog.cs:
10961           - Added form.MaximizeBox = true
10962           - Don't throw an exception if there is a broken symbolic link
10963
10964 2005-12-23  Jackson Harper  <jackson@ximian.com>
10965
10966         * TabControl.cs: Give the panels focus, keyboard navigation is
10967         fixed so this works correctly now.
10968         - We need these key events also.
10969         * ToolBar.cs: Remove some of the poor mans double buffering.
10970         
10971 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
10972
10973         * ComboBox.cs: The internal TextBox now returns the focus.
10974
10975 2005-12-23  Jackson Harper  <jackson@ximian.com>
10976
10977         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
10978
10979 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
10980
10981         * Control.cs: Removed debug code
10982         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
10983           implicit children
10984
10985 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
10986
10987         * Control.cs: When creating the control, update the Z-order after
10988           all it's children are created, too. (Fixes nexxia not showing
10989           picturebox bug)
10990
10991 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
10992
10993         * Control.cs: Do not update the anchoring distances if layout is
10994           suspended, instead do it once layout is resumed
10995
10996 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
10997
10998         * Control.cs: 
10999           - After many hours of debugging, for both Jackson and
11000             myself, it turns out that it helps to set the parent of a control
11001             if you want to actually see it onscreen. In the spirit of that
11002             discovery, we're now setting the parent of the control and
11003             it's children when the control's handle is created. This fix
11004             will make Lutz Roeder's Reflector run happily. 
11005           - now just creating the handle instead of the whole control when
11006             getting a graphics context for the control.
11007
11008 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11009
11010         * ScrollableControl.cs: When calculating the canvas, don't consider
11011           the scrollbar widths. Instead, predict if horizontal scrollbar
11012           will affect canvas when deciding on vertical display and vice versa.
11013
11014 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
11015
11016         * RichTextBox.cs: Set default RTF font for documents that don't
11017           have a font table (Fixes #77076)
11018
11019 2005-12-22  Jackson Harper  <jackson@ximian.com>
11020
11021         * TextBoxBase.cs: It's difficult to do, but you can have an empty
11022         clipboard. This prevents a NullRef in that case.
11023         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
11024         clipboard. PRIMARY is for the currently selected text only. (We
11025         should implement PRIMARY at some point.
11026
11027 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11028
11029         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
11030           a Unicode function with a structure that was defined in Ansi way.
11031           This fixes #76942.
11032
11033 2005-12-21  Jackson Harper  <jackson@ximian.com>
11034
11035         * StatusBar.cs: Statusbar handles its fore/back colours on it's
11036         on. Because thats how it rolls. (and this avoids it using ambient
11037         colours).
11038         * ThemeWin32Classic.cs: Use the proper back color for filling.
11039         * Menu.cs: Use the system menu bar color for drawing menu
11040         bars. Using the window back color will bring ambient colours into
11041         the picture.
11042
11043 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
11044
11045         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
11046           Bitmaps were created and not disposed.
11047
11048 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11049
11050         * Control.cs (CreateControl): Don't do anything if the control is
11051           already created, otherwise we'd fire the OnCreated event more than
11052           once
11053
11054 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11055
11056         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
11057           will always match. Instead return -1. Fixes #76464.
11058
11059 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
11060
11061         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
11062           neither the beginning nor the end of the line (Fixes bug #76479)
11063
11064 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
11065
11066         * Control.cs:
11067           - ControlNativeWindow.ControlFromHandle(): Now handling situation
11068             where handle is invalid
11069           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
11070             instead of slower linear search
11071         * NativeWindow.cs: Don't remove the window from the hashtable until
11072           after the driver has destroyed it (since the driver might use
11073           Control.FromHandle to lookup the control object
11074         * Hwnd.cs: Added DestroyPending property to track if a window is 
11075           already destroyed as far as the driver is concerned and only hasn't
11076           yet notified the control
11077         * XplatUIX11.cs:
11078           - Activate(): Check if the window is still valid before using the 
11079             handle
11080           - Implemented DestroyChildWindow() method to mark child windows as
11081             destroyed when a window is destroyed. This prevents situations 
11082             where we might call an X method based on queued events for a
11083             window that already has been destroyed but we haven't yet pulled
11084             the destroy method from the queue.
11085           - Added a call to the new DestroyChildWindow() method to the drivers
11086             DestroyWindow code. Also now marking the destroyed window itself
11087             as pending
11088
11089 2005-12-20  Jackson Harper  <jackson@ximian.com>
11090
11091         * StatusBar.cs:
11092         * StatusBarPanel.cs: Don't calculate panel sizes on draw
11093         anymore. Just do them when needed, also track the rects of panels
11094         so that we can optimize refreshing more in the future.
11095
11096 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
11097
11098         * ColorDialog.cs: Fixed focus drawing in small color controls
11099
11100 2005-12-19  Jackson Harper  <jackson@ximian.com>
11101
11102         * InternalWindowManager.cs:
11103         * MdiWindowManager.cs: Cleanup some coordinate system changes so
11104         moving windows works properly.
11105
11106 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
11107
11108         * Control.cs: 
11109           - Removed call to InitLayout() from SetBoundsCore(); doc says
11110             it's only called when a control is added to a container
11111           - Split InitLayout logic, moved to separate UpdateDistances() method
11112             since we need to perform those calculations more often than just
11113             when adding the control to a container. (Needed to fix #77022)
11114           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
11115           - Reduced the OnBindingContextChanged events count, don't send them
11116             unless the control is created, we still aren't totally matching
11117             MS, but I can't quite figure out some of their rules
11118
11119 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11120
11121         * ThemeClearlooks.cs: Corrected distance between ProgressBar
11122           stripes
11123
11124 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11125
11126         * ThemeClearlooks.cs:
11127           - Updated ProgressBar drawing
11128           - Corrected drawing of ScrollBars and scroll buttons
11129           - Some temporary fixes for minor pixel artefacts
11130
11131 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
11132
11133         * Control.cs:
11134           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
11135             cause events to be sent in the same order as MS does.
11136           - Added ChangeParent() method to trigger various OnXXXChanged events
11137             that need to be fired when a parent changes (This is a reworking
11138             of the patch from r54254, with the X11 errors fixed)
11139           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
11140             since on MS we get OnLayoutChanged events when calling Clear()
11141           - Changed Enabled property to consider parent state as well, if a
11142             parent is not enabled, the control will not be either
11143           - Changed Parent property to simply call Controls.Add() since that
11144             now does all the work required, this way we avoid code duplication
11145           - Threw in a few OnBindingsContextChanged calls to try and match
11146             when MS sends them. We seem to send a few too many, though.
11147           - Added call to CreateControl when adding the control to a parent.
11148             We were never calling CreateControl. Still needs some work, in
11149             some places we treat HandleCreated and ControlCreated as equal, 
11150             which is wrong
11151           - Removed obsolete commented out code from UpdateZOrder()
11152
11153 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
11154
11155         * ThemeClearlooks.cs: Updated TrackBar drawing.
11156
11157 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11158
11159         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
11160
11161 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
11162
11163         * FileDialog.cs: Add the Help button and the open readonly
11164           checkbox only if needed
11165
11166 2005-12-16  Jackson Harper  <jackson@ximian.com>
11167
11168         * Control.cs: Make sure we have an active menu before trying to
11169         process commands on it. Prevents menu-less forms from crashing
11170         when Alt is pressed.
11171         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
11172         Dieter Bremes.
11173         * RichTextBox.cs: Expand statement to help out gmcs and fix the
11174         2.0 build.
11175
11176 2005-12-16  Jackson Harper  <jackson@ximian.com>
11177
11178         * InternalWindowManager.cs: Don't translate tool windows screen
11179         coordinates. This fixes windows 'bouncing' around when being moved.
11180
11181 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11182
11183         * TextBoxBase.cs:
11184           - MaxLength now treats 2^31-1 equal to unlimited length (this is
11185             not quite MS compatible, MS uses that number only for single line
11186             and 2^32-1 for multi-line, but I figure it won't hurt keeping
11187             the limit at 2GB)
11188           - Now enforcing the MaxLength limit when entering characters
11189           - Added argument to internal Paste() method to track if it's called
11190             from programatically or via keyboard, since keyboard driven pastes
11191             need to enforce max-length
11192           - Added logic to Paste to only paste as many chars as MaxLength 
11193             allows
11194         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
11195         * TextControl.cs:
11196           - Added Length property to return number of characters in document
11197           - Added private CharCount property which only tracks actual chars
11198             in the document (no linefeeds) and fires event when CharCount
11199             changes
11200           - Added tracking of character count to all methods that alter it
11201           - Added LengthChanged event to allow applications to subscribe
11202             to any changes to the document
11203
11204 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
11205
11206         * TextBox.cs: 
11207           - Removed local password_char field (moved to TextBoxBase)
11208           - Now setting the document's password var when password is
11209             set
11210         * TextBoxBase.cs:
11211           - Added password_char field (needed here so MultiLine can
11212             access it)
11213           - Added logic to MultiLine property setter to set the document's
11214             variable when password display is allowed
11215           - Removed debug code and made some debug code conditional
11216         * TextControl.cs:
11217           - Added RecalculatePasswordLine() method to handle special password
11218             char only lines
11219           - Added PasswordChar property, also added related tracking vars
11220           - Draw() method now uses local text var for grabbing text to draw,
11221             this var is set to line.text unless we're doing password display,
11222             then it is set to the pre-generated all-password-chars line
11223           - Added calling RecalculatePasswordLine() method for password lines
11224
11225 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11226
11227         * Hwnd.cs: 
11228           - Added Reparented property to allow tracking of Window Manager
11229             reparenting actions (which affect X/Y calculations of toplevel 
11230             windows)
11231           - Made ToString() print window handles in hex
11232         * XplatUIX11.cs:
11233           - AddConfigureNotify(): Now uses reparented state off Hwnd to
11234             determine if X/Y needs offsetting
11235           - AddConfigureNotify(): Fixed offset calculations
11236           - Now adds ReparentNotify messages into the queue
11237           - Now processes ReparentNotify messages and causes a 
11238             WM_WINDOWPOSCHANGED message to be sent upstream if a window
11239             is reparented (as most likely it's X/Y coordinates are changed
11240             due to that)
11241
11242 2005-12-14  Jackson Harper  <jackson@ximian.com>
11243
11244         * XplatUIX11.cs: Tool windows still need to respek focus.
11245
11246 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
11247
11248         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
11249           have a working release
11250
11251 2005-12-13  Jackson Harper  <jackson@ximian.com>
11252
11253         * Form.cs: Update styles after setting the border style regardless
11254         of whether or not the window is using a window manager.
11255
11256 2005-12-13  Jackson Harper  <jackson@ximian.com>
11257
11258         * Form.cs: We now hook into an internal window manager instead of just an
11259         MDI subsystem, this is so we can have properly behaving tool windows.
11260         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
11261         * InternalWindowManager.cs: New internal class that acts as a
11262         window manager for tool windows and as a base for mdi windows.
11263         * MdiWindowManager.cs: New class that acts as a window manager for
11264         mdi windows.
11265
11266 2005-12-12  Jackson Harper  <jackson@ximian.com>
11267
11268         * Control.cs: Updates so we match behavoir for for implicit
11269         controls. Fixes explosions in MDI.
11270
11271 2005-12-12  Jackson Harper  <jackson@ximian.com>
11272
11273         * Control.cs: Implement Invalidate (Region).
11274
11275 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
11276
11277         * Control.cs: 
11278           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
11279             the same events as MS does. MS fires events for each property 
11280             except, for unknown reasons, Cursor, when the control is reparented. 
11281             I can't seem to totally match add/remove since MS also fires some 
11282             VisibleChanged events, which makes no sense. Consolidated the
11283             parenting code into a separate method so it can be called from
11284             both Add and Remove. set_Parent no longer needs any special logic
11285             as it calls the parent's add method which implicitly fires
11286             all events
11287           - Removed some obsolete code and debug output
11288           - Enabled state is inherited from parents, if this is enabled
11289
11290 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
11291
11292         * Form.cs: Removed commented out code
11293
11294 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
11295
11296         * Control.cs:
11297           - Added internal version of Invoke, with additional argument 
11298             indicating if we're calling it from a Dispose() handler. That
11299             way we can avoid BeginInvoke throwing an exception if we're
11300             calling for an already destroyed window.
11301           - Added a dispose argument to BeginInvokeInternal, and made the
11302             check if a valid window handle chain exists conditional on
11303             it not being a dispose call
11304           - Removed code in DestroyHandle to destroy our children. Since we
11305             now handle the WM_DESTROY message we will catch all our children
11306             being destroyed.
11307           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
11308         * Form.cs:
11309           - Added a field to track the application context of the form.
11310           - No need to set closing variable as response to WM_CLOSE, instead
11311             we destroy the window. We also call PostQuitMessage if the form
11312             has an application context (which makes it the main app form,
11313             which, when closed terminates the app)
11314         * XplatUI.cs:
11315           - Dropped Exit() method, it's naming was confusing
11316           - Added PostQuitMessage() which causes GetMessage to return false
11317             once the message queue is empty
11318         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
11319           PostQuitMessage()
11320         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
11321           no longer a valid XplatUI method, but left it in since it's used
11322           internally. Added empty PostQuitMessage() method.
11323         * MenuAPI.cs: Replaced call to Exit() with call to
11324           PostQuitMessage, even though this is probably no longer needed.
11325         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
11326         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
11327         * Application.cs:
11328           - Replaced call to XplatUI.Exit() with PostQuitMessage()
11329           - Removed old debug code that would call XplatUI for exception
11330             display, enabled standard exception handling (Still not enabled
11331             though, until NativeWindow's ExternalExceptionHandler define
11332             is removed
11333         * NativeWindow.cs:
11334           - Added internal method to allow control to update NativeWindow
11335             after a window has been destroyed
11336           - Added handling of already destroyed windows when calling i
11337             DestroyWindow
11338           - Added removal of handle from list on ReleaseHandle
11339         * XplatUIX11.cs:
11340           - Dropped GetMessageResult var and related code
11341           - Added PostQuitState to field to track if PostQuitMessage has been
11342             called
11343           - Dropped Exit() method
11344           - Added PostQuitMessage() method
11345           - GetMessage now will return false if PostQuitState is set and no
11346             more messages are in the queue.
11347           - Expose handler will no longer generate WM_PAINT messages if we are
11348             in PostQuitState since it's very likely any windows have already
11349             been destroyed, and since Hwnd won't get updated until we have
11350             processed the DestroyNotify we'd be causing X errors.
11351         
11352 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11353
11354         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
11355           Thanks to Mike for pointing out the err of my ways.
11356
11357 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11358
11359         * Control.cs(PreProcessMessage): Moved menu handling back, but
11360           after all other key handling, to match MS (who handles Menu in
11361           DefWndProc)
11362         * Menu.cs (WndProc): Removed my brainfart
11363
11364 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11365
11366         * Control.cs(PreProcessMessage): Removed special menu handling 
11367         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
11368
11369 2005-12-07  Mike Kestner  <mkestner@novell.com>
11370
11371         * Control.cs : special case SYSKEYUP so that we can adjust keynav
11372         state according in tracker.
11373         * Menu.cs : promote tracker field to base class and provide a tracker
11374         lookup capability.  Add/Remove shortcuts dynamically if the top menu
11375         has a tracker. Unparent items that are removed from the collection.
11376         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
11377         * Theme*.cs: add always_show_hotkeys field to support configurability
11378         of mnemonic display.  win32 doesn't show mnemonics until Alt is
11379         pressed.
11380
11381 2005-12-07  Jackson Harper  <jackson@ximian.com>
11382
11383         * MdiChildContext.cs: Use Control.ResetCursor.
11384         * Control.cs: ResetCursor needs to set the property so that the
11385         correct XplatUI call gets made.
11386
11387 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11388
11389         * Control.cs: More fixes to make our key events match MS. We
11390           were not setting the modifier state on KeyData, and we were
11391           not generating any events when Alt was pressed with a key
11392           since handling of WM_SYSxxx was missing for the OnKey methods.
11393
11394 2005-12-07  Jackson Harper  <jackson@ximian.com>
11395
11396         * MdiChildContext.cs: reenable the sizing code.
11397         - When the mouse leaves a window reset its cursor.
11398
11399 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11400
11401         * ThemeClearlooks.cs: Reflect latest Hwnd changes
11402
11403 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
11404
11405         * Hwnd.cs: Now using the theme 3d bordersize to calculate
11406           widths of Fixed3D borders
11407
11408 2005-12-07  Jackson Harper  <jackson@ximian.com>
11409
11410         * MdiClient.cs: Fix warnings. Earn Mike's love.
11411
11412 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
11413
11414         * ThemeClearlooks.cs:
11415           - Adjusted mouse over button color
11416           - Added first parts of CheckBox drawing
11417           - Added correct color for selected text background
11418           - Fixed ComboBox drawing
11419           - Added CPDrawBorder3D and CPDrawBorder
11420
11421 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11422
11423         * XplatUIX11.cs: Added call to XBell for AudibleAlert
11424
11425 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
11426
11427         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
11428           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
11429           alert users via sound. We could add an enum arg with different
11430           types of alerts in the future
11431
11432 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
11433
11434         * Control.cs: Fix behaviour problems pointed out by Mike
11435
11436 2005-12-05  Mike Kestner  <mkestner@novell.com>
11437
11438         * StatusBarPanel.cs: add Invalidate method and hook it into all the
11439         prop setters.  Calls parent.Refresh for now, but could be maybe be
11440         optimized with an internal method on StatusBar at some point.
11441         [Fixes #76513]
11442
11443 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
11444
11445         * RichTextBox.cs: Implemented get_SelectionColor
11446
11447 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
11448
11449         * ThemeClearlooks.cs:
11450           - Removed dead code
11451           - Draw black button border only if button is Form.AcceptButton
11452           - Draw correct button color for pressed RadioButton if the mouse 
11453             has entered the button
11454           - Updated ProgressBar drawing!
11455           - Updated CPDrawSizeGrip drawing
11456           - Updated StatusBarPanel drawing
11457
11458 2005-12-05  Mike Kestner  <mkestner@novell.com>
11459
11460         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
11461         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
11462
11463 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
11464
11465         * ThemeClearlooks.cs: Initial check-in, activate with
11466           export MONO_THEME=clearlooks
11467         * ThemeEngine.cs: Added ThemeClearlooks
11468
11469 2005-12-03  Mike Kestner  <mkestner@novell.com>
11470
11471         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
11472         [Fixes #76897]
11473
11474 2005-12-02  Jackson Harper  <jackson@ximian.com>
11475
11476         * Form.cs: If the child form has no menu the default main menu is
11477         used as the active menu.
11478
11479 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
11480
11481         * ListBox.cs: Check if any items exist before trying to resolve 
11482           coordinates into items
11483
11484 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11485
11486         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
11487           as the second color for the background hatch
11488
11489 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
11490
11491         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
11492         * RichTextBox.cs: FormatText position arguments are 1-based, now making
11493           sure that what we pass to FormatText is always 1-based. Fixes #76885
11494
11495 2005-11-29  Miguel de Icaza  <miguel@novell.com>
11496
11497         * NumericUpDown.cs (EndInit): When we are done initializing,
11498         reflect any updates on the UI.
11499
11500 2005-12-02  Jackson Harper  <jackson@ximian.com>
11501
11502         * ImplicitHScrollBar.cs:
11503         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
11504         their container controls.
11505         * TreeView.cs: Use the new implicit scrollbars.
11506
11507 2005-12-02  Jackson Harper  <jackson@ximian.com>
11508
11509         * TreeView.cs: Make top_node internal so the TreeNodeCollections
11510         can play with it.
11511         * TreeNodeCollection.cs: If we remove the topnode we need to
11512         update topnode to the next node in line.
11513         - When clearing nodes go through the same process as removing
11514         them, so they get depareneted and checked if they are top node.
11515
11516 2005-12-01  Jackson Harper  <jackson@ximian.com>
11517
11518         * TreeView.cs: When imagelists are used the image area is
11519         selectable as well as the text.
11520         - If there are no selected nodes select the first one.
11521         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
11522         so don't do it more then we need to.
11523
11524 2005-12-01  Jackson Harper  <jackson@ximian.com>
11525
11526         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
11527         that arrows can be scaled.
11528
11529 2005-12-01  Jackson Harper  <jackson@ximian.com>
11530
11531         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
11532         fail. Patch by Dieter Bremes
11533
11534 2005-11-30  Jackson Harper  <jackson@ximian.com>
11535
11536         * Form.cs: Property is 2.0 only
11537         * PrintDialog.cs: Signature fix.
11538
11539 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11540
11541         * TextControl.cs: 
11542           - No longer artificially moves text 2 pixels down (now that we have
11543             borders this is no longer needed)
11544           - Added calcs for left, hanging and right indent
11545
11546 2005-11-23  Mike Kestner  <mkestner@novell.com>
11547
11548         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
11549
11550 2005-11-30  Jackson Harper  <jackson@ximian.com>
11551
11552         * MdiChildContext.cs: Set the cloned menus forms, as these don't
11553         get cloned as part of CloneMenu ().
11554         * Menu.cs: Make sure the parent of the items get set correctly
11555         when they are added.  And the owners are notified of the changes.
11556         * Form.cs: Create an ActiveMenu property, so that when MDI is used
11557         we can change the menu being displayed/handled by the form without
11558         changing the menu assosciated with the form.
11559         - Don't let Mdi children draw/handle menus.
11560         
11561 2005-11-30  Jackson Harper  <jackson@ximian.com>
11562
11563         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
11564         a MenuChanged event. Just to make the API a little more
11565         consistent.
11566         * MainMenu.cs:
11567         * MenuItem.cs: Use the new OnMenuChanged
11568         * MdiChildContext.cs: Handle menu merging.
11569         * Form.cs: Implement MergedMenu.
11570         
11571 2005-11-30  Jackson Harper  <jackson@ximian.com>
11572
11573         * Menu.cs: We were misusing Add. Add goes behind the specified
11574         index according to the docs, and does not replace the specified
11575         index. So I added an Insert method.
11576
11577 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
11578
11579         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
11580           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
11581           is for Jackson
11582         * RichTextBox.cs: Added calls to base for DnD events
11583
11584 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
11585
11586         * TextControl.cs:
11587           - Fixed drag-selection related crash; style fixes
11588           - Implemented undo class
11589             o Implemented method to capture document state for specified
11590               range in document tree
11591             o Implemented method to restore captured document state
11592             o Implemented cursor tracking
11593             o Implemented basic undo stack
11594           - Added undo cursor tracking to methods altering cursor location
11595           - Added undo tracking to selection deletion (still missing
11596             other text-altering hookups)
11597         * RichTextBox.cs:
11598           - Added SelectionLength property
11599           - Implemented CanPaste()
11600           - Implemented Paste()
11601           - Added missing protected methods
11602           - Fixed RTF->Document conversion; now uses font index 0 and color 
11603             index 0 as the default font for the parsed text
11604           - Fixed RTF<->Document font size translation
11605           - Fixed RTF generation, now properly handles cross-tag boundaries
11606             for single line selection
11607           - No longer always appends blank line to generated RTF
11608           - Removed TODOs
11609           - Added missing attributes
11610           - Hooked up undo-related methods
11611         * TextBoxBase.cs:
11612           - Implemented Copy()
11613           - Implemented Paste()
11614           - Implemented Cut()
11615           - Fixed caret mis-behaviour on backspace across line-boundaries
11616
11617 2005-11-29  Jackson Harper  <jackson@ximian.com>
11618
11619         * MdiClient.cs: Add a method for activating mdi children. Very
11620         basic right now. I imagine someday it might need more girth.
11621         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
11622         children windows names are added to the menu item.
11623         * ThemeWin32Classic.cs: Draw the arrow if the item is an
11624         mdilist. This happens regardless of whether or not there are any
11625         mdi windows to see in the list, and according to my tests happens
11626         before the items are even added. Also happens if there isn't even
11627         an mdi client to get windows from.
11628
11629 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
11630
11631         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
11632         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
11633
11634 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
11635
11636         * DataGridTableStyle.cs:
11637           - Create always the styles for the missing columns even if they are
11638             provided by the user (not default table style)
11639         * DataGrid.cs:
11640           - Fixes bug 76770
11641           - Fixes SetDataBinding (always re-attach source)
11642           - Fixes SetNewDataSource (only clear styles if they are not for 
11643             this source)
11644          -  Expands OnTableStylesCollectionChanged to handle style refresh 
11645             and remove properly
11646
11647 2005-11-29  Jackson Harper  <jackson@ximian.com>
11648
11649         * FileDialog.cs: Implement missing bits, remove some dead
11650         code.
11651         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
11652         creation of the panel so that the options set on the dialog are
11653         seen when the panel is created.
11654         * TreeView.cs: raise a click when items are clicked.
11655         
11656 2005-11-29  Jackson Harper  <jackson@ximian.com>
11657
11658         * MdiClient.cs: Pass some signature methods through to base.
11659
11660 2005-11-28  Jackson Harper  <jackson@ximian.com>
11661
11662         * ListView.cs: Raise the click event when items are clicked.
11663
11664 2005-11-28  Jackson Harper  <jackson@ximian.com>
11665
11666         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
11667         a nullref.
11668
11669 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
11670
11671         * ThemeNice.cs: - Removed 1 pixel bitmaps
11672           - Use SmoothingMode.AntiAlias where it makes sense
11673             (ScrollButton arrow for example)
11674           - Enhanced Button focus drawing
11675           - Fixed ComboBox drawing (no artefacts anymore, focus
11676             rectangle is back again, reduced size of ComboButton, etc.)
11677           - Fixed RadioButton focus drawing for Appearence.Button
11678           - Slight ScrollButton redesign
11679           - Some LinearGradientBrush size fixes
11680           - GroupBoxes have now rounded edges
11681           - Fixed StatusBar drawing
11682
11683 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
11684
11685         * ThemeNice.cs: - Remove dead code
11686           - use correct background colors for menus, etc.
11687           - Fake pixel drawing with 1 pixel bitmaps
11688
11689 2005-11-24  Jackson Harper  <jackson@ximian.com>
11690
11691         * MdiClient.cs: Size the scrollbars when resizing the window.
11692         - Resize the maximized windows when the client is resized
11693         * Form.cs: Make the child context available
11694         
11695 2005-11-23  Jackson Harper  <jackson@ximian.com>
11696
11697         * MdiChildContext.cs: Don't size windows if they are maximized.
11698
11699 2005-11-23  Mike Kestner  <mkestner@novell.com>
11700
11701         * ContextMenu.cs: use MenuTracker.
11702         * Control.cs: remove menu handle usage.
11703         * Form.cs: remove menu handle usage.
11704         * Hwnd.cs: remove menu handle usage.
11705         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
11706         motion and clicks to the new Tracker handlers.
11707         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
11708         and handle usage.
11709         * MenuAPI.cs: refactored to combine popup and menubar event handling.
11710         Killed the MENU and MENUITEM data types and associated collections
11711         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
11712         MenuTracker class that exposes the leftovers from the old MenuAPI
11713         static methods. Restructured Capture handling so that only one grab is
11714         done for the entire menu hierarchy instead of handing off grabs to
11715         submenus. Tracker now has an invisible control to Capture when active.
11716         * MenuItem.cs: add sizing accessors, kill Create
11717         and handle usage.
11718         * Theme.cs: remove menu handle and MENU(ITEM) usage.
11719         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
11720         MENU(ITEM). remove menu handle usage, use Menu directly.
11721         * XplatUIDriver.cs: remove menu handle usage.
11722         * XplatUIOSX.cs: remove menu handle usage.
11723         * XplatUIWin32.cs: remove menu handle usage.
11724         * XplatUIX11.cs: remove menu handle usage.
11725
11726 2005-11-22  Jackson Harper  <jackson@ximian.com>
11727
11728         * Hwnd.cs: Don't compute the menu size for
11729         DefaultClientRectangle.
11730         - Reenable menu sizes being computed for GetClienRectangle.
11731         * Form.cs: Remove comment of trechery
11732         
11733 2005-11-22  Jackson Harper  <jackson@ximian.com>
11734
11735         * Hwnd.cs: The adjustments for the menu bar are made when it is
11736         attached to the form.
11737
11738 2005-11-19  Jackson Harper  <jackson@ximian.com>
11739
11740         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
11741         (just like on windows).
11742
11743 2005-11-19  Jackson Harper  <jackson@ximian.com>
11744
11745         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
11746         use real buttons anymore because they are in non client area. The
11747         one TODO here is that I need to somehow invalidate a section of
11748         the non client area.
11749
11750 2005-11-18  Jackson Harper  <jackson@ximian.com>
11751
11752         * Control.cs: Put the enum check back in now that MDI doesnt have
11753         to use this to set border styles.
11754         * Form.cs: Only set mdi child windows borders if the handle has
11755         been created.
11756         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
11757         this directly on to the driver.
11758         - Get the move start position before adjusting for the titlebar
11759         height, this fixes the windows "skipping" when they are first
11760         moved.
11761
11762 2005-11-18  Jackson Harper  <jackson@ximian.com>
11763
11764         * XplatUIX11.cs: Just compute the mdi borders separately as they
11765         don't totally match up with normal form borders.
11766
11767 2005-11-18  Jackson Harper  <jackson@ximian.com>
11768
11769         * Control.cs: Set WS_ styles for borders, so that the driver does
11770         not have to retrieve the control instance to figure out what kind
11771         of borders it should have.
11772         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
11773         driver can know its an mdi child easily.
11774         * XplatUIX11.cs: Get the border styles and whether the window is
11775         MDI from the Styles and ExStyles params instead of having to get a
11776         control. This prevents a chicken and egg problem.       
11777
11778 2005-11-18  Jackson Harper  <jackson@ximian.com>
11779
11780         * MdiClient.cs: Fix typo so scrollbars show up correctly.
11781
11782 2005-11-18  Jackson Harper  <jackson@ximian.com>
11783
11784         * MdiClient.cs: Calculate when to add and remove scrollbars
11785         correctly.
11786         * MdiChildContext.cs: Adjust the y position to take the titlebar
11787         into account.
11788         - No height for FormBorderStyle.None
11789
11790 2005-11-18  Jackson Harper  <jackson@ximian.com>
11791
11792         * Control.cs: Allow non enum values to be used for
11793         InternalBorderStyle.  MDI does this to set a special border style.
11794         - New utility methods for converting points to/from client coords
11795         - Add the newly created control to the Controls collection before
11796         updating its style. This way UpdateStyle can walk the control
11797         heirarchy to find the control if needed.
11798         so I don't need to create a new Point object all the time.
11799         * Form.cs: Let MDI windows handle their border styles.
11800         - Set styles on MDI windows so the correct title style is derived.
11801         * MdiChildContext.cs: Move all the painting and window handling
11802         into the non client area.
11803         - Use correct sizing and put correct buttons on frames based on
11804         the FormBorderStyle.
11805         - Notify the mdi client about scrolling
11806         - Need to handle the buttons ourselves now, because they are all
11807         in non client areas and we can't add controls there.
11808         * MdiClient.cs: Halfway to scrolling, this implementation is
11809         somewhat broken though, we need to check to make sure other
11810         windows aren't causing scrolling before removing the bars. Also
11811         the bars need to be drawn on top, maybe I can switch implicit
11812         controls to be on top.
11813         * Hwnd.cs: caption_height and tool_caption_height are now
11814         properties of an hwnd, this way they can be set by the driver
11815         based on the type of window they are.  In X11 the window manager
11816         handles the decorations so caption_height is zero unless its an
11817         MDI window.
11818         - Add 3 pixel borders for MDI windows (0xFFFF).
11819         - Get rid of some code duplication, have DefaultClientRectanle
11820         just call GetClientRectangle.
11821         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
11822         Hwnd now.
11823         - Set border styles differently for mdi windows.
11824         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
11825         Hwnd now.
11826         
11827 2005-11-15  Mike Kestner  <mkestner@novell.com>
11828
11829         * Menu.cs: when adding an item to the collection, if item is already 
11830         parented, remove it from the parent.
11831
11832 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
11833
11834         * X11DesktopColors.cs: Added KDE support
11835
11836 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
11837
11838         * XplatUIWin32.cs: 
11839           - Clipboard methods now can translate Rtf format
11840           - No longer removes clipboard contents whenever a new format is added
11841             to allow placing multiple formats on the clipboard
11842         * Clipboard.cs: Clipboard now supports getting a IDataObject and
11843           will place all formats contained in it onto the clipboard. Also
11844           now cleans the clipboard before placing a new object onto it
11845         * RichTextBox.cs:
11846           - Implemented set_Rtf
11847           - Implemented set_SelectedRtf
11848           - Created InsertRTFFromStream() method to allow single code base
11849             for all properties and methods that insert RTF into document
11850           - Removed debug output
11851         * TextControl.cs:
11852           - Fixed Delete(int) to fix up line numbers
11853           - Fixed ReplaceSelection to combine start and end line
11854           - Fixed serious DeleteChars bug that would leave the document tree
11855             broken
11856           - Improved DumpTree with several logic checks to detect broken
11857             document trees
11858           - Removed debug lines
11859           - Fixed Caret.WordForward/WordBack moving code, now always also 
11860             updates caret.tag (fixes crash when word-selecting across tag
11861             boundaries via keyboard)
11862           - Added Insert() method for inserting multiline text into documents
11863           - Fixed DeleteChars() calculation errors that would cause a broken
11864             tag chain with multiple tag lines
11865           - DeleteChars() no longer crashes on multi-tag lines if not all tags
11866           - Split() no longer moves caret if split is at caret location
11867           - ReplaceSelection() now updates the cursor and re-displays it
11868           - ReplaceSelection() now uses new Insert() method to avoid code
11869             duplication
11870           - FormatText() can now handle formatting partial lines
11871         * TextBoxBase.cs:
11872           - Append now uses new TextControl.Insert() method (this avoids 
11873             duplicate code)
11874           - Implemented Ctrl-X (Cut) (
11875           - Implemented Ctrl-C (Copy)
11876           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
11877             regeneration when pasting text; roundtripping Copy&Paste within
11878             edit control still fails due to some calculation bugs in GenerateRTF)
11879           - The Delete key will now remove the current selection if it is visible
11880         * TextBox.cs: Removed debug lines
11881         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
11882           driver to be initialized and can't therefore be done via a static ctor)
11883
11884 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
11885
11886         * TextControl.cs: Added backend code for finding char arrays and strings
11887         * TextBoxBase.cs:
11888           - Added mouse wheel scroll support
11889           - Added support for VScroll and HScroll events
11890         * RichTextBox.cs:
11891           - Implemented all seven Find() variants
11892           - Implemented GetCharFromPosition()
11893           - Implemented GetCharIndexFromPosition()
11894           - Implemented GetLineFromIndex()
11895           - Implemented GetPositionFromCharIndex();
11896           - Implemented SaveFile for PlainText and UnicodeText
11897           - Fixed set_Font, now setting a new font applies that font to
11898             the whole document
11899           - Implemented generic Document to RTF converter
11900           - Implemented SaveFile for RichText format (still missing unicode
11901             conversion for non-ansi chars)
11902           - Implemented get_Rtf
11903           - Implemented get_SelectedRtf
11904
11905 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
11906
11907         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
11908           to allow any captures to be released before triggering OnClick. This
11909           way a click handler may capture the mouse without interference.
11910         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
11911           This way we send them even though X may not allow a grab (if the window
11912           isn't visible, for example)
11913
11914 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
11915
11916         * DataGridViewRowEventArgs.cs: DataGridView implementation
11917         * DataGridViewElement.cs: DataGridView implementation
11918         * DataGridViewComboBoxCell.cs: DataGridView implementation
11919         * DataGridViewDataErrorContexts.cs: DataGridView implementation
11920         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
11921         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
11922         * ImageLayout.cs: DataGridView implementation
11923         * DataGridViewComboBoxColumn.cs: DataGridView implementation
11924         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
11925         * DataGridViewSelectionMode.cs: DataGridView implementation
11926         * IDataGridViewEditingControl.cs: DataGridView implementation
11927         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
11928         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
11929         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
11930         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
11931         * DataGridViewColumnSortMode.cs: DataGridView implementation
11932         * DataGridView.cs: DataGridView implementation
11933         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
11934         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
11935         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
11936         * Padding.cs: DataGridView implementation
11937         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
11938         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
11939         * DataGridViewRowEventHandler.cs: DataGridView implementation
11940         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
11941         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
11942         * DataGridViewButtonCell.cs: DataGridView implementation
11943         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
11944         * DataGridViewEditMode.cs: DataGridView implementation
11945         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
11946         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
11947         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
11948         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
11949         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
11950         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
11951         * DataGridViewCellEventHandler.cs: DataGridView implementation
11952         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
11953         * DataGridViewCellStyleConverter.cs: DataGridView implementation
11954         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
11955         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
11956         * DataGridViewColumnEventArgs.cs: DataGridView implementation
11957         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
11958         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
11959         * QuestionEventArgs.cs: DataGridView implementation
11960         * IDataGridViewEditingCell.cs: DataGridView implementation
11961         * DataGridViewTriState.cs: DataGridView implementation
11962         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
11963         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
11964         * DataGridViewColumnCollection.cs: DataGridView implementation
11965         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
11966         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
11967         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
11968         * DataGridViewColumn.cs: DataGridView implementation
11969         * DataGridViewCellBorderStyle.cs: DataGridView implementation
11970         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
11971         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
11972         * DataGridViewRow.cs: DataGridView implementation
11973         * DataGridViewImageCellLayout.cs: DataGridView implementation
11974         * DataGridViewImageCell.cs: DataGridView implementation
11975         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
11976         * DataGridViewCheckBoxCell.cs: DataGridView implementation
11977         * DataGridViewHeaderCell.cs: DataGridView implementation
11978         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
11979         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
11980         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
11981         * DataGridViewTextBoxColumn.cs: DataGridView implementation
11982         * QuestionEventHandler.cs: DataGridView implementation
11983         * DataGridViewCellStyleScopes.cs: DataGridView implementation
11984         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
11985         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
11986         * DataGridViewCell.cs: DataGridView implementation
11987         * DataGridViewCellEventArgs.cs: DataGridView implementation
11988         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
11989         * DataGridViewCellStyle.cs: DataGridView implementation
11990         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
11991         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
11992         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
11993         * TextFormatFlags.cs: DataGridView implementation
11994         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
11995         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
11996         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
11997         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
11998         * DataGridViewButtonColumn.cs: DataGridView implementation
11999         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
12000         * HandledMouseEventArgs.cs: DataGridView implementation
12001         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
12002         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
12003         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
12004         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
12005         * DataGridViewRowCollection.cs: DataGridView implementation
12006         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
12007         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
12008         * DataGridViewHitTestType.cs: DataGridView implementation
12009         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
12010         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
12011         * DataGridViewColumnEventHandler.cs: DataGridView implementation
12012         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
12013         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
12014         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
12015         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
12016         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
12017         * DataGridViewContentAlignment.cs: DataGridView implementation
12018         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
12019         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
12020         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
12021         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
12022         * DataGridViewPaintParts.cs: DataGridView implementation
12023         * DataGridViewCellCollection.cs: DataGridView implementation
12024         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
12025         * DataGridViewImageColumn.cs: DataGridView implementation
12026         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
12027         * DataGridViewElementStates.cs: DataGridView implementation
12028         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
12029         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
12030         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
12031         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
12032         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
12033         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
12034         * DataGridViewRowHeaderCell.cs: DataGridView implementation
12035         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
12036         * DataGridViewTextBoxCell.cs: DataGridView implementation
12037         * DataGridViewBand.cs: DataGridView implementation
12038         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
12039         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
12040         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
12041         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
12042         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
12043         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
12044         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
12045         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
12046         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
12047         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
12048         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
12049
12050 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
12051
12052         * ThemeWin32Classic.cs: 
12053           - Draw the outside focus rectangle around buttons
12054           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
12055             doesn't use end caps for every dash of a line anymore. This
12056             workaround ignores the forecolor.
12057
12058 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
12059
12060         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
12061           endian safe.
12062
12063 2005-11-07  Jackson Harper  <jackson@ximian.com>
12064
12065         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
12066
12067 2005-11-07  Jackson Harper  <jackson@ximian.com>
12068
12069         * ScrollableControl.cs: Calculate the maximum and change vars
12070         (more) correctly so that scrollbars appear as a sensible size.
12071
12072 2005-11-04  Jackson Harper  <jackson@ximian.com>
12073
12074         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
12075         collection.
12076         * TreeView.cs: When the tree is sorted null out the top_node so
12077         that it is recalculated.
12078         - Use dotted lines instead of dashed lines to match MS better.
12079
12080 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
12081
12082         * ListView.cs: 
12083           - Implements key search for items. Useful when browsing files with FileDialog
12084           - When changing view mode or when clear the items reset scrollbar positions
12085
12086 2005-11-04  Jackson Harper  <jackson@ximian.com>
12087
12088         * CurrencyManager.cs: Implement the MetaDataChanged event, the
12089         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
12090         as to what the method may do as there is no real way of creating a
12091         derived CurrencyManager and calling the method. 
12092
12093 2005-11-03  Jackson Harper  <jackson@ximian.com>
12094
12095         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
12096         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
12097         method which seems to just be used internally to refresh the tabs.
12098
12099 2005-11-03  Jackson Harper  <jackson@ximian.com>
12100
12101         * TabControl.cs: Implement the remove method. Fix some broken
12102         comments.
12103
12104 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12105
12106         * DateTimePicker.cs:
12107           - Added missing DateTimePickerAccessibleObject class
12108           - Added missing events
12109           - Added OnFontChanged method
12110         * Form.cs: Added missing attributes
12111         * TreeView.cs: Added missing attributes
12112
12113 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
12114
12115         * GridItemCollection.cs: Fix signatures
12116
12117 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12118
12119         * XplatUI.cs: Updated build rev/date
12120         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
12121           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
12122         * Application.cs: Trigger context-specific ExitThread events
12123
12124 2005-11-03  Jackson Harper  <jackson@ximian.com>
12125
12126         * Menu.cs:
12127         * MainMenu.cs:
12128         * GridTableStylesCollection.cs:
12129         * Timer.cs:
12130         * TabPage.cs:
12131         * HelpProvider.cs:
12132         * StatusBar.cs:
12133         * MonthCalendar.cs: Signature fixes
12134
12135 2005-11-03  Jackson Harper  <jackson@ximian.com>
12136
12137         * TreeNodeCollection.cs: Remove should not be virtual.
12138         * TreeView.cs: Implement the last of the missing methods.
12139
12140 2005-11-03  Jackson Harper  <jackson@ximian.com>
12141
12142         * TreeNodeConverter.cs: Implement to get off my class-status back.
12143
12144 2005-11-03  Jackson Harper  <jackson@ximian.com>
12145
12146         * TreeView.cs: Hookup the bits for drag and drop.
12147         * TreeNode.cs: Don't cache the tree_view or index anymore, now
12148         that nodes can be moved from tree to tree easily this just causes
12149         all sorts of problems.
12150         * TreeNodeCollection: Don't need to give treenodes an index and
12151         treeview anymore when they are added, these are computed on the
12152         fly. Also make sure to remove a node before its added.
12153
12154 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
12155
12156         * TextControl.cs:
12157           - Added CaretSelection enum
12158           - Added comparison methods to Marker struct, makes selection code
12159             more readable
12160           - Added SelectionStart and SelectionEnd as 'moveable' location for
12161             the CaretDirection enum and handler
12162           - Added selection_prev variable to track optimized invalidation for
12163             word and line selection
12164           - Added SelectionVisible property (returns true if there is a valid 
12165             selection)
12166           - Switched CaretHasFocus to only display the caret if there is no
12167             visible selection
12168           - Avoiding StringBuilder.ToString to retrieve a single char, instead
12169             using the direct character index; should be much faster
12170           - Added various conditional debug statements
12171           - Fixed invalidation calculation for selection ranges
12172           - Added ExpandSelection() method to support word and line selection
12173           - Switched SetSelectionToCaret to use new Marker compare overloads
12174           - Added central IsWordSeparator() method to determine word 
12175             separators/whitespace and FindWordSeparator() to streamline common
12176             usage of IsWordSeparator()
12177         * TextBoxBase.cs:
12178           - Removed unneeded grabbed variable, it was just mirroring
12179             Control.Capture
12180           - No longer firing OnTextChanged event when Text setter is called,
12181             since the base will fire the event for us
12182           - Added handling of Ctrl-Up/Down selection
12183           - Added handling of Shift-Cursorkey selection
12184           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
12185             words
12186           - Added handling of Shift and Ctrl-Shift-Home/End selection
12187           - Removed some debug output
12188           - Added handling for single/double/tripple-click to place caret/
12189             select word/select line respectively (Fixes bug #76031)
12190           - Added support for drag expansion of word/line selection
12191         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
12192           current selection
12193
12194 2005-11-02  Jackson Harper  <jackson@ximian.com>
12195
12196         * X11Dnd.cs: If the drag is going to and from a MWF window just
12197         copy the data instead of sending it out through the X Selection
12198         mechanism.
12199
12200 2005-11-02  Jackson Harper  <jackson@ximian.com>
12201
12202         * X11Dnd.cs:
12203         * XplatUIX11.cs: When in a drag we don't want motion notify
12204         messages to get passed on to the other controls. This prevents
12205         mouse move messages from showing up in the drag source.
12206
12207 2005-11-02  Jackson Harper  <jackson@ximian.com>
12208
12209         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
12210         the correct button is release to end a drag.
12211         * XplatUIX11.cs: Make the button state internal so the drag system
12212         can access it.  Dragging needs to know about all button releases,
12213         not just left button.
12214
12215 2005-11-02  Miguel de Icaza  <miguel@novell.com>
12216
12217         * Form.cs (Icon): If the icon is null, reset the icon to the
12218         default value. 
12219
12220         * Cursor.cs: When writing the AND-mask bitmap do not include the
12221         number of colors, but hardcode those to two (black and white),
12222         fixes the loading of color cursors (Paint Dot Net).
12223
12224         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
12225         turn off autoscaling.
12226
12227         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
12228
12229 2005-11-02  Jackson Harper  <jackson@ximian.com>
12230
12231         * X11Dnd.cs: Make sure to send a status message if the pointer
12232         enters a control that can not accept a drop, otherwise the cursor
12233         isn't updated correctly. Also tried to compress the lines of code
12234         a bit.
12235
12236 2005-11-02  Jackson Harper  <jackson@ximian.com>
12237
12238         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
12239         set actions correctly.  This isn't perfect as XDND and win32 have
12240         some differences on how you allow actions. I'll clear this up by
12241         adding a path for drag from MWF to MWF windows.
12242         * XplatUIX11.cs: Hook into the dnd system.
12243
12244 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
12245
12246         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
12247         previously shown but they are no longer need it. Very obvious when 
12248         browsing files with FileDialog.
12249
12250 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
12251
12252         * Control.cs: We always need to call OnPaintBackground. We pretty much
12253           ignore AllPaintingInWmPaint and always do the painting there, whether 
12254           it's set or not, since we always ignore the WM_ERASEBKGND message 
12255           (which we don't generate on X11). This fixes #76616.
12256         * Panel.cs: Removed unneeded background painting. This happens properly
12257           in Control.cs already
12258
12259 2005-10-31  Mike Kestner  <mkestner@novell.com>
12260
12261         * Menu.cs: Add items to collection before setting their index.
12262         * MenuItem.cs : add range checking with ArgumentException like MS.
12263         [Fixes #76510]
12264
12265 2005-10-31  Jackson Harper  <jackson@ximian.com>
12266
12267         * ListBox.cs: Invalidate if the area is visible at all not just
12268         contained in the visible rect. Fixes unselection of semi visible
12269         items.
12270
12271 2005-10-31  Jackson Harper  <jackson@ximian.com>
12272
12273         * Control.cs: Consistently name the dnd methods. Make them
12274         internal so we can override them to match some MS behavoir
12275         internally.
12276         * Win32DnD.cs: Use the new consistent names.
12277
12278 2005-10-31  Jackson Harper  <jackson@ximian.com>
12279
12280         * TreeView.cs: Don't draw the selected node when we lose focus.
12281
12282 2005-10-31  Jackson Harper  <jackson@ximian.com>
12283
12284         * X11Dnd.cs: We still need to reset the state even though a full
12285         reset isn't being done, otherwise status's still get sent all over
12286         the place.
12287
12288 2005-10-31  Jackson Harper  <jackson@ximian.com>
12289
12290         * Control.cs: Make the dnd_aware flag internal so the dnd
12291         subsystem can check it. Catch exceptions thrown in dnd handlers to
12292         match MS behavoir.
12293         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
12294         * X11Dnd.cs: Handle null data in the converters. Set the XDND
12295         version when sending a XdndEnter. Use the control/hwnd dnd_aware
12296         flags to reduce the number of dnd enters/status's sent.
12297
12298 2005-10-31  Jackson Harper  <jackson@ximian.com>
12299
12300         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
12301
12302 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
12303
12304         * PictureBox.cs: Fixes 76512
12305
12306 2005-10-28  Jackson Harper  <jackson@ximian.com>
12307
12308         * X11Dnd.cs: Early implementation to support winforms being a drag
12309         source for data on X11. Also restructured the converters so they
12310         can go both ways now.
12311         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
12312         
12313 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
12314
12315         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
12316           clipboard requests
12317
12318 2005-10-27  Jackson Harper  <jackson@ximian.com>
12319
12320         * TreeNode.cs: Implement serialization so my DnD examples will work.
12321
12322 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
12323
12324         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
12325           TreeView.cs: Don't dispose objects that are not owned.
12326           
12327 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
12328
12329         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
12330           should retrieve the current cursor and report that, but XplatUI
12331           doesn't (yet) have an interface for that (and I'm not sure I even
12332           can, on X11)
12333         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
12334           until any message loop processing is done (and the WM_SETCURSOR
12335           replaces the cursor to the proper one)
12336         * XplatUIX11.cs: 
12337           - Fixed override behaviour, we can't set the cursor globally on X11, 
12338             just for our windows.
12339           - Invalidating the System.Drawing X11 display handle when we are
12340             shutting down
12341         * Control.cs: Fix to make csc happy
12342
12343 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
12344
12345         * TextBoxBase.cs: 
12346           - get_Text: Add last line (without trailing newline) to returned
12347             value (Fixes 76212)
12348           - get_TextLength: Count last line in returned length
12349           - ToString: Call Text property instead of duplicating code
12350
12351 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
12352
12353         * ImageList.cs: Dispose ImageAttributes objects.
12354
12355 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12356
12357         * ImageList.cs: Use attribute constructors with less arguments where
12358           possible.
12359
12360 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
12361
12362         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
12363           Use typeof instead of strings when assembly is referenced. Added
12364           some more comments.
12365
12366 2005-10-21  Jackson Harper  <jackson@ximian.com>
12367
12368         * ListView.cs: Raise a double click event. Also tried to somewhat
12369         fix when the selectedindexchanged event is raised. Its still
12370         broken though.
12371
12372 2005-10-21  Jackson Harper  <jackson@ximian.com>
12373
12374         * TreeView.cs: New method to invalidate the plus minus area of a
12375         node without invalidating the whole node (maybe this can be used
12376         in some more places).
12377         * TreeNodeCollection.cs: When adding to an empty node we need to
12378         invalidate its plus minus area so the little block shows up.
12379         
12380 2005-10-21  Jackson Harper  <jackson@ximian.com>
12381
12382         * TreeView.cs: Make sure that when we invalidate a node the bounds
12383         are big enough to cover the selected box and the focus
12384         rectangle. Use a different colour for the lines connecting nodes
12385         so they show up with all themes.
12386
12387 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12388
12389         * NativeWindow.cs: Don't call anything that could call into the driver,
12390           we might be on a different thread.
12391
12392 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
12393
12394         * Control.cs(Dispose): Since Dispose might run on a different thread,
12395           make sure that we call methods that could call into the driver via
12396           invoke, to avoid thread issues
12397
12398 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
12399
12400         * XplatUI.cs: Removed finalizer
12401         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
12402           not allowing to be called on the finalizer thread.
12403
12404 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
12405
12406         * ImageList.cs:
12407           - Reverted r51889 and r51891.
12408           - Added ImageListItem class that stores unmodified image items and image
12409             properties required to create list images until handle is created.
12410           - Added AddItem and moved image creation logic to AddItemInternal.
12411           - Added CreateHandle method that creates images based on unmodified items.
12412           - Added DestroyHandle that changes state to store unmodified items.
12413           - Add and AddStrip methods no more create handle.
12414           - ReduceColorDepth has no return value.
12415           - Dispose destroys handle.
12416           - Modified other methods to reflect the above changes.
12417           - Implemented key support.
12418           - Added profile 2.0 members and attributes.
12419           - Added private Reset and ShouldSerialize methods that provide the same
12420             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
12421             them as they are private.
12422           - Added some more comments about implementation details.
12423
12424 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12425
12426         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
12427
12428 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12429
12430         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
12431
12432 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
12433
12434         * DataGridDrawingLogic.cs: Fixes column hit calcultation
12435         * DataGridColumnStyle.cs: Remove debug message
12436
12437 2005-10-20  Jackson Harper  <jackson@ximian.com>
12438
12439         * TreeView.cs: We can always get input keys regardless of whether
12440         or not editing is enabled. They are used for navigation.
12441
12442 2005-10-20  Jackson Harper  <jackson@ximian.com>
12443
12444         * TreeNode.cs: Use the viewport rect for determining if a node
12445         needs to be moved for visibility. Don't use Begin/End edit. This
12446         calls a full refresh when its done.
12447         * TreeView.cs: New SetBottom works correctly.  Make the viewport
12448         rect property internal so the treenodes can see it. When clicking
12449         on a node we need to ensure that its visible because it might just
12450         be partly visible when clicked.
12451
12452 2005-10-20  Jackson Harper  <jackson@ximian.com>
12453
12454         * TreeNodeCollection.cs: Remove debug code.
12455
12456 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12457
12458         * Datagrid.cs: Implements column sorting in Datagrid
12459         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
12460
12461 2005-10-20  Jackson Harper  <jackson@ximian.com>
12462
12463         * TreeNodeCollection.cs: Remove items properly. Update the correct
12464         area after removing them.
12465
12466 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
12467
12468         * Datagrid.cs: Should not call base.OnPaintBackground
12469
12470 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12471
12472         * XplatUIX11.cs (GetMessage):
12473           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
12474             window instead of client window
12475           - Now properly calculates NC_xBUTTONUP message coordinates
12476           - ScreenToMenu now properly calculates it's coordinates of whole 
12477             window, since menus are in the whole window, not in the client
12478             window
12479           - Added WholeToScreen coordinate translation method
12480
12481 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
12482
12483         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
12484           want to return a message, loop back to the beginning of the function
12485           and grab the next real message to process instead.
12486
12487 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
12488
12489         * Splitter.cs: Properly set limits if no filler control is used
12490
12491 2005-10-19  Jackson Harper  <jackson@ximian.com>
12492
12493         * ColorDialog.cs: Don't show the help button if it is not enabled
12494         instead of disabling it (this is what MS does). Don't create the
12495         panel until the dialog is run, otherwise the vars (such as
12496         ShowHelp) are not set yet.
12497
12498 2005-10-19  Jackson Harper  <jackson@ximian.com>
12499
12500         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
12501         are reduced when adding nodes.
12502         * TreeNode.cs:
12503         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
12504         tree.
12505         
12506 2005-10-19  Jackson Harper  <jackson@ximian.com>
12507
12508         * FolderBrowserDialog.cs: End editing our treeview so the window
12509         actually gets refreshed.
12510
12511 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12512
12513         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
12514           Obsoleted handling of WM_ERASEBKGND, now always draws our background
12515           inside of WM_PAINT
12516
12517 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12518
12519         * MenuAPI.cs: Returns after Hidding window
12520         * XplatUIX11.cs: Added TODO found while debugging menu issues
12521
12522 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
12523
12524         * XplatUIX11.cs: Do not re-map the whole window when it's size
12525           becomes non-zero unless it's supposed to be actually visible
12526
12527 2005-10-18  Jackson Harper  <jackson@ximian.com>
12528
12529         * TreeView.cs: We don't need to keep a count anymore.
12530         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
12531         use the Grow method.
12532
12533 2005-10-18  Jackson Harper  <jackson@ximian.com>
12534
12535         * TreeNodeCollection.cs: Insert is not supported on arrays, so
12536         implement it manually here.
12537
12538 2005-10-18  Jackson Harper  <jackson@ximian.com>
12539
12540         * ImageList.cs: Dont kill the list when the colour depth is
12541         changed, just change the colour depth of all the images.
12542         - Same goes for setting the image size. Just resize them all
12543         instead of killing the list softly.
12544
12545 2005-10-18  Jackson Harper  <jackson@ximian.com>
12546
12547         * Control.cs: Don't invalidate empty rectangles.
12548
12549 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12550
12551         * ListViewItem.cs:
12552           - Adds checked item to the Checked/Item lists (where empty before)
12553           - Do not add items to the Selected lists if they are already present
12554         * ListView.cs:
12555           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
12556           - When deleting items make sure that we delete them for the Selected
12557           and Checked list also.
12558
12559 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
12560
12561         * Label.cs: Dispose objects no longer used
12562         * ThemeWin32Classic.cs: Dispose objects no longer used
12563
12564 2005-10-18  Jackson Harper  <jackson@ximian.com>
12565
12566         * TabControl.cs: Don't refresh the whole control when the tabs are
12567         scrolled, we just need to refresh the tab area.
12568
12569 2005-10-17  Jackson Harper  <jackson@ximian.com>
12570
12571         * XplatUIX11.cs: Compress code a little bit. Only calculate the
12572         after handle when we need it.
12573
12574 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12575
12576         * Control.cs: When the parent size changes, recalculate anchor 
12577           positions. Partial fix for #76462
12578
12579 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
12580
12581         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
12582           drawn. Fixes #76462
12583
12584 2005-10-17  Jackson Harper  <jackson@ximian.com>
12585
12586         * MonthCalendar.cs: Don't create the numeric up down until our
12587         handle is created. Otherwise our handle is created in the
12588         constructor and we don't know if we are a WS_CHILD or WS_POPUP
12589         yet.
12590
12591 2005-10-17  Jackson Harper  <jackson@ximian.com>
12592
12593         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
12594         correctly.
12595
12596 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
12597         * TreeNode.cs : small logical fix (was using local var instead of field)
12598         
12599 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12600
12601         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
12602
12603 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
12604
12605         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
12606
12607 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
12608
12609         * Control.cs: 
12610           - Re-implemented anchoring code. My first version was really broken.
12611             This fixes bug #76033. Unlike the previous implementation we will
12612             no longer have round errors since all numbers are calculated from
12613             scratch every time. Removed various anchor-related obsolete vars.
12614           - InitLayout no longer causes layout event firing and layout to be 
12615             performed
12616
12617 2005-10-16  Jackson Harper  <jackson@ximian.com>
12618
12619         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
12620         which was broken).
12621
12622 2005-10-16  Jackson Harper  <jackson@ximian.com>
12623
12624         * TabControl.cs: Remove debug code.
12625
12626 2005-10-16  Jackson Harper  <jackson@ximian.com>
12627
12628         * XEventQueue.cs: Increase the default queue size (very simple
12629         apps needed to grow the queue).
12630         * Hwnd.cs: No finalizer so we don't need to suppress
12631         finalization. Compute the invalid area manually so a new rectangle
12632         does not newto be created.
12633         * ScrollableControl.cs: Don't set any params (otherwise visibility
12634         isn't set correctly).
12635         * MdiChildContext.cs: New constructor takes the mdi parent so it
12636         doesn't have to be computed and avoids a crash on windows. Draw
12637         the window icon properly, and allow the text to be seen.
12638         * Form.cs: Use new MdiChildContext constructor. Make sure the
12639         child context isn't null in wndproc.
12640         * TabControl.cs: Don't set focus, this is muddling keyboard
12641         behavoir. Expand the tab rows when a window size increase will
12642         allow extra tabs to be seen. Don't allow tabs smaller than the
12643         width of a window to be scrolled out of view.
12644         * TreeNode.cs:
12645         * TreeView.cs: Use measure string to calculate a nodes width, the
12646         width is cached and only updated when the text or the font is
12647         changed. Don't check for expand/collapse clicks on the first level
12648         nodes if root lines are disabled.
12649         
12650 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
12651
12652         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
12653
12654 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12655
12656         * DataGridBoolColumn.cs: fixes warning
12657
12658 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
12659
12660         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
12661         to match more to match more precisely the MS Net behavior
12662
12663 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12664
12665         * Hwnd.cs: Added field to track if window is mapped
12666         * XplatUIX11.cs: 
12667           - Unmap windows if they become 0-size, re-map when 
12668             they are >0 again; fixes #76035
12669           - Re-set our error handler after initializing X11Desktop
12670             to override any error handlers Gtk or whatever was called
12671             may have set.
12672
12673 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
12674
12675         * CheckedListBox.cs: Removed unused vars
12676         * ListView.cs: Fixed signatures
12677         * RichTextBox.cs: Removed unused vars
12678         * TextBoxBase.cs: Removed unused vars
12679         * XplatUIWin32.cs: Removed unused vars
12680         * XplatUIX11.cs: Removed unused vars
12681         * XplatUI.cs: Updated version and date to latest published
12682
12683 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12684
12685         * Cursor.cs: Added private .ctor to work around a bug in
12686           resourceset (Thanks to Geoff Norton for the help on this)
12687         * SplitterEventArgs.cs: Made fields accessible so we don't
12688           waste boatloads of objects and can reuse the same one
12689           in Splitter
12690         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
12691           any captions and borders when generating screen coordinates
12692         * Splitter.cs: Reimplemented control, now fully complete, uses
12693           rubberband drawing, supports and obeys all properties, has
12694           proper cursors
12695
12696 2005-10-13  Miguel de Icaza  <miguel@novell.com>
12697
12698         * Form.cs (Form): Setup default values for autoscale and
12699         autoscale_base_size;  Make these instance variables, not static
12700         variables. 
12701
12702         (OnLoad): on the first load, adjust the size of the form.
12703
12704 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
12705
12706         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
12707           width argument to DrawReversibleRectangle()
12708         * XplatUIWin32.cs, XplatUIX11.cs: 
12709           - Implemented width for DrawReversibleRectangle()
12710           - Added logic to DrawReversibleRectangle that recognizes a zero
12711             width or height and only draws a line in that situation
12712         
12713 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
12714
12715         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
12716         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
12717         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
12718           method (it uses our FosterParent window to get a graphics context)
12719
12720 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
12721
12722         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
12723           and SetWindowBackground methods
12724         * Control.cs:
12725           - Setting proper ControlStyles
12726           - We no longer call XplatUI.SetWindowBackground and XplatUI.
12727             EraseWindowBackground, instead we draw the window background
12728             ourselves in PaintControlBackground. This behaviour is
12729             required to match MS, where, when OnPaintBackground is not
12730             called, the background is not drawn.
12731           - Removed unneeded Refresh() in set_Text
12732         * Hwnd.cs: Dropped the ErasePending support. No longer needed
12733         * XplatUIX11.cs:
12734           - Created DeriveStyles method to translate from CreateParams to
12735             FormBorderStyle and TitleStyle, also handles BorderStyle (which
12736             matches FormBorderStyle enum values)
12737           - Consolidated SetHwndStyles and CalculateWindowRect border/title
12738             style calculations into single DeriveStyles method
12739           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
12740             from redrawing the whole window on any resize or expose.
12741           - Fixed CreateWindow usage of SetWindowValuemask. Before not
12742             all styles were applied to our whole/client window appropriately
12743           - Removed EraseWindowBackground() and SetWindowBackground() methods
12744           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
12745             no longer clear/redraw the background through X
12746           - Removed handling of erase_pending bit, we have no use for it (or
12747             so it seems)
12748         * XplatUIOSX.cs:
12749           - Removed generation and handling of WM_ERASEBKGND message
12750           - Removed EraseWindowBackground() and SetWindowBackground() methods
12751           - Removed handling of hwnd.ErasePending flag
12752         * XplatUIWin32.cs:
12753           - Removed EraseWindowBackground() and SetWindowBackground() methods
12754           - We no longer call EraseWindowBackground on PaintEventStart, we 
12755             ignore the fErase flag, erasing is handled in Control in the
12756             background handler
12757         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
12758           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
12759           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
12760           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
12761           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
12762           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
12763           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
12764
12765 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
12766
12767         * PropertyGrids.cs: Get sub properties
12768         * PropertyGridView.cs: Fix drawing code
12769
12770 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12771
12772         * ListBox.cs: Fixes 76383
12773
12774 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12775
12776         * DataGridTextBoxColumn.cs: Sets location and size before attachment
12777         * ThemeWin32Classic.cs: Fixes border drawing and calculations
12778         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
12779
12780
12781 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12782
12783         * ComboBox.cs: Fixes border drawing
12784
12785 2005-10-10  Miguel de Icaza  <miguel@novell.com>
12786
12787         * MimeIcon.cs: Ignore errors if the file can not be read.
12788
12789 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
12790
12791         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
12792          - Fixed border calculations
12793          - Fixed horizontal scrolling in single column listboxes
12794          - Fixed drawing issues
12795
12796 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
12797
12798         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
12799           FormBorderStyle enum
12800         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
12801           code to determine FormBorderStyles from CreateParams
12802         * Form.cs:
12803           - Fixed bug where we'd set the wrong window styles if we were
12804             not creating an MDI window
12805           - Added call to XplatUI.SetBorderStyle when form borders are set
12806         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
12807         * Hwnd.cs:
12808           - Removed obsolete edge style
12809           - Switched from BorderStyle to FormBorderStyle
12810         
12811 2005-10-10  Jackson Harper  <jackson@ximian.com>
12812
12813         * Form.cs: Use the property to get the window handle instead of
12814         accessing it directly. Prevents a null reference exception.
12815
12816 2005-10-10  Jackson Harper  <jackson@ximian.com>
12817
12818         * TreeView.cs: Don't adjust the rect given to DrawString now that
12819         our libgdiplus draws correctly.
12820
12821 2005-10-08  Jackson Harper  <jackson@ximian.com>
12822
12823         * TreeView.cs: Don't try to find the clicked on node if there are
12824         no nodes in the tree.
12825
12826 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12827
12828         * RichTextBox.cs:
12829
12830           restore
12831
12832 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
12833
12834         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
12835           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
12836           ErrorProvider.cs:
12837           Use ResPool for brushes and dispose System.Drawing objects that
12838           are not used anymore.
12839
12840 2005-10-07  Jackson Harper  <jackson@ximian.com>
12841
12842         * MdiChildContext.cs: Use the new borders instead of drawing them
12843         ourselves.
12844
12845 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12846
12847         * Calling UpdateBounds after changing the window's BorderStyle 
12848         since the style can change the ClientSize
12849
12850 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12851
12852         * Control.cs: Made PaintControlBackground virtual
12853         * Panel.cs: Overriding PaintControlBackground instead of using paint
12854           event; paint event method was interfering with 'real' users of the
12855           event.
12856
12857 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
12858
12859         * ThemeWin32Classic.cs: remove border drawing since it is handled
12860         by the base control class now and was causing double border drawing.
12861
12862 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12863
12864         * Panel.cs: Redraw our background on paint. Not a pretty solution,
12865           but it does seem to match MS behaviour. This fixes bug #75324
12866
12867 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12868
12869         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
12870           somewhat hackish looking
12871
12872 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12873
12874         * TextBoxBase.cs:
12875           - We now accept Enter even if AcceptEnter is false, if the containing
12876             form does not have an AcceptButton configured (fixes bug #76355)
12877           - Calculations are now fixed to no longer use Width/Height, but
12878             ClientSize.Width/Height, since we now support borders (this was
12879             a result of fixing borders and therefore bug #76166)
12880           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
12881             true (fixes bug #76354)
12882         
12883 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12884
12885         * Control.cs: 
12886           - Defaulting BorderStyle and setting it in XplatUI when our window 
12887             is created
12888           - Added enum check to InternalBorderStyle setter
12889         * XplatUIX11.cs: 
12890           - Added drawing of window borders
12891           - Now properly calculates WM decorations offset for toplevel 
12892             windows (fixes bug #74763)
12893         * XplatUIWin32.cs: 
12894           - Implemented BorderStyles for windows (we're letting win32 draw 
12895             the border for us)
12896           - Fixed the signature for SetWindowLong
12897         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
12898           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
12899           setting borders
12900         * UpDownBase.cs: Remove drawing of borders, this is handled by
12901           the driver, outside the client area
12902         * ListView.cs: Removed bogus border calculations. The control should
12903           be oblivious to borders, since those are not part of the client
12904           area. 
12905         * X11DesktopColors.cs: Commented out (currently) unneeded variables
12906         * ThemeWin32Classic.cs: Removed border calculations from ListView 
12907           drawing code
12908
12909 2005-10-06  Jackson Harper  <jackson@ximian.com>
12910
12911         * MdiChildContext.cs: Clear out the old virtual position remove
12912         all the unneeded calls to CreateGraphics.
12913
12914 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12915
12916         * TextControl.cs: Use proper color for highlighted text; fixes #76350
12917
12918 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
12919
12920         * Form.cs: 
12921           - Added loading and setting of our new default icon
12922           - Only set icon if window is already created
12923
12924 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
12925
12926         * Label.cs:
12927           - Do not explicitly set the foreground and background colors, to
12928             allow inheriting from parents (fixes #76302)
12929           - Use Control's InternalBorderStyle property to deal with borders
12930
12931 2005-10-06  Jackson Harper  <jackson@ximian.com>
12932
12933         * MdiChildContext.cs: Use the new xplatui function to draw a
12934         reversible rect.
12935
12936 2005-10-06  Jackson Harper  <jackson@ximian.com>
12937
12938         * Form.cs: Add the parent before creating the child context cause
12939         we need the parent when setting up the child.
12940
12941 2005-10-06  Jackson Harper  <jackson@ximian.com>
12942
12943         * FolderBrowserDialog.cs: redo the tree population code so a
12944         second thread isn't used. Should be a lot faster and more stable
12945         now.
12946
12947 2005-10-05  Jackson Harper  <jackson@ximian.com>
12948
12949         * TreeView.cs: There are no expand/collapse boxes if the node has
12950         no children.
12951
12952 2005-10-05  Jackson Harper  <jackson@ximian.com>
12953
12954         * X11DesktopColors.cs: Get menu colours for the gtk theme.
12955
12956 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
12957
12958         * FileDialog.cs: Fix InitialDirectory
12959
12960 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
12961
12962         * ComboBox.cs:
12963                 - Fixes changing between styles
12964                 - Fixes simple mode
12965                 - Fixes last item crashing when navigating with keyboard
12966
12967 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
12968
12969         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
12970
12971 2005-10-05  Jackson Harper  <jackson@ximian.com>
12972
12973         * TreeView.cs: If updating the root node do a full refresh.
12974         * TreeNode.cs: The root node should be expanded by default. Also
12975         added a utility prop to tell if we are the root node.
12976         * TreeNodeCollection.cs: Only refresh if the node we are being
12977         added to is expanded. Also added a comment on a potential
12978         optimization.
12979         
12980 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
12981
12982         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
12983           in dispose method. Fixes #76330
12984
12985 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
12986
12987         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
12988
12989                 - Implements vertical and horizontal scrolling using XplatUI
12990                 - Fixes keyboard navagation
12991                 - Fixes EnsureVisible
12992                 - Drawing fixes
12993                 - Handles and draws focus properly
12994
12995
12996 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
12997
12998         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
12999           Create handle. NET_2_0: Destroy handle when value is null.
13000
13001 2005-10-03  Jackson Harper  <jackson@ximian.com>
13002
13003         * ScrollBar.cs: My last scrollbar patch was broken. This is a
13004         revert and a new patch to prevent the thumb from refreshing so
13005         much.
13006
13007 2005-10-02  Jackson Harper  <jackson@ximian.com>
13008
13009         * ScrollBar.cs: Don't update position if it hasn't actually
13010         changed. This occurs when you hold down the increment/decrement
13011         buttons and the thumb gets to the max/min.
13012
13013 2005-10-01  Jackson Harper  <jackson@ximian.com>
13014
13015         * Form.cs:
13016         * MdiChildContext.cs:
13017         * MdiClient.cs: Implement ActiveMdiChild in Form.
13018
13019 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
13020
13021         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
13022
13023 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
13024
13025         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
13026           be found
13027
13028 2005-09-30  Jackson Harper  <jackson@ximian.com>
13029
13030         * ListBox.cs: Don't do a full refresh unless some data has
13031         actually changed.
13032
13033 2005-09-30  Jackson Harper  <jackson@ximian.com>
13034
13035         * TreeView.cs: Make sure that the checkboxes size is factored in
13036         even when not visible.
13037
13038 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13039
13040         * FileDialog.cs: Fix Jordi's build break
13041
13042 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13043
13044         * FileDialog.cs: 
13045                 - Use standard the Windows colours for the combobox as espected
13046                 - Dispose objects that use resouces when no longer need them
13047
13048 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
13049
13050         * X11DesktopColors.cs: Initial incomplete implementation
13051         * XplatUIX11.cs: Added call to initialize X11DesktopColors
13052
13053 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
13054
13055         * Theme.cs: 
13056           - Switched Theme color names to match the names defined in 
13057             System.Drawing.KnownColors. Life's hard enough, no need to make 
13058             it harder.
13059           - Added setters to all theme color properties so themes can set
13060             their color schemes. The setters also propagate the color changes
13061             to System.Drawing.KnownColors via reflection
13062         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
13063           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
13064           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
13065           use the new, more logical theme color names
13066         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
13067           post-NT colors
13068         * ThemeWin32Classic.cs:
13069           - Removed code to set the old classic Windows colors. Instead it
13070             now relies on the colors returned by System.Drawing.KnownColors
13071             which will be either modern static colors (Unix) or colors
13072             read from the user's configuration (Win32)
13073           - Updated to use the new, more logical theme color names
13074           - Switched DataGrid drawing code to use only Theme colors instead of
13075             a mix of System.Drawing.KnownColors and Theme colors
13076           - DrawFrameControl(): Removed code that fills the button area, the
13077             fill would overwrite any previous fill done by a control. This
13078             fixes bug #75338 
13079           - Added DrawReversibleRectangle() stub
13080         * ScrollableControl.cs: Set visible state to false when scrollbars
13081           are removed (pdn fix)
13082         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
13083           DrawReversibleRectangle() method to allow drawing primitive 
13084           'rubber bands'
13085         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
13086
13087 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13088
13089         * ImageList.cs: Add(Icon): Create handle.
13090
13091 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
13092
13093         * ListView.cs:
13094         * ThemeWin32Classic.cs:
13095                 - Fixes detail mode
13096                 - Sets clippings
13097                 - Issues with drawing
13098
13099 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13100
13101         * ImageList.cs: Moved RecreateHandle back to ImageList as event
13102           source has to be the ImageList.
13103
13104 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13105
13106         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
13107
13108 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13109
13110         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
13111
13112 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13113
13114         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
13115
13116 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
13117         * GridItem.cs: Fixed TODOs
13118         * GridItemCollection.cs: Added ICollection interface
13119
13120 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
13121
13122         * ImageList.cs: Resize icons when needed.
13123
13124 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
13125
13126         * ListViewItem.cs
13127                 - Fixes GetBounds and returns on screen rects
13128         * ListView.cs:
13129                 - Fixes vertical and horzintal scrolling of items
13130         * ThemeWin32Classic.cs:
13131                 - Fixes drawing
13132                 
13133 2005-09-29  Raja R Harinath  <harinath@gmail.com>
13134
13135         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
13136
13137 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
13138
13139         * ImageList.cs: Added comments about handle creation. Moved Handle,
13140           HandleCreated and OnRecreateHandle implementations to ImageCollection.
13141           Handle is created in Add methods.
13142
13143 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13144          
13145         * DataGridDrawingLogic.cs: 
13146                 - Takes rows into account on Colum calculations
13147                 - Returns the column when clickig
13148         * DataGrid.cs:
13149                 - Fixes default HitTestInfo values
13150                 - Fixes HitTestInfo.ToString
13151                 - Fixes ResetBackColor          
13152         
13153 2005-09-28  Jackson Harper  <jackson@ximian.com>
13154
13155         * MdiChildContext.cs: Obey rules for fixed sized windows (no
13156         sizing or cursor changes). Also added some temp code to draw the
13157         titlebars text (Makes dev a little easier).
13158
13159 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13160
13161         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
13162
13163 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
13164          
13165         * ListBox.cs: Fixes bug 76253
13166
13167 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
13168
13169         * ImageList.cs: Added comments about the current implementation. Added
13170           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
13171           Format32bppArgb to preserve transparency and can use Graphics.FromImage
13172           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
13173           with Bitmap.LockBits for better performance. Revised the whole file to
13174           match MS.NET behaviour and provide better performance. Non-public
13175           interface members are calling public members even when they throw
13176           NotSupportedException for better maintainability. Moved ColorDepth,
13177           ImageSize, ImageStream and TransparentColor implementations to
13178           ImageCollection for better performance as these properties are not used
13179           by ImageList.
13180         * ImageListStreamer.cs: Added a new internal constructor that takes an
13181           ImageList.ImageCollection and serializes Images based on
13182           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
13183           match ImageList property name.
13184
13185 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
13186
13187         * ListBox.cs: Fixes IndexFromPoint for last item
13188
13189 2005-09-27  Jackson Harper  <jackson@ximian.com>
13190
13191         * Form.cs: Set the position of new mdi children correctly.
13192
13193 2005-09-27  Jackson Harper  <jackson@ximian.com>
13194
13195         * MdiClient.cs: New mdi children need to be added to the back of
13196         the controls collection so the zorder is set correctly. Also add a
13197         count of all the child windows that have been created.
13198
13199 2005-09-27  Jackson Harper  <jackson@ximian.com>
13200
13201         * Form.cs (CreateParams): Setup MDI forms correctly.
13202
13203 2005-09-27  Jackson Harper  <jackson@ximian.com>
13204
13205         * MdiChildContext.cs:
13206         * MonthCalendar.cs:
13207         * UpDownBase.cs:
13208         * ListBox.cs:
13209         * ListView.cs:
13210         * TextBoxBase.cs:
13211         * TreeView.cs:
13212         * ScrollableControl.cs:
13213         * ComboBox.cs: Add implicit controls using the new implict control
13214         functionality in ControlCollection. Also try to block multiple
13215         control add in a suspend/resume layout to save some cycles.
13216         
13217 2005-09-27  Jackson Harper  <jackson@ximian.com>
13218
13219         * Control.cs: Add functionality to the controls collection to add
13220         'implicit controls' these are controls that are created by the
13221         containing control but should not be exposed to the user. Such as
13222         scrollbars in the treeview.
13223         * Form.cs: The list var of the ControlsCollection is no longer
13224         available because of the potential of implicit controls getting
13225         ignored by someone accessing the list directly.
13226
13227 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
13228
13229         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
13230           loose it's parent. (Fixed bug introduced in r49103 when we added
13231           setting the child parent to null on Remove)
13232
13233 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
13234
13235         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
13236         * Splitter.cs: Added missing attributes for BorderStyle property.
13237         * TextBoxBase.cs: Marked Calculate* methods internal.
13238         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
13239         MS.NET.
13240
13241 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
13242          
13243         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
13244
13245 2005-09-25  Jackson Harper  <jackson@ximian.com>
13246
13247         * TreeView.cs: Update the node bounds correctly regardless of
13248         whether the node is visible.
13249
13250 2005-09-25  Jackson Harper  <jackson@ximian.com>
13251
13252         * ImageList.cs: Don't dispose the image after it is added to the
13253         image list. Only reformat images that need to be resized.
13254
13255 2005-09-25  Jackson Harper  <jackson@ximian.com>
13256
13257         * ImageList.cs: Don't set the format when changing the image.
13258
13259 2005-09-25  Jackson Harper  <jackson@ximian.com>
13260
13261         * TreeView.cs: We can't just assume the node has a font. Use the
13262         treeviews font if no node font is available.
13263
13264 2005-09-25  Jackson Harper  <jackson@ximian.com>
13265
13266         * TreeView.cs: Allow the scrollbars to be reset with negative
13267         values.
13268         - Don't add scrollbars to negative sized windows.
13269
13270 2005-09-23  Jackson Harper  <jackson@ximian.com>
13271
13272         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
13273         old Mono.Posix. Also remove some stray code that shouldn't have
13274         been committed.
13275
13276 2005-09-23  Jackson Harper  <jackson@ximian.com>
13277
13278         * TreeView.cs: Attempt at proper sizing of the horizontal
13279         scrollbar. Also don't resize the scrollbars unless they are
13280         visible.
13281
13282 2005-09-23  Jackson Harper  <jackson@ximian.com>
13283
13284         * TreeView.cs: We don't need to expand the invalid area when the
13285         selection changes, as this is all drawn in the node's bounding
13286         box. The area needs to be expanded (previous typo was contracting
13287         it) when the focus rect moves.
13288
13289 2005-09-23  Jackson Harper  <jackson@ximian.com>
13290
13291         * TreeView.cs: Display the selection box under the correct
13292         circumstances. We were rendering white text with no selection box
13293         before.
13294
13295 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
13296
13297         * TextControl.cs(Split): Now updates selection start/end if it points 
13298           into a line that's being split. Fixes a FIXME and bug #75258
13299
13300 2005-09-23  Jackson Harper  <jackson@ximian.com>
13301
13302         * Binding.cs:
13303         * ListControl.cs: Don't use the path when retrieving binding
13304         managers from the binding context. My bat sense tells me that the
13305         path is only used on insertion.
13306
13307 2005-09-22  Jackson Harper  <jackson@ximian.com>
13308
13309         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
13310
13311 2005-09-22  Jackson Harper  <jackson@ximian.com>
13312
13313         * Splitter.cs: There are special cursors used for splitting.
13314         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
13315
13316 2005-09-22  Jackson Harper  <jackson@ximian.com>
13317
13318         * Splitter.cs: Change the cursor appropriately when the splitter
13319         is moused over, so the user actually knows there is a splitter
13320         there.
13321
13322 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13323
13324        * Label.cs : Fix ToString method to give same output as MS.NET
13325
13326 2005-09-22  Jackson Harper  <jackson@ximian.com>
13327
13328         * TreeView.cs: Create the scrollbars when the handle is created
13329         and add them right away, just make them invisble. Also account for
13330         the window being shrunk vertically to the point that the vert
13331         scrollbar needs to be added.
13332         - Remove some 0.5 adjustments to get around anti aliasing issues.
13333         
13334 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
13335          
13336         * MainMenu.cs: Fixes default value
13337         * MenuItem.cs: Fixes default value
13338
13339 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
13340
13341         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
13342
13343 2005-09-21  Jackson Harper  <jackson@ximian.com>
13344
13345         * Control.cs: Don't try to set the border style on the window if
13346         it hasn't been created. When the window is created the border
13347         style will be used.
13348
13349 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13350
13351         * Control.cs (Update): Don't call XplatUI if we don't have a
13352           window handle yet
13353
13354 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13355
13356         * ContainerControl.cs: Instead of throwing an exception, print
13357           a one-time warning about Validate not being implemented
13358         * XplatUIWin32.cs: Removed debug output
13359
13360 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
13361
13362         * Control.cs: Only set XplatUI background if we expect the windowing
13363           system to handle the background. This stops controls that draw their
13364           own background from flickering
13365
13366         * XplatUIX11.cs: Support custom visuals and colormaps for window 
13367           creation. This allows, amongst other things, using MWF X11 windows 
13368           with OpenGL.
13369
13370 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
13371
13372         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
13373           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
13374           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
13375           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
13376           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
13377           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
13378           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
13379           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
13380           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
13381           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
13382           GridColumnStylesCollection.cs, 
13383           IDataGridColumnStyleEditingNotificationService.cs,
13384           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
13385           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
13386           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
13387           TreeNodeCollection.cs, AmbientProperties.cs, 
13388           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
13389           DataObject.cs, ErrorProvider.cs, Splitter.cs,
13390           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
13391           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
13392           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
13393           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
13394           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
13395           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
13396           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
13397           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
13398           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
13399           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
13400           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
13401           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
13402           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
13403           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
13404           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
13405           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
13406           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
13407           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
13408           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
13409           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
13410           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
13411           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
13412           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
13413           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
13414           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
13415           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
13416           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
13417           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
13418           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
13419           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
13420           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
13421           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
13422           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
13423           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
13424           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
13425
13426 2005-09-21  Jackson Harper  <jackson@ximian.com>
13427
13428         * TreeNode.cs: Call Before/After Expand not Collapse when
13429         expanding.
13430
13431 2005-09-20  Jackson Harper  <jackson@ximian.com>
13432         
13433         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
13434
13435 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13436          
13437         * ListViewItem.cs:
13438                 - Fixes bug 76120
13439                 - Fixes proper storing of subitems
13440                 - Fixes not updated items
13441
13442 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
13443
13444         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
13445           things if our window handle isn't created yet. Also disabled 
13446           debug for TextBoxBase
13447
13448 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
13449
13450         * MenuAPI.cs: Remove filtering of events to allow menu usage
13451
13452 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13453
13454         * Cursor.cs: Allow null to be passed to Cursor.Current.
13455
13456 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
13457
13458         * ThemeWin32Classic.cs:
13459           - Change some private methods/fields to protected virtual so that 
13460             they can be accessed and overriden in derived classes
13461           - First refactoring of some methods. Derived themes now don't 
13462             need to duplicate the complete code from ThemeWin32Classic
13463         * ThemeNice.cs:
13464           - Added nice StatusBar
13465           - Derive from ThemeWin32Classic and not Theme
13466           - Removed duplicate ThemeWin32Classic code
13467
13468 2005-09-20  Miguel de Icaza  <miguel@novell.com>
13469
13470         * Control.cs (ControlCollection.Add): If the value null is passed
13471         the control is ignored. 
13472
13473         Optimize this loop.
13474
13475 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
13476
13477         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
13478           PostQuitMessage state.
13479         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
13480
13481 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
13482
13483         * Application.cs: Our constructor will never get called, move 
13484           initialization to fields; fixes bug #75933
13485
13486 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
13487
13488         * FileDialog.cs :
13489                 - Allow files to be selected properly using file name
13490                 combo box.
13491                 - Add ability to change diretory (absolute / relative)
13492                 using file name combo box.
13493
13494 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
13495          
13496         * ListBox.cs: 
13497                 - Fixes Multicolumn listboxes item wrong calculations
13498                 - Allows to click when only one item is in the listbox
13499                 - Fixes crash when no items using keyboard navigation
13500
13501 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
13502
13503         * ComboBox.cs: Reverted almost everything from the latest patch which
13504           broke ComboBox
13505
13506 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
13507         
13508         * ToolTip.cs:
13509                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
13510         * ComboBox.cs:
13511                 - When DropDownStyle is Simple, it does not show scrollbar 
13512                 to the last item of the list.
13513                 - When DropDownStyle is Simple, it crashed when the list was 
13514                 scrolled down with the down cursor key.
13515                 - Fixed a bug that when DropDownStyle is DropDownList, the 
13516                 selected item was not shown.
13517                 - The position of the selected item was not preserved when 
13518                 the next dropdown happened.
13519         * ThemeWin32Classic.cs:
13520                 - Items were wrapped at the right end.
13521         * CheckedListBox.cs:
13522                 - Fixed Add method
13523         * ListBox.cs:
13524                 - Items should be fully shown.
13525                 - When resizing and vertical scrollbar disappeared, the item 
13526                 of index 0 should be on the top of the list.
13527                 - GetItemRectangle should consider the size of ver. scrollbar
13528         * StatusBar.cs:
13529                 - SizingGrip area should not be allocated when it is not 
13530                 displayed.
13531                 - Now it reflects MinWidth of the containing panel and 
13532                 fixed a crash that happens when its width becomes so small.
13533
13534 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13535
13536         * CheckedListBox.cs: Fixes bug 76028
13537         * ListBox.cs: Fixes bug 76028
13538
13539 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
13540
13541         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
13542         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
13543
13544 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
13545
13546         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
13547
13548 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13549
13550         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
13551
13552 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13553
13554         * IRootGridEntry.cs: Added
13555         * PropertyGridCommands.cs: Added
13556         * PropertiesTab.cs: Added missing methods and property
13557         * PropertyGridView.cs: Made class internal
13558         * PropertyGridTextBox.cs: Made class internal
13559
13560 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13561
13562         * MimeIcon.cs: Try to check some other environment variables
13563           if "DESKTOP_SESSION" returns "default"
13564
13565 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13566
13567         * ThemeNice.cs: Corrected background colors (e.g. menus)
13568         * ColorDialog.cs: Use correct background colors for controls
13569
13570 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
13571
13572         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
13573
13574 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
13575
13576         * RichTextBox.cs: Added initial implementation
13577         * lang.cs: Removed. Was accidentally checked in long time ago
13578         * TODO: Removed. Contents were obsolete
13579
13580 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13581                                                                                 
13582         * PropertiesTab.cs : Added
13583
13584 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
13585                                                                                 
13586         * PropertyGrid.cs : Update
13587         * PropertyGridView.cs : Update
13588         * System.Windows.Forms.resx : Added images and strings
13589
13590 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
13591
13592         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
13593  
13594 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
13595
13596         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
13597           a busy loop right after the Ungrab the X11 display is otherwise 
13598           blocked
13599
13600 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
13601
13602         * ThemeWin32Classic.cs: Optimise the use of clipping
13603
13604 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
13605
13606         * DataGrid.cs: fixes recursion bug
13607
13608 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
13609
13610         * ThemeNice.cs: 
13611           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
13612           - Cleanup
13613
13614 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
13615
13616         * ThemeNice.cs: Draw nice ProgressBars
13617
13618 2005-09-01  Miguel de Icaza  <miguel@novell.com>
13619
13620         * VScrollBar.cs: Another buglet found by Aaron's tool. 
13621
13622         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
13623         bug finder.
13624
13625 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
13626
13627         * ThemeNice.cs:
13628           - Added nicer menu drawing
13629           - Updated DrawTab
13630           - some refactoring
13631
13632 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13633
13634         * CreateParams.cs (ToString): Made output match MS
13635         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
13636             handle is already created (to avoid forcing window creation)
13637         * XplatUIX11.cs: Set window text to caption after creating window,
13638           in case Text was set before window was created
13639         * Form.cs: Use this.Text instead of a static string as caption
13640
13641 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13642
13643         * NotifyIcon.cs: Don't set the window to visible; this screws
13644           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
13645           OnPaint without a bitmap)
13646         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
13647           happen very often anyway; we could add the check to the WM_PAINT 
13648           event generation code
13649
13650 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
13651
13652         * NotifyIcon.cs: Fill the icon area with a background color, to 
13653           avoid 'residue' when transparent icons are drawn
13654         * XplatUIX11.cs:
13655           - Handle whole_window == client_window when destroying windows
13656           - SystrayAdd(): Set client_window to whole_window value to
13657             get mouse and other events passed to NotifyIcon
13658
13659 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
13660
13661         * Form.cs: Set proper default for Opacity property
13662         * NotifyIcon.cs:
13663           - ShowSystray(): Don't bother creating telling the OS
13664             about the systray item if no icon is provided
13665           - Now handles WM_NCPAINT message to deal with whole/client window
13666             split
13667           - Create window as visible to not get caught by Expose optimization
13668         * Hwnd.cs: Removed debug message
13669         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
13670           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
13671             PaintEventStart/End to use new client argument
13672         * TextBoxBase.cs:
13673           - Commented out debug messages
13674           - Switched PaintEventStart/End to use new client argument
13675         * XplatUI.cs: Added client window bool to PaintEventStart()/
13676           PaintEventEnd() calls, to support drawing in non-client areas
13677         * XplatUIDriver.cs: 
13678           - Added client window bool to PaintEventStart()/PaintEventEnd() 
13679             calls, to support drawing in non-client areas
13680           - Added conditional compile to allow using MWF BeginInvoke 
13681             on MS runtime
13682         * XplatUIX11.cs:
13683           - Added some conditional debug output
13684           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
13685             whole/client window split
13686           - Implemented handling of client argument to PaintEventStart()/End()
13687         * Control.cs:
13688           - Throw exception if BeginInvoke() is called and the window handle
13689             or one of the window's parent handles is not created
13690           - Added conditional compile to allow using MWF BeginInvoke on
13691             MS runtime
13692           - get_Parent(): Only sets parent if handle is created. This avoids
13693             forcing window handle creation when parent is set.
13694           - Now fires Layout and Parent changed events in proper order
13695           - Switched to use Handle instead of window.Handle for Z-Order setting,
13696             the get_Parent() patch above causes us to possibly get null for 'window'
13697           - Implemented handling of client argument to PaintEventStart()/End()
13698           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
13699             default handling)
13700           - Now sends a Refresh() to all child windows when Refresh() is called
13701
13702 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
13703
13704         * Form.cs: Added (non-functional) Opacity property
13705         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
13706
13707 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
13708         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
13709           use export MONO_THEME=nice to activate it.
13710           Currently supported controls:
13711           - Button
13712           - ComboBox
13713           - ScrollBar
13714           - TabControl (TabAlignment.Top only, other will follow)
13715         * ThemeEngine.cs: Add theme nice
13716         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
13717           if enabled
13718
13719 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
13720
13721         * Splitter.cs: Resize docked control and its neighbor.
13722
13723 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13724         -- Making Windows with Menus layout correctly --
13725         * Form.cs : The first leg of the fix
13726                 Menu setter - adjust Client Size as needed to make space for the menu
13727                 SetClientSizeCore - doesn't call base version to be able to pass the 
13728                         menu handle to XplatUI.CalculateWindowRect
13729         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
13730         * XplatUIX11.cs: The critical second leg of the fix
13731                 GetWindowPos needs to use a recalculated client_rect
13732                 so that resizing the window doesn't break layout of child controls. 
13733                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
13734                 Lots of \t\n killed
13735
13736 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
13737
13738         * Label.cs: Now properly recalculates width and height on Font and Text
13739           changes if AutoSize is set
13740
13741 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
13742         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
13743
13744 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
13745
13746         * ImageList.cs: Makes ToString method compatible with MS
13747
13748 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
13749
13750         * MenuAPI.cs: fixes bug 75716
13751
13752 2005-08-11 Umadevi S <sumadevi@novell.com>
13753         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
13754
13755 2005-08-11 Umadevi S <sumadevi@novell.com>
13756         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
13757
13758 2005-08-10  Umadevi S <sumadevi@novell.com>
13759         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
13760
13761 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
13762
13763         * Menu.cs: fixes bug 75700
13764         * MenuAPI.cs: fixes navigation issues
13765
13766 2005-08-09  Umadevi S <sumadevi@novell.com>
13767         * CheckedListBox.cs - simple fix for GetItemChecked.
13768
13769 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
13770
13771         * ComboBox.cs: Serveral fixes
13772         * ListBox.cs: Serveral fixes
13773
13774 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13775
13776         * ComboBox.cs: Fixes FindString methods and GetItemHeight
13777         * ListBox.cs: Fixes FindString methods
13778
13779 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
13780
13781         * DataGrid.cs: fixes bugs exposed by new tests
13782
13783 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
13784
13785         * Mime.cs: Compile Mono assembly references only if compiling
13786           with Mono (Allows to build with VS.Net again)
13787
13788 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
13789
13790         * Control.cs (PaintControlBackground): Draw background image
13791         corrrectly.
13792         (CheckForIllegalCrossThreadCalls): Stubbed.
13793         
13794         * Form.cs (OnCreateControl): Center when should be centered.
13795         
13796         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
13797
13798 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
13799
13800         * Binding.cs: Binding to properties should be case unsensitive
13801
13802 2005-07-18 vlindos@nucleusys.com
13803
13804         * DataGrid.cs: fixes setmember order
13805
13806 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
13807
13808         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
13809         * FileDialog.cs: FileDialog is now resizable and uses the new
13810           MimeIconEngine
13811
13812 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
13813
13814         * DataGridTextBoxColumn.cs: default value
13815         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
13816         * GridTableStylesCollection.cs: fixes checking MappingName
13817         * DataGridDrawingLogic.cs: fixes drawing logic issues
13818         * DataSourceHelper.cs: rewritten to make compatible with more data sources
13819         * DataGrid.cs: fixes    
13820
13821 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
13822
13823         * MimeGenerated.cs: Use case sensitive comparer for
13824           NameValueCollections
13825
13826 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
13827
13828         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
13829         * ThemeWin32Classic.cs: bug fixes, code refactoring
13830         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
13831         * DataGrid.cs: bug fixes, code refactoring
13832         * DataGridTextBox.cs: bug fixes, code refactoring
13833         * DataGridColumnStyle.cs:  bug fixes, code refactoring
13834         * Theme.cs:  bug fixes, code refactoring
13835
13836 2005-07-01  Peter Bartok  <pbartok@novell.com> 
13837
13838         * TextControl.cs: Quick fix for the reported crash on ColorDialog
13839           and other text box usage
13840
13841 2005-07-01  Jackson Harper  <jackson@ximian.com>
13842
13843         * TabControl.cs: Make sure the bottom of the tab covers the pages
13844         border.
13845
13846 2005-06-30  Peter Bartok  <pbartok@novell.com> 
13847
13848         * Form.cs (ShowDialog): Assign owner of the dialog
13849         * TextBoxBase.cs: Always refresh caret size when deleting, caret
13850           might have been moved to a tag with different height
13851
13852 2005-06-30  Jackson Harper  <jackson@ximian.com>
13853
13854         * Form.cs: Don't create an infinite loop when setting focus
13855         * MenuItem.cs: Don't dirty the parents if we don't have any
13856
13857 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
13858
13859         * LibSupport.cs: Rename
13860
13861 2005-06-29  Peter Bartok  <pbartok@novell.com>
13862
13863         * TextBoxBase.cs: Re-align caret after deleting a character
13864         * TextControl.cs:
13865           - DeleteChars(): Ensure that tag covers the provided position
13866           - StreamLine(): Drop reference for dropped tag
13867
13868 2005-06-29  Peter Bartok  <pbartok@novell.com> 
13869
13870         * TextControl.cs: 
13871           - Selections now work properly, anchoring at the initial location
13872             and properly extending in either direction (SetSelectionToCaret(),
13873             SetSelectionStart() and SetSelectionEnd())
13874           - No longer redraws the whole control on selection change, now
13875             calculates delta between previous and new selection and only
13876             invalidates/redraws that area
13877           - Fixed FindPos() math off-by-one errors
13878           - Changed DeleteChars() to verify the provided tag covers the
13879             provided position, selections may have a tag that doesn't cover
13880             the position if the selection is at a tag border
13881           - Fixed off-by-one errors in DeleteChars()
13882           - Added missing streamlining check in DeleteChars() to remove
13883             zero-length tags
13884           - Implemented Invalidate() method, now properly calculates exposures
13885             between two given lines/positions
13886           - Implemented SetSelection()
13887           - Obsoleted and removed FixupSelection()
13888           - Improved RecalculateDocument() logic, removing code duplication
13889
13890 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13891
13892         * LibSupport.cs: changes to match different input/output arguments.
13893
13894 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13895
13896         * LibSupport.cs: added libsupport.so init routine.
13897
13898 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
13899         
13900         * ControlBindingsCollection.cs
13901                 - Throws an exception on null datasource when adding
13902                 - Checks for duplicated bindings when adding
13903
13904 2005-06-28  Jackson Harper  <jackson@ximian.com>
13905
13906         * TreeView.cs (OnKeyDown): Support left and right properly
13907         (navigates as well as expanding and collapsing.
13908         - Add support for Multiply, this expands all the selected nodes
13909         children.
13910         - Fix some tabbing.
13911
13912 2005-06-28  Jackson Harper  <jackson@ximian.com>
13913
13914         * TreeView.cs: Implement keyboard navigation, currently supports,
13915         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
13916         support for toggling checkboxes with the space bar.
13917
13918 2005-06-28  Jackson Harper  <jackson@ximian.com>
13919
13920         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
13921         tree.
13922
13923 2005-06-28  Jackson Harper  <jackson@ximian.com>
13924
13925         * TreeView.cs: Add missing event.
13926
13927 2005-06-27  Peter Bartok  <pbartok@novell.com> 
13928
13929         * TextControl.cs:
13930           - Made line ending size configurable (now allows for counting 
13931             lineendings as \n or \r\n)
13932           - Added margin to viewport to keep caret visible on right side
13933           - Fixed translation routines for line/pos to documentpos to consider
13934             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
13935           - Fixed some line-endings to be unix style
13936           - Fixed Document.FormatText to perform it's calculations 1-based
13937           - Added descriptions for a few methods that might otherwise get 
13938             used wrong
13939           - Added NOTE section with some basic conventions to remember at 
13940             the top of the file
13941           - Major fixup for RichTextBox selection drawing:
13942             * Fixed crashes when multiple tags on a single line were selected
13943             * fixed selection box drawing not overlaying text
13944             * fixed bogus offset calculation for tags not starting at index 1
13945             * Switched behaviour from using multiple Substrings of a 
13946               StringBuilder.ToString() to using multiple 
13947               StringBuilder.ToString(start, length) statements, hoping this is
13948               faster (kept original version commented out in the code, in case
13949               original version was faster)
13950         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
13951           alignment != Left
13952         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
13953           call it as well
13954
13955 2005-06-27  Jackson Harper  <jackson@ximian.com>
13956
13957         * TabControl.cs: Move to the left and right with the arrow
13958         keys. These keys don't cycle beyond first and last like
13959         tab. Refresh all the tabs when scrolling them to the left or
13960         right.
13961
13962 2005-06-27  Jackson Harper  <jackson@ximian.com>
13963
13964         * TabControl.cs:
13965           - ToString: Added method
13966           - CreateParams: Remove TODO and comment
13967           - OnKeyDown: Cycle through bounds properly.
13968           - SelectedIndex: Scroll to the right or left if we need to
13969           display the newly selected tab.
13970
13971 2005-06-23  Jackson Harper  <jackson@ximian.com>
13972
13973         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
13974         set.
13975
13976 2005-06-23  Jackson Harper  <jackson@ximian.com>
13977
13978         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
13979         CTRL-SHIFT-TAB, and HOME, END are there any others?
13980
13981 2005-06-23  Jackson Harper  <jackson@ximian.com>
13982
13983         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
13984
13985 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
13986         
13987         * DataGridTextBoxColumn.cs: fixes and enhancements
13988         * ThemeWin32Classic.cs: fixes and enhancements
13989         * DataGridBoolColumn.cs:  fixes and enhancements
13990         * DataGridDrawingLogic.cs:  fixes and enhancements
13991         * CurrencyManager.cs: fixes and enhancements
13992         * DataGrid.cs: fixes and enhancements
13993         * DataGridColumnStyle.cs:  fixes and enhancements
13994
13995 2005-06-22  Jackson Harper  <jackson@ximian.com>
13996
13997         * TabControl.cs: Add some missing methods that just call into the
13998         base. Make the TabPageCollection's IList interface behave in the
13999         same manner as the MS implementation.
14000
14001 2005-06-22  Peter Bartok  <pbartok@novell.com> 
14002
14003         * TextControl.cs: Added sanity check
14004         * TextBoxBase.cs: 
14005           - Fixed wrapping behaviour, don't set wrap on single line controls
14006             (this fixes the breakage of colordialog introduced in an earlier
14007              checkin)
14008           - Added rudimentary support for autoscrolling right-aligned controls
14009             (still needs fixing, also, center alignment scroll is missing)
14010
14011 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
14012         
14013         * ScrollBar.cs: Fixes thumbpos on Maximum values
14014
14015 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
14016         
14017         * PropertyGridView.cs: Pass context information to UITypeEditors 
14018
14019 2005-06-21  Peter Bartok  <pbartok@novell.com> 
14020
14021         * TextBoxBase.cs:
14022           - Now calling PositionCaret with absolute space coordinates
14023           - Enabled vertical scrolling
14024           - Better tracking of scrollbar changes, tied into WidthChange
14025             event
14026           - Improved cursor tracking
14027           - Removed debug output
14028         * TextControl.cs:
14029           - PositionCaret coordinates are now works in absolute space, not 
14030             the canvas
14031           - Improved tracking of document size
14032           - Added events for width and height changes
14033
14034 2005-06-21  Peter Bartok  <pbartok@novell.com>
14035
14036         * Form.cs: Set focus to active control when form is activated
14037         * TextControl.cs: 
14038           - Added word-wrap functionality to RecalculateLine() 
14039           - Added some short function descriptions for VS.Net to aid in
14040             writing dependent controls
14041           - Added Caret property, returning the current coords of the caret
14042           - Added ViewPortWidth and ViewPortHeight properties
14043           - Added Wrap property
14044           - Added CaretMoved event
14045           - Removed some old debug code
14046           - Split() can now create soft splits
14047           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
14048           - Added method to format existing text
14049           - Fixed size/alignment calculations to use viewport
14050           - RecalculateDocument now can handle changing line-numbers while
14051             calculating lines
14052
14053         * TextBox.cs:
14054           - Added some wrap logic, we don't wrap if alignment is not left
14055           - Added casts for scrollbar var, base class switched types to
14056             also support RichTextBoxA
14057           - Implemented handling of scrollbar visibility flags
14058
14059         * TextBoxBase.cs:
14060           - Switched scrollbars type to RichTextBoxScrollBars to support
14061             RichTextBox
14062           - Added tracking of canvas width/height
14063           - Switched scrollbars to be not selectable (to keep focus on text)
14064           - Added central CalculateDocument() method to handle all redraw
14065             requirements
14066           - Added ReadOnly support
14067           - Added WordWrap support
14068           - Fixed handling of Enter key (we now treat it as a DialogKey)
14069           - Fixed caret positioning when h or v scroll is not zero
14070           - Fixed placing/generation of vertical scrollbar
14071           - Added CalculateScrollBars() method to allow updating scrollbar
14072             limits and visibility
14073           - Fixed handling of horizontal scroll
14074           - Added handling of vertical scroll
14075           - Implemented auto-'jump' when caret moves to close to a left or
14076             right border and there is text to be scrolled into view (currently
14077             there's the potential for a stack overflow, until a bug in
14078             scrollbar is fixed)
14079
14080 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
14081         
14082         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
14083
14084 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
14085
14086         * Mime.cs:
14087         - added inodes.
14088         - return application/x-zerosize for files with size zero
14089           (if no extension pattern matches).
14090         - check matches collection for strings too.
14091         - return only the first mime type if the name value
14092           collection has more than one mime type.
14093
14094 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
14095         
14096         * PropertyGrid.cs: Cleaned up some TODOs
14097         * PropertyGridView.cs: Added support for UITypeEditors
14098
14099 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14100         
14101         * DataGrid.cs: clears cached value
14102
14103 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
14104
14105         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
14106         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
14107         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
14108         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
14109         
14110 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
14111
14112         * ThemeWin32Classic.cs: fixes colour
14113
14114 2005-06-15  Peter Bartok  <pbartok@novell.com>
14115
14116         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
14117         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
14118         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
14119         * Control.cs: Added some MWFCategory and MWFDescription attributes
14120         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
14121
14122 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
14123
14124         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
14125         usage
14126
14127 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
14128
14129         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
14130         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
14131         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
14132         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
14133         * DataGrid.cs: default datagrid settings for Default Styles, fixes
14134         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
14135
14136 2005-06-13  Jackson Harper  <jackson@ximian.com>
14137
14138         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
14139         isn't printed when the user enables dropping. (X11 does accept
14140         drops).
14141         
14142 2005-06-13  Jackson Harper  <jackson@ximian.com>
14143
14144         * TreeView.cs: Remove some TODOS.
14145
14146 2005-06-13  Jackson Harper  <jackson@ximian.com>
14147
14148         * Form.cs: Hook into the mdi framework.
14149         * MdiClient.cs: Use the base control collections add method so
14150         parents get setup correctly. Set the default back colour and dock
14151         style.
14152         * MdiChildContext.cs: New class, this bad actor handles an
14153         instance of an MDI window. Right now there is only basic
14154         support. You can drag, close, and resize windows. Minimize and
14155         Maximize are partially implemented.
14156
14157 2005-06-13  Jackson Harper  <jackson@ximian.com>
14158
14159         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
14160         freaky when both vals are negative. NOTE: There are probably other
14161         places in XplatUIX11 that this needs to be done.
14162
14163 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
14164
14165         * DataGrid.cs: implement missing methods, move KeyboardNavigation
14166         * DataGridColumnStyle.cs: fixes signature
14167
14168 2005-06-12  Jackson Harper  <jackson@ximian.com>
14169
14170         * XplatUIX11.cs: Use sizing cursors similar to the ones on
14171         windows.
14172
14173 2005-06-11  Jackson Harper  <jackson@ximian.com>
14174
14175         * StatusBarPanel.cs: Signature cleanups. Implement
14176         BeginInit/EndInit.
14177
14178 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
14179
14180         * DataGridTextBoxColumn.cs: Honors aligment
14181         * GridColumnStylesCollection.cs: Contains is case unsensitive
14182         * GridTableStylesCollection.cs: several fixes
14183         * DataGridTableStyle.cs: default column creation
14184         * DataGridDrawingLogic.cs: fixes
14185         * CurrencyManager.cs: ListName property
14186         * DataGrid.cs: multiple styles support
14187         * DataGridColumnStyle.cs: fixes
14188         
14189
14190 2005-06-10  Peter Bartok  <pbartok@novell.com>
14191
14192         * Control.cs(Select): Moved SetFocus call to avoid potential
14193           loops if controls change the active control when getting focus
14194         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
14195           the up/down buttons
14196
14197 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
14198
14199         * ImageListConverter.cs: Implemented
14200
14201 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14202
14203         * MonthCalendar.cs: Wired in NumericUpDown control for year
14204
14205 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
14206
14207         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
14208           DoubleClick events, since they are not meant to be fired.
14209
14210 2005-06-09  Peter Bartok  <pbartok@novell.com>
14211
14212         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
14213           Jonathan's standalone controls into MWF, implemented missing
14214           events, attributes and methods; added xxxAccessible classes
14215         * AccessibleObject.cs: Made fields internal so other classes
14216           can change them if needed
14217
14218 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
14219
14220         * UpDownBase.cs: Complete implementation
14221         * NumericUpDown.cs: Complete implementation
14222         * DomainUpDown.cs: Complete implementation
14223
14224 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
14225
14226         * DataGridTextBoxColumn.cs: drawing fixes
14227         * DataGridCell.cs: fixes ToString method to match MSNet
14228         * DataGridTableStyle.cs: fixes
14229         * DataGridBoolColumn.cs: fixes, drawing
14230         * DataGridDrawingLogic.cs: fixes, new methods
14231         * DataGridTextBox.cs: Keyboard and fixes
14232         * DataGrid.cs:
14233                 - Keyboard navigation
14234                 - Scrolling fixes
14235                 - Row selection (single, multiple, deletion, etc)
14236                 - Lots of fixes
14237         
14238 2005-06-07  Jackson Harper  <jackson@ximian.com>
14239
14240         * ThemeWin32Classic.cs: Clear the background area when drawing
14241         buttons.
14242
14243 2005-06-06  Peter Bartok  <pbartok@novell.com>
14244
14245         * ImageListStreamer.cs: Fixed signature for GetData
14246         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
14247         * ComboBox.cs:
14248           - Added missing ChildAccessibleObject class
14249           - Added missing OnXXXFocus overrides, switched to using those
14250             instead of the event handler
14251         * Control.cs:
14252           - Added Parent property for ControlAccessibleObject
14253           - Fixed signatures
14254           - Fixed attributes
14255           - Added ResetBindings()
14256         * ListBindingConverter.cs: Implemented some methods
14257         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
14258         * ImageList.cs: Implemented basic handle scheme, removed TODOs
14259         * ContainerControl.cs: Fixed signature, now subscribing to the
14260           ControlRemoved event instead of overriding the handler, LAMESPEC
14261         * CurrencyManager.cs: Added missing attribute
14262         * MonthCalendar.cs: Added missing properties
14263
14264 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14265
14266         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
14267         
14268 2005-06-06  Gaurav Vaish and Ankit Jain
14269
14270         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
14271         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
14272         
14273 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
14274
14275         * Control.cs: fixes CreateParams Width / Height.
14276
14277 2005-06-05  Peter Bartok  <pbartok@novell.com>
14278
14279         * Win32DnD.cs: Removed compilation warnings
14280
14281 2005-06-05  Peter Bartok  <pbartok@novell.com>
14282
14283         * Control.cs (CreateParams): Since we don't know if one of the
14284           properties we use is overridden, lets make sure if we fail accessing
14285           we continue with a backup plan
14286
14287 2005-06-05  Peter Bartok  <pbartok@novell.com>
14288
14289         * Win32DnD.cs:
14290           - Removed debug output
14291           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
14292             struct
14293           - Plugged resource leak
14294         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
14295           MS size
14296
14297 2005-06-05  Peter Bartok  <pbartok@novell.com>
14298
14299         * XplatUIWin32.cs: Removed DnD code
14300         * Win32DnD.cs: Implemented drop source and drop target functionality
14301
14302 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14303
14304         * UpDownBase.cs: remove duplicate addition of event, enable some code
14305         that was commented out.
14306         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
14307         Validate input when a key is pressed. It works fine now for every
14308         combination of Hexadecimal. Only missing some drawing love when sharing
14309         space with other controls.
14310
14311 2005-06-04  Peter Bartok  <pbartok@novell.com>
14312
14313         * Control.cs:
14314           - We need to pass a window for DragDrop, so enable callback events
14315           - Added DnD callback events when being a DragSource
14316         * XplatUI.cs (StartDrag): Added window handle argument
14317         * XplatUIDriver.cs (StartDrag): Added window handle argument
14318         * QueryContinueDragEventArgs: Made fields internally accessible so
14319           drivers can set them
14320         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
14321           can set them
14322
14323 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
14324
14325         * DataGridTextBoxColumn.cs: column text editing
14326         * DataGridTableStyle.cs: Respect columns styles created by the user
14327         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
14328         * DataGridBoolColumn.cs: bool column editing
14329         * DataGrid.cs: fixes to scrolling, properties, etc
14330         * DataGridTextBox.cs: handle keyboard
14331         * DataGridColumnStyle.cs: fixes
14332
14333 2005-06-02  Jackson Harper  <jackson@ximian.com>
14334
14335         * ImageListStreamer.cs: Somewhat broken implementation of
14336         GetObjectData. The RLE needs some work to match MS properly.
14337
14338 2005-06-02  Jackson Harper  <jackson@ximian.com>
14339
14340         * X11Dnd.cs: Attempting to keep at least one file in MWF
14341         monostyled.
14342
14343 2005-06-02  Peter Bartok  <pbartok@novell.com>
14344
14345         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
14346           that way
14347
14348 2005-06-02  Peter Bartok  <pbartok@novell.com>
14349
14350         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
14351         * XplatUI.cs: Added DoDragDrop() method
14352         * XplatUIDriver.cs: Added DoDragDrop() method
14353
14354 2005-06-02  Jackson Harper  <jackson@ximian.com>
14355
14356         * Splitter.cs: Implement BorderStyle.
14357
14358 2005-06-02  Jackson Harper  <jackson@ximian.com>
14359
14360         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
14361         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
14362         X11 using XDND.
14363
14364 2005-06-02  Peter Bartok  <pbartok@novell.com>
14365
14366         * DataObject.cs:
14367           - Added Data setter
14368           - Fixed broken insertion code for SetData, now also
14369             overwrites any existing entry of the same format name
14370         * Hwnd.cs: Added list of pointers that automatically gets
14371           freed when the window is disposed
14372         * XplatUI.cs: Call driver initialization method when loading
14373           a driver
14374         * Control.cs:
14375           - OnDragLeave takes EventArgs, not DragEventArgs
14376           - Added setting of WS_EX_ACCEPTFILES style when dropping is
14377             supported
14378           - Forces style update when drop state changes
14379         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
14380           not perfect since we cannot (yet) call the IDataObject.GetData()
14381           method, we keep getting 0x80004005 error, dunno why)
14382
14383 2005-06-02  Peter Bartok  <pbartok@novell.com>
14384
14385         * DragEventArgs.cs: Make fields internal so we can cache the
14386           object and re-set the fields from XplatUI
14387
14388 2005-06-02  Jackson Harper  <jackson@ximian.com>
14389
14390         * Control.cs: Add some internal methods so the DnD subsystem can
14391         raise DnD events. Also call into the driver when AllowDrop is set.
14392         * XplatUI.cs:
14393         * XplatUIDriver.cs: New method for setting whether or not a window
14394         is allowed to accept drag and drop messages.
14395                 
14396 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
14397         
14398         * ScrollBar.cs: Make sure that values sent in Scroll events
14399         are always between Maximum and Minimum.
14400
14401 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
14402
14403         * Menu.cs: Call MenuChanged when menuitem visibility has been
14404         changed.
14405         * MenuItem.cs: Rebuild menu when item is (not) visible.
14406         * MainMenu.cs: MainMenu has special MenuChanged.
14407         * Theme.cs: Caption and FrameBorderSize are not fixed.
14408         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
14409         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
14410         * XplatUIX11.cs,
14411         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
14412         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
14413
14414 2005-05-30  Jackson Harper  <jackson@ximian.com>
14415
14416         * DataFormat.cs: We can't statically initialize this stuff because
14417         it calls into the xplatui and could create a loop. So we lazy init
14418         it.
14419
14420 2005-05-28  Jackson Harper  <jackson@ximian.com>
14421
14422         * Control.cs: Proper implementation of Product(Name/Version).
14423
14424 2005-05-27  Jackson Harper  <jackson@ximian.com>
14425
14426         * DataObject.cs: Dont crash if no data is found.
14427
14428 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
14429         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
14430                 as per status page, guessing it should be set to true
14431
14432 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
14433
14434         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
14435         * DataGridTableStyle.cs: set proper formatting text, def header text
14436         * ThemeWin32Classic.cs: new themable paramaters
14437         * DataGridBoolColumn.cs: paint check box, get data, fixes
14438         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
14439         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
14440         * DataGridColumnStyle.cs: fixes
14441         * Theme.cs: new themable paramaters
14442                 
14443 2005-05-26  Peter Bartok  <pbartok@novell.com>
14444
14445         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
14446
14447 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14448         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
14449
14450 2005-05-24  Peter Bartok  <pbartok@novell.com>
14451
14452         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
14453           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
14454           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
14455           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
14456           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
14457           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
14458           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
14459           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
14460           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
14461           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
14462           missing attributes, etc
14463         * DataGridPreferredColumnWidthTypeConverter.cs: Added
14464
14465 2005-05-24  Peter Bartok  <pbartok@novell.com>
14466
14467         * Help.cs: Added, implemented trivial functions, throws up MessageBox
14468           when user tries to get help
14469         * DataObject.cs, DataFormats.cs, LinkArea.cs,
14470           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
14471           to suppress warnings
14472         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
14473           avoid unreachable code warning
14474
14475 2005-05-20  Peter Bartok  <pbartok@novell.com>
14476
14477         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
14478
14479 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14480
14481         * DataGridTextBoxColumn.cs: Basic painting methods
14482         * DataGridTableStyle.cs: Set table style in the column
14483         * ThemeWin32Classic.cs: Use Theme for colors
14484         * DataGridDrawingLogic.cs: Implement more drawing
14485         * DataGrid.cs: drawing, theming, enhacements, fixes
14486         * DataGridColumnStyle.cs: fixes, drawing
14487         * Theme.cs: theming for Datagrid
14488
14489 2005-05-20  Peter Bartok  <pbartok@novell.com>
14490
14491         * Cursor.cs: Implemented GetObjectData() method
14492
14493 2005-05-20  Peter Bartok  <pbartok@novell.com>
14494
14495         * Cursors.cs: Added setting of cursor name
14496         * Cursor.cs:
14497           - Implemented constructors
14498           - Implemented Draw and DrawStretched
14499           - Implemented Current property
14500           - Implemented == and != operators
14501           - Implemented Dispose()
14502           - Implemented ToString
14503           - Added missing attributes
14504         * XplatUIX11.cs:
14505           - Added missing reset for OverrideCursor when DoEvents is called
14506           - Fixed creation of cursor, logic was wrong
14507         * XplatUIWin32.cs:
14508           - Added missing reset for OverrideCursor when DoEvents is called
14509           - Fixed creation of cursor, bit arrays were swapped
14510         * Clipboard.cs: Removed obsolete MonoTODO attribute
14511
14512 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14513
14514         * ComboBox.cs: fixes OnSelectedItemChanged
14515         * ControlBindingsCollection.cs: fixes item range check
14516
14517 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
14518
14519         * UpDownBase.cs:
14520                 - Calc preferred height properly
14521                 - Implement missing properties
14522                 
14523         * NumericUpDown.cs: Implement missing events
14524
14525 2005-05-19  Jackson Harper  <jackson@ximian.com>
14526
14527         * TabControl.cs: New method that resizes the tab pages before
14528         redrawing them. This as needed as the control is double buffered
14529         and sizing will not be recalculated unless ResizeTabPages is
14530         called.
14531         * TabPage.cs: Set base.Text instead of Text in the constructor so
14532         that UpdateOwner does not get called. Use the new Redraw method of
14533         TabControl instead of Refresh so the sizing is recalculated.
14534         * ThemeWin32Classic.cs: Draw the text for button tabs.
14535
14536 2005-05-19  Jackson Harper  <jackson@ximian.com>
14537
14538         * Control.cs: Paint control background images. Fix typo where
14539         PaintControlBackground was not getting called correctly.
14540
14541 2005-05-19  Peter Bartok  <pbartok@novell.com>
14542
14543         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
14544           I can investigate, apparently I broke FileDialog
14545
14546 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
14547
14548         * AxHost.cs: Some simple properties.
14549         * Control.cs: window must be accessible after ctor.
14550         * Form.cs: Added TransparencyKey property.
14551         * TextBoxBase.cs: Implemented Clear. Text property can be null.
14552         * XplatUIWin32.cs: SetBorderStyle implemented.
14553
14554 2005-05-18  Peter Bartok  <pbartok@novell.com>
14555
14556         * DataObject.cs: Entries are not global but particular to the
14557           DataObject, now it behaves that way
14558         * XplatUIWin32.cs: Implemented Clipboard methods
14559         * Clipboard.cs: Implemented
14560         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
14561         * XplatUIOSX.cs: Updated to final clipboard prototypes
14562         * XplatUIX11.cs: Implemented Clipboard methods
14563         * XplatUIDriver.cs: Updated to final clipboard prototypes
14564         * XplatUIStructs.cs:
14565           - Added BITMAPINFOHEADER struct
14566           - Added ClipboardFormats enum
14567         * X11Structs.cs:
14568           - Added ClipboardStruct
14569           - Added Atom enum items for clipboard types
14570           - Fixed atom types for Selection event structures
14571         * DataFormats.cs:
14572           - Added internal properties and methods for drivers to enumerate
14573             all known formats
14574           - Switched initialization method to allow drivers to assign their
14575             own IDs even for the MS predefined clipboard IDs
14576         * XplatUI.cs: Updated to final clipboard interface
14577
14578 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14579         * PropertyGridView.cs: Fixed compiler warnings.
14580
14581 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
14582         * PropertyGrid.cs: Added some event calls
14583         * PropertyGridView.cs: Change drawing code to use double buffering
14584         * PropertyGridTextBox.cs: Changed Text property name
14585         * GridItem.cs: Added Bounds property.
14586         * GridEntry.cs: Added Bounds property.
14587
14588 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
14589
14590         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
14591         since GetType() may not return the correct type if the object is
14592         a remoting proxy.
14593
14594 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
14595
14596         * TreeNodeCollection.cs: fixes get/set item ranges
14597         
14598 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14599
14600         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
14601                 
14602 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
14603
14604         * ComboBox.cs: Fix item range comparation
14605         * ListView.cs: Fix item range comparation
14606
14607 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14608
14609         * FontDialog.cs:
14610           - Clear example panel when OnPaint is called
14611           - Better solution for displaying the example panel text
14612           - Select default indexes in the ListBoxes
14613
14614 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14615
14616         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
14617
14618 2005-05-11  Peter Bartok  <pbartok@novell.com>
14619
14620         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
14621         * SelectionRangeConverter.cs: Implemented
14622         * PropertyGrid.cs: Fixed attribute value
14623         * Control.cs:
14624           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
14625           - Added Sebastien Pouliot's CAS Stack Propagation fixes
14626         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
14627           that's common to all drivers. First methods to go there are
14628           Sebastien Pouliot's CAS Stack Propagation helper methods
14629         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
14630           Sebastien Pouliot for CAS Stack Propagation
14631
14632 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
14633
14634         * OSXStructs.cs:
14635           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
14636
14637 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
14638
14639         * DataGridTextBoxColumn.cs: fixed some members
14640         * GridColumnStylesCollection.cs: indexed column is case insensitive
14641         * DataGridTableStyle.cs: fixes
14642         * ThemeWin32Classic.cs: add new theme parameter
14643         * Theme.cs: add new theme parameter
14644         * DataGridDrawingLogic.cs: Datagrid's drawing logic
14645         * DataGrid.cs: fixes, new internal properties, etc.
14646         * DataGridColumnStyle.cs: allows to set grid value
14647         *
14648
14649 2005-05-10  Peter Bartok  <pbartok@novell.com>
14650
14651         * AccessibleObject.cs:
14652           - Removed MonoTODO attribute on help, method is correct
14653           - Fixed Bounds property
14654         * AxHost.cs: Moved MonoTODO
14655         * ButtonBase.cs: Now setting AccessibleObject properties
14656         * RadioButton.cs: Setting proper AccessibleObject role
14657         * CheckBox.cs: Setting proper AccessibleObject role
14658         * ControlBindingsCollection.cs: Added properties, methods and attributes
14659         * DataFormats.cs: Fixed awkward internal API, and changed to enable
14660           userdefined DataFormats.Format items as well
14661         * ListControl.cs: Removed data_member from the public eye
14662         * OpenFileDialog.cs:
14663           - Made class sealed
14664           - Added missing attributes
14665         * SaveFileDialog.cs: Added missing attributes
14666         * ImageListStreamer.cs: Fixed code that caused warnings
14667         * LinkLabel.cs: Removed unreachable code
14668         * TreeView.cs: Fixed code that caused warnings
14669         * PropertyGridView.cs: Fixed code that caused warnings
14670         * GridColumnStylesCollection.cs: Added missing attributes
14671         * GridTableStylesCollection: Added missing attribute
14672         * PropertyManager: Added .ctor
14673         * SecurityIDType: Added
14674         * DataObject.cs: Implemented class
14675         * LinkArea.cs: Added missing attribute
14676
14677 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
14678
14679         * RadioButton.cs: call base method to allow to fire OnClick event
14680         * UpDownBase.cs: OnMouseUp call base method
14681         * CheckedListBox.cs: call base method before returning
14682         * TrackBar.cs: call base method before returning
14683         
14684
14685 2005-05-10  Peter Bartok  <pbartok@novell.com>
14686
14687         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
14688           for messages
14689
14690 2005-05-10  Peter Bartok  <pbartok@novell.com>
14691
14692         * DataFormats.cs: Implemented
14693         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
14694           XplatUIX11.cs: Added Clipboard APIs
14695         * XplatUIWin32.cs: Implemented Clipboard APIs
14696         * FolderBrowserDialog.cs: Added missing event, attributes
14697
14698 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
14699
14700         * CheckBox.cs: call base method to allow to fire OnClick event
14701
14702 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
14703
14704         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
14705
14706 2005-05-06  Peter Bartok  <pbartok@novell.com>
14707
14708         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
14709         * Screen.cs: Implemented
14710         * HelpNavigator.cs: Added
14711         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
14712           property
14713         * HelpProvider.cs: Implemented all we can do until we have a CHM
14714           help library (which means that "What's This" does work now)
14715
14716 2005-05-06  Jackson Harper  <jackson@ximian.com>
14717
14718         * XplatUIX11.cs: Fix waking up the main loop.
14719                 
14720 2005-05-05  Peter Bartok  <pbartok@novell.com>
14721
14722         * XplatUI.cs: Updated revision
14723         * Form.cs: Removed enless loop
14724         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
14725         * Label.cs (OnPaint): Added call to base.OnPaint()
14726         * ToolTip.cs: Made ToolTipWindow reusable for other controls
14727         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
14728         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
14729         * AxHost.cs: Added
14730         * ButtonBase.cs: Moved base.OnPaint() call to end of method
14731         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
14732           to ToolTip.ToolTipWindow for drawing and size methods; this allows
14733           reuse of ToolTipWindow by other controls
14734         * SizeGrip.cs: Moved base.OnPaint() call to end of method
14735         * XplatUIX11.cs: Now clipping drawing area (experimental)
14736         * PictureBox.cs: Moved base.OnPaint() call to end of method
14737         * Theme.cs: Fixed ToolTip abstracts to match new format
14738         * ErrorProvider.cs: Implemented
14739
14740 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
14741
14742         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
14743         * LinkLabel.cs:
14744                 - Adds cursors
14745                 - Handles focus
14746                 - Implements LinkBehavior
14747                 - Fixes many issues
14748
14749 2005-05-03  Jackson Harper  <jackson@ximian.com>
14750
14751         * ListView.cs: Calculate the scrollbar positioning on resize and
14752         paint, so they get put in the correct place.
14753
14754 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
14755
14756         * ColorDialogs.cs: The small color panels are now handled by
14757           SmallColorControl. This fixes drawing of the focus rectangle
14758           and adds a 3D border.
14759
14760 2005-05-03  Peter Bartok  <pbartok@novell.com>
14761
14762         * Control.cs: Modified version of Jonathan Chamber's fix for
14763           double-buffering
14764
14765 2005-05-03  Jackson Harper  <jackson@ximian.com>
14766
14767         * ListView.cs: Remove redraw variable. Control now handles whether
14768         or not a redraw needs to be done, and will only raise the paint
14769         event if redrawing is needed.
14770
14771 2005-05-03  Jackson Harper  <jackson@ximian.com>
14772
14773         * Splitter.cs: No decorations for the splitter form. Cache the
14774         hatch brush.
14775
14776 2005-05-03  Jackson Harper  <jackson@ximian.com>
14777
14778         * TreeView.cs: Use dashed lines to connect nodes. Use the
14779         ControlPaint method for drawing the focus rect instead of doing
14780         that in treeview.
14781
14782 2005-05-02  Peter Bartok  <pbartok@novell.com>
14783
14784         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
14785
14786 2005-04-29  Jackson Harper  <jackson@ximian.com>
14787
14788         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
14789         entire image buffer. Just clear the clipping rectangle.
14790
14791 2005-04-29  Jackson Harper  <jackson@ximian.com>
14792
14793         * ThemeWin32Classic.cs: Don't draw list view items that are
14794         outside the clipping rectangle.
14795
14796 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
14797
14798         * ListBox.cs: added horizontal item scroll
14799
14800 2005-04-29  Jackson Harper  <jackson@ximian.com>
14801
14802         * ThemeWin32Classic.cs: Remove some old debug code that was
14803         causing flicker with the new double buffering code.
14804
14805 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
14806
14807         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
14808         behave like combobox and comboboxlist (still not sure if this is
14809         correct though).
14810
14811 2005-04-28  Jackson Harper  <jackson@ximian.com>
14812
14813         * ThemeWin32Classic.cs: Don't fill the middle of progress
14814         bars. This fills areas outside of the clip bounds that don't need
14815         to be filled.
14816
14817 2005-04-28  Jackson Harper  <jackson@ximian.com>
14818
14819         * Control.cs: Don't expose functionality to touch the image buffers.
14820         * ProgressBar.cs:
14821         * ListView.cs: We do not need to (and no longer can) manipulate
14822         the image buffers directly. All of this is handled by Control.
14823
14824 2005-04-28  Peter Bartok  <pbartok@novell.com>
14825
14826         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
14827           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
14828           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
14829
14830 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14831
14832         * Combobox:
14833                 - Adjust control's height for non-simple comboboxes (bug fix)
14834                 - Remove dead code
14835         * MenuAPI.cs: remove unused var
14836         * ScrollBar.cs: remove unsed var
14837                  
14838         * ListBox.cs: unselect items when clearing
14839
14840 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
14841
14842         * ListControl.cs: honors OnPositionChanged and default Selected Item
14843         * ListBox.cs: unselect items when clearing
14844
14845 2005-04-27  Jackson Harper  <jackson@ximian.com>
14846
14847         * X11Keyboard.cs: Initialize a default keyboard and give a warning
14848         if a "correct" keyboard is not found. This will make us not crash,
14849         but might give some users bad keyboard layouts...seems to be the
14850         same thing rewind does.
14851
14852 2005-04-27  Jackson Harper  <jackson@ximian.com>
14853
14854         * BindingManagerBase.cs: Attach the current/position changed
14855         handlers to their respective events.
14856
14857 2005-04-27  Jackson Harper  <jackson@ximian.com>
14858
14859         * Control.cs: Make sure that the first WM_PAINT does a full draw,
14860         not just a blit.
14861         * ThemeWin32Classic.cs: Don't fill the background for picture
14862         boxes. This could overright user drawing.
14863         * ComboBox.cs: Just fill the clipping rect not the entire client
14864         rect when drawing the background. This prevents pieces of the
14865         image buffer from getting overwritten and is theoretically faster.
14866
14867 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
14868
14869         * ComboBox.cs: Databinding support fixes, fire missing events
14870         * ListControl.cs: implement missing methods and properties, fixes
14871         * ThemeWin32Classic.cs: Databiding support on Drawing
14872         * CheckedListBox.cs: Databinding support fixes, fire missing events
14873         * ListBox.cs: Databinding support fixes, fire missing events
14874         
14875 2005-04-25  Peter Bartok  <pbartok@novell.com>
14876
14877         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
14878
14879 2005-04-25  Jackson Harper  <jackson@ximian.com>
14880
14881         * TreeView.cs: Use the horizontal scrollbars height not width when
14882         determining how much of the client area is available.
14883
14884 2005-04-25  Jackson Harper  <jackson@ximian.com>
14885
14886         * Control.cs: Double buffering is handled differently now. As per
14887         the spec, the extra buffer is created in the WM_PAINT message and
14888         passed down to the control's drawing code.
14889         * GroupBox.cs:
14890         * Label.cs:
14891         * CheckBox.cs:
14892         * ProgressBar.cs:
14893         * RadioButton.cs:
14894         * ColorDialog.cs:
14895         * ComboBox.cs:
14896         * PropertyGridView.cs:
14897         * UpDownBase.cs:
14898         * MessageBox.cs:
14899         * MenuAPI.cs:
14900         * ListView.cs:
14901         * ButtonBase.cs:
14902         * SizeGrip.cs:
14903         * ScrollBar.cs:
14904         * ListBox.cs:
14905         * TrackBar.cs:
14906         * ToolBar.cs:
14907         * PictureBox.cs:
14908         * DateTimePicker.cs:
14909         * StatusBar.cs:
14910         * TreeView.cs: Update to new double buffering system.
14911         * MonthCalendar.cs: Uncomment block, as Capture is now
14912         working. Update to new double buffering
14913         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
14914         * PaintEventArgs.cs: New internal method allows us to set the
14915         graphics object. This is used for double buffering.
14916         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
14917         rectangle. The internal paint_area var has been removed from
14918         StatusBar. The clipping rect should be used instead.
14919         * Theme.cs: Give the PictureBox drawing method a clipping rect.
14920         * TabPage.cs: The RefreshTabs method was removed, so just call the
14921         tab controls Refresh method now.
14922         * TabControl.cs: Update to new double buffering. Make sure the
14923         handle is created before sizing the tab pages, otherwise we will
14924         get stuck in a loop.
14925
14926 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
14927
14928         * LinkLabel.cs: Fix typo, bug #74719; patch
14929           from Borja Sanchez Zamorano
14930
14931 2005-04-22  Jackson Harper  <jackson@ximian.com>
14932
14933         * TreeNode.cs: Implement Handle stuff.
14934         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
14935
14936 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
14937
14938         * DataGridTextBoxColumn.cs: call base constructors, fixes
14939         * GridColumnStylesCollection.cs: missing events, methods, and functionality
14940         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
14941         * DataGridTableStyle.cs: implements create default column styles
14942         * DataGridBoolColumn.cs: which types can handle
14943         * DataGrid.cs: missing methods, fixes, new functionality
14944         * DataGridColumnStyle.cs: fixes
14945
14946 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
14947         * FolderBrowserDialog.cs:
14948         - Use a thread to fill the TreeView
14949         - Adjusted some sizes
14950
14951 2005-04-19  Peter Bartok  <pbartok@novell.com>
14952
14953         * LinkLabel.cs: (Re-)create the pieces when setting the Text
14954           property. Fixes #74360.
14955
14956 2005-04-19  Jackson Harper  <jackson@ximian.com>
14957
14958         * XEventQueue.cs: Lock when getting the lockqueue size.
14959         * PictureBox.cs: Call base OnPaint
14960         
14961 2005-04-19  Peter Bartok  <pbartok@novell.com>
14962
14963         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
14964           messages were no longer being processed (this broke BeginInvoke)
14965
14966           
14967 2005-04-18  Jackson Harper  <jackson@ximian.com>
14968
14969         * TreeView.cs: buglet that caused node images to get drawn
14970         regardless of whether or not they were in the clipping rectangle.
14971
14972 2005-04-18  Jackson Harper  <jackson@ximian.com>
14973
14974         * CurrencyManager.cs: There are four rules for GetItemProperties:
14975         - If the type is an array use the element type of the array
14976         - If the type is a typed list, use the type
14977         - If the list contains an Item property that is not an object, use
14978         that property
14979         - use the first element of the list if there are any elements in
14980         the list.
14981         
14982 2005-04-17  Jackson Harper  <jackson@ximian.oom>
14983
14984         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
14985         click. This handles offsets for scrolling properly and reduces
14986         memory. Also fixed GetNode to not offset now that TopNode works
14987         properly.
14988         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
14989         
14990 2005-04-17  Jackson Harper  <jackson@ximian.com>
14991
14992         * CursorConverter.cs: Initial implementation.
14993
14994 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
14995
14996         * ListControl.cs: work towards complex data binding support on ListControl
14997         * CurrencyManager.cs: work towards complex data binding support on ListControl
14998         * ListBox.cs: work towards complex data binding support on ListControl
14999
15000
15001 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
15002
15003         * GridTableStylesCollection.cs: fixes name and constructor
15004         * DataGridTableStyle.cs: fixes
15005         * DataGridBoolColumn.cs: fixes names and constructors
15006         * DataGrid.cs: define methods and properties. Some init implementations
15007         * DataGridCell.cs: define methods and properties. Some init implementations
15008         * GridTablesFactory.cs: Define methods and properties
15009
15010 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
15011
15012         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
15013         graphics port changes.  We still want the coordinates in global screen
15014         coordinates.
15015
15016 2005-04-14  Jackson Harper  <jackson@ximian.com>
15017
15018         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
15019         check plus minus or checkbox clicks unless those features are enabled.
15020
15021 2005-04-14  Jackson Harper  <jackson@ximian.com>
15022
15023         * TreeView.cs: Add methods for setting the top and bottom visible
15024         nodes. TreeNode::EnsureVisible uses these methods.
15025         * TreeNode.cs: Implement EnsureVisible
15026
15027 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
15028
15029         * Form.cs: Pospone menu assignation if the window has not been created yet
15030         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
15031         size and position
15032
15033 2005-04-12  Jackson Harper  <jackson@ximian.com>
15034
15035         * TreeView.cs: Set the TopNode properly when scrolling
15036         occurs. This has the added benifit of reducing the amount of
15037         walking that needs to be done when drawing. Also removed an old
15038         misleading TODO.
15039         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
15040         
15041 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
15042
15043         * Timer.cs: fixes interval setting when the timer is already enabled
15044         
15045 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
15046
15047         * FolderBrowserDialog.cs: First approach
15048
15049 2005-04-09  Peter Bartok  <pbartok@novell.com>
15050
15051         * FolderBrowserDialog: Added
15052
15053 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
15054
15055         * LinkLabel.cs: move drawing code into the theme
15056         * ThemeWin32Classic.cs: drawing code and painting background bugfix
15057         * Theme.cs: define DrawLinkLabel method
15058
15059 2005-04-05  Jackson Harper  <jackson@ximian.com>
15060
15061         * BindingContext.cs: Use weak references so these bad actors don't
15062         stay alive longer then they need to.
15063
15064 2005-04-05  Jackson Harper  <jackson@ximian.com>
15065
15066         * ListControl.cs: Basic implementation of complex databinding.
15067         * ComboBox.cs:
15068         * ListBox.cs: Add calls to ListControl databinding methods.
15069
15070 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
15071
15072         * FileDialog.cs:
15073           - Don't change PopupButtonState to Normal when the
15074             PopupButton gets pressed several times.
15075           - Renamed ButtonPanel to PopupButtonPanel
15076
15077 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
15078
15079         * ColorDialog.cs: Use cached objects instead of creating them
15080         * LinkLabel.cs: Use cached objects instead of creating them
15081         * Splitter.cs: Use cached objects instead of creating them
15082         * FontDialog.cs: Use cached objects instead of creating them
15083         * PropertyGridView.cs: Use cached objects instead of creating them
15084         * MessageBox.cs: Use cached objects instead of creating them
15085         * FileDialog.cs: Use cached objects instead of creating them
15086         * ThemeWin32Classic.cs: Use cached objects instead of creating them
15087         * TreeView.cs: Use cached objects instead of creating them
15088         
15089 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
15090
15091         * Control.cs: use Equals to compare the font since no == op
15092         * ScrollBar.cs: use Equals to compare the font since no == op
15093
15094 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
15095
15096         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
15097
15098 2005-04-01  Jackson Harper  <jackson@ximian.com>
15099
15100         * Binding.cs: Implement IsBinding.
15101         * BindingManagerBase.cs:
15102         * PropertyManager.cs:
15103         * CurrencyManager.cs: Add IsSuspended property.
15104
15105 2005-04-01  Jackson Harper  <jackson@ximian.com>
15106
15107         * Binding.cs: Had some IsAssignableFrom calls backwards.
15108
15109 2005-04-01  Jackson Harper  <jackson@ximian.com>
15110
15111         * Binding.cs: Handle null data members when pulling data.
15112         * PropertyManager.cs: Handle the data member being a property that
15113         does not exist.
15114
15115 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15116
15117         * DataGridTextBoxColumn.cs: fixes signature
15118         * DataGrid.cs: calls right constructor
15119
15120 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
15121
15122         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
15123         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
15124         * GridTableStylesCollection.cs: implements GridTableStylesCollection
15125         * DataGridTableStyle.cs: implements DataGridTableStyle
15126         * DataGridBoolColumn.cs: implements DataGridBoolColumn
15127         * DataGridTextBox.cs: implements DataGridTextBox
15128         * DataGridColumnStyle.cs: implements DataGridColumnStyle
15129
15130 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
15131
15132         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
15133
15134 2005-03-29  Peter Bartok  <pbartok@novell.com>
15135
15136         * Application.cs:
15137           - Properly implemented CompanyName property
15138           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
15139             returns a path that includes CompanyName, ProductName and
15140             Version (fixes bug #70330)
15141
15142 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
15143
15144         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
15145           fixes bug #72588.
15146
15147 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15148
15149         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
15150         
15151           - Added ReadOnly CheckBox
15152           - Further refactoring: moved some code from Open-/SaveFileDialog
15153             to FileDialog
15154
15155 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
15156
15157         * OpenFileDialog.cs: Fixed CheckFileExists
15158         * FileDialog.cs:
15159           Moved FileView and DirComboBox outside FileDialog class.
15160           They can now be used outside FileDialog
15161
15162 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15163
15164         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
15165         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
15166
15167 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
15168
15169         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15170           - Added missing CreatePrompt property in SaveDialog
15171           - Overall SaveDialog handling should be better now
15172           - Added non standard ShowHiddenFiles property
15173           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
15174           - Added InitialDirectory and RestoreDirectory support
15175
15176 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
15177
15178         * FileDialog.cs: Made dirComboBox usable
15179
15180 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
15181
15182         * FileDialog.cs: Added Filter support (case sensitiv)
15183
15184 2005-03-24  Jackson Harper  <jackson@ximian.com>
15185
15186         * TabControl.cs: Need a couple more pixels for the lines.
15187
15188 2005-03-23  Jackson Harper  <jackson@ximian.com>
15189
15190         * TabControl.cs: Give the tab page focus when it is selected.
15191
15192 2005-03-23  Jackson Harper  <jackson@ximian.com>
15193
15194         * TabControl.cs: Account for the drawing of tabs borders when
15195         invalidating. If the slider was clicked dont do click detection on
15196         the tabs.
15197
15198 2005-03-23  Jackson Harper  <jackson@ximian.com>
15199
15200         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
15201
15202 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
15203
15204         * CategoryGridEntry.cs: Added
15205         * GridItem.cs: Added helper properties
15206         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
15207         * GridEntry.cs: Updated code for collection
15208         * PropertyGrid.cs: Cleaned up some formatting
15209         * PropertyGridView.cs: Added drop down functionality for enums.
15210         * GridItemCollection.cs: Added enumerator logic
15211         * PropertyGridEntry.cs: Added
15212
15213 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15214
15215         * FileDialog.cs:
15216           - Removed unnecessary commented code
15217           - Fixed handling for entering the filename manually in the combobox
15218
15219 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
15220
15221         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
15222
15223 2005-03-18  Peter Bartok  <pbartok@novell.com>
15224
15225         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
15226           them being touching the border
15227
15228 2005-03-18  Peter Bartok  <pbartok@novell.com>
15229
15230         * TextControl.cs: Quick hack to center text better
15231
15232 2005-03-18  Peter Bartok  <pbartok@novell.com>
15233
15234         * ControlPaint.cs:
15235           - Don't throw NotImplemented exceptions, just print a notice once
15236             instead (requested by Miguel). This makes running existing SWF
15237             apps a bit easier
15238         * Control.cs:
15239           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
15240           - Added context menu trigger on right click
15241         * Panel.cs: Trigger invalidate on resize
15242         * StatusBar.cs:
15243           - Removed old double-buffer drawing
15244           - Added ResizeRedraw style to force proper update of statusbar
15245         * ListView.cs:
15246           - Removed debug output
15247         * ThemeWin32Classic.cs:
15248           - Fixed drawing of status bar, now draws Text property if there
15249             are no defined panels
15250
15251 2005-03-18  Jackson Harper  <jackson@ximian.com>
15252
15253         * ImageList.cs: When the image stream is set pull all the images
15254         from it.
15255         * ImageListStreamer.cs: Implement reading image list streams.
15256
15257 2005-03-18  Peter Bartok  <pbartok@novell.com>
15258
15259         * ThemeWin32Classic.cs (DrawPictureBox):
15260           - Fixed calculations for centered drawing
15261           - Fixed drawing for normal mode, not scaling the image on normal
15262
15263 2005-03-18  Peter Bartok  <pbartok@novell.com>
15264
15265         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
15266           textbox
15267         * FileDialog.cs:
15268           - Made Open/Save button the accept button for FileDialog
15269           - Tied the cancel button to the IButtonControl cancel button
15270           - Save/Open now properly builds the pathname
15271           - Now handles user-entered text
15272           - Preventing crash on right-click if no item is selected
15273           - Fixed Text property, now uses contents of textbox
15274           - Fixed SelectedText property, now just returns the text part that
15275             is selected in the text box
15276
15277 2005-03-18  Jackson Harper  <jackson@ximian.com>
15278
15279         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
15280         rect, make sure to de-adjust the interior rect after drawing the
15281         tab text.
15282
15283 2005-03-18  Peter Bartok  <pbartok@novell.com>
15284
15285         * MenuAPI.cs: Remove menu *before* executing selected action to
15286           prevent the menu from 'hanging around'
15287           
15288 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
15289
15290         * XplatUIOSX.cs: Implemented WorkingArea property
15291
15292 2005-03-17  Peter Bartok  <pbartok@novell.com>
15293
15294         * XplatUIX11.cs: Fixed menu coord calculations
15295         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
15296           for calculating offsets
15297
15298 2005-03-17  Peter Bartok  <pbartok@novell.com>
15299
15300         * Hwnd.cs: Do not consider menu presence for default client
15301           rectangle location/size
15302         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
15303           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
15304           translation functions
15305         * FileDialog.cs: Fixed (what I presume is a) typo
15306
15307 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
15308
15309         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
15310           X access (avoids X-Async errors)
15311
15312 2005-03-16  Jackson Harper  <jackson@ximian.com>
15313
15314         * TabControl.cs: Raise the SelectedIndexChanged event.
15315
15316 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
15317
15318         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
15319           - Removed vertical ToolBar and replaced it with a custom panel
15320             (desktop and home button already work)
15321           - Added Help button (some controls get resized or relocated then)
15322           - Draw correct text depending on Open or Save.
15323           - Fixed some typos...
15324
15325 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
15326
15327         * ScrollBar.cs:
15328           - Only change Maximum and Minimum when need it (bug fix)
15329
15330 2005-03-15  Peter Bartok  <pbartok@novell.com>
15331
15332         * Form.cs: Use Handle for icon, to trigger creation if
15333           the window does not yet exist
15334         * Control.cs:
15335           - CanSelect: Slight performance improvement
15336           - Focus(): Preventing possible recursion
15337           - Invalidate(): Removed ControlStyle based clear flag setting
15338           - WM_PAINT: fixed logic for calling OnPaintBackground
15339           - WM_ERASEBKGND: Fixed logic, added call to new driver method
15340             EraseWindowBackground if the control doesn't paint background
15341         * XplatUIWin32.cs:
15342           - Moved EraseWindowBackground() method to internal methods
15343           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
15344             is sent via SendMessage on BeginPaint call on Win32
15345         * XplatUIX11.cs:
15346           - Added EraseWindowBackground() method
15347           - No longer sends WM_ERASEBKGND on .Expose, but on call to
15348             PaintEventStart, which more closely matches Win32 behaviour
15349           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
15350           - Fixed SetFocus() to properly deal with client and whole windows
15351         * Hwnd.cs: Added ErasePending property
15352         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
15353         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
15354
15355 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
15356
15357         * XplatUIOSX.cs:
15358           - Fix hard loop when timers exist.
15359           - Fix bugs with middle and right click for 3 button mice.
15360
15361 2005-03-11  Peter Bartok  <pbartok@novell.com>
15362
15363         * XplatUIX11.cs:
15364           - get_WorkingArea: Need to call X directly, GetWindowPos only
15365             returns cached data now
15366           - Added sanity check to GetWindowPos hwnd usage
15367
15368 2005-03-11  Jackson Harper  <jackson@ximian.com>
15369
15370         * BindingManagerBase.cs: This method isn't used anymore as
15371         PullData now updates the data in the control.
15372
15373 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
15374
15375         * Form.cs: fixes menu drawing on X11
15376         * MenuAPI.cs:  fixes menu drawing on X11
15377
15378 2005-03-11  Peter Bartok  <pbartok@novell.com>
15379
15380         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
15381           from Jonathan Gilbert; should fix bug #73606
15382         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
15383           in Screen coordinates. Thanks, Jordi.
15384         * Form.cs: Added missing attribute
15385
15386 2005-03-11  Peter Bartok  <pbartok@novell.com>
15387
15388         * Form.cs:
15389           - Rudimentary Mdi support
15390           - Removed outdated FormParent code
15391           - Implemented lots of missing properties and methods, still missing
15392             transparency support
15393           - Added missing attributes
15394           - Implemented support for MaximumBounds
15395           - Added firing of various events
15396         * XplatUI.cs: Added SetIcon() method
15397         * XplatUIDriver.cs: Added SetIcon() abstract
15398         * XplatUIOSX.cs: Stubbed out SetIcon() method
15399         * XplatUIX11.cs:
15400           - Implemented SetIcon() support
15401           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
15402           - Switched to unix line endings
15403         * XplatUIWin32.cs:
15404           - Made POINT internal so for can access it as part of MINMAX
15405           - Implemented SetIcon() support
15406           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
15407             native Mdi support again, might have to go managed)
15408         * Control.cs: Now fires the StyleChanged event
15409         * MdiClient.cs: Added; still mostly empty
15410
15411 2005-03-10  Peter Bartok  <pbartok@novell.com>
15412
15413         * SaveFileDialog.cs: Added emtpy file
15414
15415 2005-03-08  Peter Bartok  <pbartok@novell.com>
15416
15417         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
15418           in turn triggers OnCreateContro) when creating a handle for the
15419           first time.
15420         * TextControl.cs: Fixed endless loop in certain cases when
15421           replacing the current selection
15422
15423 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
15424
15425         * ScrollBar.cs:
15426           - Honors NewValue changes in Scroll events allowing apps to change it
15427           - Adds First and Last Scroll events
15428           - Fixes Thumb events
15429
15430 2005-03-07  Peter Bartok  <pbartok@novell.com>
15431
15432         * Hwnd.cs: Added DefaultClientRectangle property
15433         * XplatUI.cs: Now using the X11 driver Where() method, which provides
15434           more detailed debug information
15435         * XplatUIX11.cs:
15436           - Fixed size-change feedback loop, where we would pull an old size
15437             off the queue and mistakenly change our window's size to an
15438             earlier value
15439           - Now compressing ConfigureNotify events, to reduce looping and
15440             redraw issues
15441         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
15442           is called
15443
15444 2005-03-07  Jackson Harper  <jackson@ximian.com>
15445
15446         * Binding.cs: Push data pushes from data -> property. Check if the
15447         property is readonly when attempting to set it.
15448
15449 2005-03-07  Jackson Harper  <jackson@ximian.com>
15450
15451         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
15452         instead of IsSubclassOf. Pulling data now sets the value on the
15453         control.
15454         * PropertyManager.cs:
15455         * CurrencyManager.cs: Just need to pull data when updating now,
15456         because PullData will set the value on the control.
15457
15458 2005-03-04  Jackson Harper  <jackson@ximian.com>
15459
15460         * Binding.cs: Implement data type parsing and converting on pulled
15461         data. TODO: Are there more ways the data can be converted?
15462
15463 2005-03-04  Jackson Harper  <jackson@ximian.com>
15464
15465         * Binding.cs: Support <Property>IsNull checks. Also bind to the
15466         controls Validating method so we can repull the data when the
15467         control loses focus.
15468
15469 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
15470
15471         * ColumnHeader.cs:
15472           - Fixes null string format
15473           
15474         * ListView.cs:
15475           - Adds enum type checks
15476           - Fixes redrawing and recalc need after changing some properties
15477           - Fixes on focus_item set after the event
15478           - Fixes adding columns after the control has been created
15479           
15480         * ThemeWin32Classic.cs:
15481           - Fixes CheckBox focus rectangle
15482           - Fixes ColumnHeader drawing
15483
15484
15485 2005-03-03  Jackson Harper  <jackson@ximian.com>
15486
15487         * Binding.cs: Bind to <Property>Changed events so we can detect
15488         when properties are changed and update the data.
15489
15490 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
15491
15492         * ImageList.cs:
15493           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
15494           - Fixes ImageList constructor with ImageList container
15495           - Fixes image scaling (wrong parameters at DrawImage)
15496
15497 2005-02-02  Jackson Harper  <jackson@ximian.com>
15498
15499         * Binding.cs: Make property searches case-insensitive. Eliminate
15500         some duplicated code.
15501
15502 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
15503
15504         * ComboBox.cs:
15505                 - Handle focus event
15506                 - Fix scrollbar events
15507                 - Discard highlighted item if remove it
15508                 - Fixes SelectedItem with strings
15509
15510 2005-03-01  Peter Bartok  <pbartok@novell.com>
15511
15512         * Control.cs:
15513           - Fixed Visible property, now follows (once again) parent chain
15514             to return false if any control in the chain is visible=false
15515           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
15516           - Fixed several places where is_visible instead of Visible was used
15517           - Implemented FIXME related to focus selection when setting focused
15518             control to be invisible
15519
15520         * XplatUIWin32.cs: Now using proper method to find out if window is
15521           visible. Thanks to Jordi for pointing it out
15522
15523 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
15524
15525         * ComboBox.cs: show/hide scrollbar instead of creating it
15526
15527 2005-02-27  Jackson Harper  <jackson@ximian.com>
15528
15529         * CurrencyManager.cs: Add PositionChanged stuff.
15530
15531 2005-02-27  Peter Bartok  <pbartok@novell.com>
15532
15533         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
15534         * XplatUIOSX.cs: Added GetMenuOrigin() stub
15535         * XplatUIWin32.cs: Implemented GetMenuOrigin()
15536         * XplatUIX11.cs:
15537           - Implemented GetMenuDC()
15538           - Implemented GetMenuOrigin()
15539           - Implemented ReleaseMenuDC()
15540           - Implemented generation of WM_NCPAINT message
15541           - Implemented generation and handling of WM_NCCALCSIZE message
15542         * Form.cs: Added debug helper message for Jordi's menu work
15543         * Hwnd.cs:
15544           - Modified ClientRect property; added setter, fixed getter to handle
15545             setting of ClientRect
15546           - Added MenuOrigin property
15547
15548 2005-02-26  Peter Bartok  <pbartok@novell.com>
15549
15550         * XplatUIX11.cs:
15551           - Destroys the caret if a window that's being destroyed contains it
15552           - Ignores expose events coming from the X11 queue for windows that
15553             already are destroyed
15554           - Now uses the proper variable for handling DestroyNotify, before we
15555             marked the wrong window as destroyed
15556           - Improved/added some debug output
15557
15558 2005-02-26  Peter Bartok  <pbartok@novell.com>
15559
15560         * X11Keyboard.cs: Fixes to work on 64bit systems
15561
15562 2005-02-26  Peter Bartok  <pbartok@novell.com>
15563
15564         * Control.cs:
15565           - Now calling OnHandleDestroyed from DestroyHandle()
15566             instead of Dispose()
15567           - Removed bogus call to controls.Remove() from DestroyHandle()
15568
15569 2005-02-26  Peter Bartok  <pbartok@novell.com>
15570
15571         * Control.cs: Properly destroy child windows when our handle is
15572           destroyed
15573
15574 2005-02-25  Peter Bartok  <pbartok@novell.com>
15575
15576         * XplatUI.cs:
15577           - Added 'DriverDebug' define to allow tracing XplatUI API calls
15578           - Alphabetized Static Methods and Subclasses
15579
15580         * XplatUIX11.cs:
15581           - Added XException class to allow custom handling of X11 exceptions
15582           - Created custom X11 error handler, tied into XException class
15583           - Added support for MONO_XEXCEPTIONS env var to allow the user
15584             to either throw an exception on X errors or continue running
15585             after displaying the error
15586           - Added handling of DestroyNotify message
15587           - Added handler for CreateNotify message (still disabled)
15588           - Improved (tried to at least) Where method to provide file and lineno
15589         * X11Structs.cs:
15590           - Added XErrorHandler delegate
15591           - Added XRequest enumeration (to suppor translation of errors)
15592
15593 2005-02-25  Jackson Harper  <jackson@ximian.com>
15594
15595         * PropertyManager.cs: Implement editing features
15596         * CurrencyManager.cs:
15597         * Binding.cs: First attempt at UpdateIsBinding
15598         * BindingManagerBase.cs: Call UpdateIsBinding before
15599         pushing/pulling data.
15600
15601 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
15602
15603         * MenuAPI.cs: Respect disabled items
15604         * ThemeWin32Classic.cs
15605                 - Caches ImageAttributes creation for DrawImageDisabled
15606                 - Fixes vertical menu line drawing
15607                 - Draws disabled arrows in disable menu items
15608
15609 2005-02-24  Peter Bartok  <pbartok@novell.com>
15610
15611         * Hwnd.cs:
15612           - Added UserData property to allow associating arbitrary objects
15613             with the handle
15614           - Fixed leak; now removing Hwnd references from static windows array
15615         * XplatUIWin32.cs:
15616           - Fixed Graphics leak in PaintEventEnd
15617           - Removed usage of HandleData, switched over to Hwnd class
15618         * HandleData.cs: Removed, obsoleted by Hwnd.cs
15619
15620 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15621
15622         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
15623         * ScrollBar.cs: Fixes bug
15624         * TrackBar.cs: removes death code, clipping, mimize refreshes,
15625          keyboard navigation enhancements
15626
15627 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
15628
15629         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
15630         * GroupBox.cs: Add control styles
15631         * Label.cs: Add control styles
15632         * UpDownBase.cs: Add control styles
15633         * ListBox.cs: Add control styles
15634         * XplatUIWin32.cs: Fixes wrong parameter order
15635
15636
15637 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
15638
15639         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
15640
15641 2005-02-23  Jackson Harper  <jackson@ximian.com>
15642
15643         * PropertyManager.cs: Implement property binding. This doesn't
15644         seem to work yet though as (I think) there are some bugs in
15645         System.ComponentModel.PropertyDescriptor.
15646         * BindingContext.cs: Use new PropertyManager constructor.
15647
15648 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
15649
15650         * ProgressBar.cs: use clip region in ProgressBar
15651         * ThemeWin32Classic.cs: use clip region in ProgressBar
15652
15653 2004-02-22  Jackson Harper  <jackson@ximian.com>
15654
15655         * BindingsCollection.cs: Remove some debug code.
15656
15657 2005-02-22  Jackson Harper  <jackson@ximian.com>
15658
15659         * BindingContext.cs:
15660         * ControlBindingsCollection.cs:
15661         * CurrencyManager.cs:
15662         * Binding.cs:
15663         * BindingManagerBase.cs: Initial implementation
15664         * BindingsCollection.cs: Add an internal contains method that the
15665         BindingManagerBase uses to ensure bindings aren't added twice to
15666         the collection.
15667         * PropertyManager.cs: Stubbed out.
15668         * Control.cs:
15669         * ContainerControl.cs: Hook up databinding
15670         
15671 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
15672
15673         * XplatUIOSX.cs:
15674           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
15675           Fixed Invalidate/Update chain.
15676           Fixed tons of other minor bugs (this is almost a complete rewrite).
15677
15678 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
15679
15680         * ComboBox.cs: do subcontrol creation when the control is created
15681
15682 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15683
15684         * Label.cs: fixes image drawing (image and imagelist)
15685         * ThemeWin32Classic.cs: cache brushes
15686         
15687 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15688
15689         * Form.cs: Move menu drawing code to Theme class
15690         * ComboBox.cs: Move ComboBox drawing code to Theme class
15691         * MenuItem.cs: Move menu drawing code to Theme class
15692         * MenuAPI.cs: Move menu drawing code to Theme class
15693         * ThemeWin32Classic.cs: New methods
15694         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
15695         * ListBox.cs: Move Listbox drawing code to Theme class
15696         * Theme.cs: New methods
15697
15698 2005-02-20  Peter Bartok  <pbartok@novell.com>
15699
15700         * Control.cs:
15701           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
15702             only process mnemonics on those)
15703           - Fixed event sequence for key handling; first calling
15704             ProcessKeyEventArgs now
15705         * TextBoxBase.cs:
15706           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
15707             for processing non-character keys
15708           - Fixed WM_CHAR to generate proper event sequence before processing
15709         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
15710           generation
15711
15712 2005-02-19  Peter Bartok  <pbartok@novell.com>
15713
15714         * UserControl.cs: Added TextChanged event; added attributes
15715         * SizeGrip.cs: Implemented resizing and optional display of grip
15716         * Form.cs: Fixed attribute
15717         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
15718           Changed meaning of ScrollWindow bool argument; instead of the
15719           clear attribute (which will be true usually anyway), it gives the
15720           option of moving child controls as well.
15721         * XplatUIX11.cs:
15722           - Changed to match new ScrollWindow argument
15723           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
15724             now handles the implicit parent window a WM puts around us
15725         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
15726           to work)
15727         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
15728         * TreeView.cs: Adjusted to new ScrollWindow arguments
15729
15730 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
15731
15732         * Form.cs: Menu integration with non-client area
15733         * MenuItem.cs: Menu integration with non-client area
15734         * MenuAPI.cs: Menu integration with non-client area
15735
15736 2005-02-18  Peter Bartok  <pbartok@novell.com>
15737
15738         * MethodInvoker.cs: Added
15739         * MdiLayout.cs: Added
15740         * SendKeys.cs: Started implementation
15741         * ErrorIconAlignment.cs: Added
15742
15743 2005-02-18  Peter Bartok  <pbartok@novell.com>
15744
15745         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
15746         * Form.cs: Added handling for Menu-related Non-client messages
15747
15748 2005-02-17  Peter Bartok  <pbartok@novell.com>
15749
15750         * UpDownBase.cs: Fixed typo, compilation errors
15751         * DomainUpDown.cs: Fixed attribute value
15752
15753 2005-02-16  Miguel de Icaza  <miguel@novell.com>
15754
15755         * UpDownBase.cs: Attach entry events.
15756         Propagate events.
15757         Add ForeColor property, Focused, InterceptArrowKeys (interception
15758         does not work yet).
15759
15760 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
15761
15762         * Form.cs:
15763                 - Redraw non client are on Setmenu
15764                 - Calc proper menu starting point
15765
15766 2005-02-17  Peter Bartok  <pbartok@novell.com>
15767
15768         * Application.cs: Fixed message_filter check
15769
15770 2005-02-17  Peter Bartok  <pbartok@novell.com>
15771
15772         * Application.cs: Now calls registered message filters
15773         * DockStyle.cs: Fixed attribute
15774         * Form.cs: Fixed attribute
15775         * Menu.cs: Fixed attribute
15776         * ToolTip.cs: Fixed attribute
15777         * TreeNode.cs: Added missing attributes and arranged in regions
15778         * PropertyGrid.cs: Fixed signatures
15779         * TreeNodeCollection.cs: Added attributes
15780         * Splitter.cs: Added missing attributes; arranged into regions
15781         * TabPage.cs: Added missing attributes; arranged into regions
15782         * TextBoxBase.cs: Added missing attributes
15783         * TextBox.cs: Added missing attributes
15784         * ArrangeDirection.cs: Added missing attributes
15785         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
15786         * ToolBarButton.cs: Fixed attributes
15787         * AnchorStyles.cs: Fixed attribute
15788         * TrackBar.cs: Fixed attributes
15789         * TabControl.cs: Added missing attributes and arranged into regions
15790         * ToolBar.cs: Fixed attribute
15791         * StatusBar.cs: Fixed signature, organized into regions and added
15792           attributes
15793         * StatusBarPanel.cs: Fixed attributes
15794         * ContentsResizedEventArgs.cs: Implemented
15795         * ContentsResizedEventHandler.cs: Implemented
15796         * DateBoldEventArgs.cs: Implemented
15797         * DateBoldEventHandler.cs: Implemented
15798         * UpDownEventArgs.cs: Implemented
15799         * UpDownEventHandler.cs: Implemented
15800         
15801 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
15802
15803         * Form.cs: first Menu NC refactoring
15804         * MenuAPI.cs: first Menu NC refactoring
15805         
15806 2005-02-16  Peter Bartok  <pbartok@novell.com>
15807
15808         * ImeMode.cs: Added missing attributes
15809         * Menu.cs: Fixed attribute
15810         * GroupBox.cs: Fixed attribute
15811         * Label.cs: Fixed attribute
15812         * ColorDialog.cs (RunDialog): Removed TODO attribute
15813         * ComboBox.cs: Fixed attributes
15814         * ListControl.cs: Added missing attributes
15815         * PropertyGrid.cs: Fixed attributes
15816         * Control.cs: Fixed attributes
15817         * ListViewItem.cs: Added TypeConverter attribute
15818         * NotifyIcon.cs: Fixed attributes
15819         * ListView.cs: Fixed attributes
15820         * ButtonBase.cs: Fixed attribute
15821         * ImageList.cs: Added missing attributes
15822         * ContainerControl.cs: Fixed signature
15823         * CheckedListBox.cs: Fixed attribute; added missing attributes
15824         * Panel.cs: Fixed attributes
15825         * PropertyTabChangedEventArgs.cs: Added missing attribute
15826         * PropertyValueChangedEventArgs.cs: Added missing attribute
15827         * Binding.cs: Fixed attribute
15828         * ListViewItemConverter: Implemented ListViewSubItemConverter class
15829         * ListBox.cs: Fixed attribute; added missing attributes;
15830         * ScrollableControl.cs: Added missing attributes
15831         * PictureBox.cs: Added missing attributes; implemented missing property
15832         * DateTimePicker.cs: Added missing attributes
15833         * Theme.cs (ToolWindowCaptionHeight): Fixed type
15834         * MonthCalendar.cs: Fixed attributes
15835         * StatusBarPanel.cs: Added missing attributes
15836         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
15837
15838 2005-02-16  Peter Bartok  <pbartok@novell.com>
15839
15840         * TextBoxBase.cs: The previous method to enforce height yet remember
15841           the requested high was less than ideal, this is an attempt to do
15842           it better.
15843         * Control.cs: Added comment about possible problem
15844         * Copyright: Updated format
15845         * GridItemType.cs: Fixed swapped values
15846
15847 2005-02-15  Jackson Harper  <jackson@ximian.com>
15848
15849         * BaseCollection.cs: Use property so we never access an
15850         uninitialized list. Also initialize the list in the property.
15851
15852 2005-02-15  Peter Bartok  <pbartok@novell.com>
15853
15854         * GroupBox.cs (ProcessMnemonic): Implemented
15855         * Label.cs (ProcessMnemonic): Implemented
15856         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
15857           hotkeys
15858
15859 2005-02-15  Peter Bartok  <pbartok@novell.com>
15860
15861         * RadioButton.cs (ProcessMnemonic): Implemented
15862         * CheckBox.cs (ProcessMnemonic): Implemented
15863         * Control.cs:
15864           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
15865             handling
15866           - Added internal method to allow calling ProcessMnemonic from other
15867             controls
15868         * ContainerControl.cs:
15869           - Started support for handling validation chain handling
15870           - Implemented ProcessMnemonic support
15871           - Added Select() call to Active, to make sure the active control
15872             receives focus
15873         * Form.cs: Setting toplevel flag for Forms (this was lost in the
15874           FormParent rewrite)
15875         * ThemeWin32Classic.cs:
15876           - DrawCheckBox(): Fixed stringformat to show hotkeys
15877           - DrawRadioButton(): Fixed stringformat to show hotkeys
15878         * CommonDialog.cs: Removed WndProc override, not needed
15879
15880 2005-02-14  Peter Bartok  <pbartok@novell.com>
15881
15882         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
15883           missed those in the rewrite
15884
15885 2005-02-14  Miguel de Icaza  <miguel@novell.com>
15886
15887         * NumericUpDown.cs (Increment, ToString): Add.
15888         (DecimalPlaces): implement.
15889         
15890         Add attributes.
15891         
15892         * UpDownBase.cs: Add the designer attributes.
15893
15894 2005-02-13  Peter Bartok  <pbartok@novell.com>
15895
15896         * Panel.cs: Removed border_style, now in Control
15897         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
15898           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
15899
15900 2005-02-13  Peter Bartok  <pbartok@novell.com>
15901
15902         * MouseButtons.cs: Added missing attributes
15903         * XplatUIStructs.cs: Added enumeration for title styles
15904         * LeftRightAlignment.cs: Added missing attributes
15905         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
15906           it compatible with Graphics.FromHwnd()
15907         * SelectedGridItemChangedEventArgs.cs: Fixed property type
15908         * Keys.cs: Added missing attributes
15909         * SelectionRange.cs: Added missing attributes
15910         * SelectionRangeConverter.cs: Added
15911         * XplatUI.cs:
15912           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
15913             ReleaseMenuDC methods
15914           - Renamed ReleaseWindow to UngrabWindow
15915           - Added proper startup notice to allow version identification
15916         * Form.cs:
15917           - Added missing attributes
15918           - Removed FormParent concept
15919         * Label.cs: Removed border_style field, now in Control
15920         * RadioButton.cs: Now properly selects RadioButton when focus is
15921           received
15922         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
15923         * Control.cs:
15924           - Added missing attributes
15925           - Added borderstyle handling
15926           - Removed FormParent concept support
15927           - Fixed calls to XplatUI to match changed APIs
15928           - Fixed bug that would case us to use disposed Graphics objects
15929           - Removed unneeded internal methods
15930           - PerformLayout(): Fixed to handle DockStyle.Fill properly
15931           - SelectNextControl(): Fixed to properly check common parents
15932         * TextBoxBase.cs: Removed border_style field (now in Control)
15933         * MessageBox.cs:
15934           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
15935             fixed calculations for form size
15936           - Added support for localized strings and icons
15937           - Improved form size calculations, added border
15938         * ListView.cs: Removed border_style field (now in Control)
15939         * X11Structs.cs: Moved several structs from X11 driver here
15940         * X11Keyboard.cs: Changed debug message
15941         * Application.cs: Removed FormParent concept support
15942         * CommonDialog.cs:
15943           - Resetting end_modal flag
15944           - Removed FormParent concept support
15945         * NativeWindow.cs: Removed FormParent concept support
15946         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
15947           Client area and Non-Client whole window to allow support for WM_NC
15948           messages
15949         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
15950           prevent using it until it supports Hwnd as per Geoff Norton's request
15951         * ToolBar.cs: Fixed drawing, was not doing proper drawing
15952         * PictureBox.cs: Removed border_style field, now in Control
15953         * XplatUIWin32.cs: Added new driver methods
15954
15955 2005-02-12  Peter Bartok  <pbartok@novell.com>
15956
15957         * OpacityConverter.cs: Implemented
15958         * Hwnd.cs: Internal class to support drivers that need to emulate
15959           client area/non-client area window behaviour
15960
15961 2005-02-11  Peter Bartok  <pbartok@novell.com>
15962
15963         * KeysConverter.cs: Implemented
15964
15965 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
15966
15967         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
15968         * LinkLabel: Added missing attributes
15969         * MainMenu.cs: fixes ToString
15970         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
15971         * ListBox.cs: fixes event position
15972         * TrackBar.cs: adds missing attributes and events
15973         
15974 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
15975
15976         * MenuItem.cs: Use SystemInformation and bug fixes
15977         * MenuAPI.cs: Use SystemInformation and bug fixes
15978
15979 2005-02-09  Jackson Harper  <jackson@ximian.com>
15980
15981         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
15982         their keystate otherwise things like VK_MENU get stuck "on".
15983
15984 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
15985
15986         * ListBox.cs: Fixes AddRange bug
15987         
15988 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
15989
15990         * ProgressBar.cs
15991                 - Add missing attributes
15992                 - Add missing method
15993                 
15994         * CheckedListBox.cs: Added missing attributes
15995                 - Add missing attributes
15996                 - Remove extra method
15997         
15998         * ComboBox.cs: Added missing attributes
15999         * VScrollBar.cs: Added missing attributes
16000         * ScrollBar.cs:  Added missing attributes
16001         * ListBox.cs: Fixes signature, add missing consts
16002         * LinkArea.cs:   Added missing attributes
16003         
16004
16005 2005-02-08  Peter Bartok  <pbartok@novell.com>
16006
16007         * Menu.cs: Added missing attributes
16008         * MainMenu.cs: Added missing attributes
16009         * GroupBox.cs: Added missing attributes
16010         * Label.cs: Added missing attributes
16011         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
16012         * ColorDialog.cs:
16013           - Added Instance and Options properties
16014           - Added missing attributes
16015         * Cursor.cs: Made Serializable
16016         * NotifyIcon: Added missing attributes
16017         * MenuItem.cs: Added missing attributes
16018         * TextBoxBase.cs: Implemented AppendText() and Select() methods
16019         * Panel.cs: Added Missing attributes
16020         * MonthCalendar.cs: Fixed CreateParams
16021
16022 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16023         
16024         * LinkLabel.cs:
16025                 - Fixes signature
16026                 - Fixes issues with links
16027                 - Adds the class attributes
16028
16029 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
16030         
16031         * ComboBox.cs:
16032                 - Fixes button when no items available in dropdown
16033                 - Fixes repainting problems
16034                 - Adds the class attributes
16035                 
16036 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16037
16038         * XplatUIOSX.cs: Detect the menu bar and title bar height from
16039         the current theme.  Cache these on startup.
16040
16041 2005-02-07  Jackson Harper  <jackson@ximian.com>
16042
16043         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
16044         the scrollbar buttons when they are depressed.
16045
16046 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16047
16048         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
16049         Get the display size from the main displayid.  We currently dont
16050         support multiple display configurations.
16051
16052 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
16053
16054         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
16055
16056 2005-02-07  Miguel de Icaza  <miguel@novell.com>
16057
16058         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
16059
16060 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
16061
16062         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
16063
16064 2005-02-04  Jackson Harper  <jackson@ximian.com>
16065
16066         * ThemeWin32Classic.cs: Respect the clipping rect when
16067         drawing. Only fill the intersection of clips and rects so there
16068         isn't a lot of large fills.
16069         * ScrollBar.cs: Pass the correct clipping rect to the theme
16070         engine. Remove some debug code.
16071
16072 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
16073         
16074         * DateTimePicker.cs:
16075                 - Fixed crash on DateTime.Parse, use Constructor instead
16076
16077 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16078         
16079         * MenuItem.cs:
16080         * MenuAPI.cs:
16081                 - Owner draw support (MeasureItem and DrawItem)
16082
16083 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
16084         
16085         *  Menu.cs:
16086                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
16087                 - Fixes MenuItems.Add range
16088         * MenuItem.cs:
16089                 - MergeMenu and Clone and CloneMenu functions
16090
16091 2005-02-03  Jackson Harper  <jackson@ximian.com>
16092
16093         * ScrollBar.cs: Make abstract
16094         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
16095         is abstract.
16096
16097 2005-02-03  Jackson Harper  <jackson@ximian.com>
16098
16099         * ScrollBar.cs: First part of my scrollbar fixups. This removes
16100         all the unneeded refreshes and uses invalidates with properly
16101         computed rects.
16102
16103 2005-02-03  Peter Bartok  <pbartok@novell.com>
16104
16105         * ComponentModel.cs: Added
16106         * IDataGridEditingService.cs: Added
16107         * Timer.cs: Added missing attributes
16108         * ToolTip.cs: Added missing attributes
16109
16110 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
16111
16112         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
16113
16114 2005-02-03  Peter Bartok  <pbartok@novell.com>
16115
16116         * ListBox.cs: Added missing attributes
16117
16118 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
16119         
16120         * ListBox.cs:
16121                 - Fixes font height after font change
16122                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
16123                 
16124 2005-02-02  Peter Bartok  <pbartok@novell.com>
16125
16126         * HandleData.cs: Introduced static methods to allow class
16127           to be more self-contained and track it's own HandleData objects
16128         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
16129           HandleData to use new static methods
16130
16131 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
16132
16133         * Combobox.cs:
16134                 - Fixes default size and PreferredHeight
16135                 - Missing events
16136                 - ObjectCollection.Insert implementation
16137                 
16138         * ListControl.cs
16139                 - Fixes signature
16140         * ListBox.cs:
16141                 - Several fixes
16142                 - ObjectCollection.Insert implementation
16143                 - No selection after clean
16144                 - Small fixes
16145
16146 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16147
16148         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
16149
16150 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
16151
16152         * Combobox.cs:
16153                 - Caches ItemHeight calculation for OwnerDrawVariable
16154                 - Handles dropdown properly
16155                 - Fixes several minor bugs
16156
16157 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16158
16159         * ListBox.cs:
16160                 - Fixes 71946 and 71950
16161                 - Fixes changing Multicolumn on the fly
16162                 - Fixes keyboard navigation on Multicolumn listboxes
16163
16164 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16165         
16166         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
16167         crash reporter log.
16168
16169 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16170
16171         * XplatUIOSX.cs: Allow applications to actually exit.
16172
16173 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
16174
16175         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
16176         their parent at creation time rather than lazily later.  Fixes a major
16177         regression we were experiencing.
16178
16179 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
16180
16181         * ThemeWin32Classic.cs: more date time picker painting fixes
16182         * DateTimePicker.cs: more monthcalendar drop down fixes
16183         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
16184
16185 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
16186
16187         * ScrollBar.cs:
16188                 - When moving the thumb going outside the control should stop the moving
16189                 - Adds the firing of missing events
16190                 - Fixes no button show if Size is not specified
16191                 - End / Home keys for keyboard navigation
16192
16193 2005-01-30  Peter Bartok  <pbartok@novell.com>
16194
16195         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
16196           sanity check to prevent theoretical loop
16197         * XplatUIWin32.cs (SetVisible): Removed debug output
16198         * XplatUIX11.cs (SystrayChange): Added sanity check
16199         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
16200         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
16201           behaviour, valid until the X11 client window rewrite is done
16202         * TextBox.cs (ctor): Setting proper default foreground and background
16203           colors
16204
16205 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
16206
16207         * Theme: Added DrawDateTimePicker to interface
16208         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
16209         * DateTimePicker.cs: Created (still needs keys and painting code)
16210         * DateTimePickerFormat.cs: added
16211         * MonthCalendar.cs: fixed CreateParams for popup window mode
16212           
16213 2005-01-29  Peter Bartok  <pbartok@novell.com>
16214
16215         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
16216           this should also the calculations for ligher/darker
16217         * Theme.cs: Fixed defaults for ScrollBar widths/heights
16218
16219 2005-01-29  Peter Bartok  <pbartok@novell.com>
16220
16221         * ArrangeDirection.cs: Added
16222         * ArrangeStartingPositon.cs: Added
16223         * SystemInformation.cs: Implemented
16224         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16225           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
16226           used by SystemInformation class
16227         * X11Strucs.cs: Added XSizeHints structure
16228         * MenuAPI.cs:
16229           - Fixed CreateParams to make sure the menu window is always visible
16230           - TrackPopupMenu: Added check to make sure we don't draw the
16231             menu offscreen
16232
16233 2005-01-29  Peter Bartok  <pbartok@novell.com>
16234
16235         * HandleData.cs: Added method for altering invalid area
16236         * TextBoxBase.cs: Implemented TextLength
16237
16238 2005-01-28  Peter Bartok  <pbartok@novell.com>
16239
16240         * XplatUIX11.cs: Improvement over last patch, not sending
16241           the WM_PAINT directly anymore, instead we scroll any pending
16242           exposed areas and let the system pick out the WM_PAINT later
16243
16244 2005-01-28  Peter Bartok  <pbartok@novell.com>
16245
16246         * SWF.csproj: Deleted, no longer used. Instead,
16247           Managed.Windows.Forms/SWF.csproj should be used
16248         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
16249           directly, to avoid a potential race condition with the next
16250           scroll
16251
16252 2005-01-28  Peter Bartok  <pbartok@novell.com>
16253
16254         * XplatUI.cs: Made class internal
16255
16256 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
16257
16258         * CheckedListBox.cs:
16259                 - Draw focus
16260                 - Fixed Drawing
16261                 - Missing methods and events
16262
16263 2005-01-27  Peter Bartok  <pbartok@novell.com>
16264
16265         * Application.cs (Run): Don't use form if we don't have one
16266
16267 2005-01-27  Peter Bartok  <pbartok@novell.com>
16268
16269         * TextBoxBase.cs (get_Lines): Fixed index off by one error
16270
16271 2005-01-27  Peter Bartok  <pbartok@novell.com>
16272
16273         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
16274         * GridItem.cs: Added; Patch by Jonathan S. Chambers
16275         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
16276         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
16277         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
16278         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
16279         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16280         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16281         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16282         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16283         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
16284         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
16285
16286 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16287
16288         * Combobox.cs:
16289                 - Draw focus on Simple Combobox
16290                 - Fixes drawing issues
16291                 - fixes 71834
16292
16293 2005-01-27  Peter Bartok  <pbartok@novell.com>
16294
16295         * Form.cs:
16296           - Place window in default location, instead of hardcoded 0/0
16297           - Send initial LocationChanged event
16298         * Control.cs:
16299           - UpdateBounds after creation to find out where the WM placed us
16300           - Make sure that if the ParentForm changes location the Form
16301             is notified
16302         * XplatUIX11.cs: XGetGeometry will not return the coords relative
16303             to the root, but to whatever the WM placed around us.
16304             Translate to root coordinates before returning toplevel
16305             coordinates
16306         * XplatUIWin32.cs: Removed debug output
16307         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
16308           flag to GetWindowPos, to allow translation of coordinates on X11
16309
16310 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
16311
16312         * ListBox.cs: connect LostFocus Event
16313
16314 2005-01-27  Peter Bartok  <pbartok@novell.com>
16315
16316         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16317           XplatUIX11.cs: Extended the Systray API
16318         * Form.cs: Removed debug output
16319         * Application.cs: Fixed focus assignment, always need to call
16320           XplatUI.Activate() since Form.Activate() has rules that may
16321           prevent activation
16322         * NotifyIcon.cs: Should be complete now
16323         * ToolTip.cs: Worked around possible timer bug
16324
16325 2005-01-27  Jackson Harper  <jackson@ximian.com>
16326
16327         * TabControl.cs:
16328         - Only invalidate the effected tabs when the
16329         selected index changes. This reduces drawing and gets rid of some
16330         flicker.
16331         - Only refresh if the tabs need to be shifted, otherwise only
16332         invalidate the slider button.
16333         - On windows the tabs are not filled to right if the slider is
16334         visible.
16335         
16336 2005-01-27  Jackson Harper  <jackson@ximian.com>
16337
16338         * TabControl.cs: Only refresh on mouseup if we are showing the
16339         slider. Also only invalidate the button whose state has changed.
16340
16341 2005-01-26  Peter Bartok  <pbartok@novell.com>
16342
16343         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
16344         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
16345           and SystrayRemove() methods
16346         * XplatUIOSX.cs: Stubbed Systray methods
16347         * XplatUIX11.cs:
16348           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
16349             methods
16350           - Fixed broken XChangeProperty calls (marshalling messed up things)
16351         * X11Structs.cs: Added enums and structs required for Size hinting
16352         * NotifyIcon.cs: Added & implemented
16353
16354 2005-01-26  Jackson Harper  <jackson@ximian.com>
16355
16356         * TabControl.cs: Space vertically layed out tabs properly.
16357
16358 2005-01-26  Peter Bartok  <pbartok@novell.com>
16359
16360         * Form.cs (CreateClientParams): Always set the location to 0,0
16361           since we're a child window.
16362
16363         * Control.cs (SetVisibleCore): Always explicitly setting the location
16364           of a toplevel window, apparently X11 doesn't like to move windows
16365           while they're not mapped.
16366
16367 2005-01-26  Jackson Harper  <jackson@ximian.com>
16368
16369         * TabControl.cs: Implement FillToRight size mode with vertically
16370         rendered tabs.
16371
16372 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16373
16374         * ControlPaint.cs, ThemeWin32Classic.cs
16375                 - Fixes DrawFocusRectangle
16376
16377 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
16378
16379         * MenuAPI.cs:
16380                 - MenuBar tracking only starts when item is first clicked
16381                 - Fixes menu hidding for multiple subitems
16382                 - Unselect item in MenuBar when item Executed
16383                 - Fixes bug 71495
16384
16385 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
16386
16387         * ListControl.cs:
16388                 - IsInputKey for ListBox
16389         * ListBox.cs:
16390                 - Focus item
16391                 - Shift and Control item selection
16392                 - Implement SelectionMode.MultiExtended
16393                 - Fixes RightToLeft
16394         * ComboBox.cs:
16395                 - IsInputKey implemented
16396                 - Do not generate OnTextChangedEdit on internal txt changes
16397                 
16398 2005-01-23  Peter Bartok  <pbartok@novell.com>
16399
16400         * AccessibleObject.cs: Partially implemented Select()
16401         * MonthCalendar.cs: Added missing attributes and events
16402         * Form.cs: Fixed CreateParams behaviour, now controls derived from
16403           form can properly override CreateParams.
16404         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16405           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
16406           Control performs Invalidate & Update
16407         * NativeWindow (CreateHandle): Added special handling for Form
16408           and Form.FormParent classes to allow overriding of From.CreateParams
16409         * Control.cs:
16410           - ControlNativeWindow: Renamed 'control' variable to more intuitive
16411             name 'owner'
16412           - ControlNativeWindow: Added Owner property
16413           - Removed usage of Refresh() on property changes, changed into
16414             Invalidate(), we need to wait until the queue is processed for
16415             updates, direct calls might cause problems if not all vars for
16416             Paint are initialized
16417           - Added call to UpdateStyles() when creating the window, to set any
16418             styles that CreateWindow might have ignored.
16419           - Added support for Form CreateParent overrides to UpdateStyles()
16420         * MessageBox.cs: Removed no longer needed FormParent override stuff,
16421           CreateParams are now properly overridable
16422         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
16423           CreateParams are now properly overridable
16424
16425 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
16426
16427         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
16428         OnTextBoxChanged.
16429
16430         Capture LostFocus and OnTextBoxChanged.  The later introduces a
16431         recursive invocation that I have not figured out yet.
16432
16433         Reset the timer when not using (it was accumulating).
16434
16435
16436         (OnTextBoxChanged): Set UserEdit to true here to track whether the
16437         user has made changes that require validation.
16438
16439         Reset changing to avoid loops.
16440
16441 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
16442
16443         * NumericUpDown.cs: Display value at startup.
16444
16445         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
16446         ValidateEditText.
16447
16448         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
16449         filled in.  Added some basic parsing of text.
16450
16451         Still missing the OnXXX method overrides, and figuring out the
16452         events that must be emitted.
16453
16454         * UpDownBase.cs: Handle UserEdit on the Text property.
16455         
16456 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
16457
16458         * ComboBox.cs:
16459           - Fixes IntegralHeight
16460           - ToString method
16461
16462 2005-01-21  Jackson Harper  <jackson@ximian.com>
16463
16464         * TabControl.cs: Set the SelectedIndex property when SelectedTab
16465         is set so that the page visibility is updated and the tabs are
16466         sized correctly.
16467
16468 2005-01-21  Jackson Harper  <jackson@ximian.com>
16469
16470         * TabControl.cs: Use cliping rectangle for blitting. Give the
16471         theme the clipping rect so we can do clipping while
16472         drawing. Remove some debug code.
16473
16474 2005-01-21  Jackson Harper  <jackson@ximian.com>
16475
16476         * TabPage.cs: Add a new method so tab pages can force the tab
16477         control to recalculate the tab page sizes.
16478         * TabControl.cs: UpdateOwner needs to make the tab control recalc
16479         sizes.
16480
16481 2005-01-20  Jackson Harper  <jackson@ximian.com>
16482
16483         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
16484
16485 2005-01-20  Jackson Harper  <jackson@ximian.com>
16486
16487         * TreeView.cs: Set the bounds for nodes properly. They were
16488         getting screwed up when checkboxes were not enabled, but images
16489         were.
16490
16491 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
16492
16493         * ListBox.cs:
16494                 - Owner draw support
16495                 - Fixes
16496                 
16497 2005-01-20  Jackson Harper  <jackson@ximian.com>
16498
16499         * XplatUIStructs.cs: More misc keys
16500         * X11Keyboard.cs: Ignore some control keys.
16501
16502 2005-01-20  Jackson Harper  <jackson@ximian.com>
16503
16504         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
16505         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
16506
16507 2005-01-19  Peter Bartok  <pbartok@novell.com>
16508
16509         * Control.cs: Un-selecting the control when it is loosing focus
16510
16511 2005-01-19  Jackson Harper  <jackson@ximian.com>
16512
16513         * TreeView.cs: Hook up to the text controls leave event so we can
16514         end editing when the users clicks outside the text box.
16515         
16516 2005-01-19  Jackson Harper  <jackson@ximian.com>
16517
16518         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
16519         get set in the conversion array.
16520
16521 2005-01-19  Peter Bartok  <pbartok@novell.com>
16522
16523         * Application.cs (ModalRun): Added a call to CreateControl to ensure
16524           focus is properly set
16525         * Button.cs:
16526           - Added missing attributes
16527           - removed styles, those are already set in the base class
16528         * ButtonBase.cs:
16529           - Added missing attributes
16530           - Added clip window styles
16531         * CheckBox.cs: Added missing attributes
16532         * CommonDialog.cs:
16533           - FormParentWindow.CreateParams: Added required clip styles
16534         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
16535           also filters modifier keys
16536         * MessageBox.cs:
16537           - Added assignment of Accept and Cancel button to enable Enter
16538             and Esc keys in MessageBox dialogs
16539           - FormParentWindow.CreateParams: Added required clip styles
16540         * RadioButton.cs: Added missing attributes
16541         * TextControl.cs: No longer draws selection if control does not
16542           have focus
16543         * TextBoxBase.cs:
16544           - Now draws simple rectangle around test area to make it obvious
16545             there's a control. This is a hack until we properly support borders
16546           - A few simple fixes to support selections better, now erases selected
16547             text when typing, and resets selection when using movement keys
16548
16549 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16550
16551         * UpDownBase.cs: Added some new properties.
16552
16553         * DomainUpDown.cs: Implement a lot to get my test working.
16554
16555 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16556
16557         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
16558
16559 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16560
16561         * OSXStructs (WindowAttributes): Fixed csc complaints
16562
16563 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16564
16565         * XplayUIOSX.cs:
16566           OSXStructs.cs: Initial refactor to move enums and consts into
16567           OSXStructs and use them in the driver for greater readability.
16568
16569 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
16570
16571         * XplatUIOSX.cs: Initial support for Standard Cursors.
16572         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
16573
16574 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
16575
16576         * ComboBox.cs: ability to change style when the ctrl is already
16577         created, missing methods and events, bug fixes, signature fixes
16578
16579 2005-01-19  Peter Bartok  <pbartok@novell.com>
16580
16581         * Cursors.cs (ctor): Added ctor to fix signature
16582
16583 2005-01-18  Peter Bartok  <pbartok@novell.com>
16584
16585         * Button.cs: Implemented DoubleClick event
16586         * ButtonBase.cs:
16587           - Fixed keyboard handling to behave like MS, where the press of
16588             Spacebar is equivalent to a mousedown, and the key release is
16589             equivalent to mouseup. Now a spacebar push will give the same
16590             visual feedback like a mouse click.
16591           - Added missing attributes
16592           - Added ImeModeChanged event
16593           - Added support for generating DoubleClick event for derived classes
16594         * CheckBox.cs:
16595           - Implemented DoubleClick event
16596           - Added missing attributes
16597         * CommonDialog.cs: Added missing attribute
16598         * ContextMenu.cs: Added missing attributes
16599         * RadioButton.cs:
16600           - AutoChecked buttons do not allow to be unselected when clicked
16601             (otherwise we might end up with no selected buttons in a group)
16602           - Added missing attributes
16603           - Implemented DoubleClickEvent
16604         * ThreadExceptionDialog.cs: Enabled TextBox code
16605
16606 2005-01-18  Peter Bartok  <pbartok@novell.com>
16607
16608         * Form.cs: Removed debug output
16609         * Button.cs: Added support for DoubleClick method
16610
16611 2005-01-18  Peter Bartok  <pbartok@novell.com>
16612
16613         * Form.cs:
16614           - Added method to parent window that allows triggering size
16615             calculations when a menu is added/removed
16616           - set_Menu: Cleaned up mess from early days of Form and Control,
16617             now properly triggers a recalc when a menu is added/removed
16618           - Added case to select form itself as focused form if no child
16619             controls exist
16620           - Added PerformLayout call when showing dialog, to ensure properly
16621             placed controls
16622         * Control.cs:
16623           - Select(): Made internal so Form can access it
16624           - Focus(): Only call Xplat layer if required (avoids loop), and sets
16625             status
16626         * Application.cs (Run): Removed hack and calls PerformLayout instead
16627           to trigger calculation when Form becomes visible
16628
16629 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
16630
16631         * ComboBox.cs: fixes for ownerdraw
16632
16633 2005-01-18  Peter Bartok  <pbartok@novell.com>
16634
16635         * TextControl.cs:
16636           - Sentinel is no longer static, each Document gets it's own, this
16637             avoids locking or alternatively overwrite problems when more
16638             than one text control is used simultaneously.
16639           - Switched to use Hilight and HilightText brushes for text selection
16640
16641         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
16642
16643 2005-01-18  Peter Bartok  <pbartok@novell.com>
16644
16645         * Control.cs:
16646           - Hooked up the following events:
16647                 o ControlAdded
16648                 o ControlRemoved
16649                 o HandleDestroyed
16650                 o ImeModeChanged
16651                 o ParentChanged
16652                 o TabStopChanged
16653                 o Invalidated
16654                 o SystemColorsChanged
16655                 o ParentFontChanged
16656                 o Move
16657           - Removed debug output
16658           - Added a call to the current theme's ResetDefaults when a color change
16659             is detected
16660         * Form.cs: Now setting the proper ImeMode
16661         * Theme.cs: Defined a method to force recreation of cached resources
16662           and rereading of system defaults (ResetDefaults())
16663         * ThemeWin32Classic.cs: Added ResetDefaults() stub
16664
16665 2005-01-17  Peter Bartok  <pbartok@novell.com>
16666
16667         * Control.cs: Added missing attributes
16668
16669 2005-01-17  Jackson Harper  <jackson@ximian.com>
16670
16671         * TreeNode.cs: Implement editing. Add missing properties selected
16672         and visible.
16673         * TreeView.cs: Implement node editing. Also some fixes to use
16674         Invalidate (invalid area) instead of Refresh when selecting.
16675
16676 2005-01-17  Peter Bartok  <pbartok@novell.com>
16677
16678         * Control.cs:
16679           - Implemented InvokeGotFocus() method
16680           - Implemented InvokeLostFocus() method
16681           - Implemented InvokePaint() method
16682           - Implemented InvokePaintBackground() method
16683           - Implemented InvokeClick() method
16684           - Implemented FindForm() method
16685           - Implemented RectangleToClient() method
16686           - Implemented ClientToRectangle() method
16687           - Implemented ResetBackColor() method
16688           - Implemented ResetCursor() method
16689           - Implemented ResetFont() method
16690           - Implemented ResteForeColor() method
16691           - Implemented ResetImeMode() method
16692           - Implemented ResetLeftToRight() method
16693           - Implemented ResetText() method
16694           - Implemented Scale() methods
16695           - Implemented ScaleCore() method
16696           - Implemented Update() method
16697           - Removed unused variables
16698           - Stubbed AccessibilityNotifyClients and
16699             ControlAccessibleObject.NotifyClients() methods (dunno what to do
16700             with those yet)
16701           - Now setting proper default for RightToLeft property
16702           - Fixed bug in SetClientSizeCore that would cause windows to get
16703             really big
16704           - Now sending Click/DoubleClick events
16705           - Now selecting controls when left mouse button is clicked on
16706             selectable control
16707         * AccessibleEvents.cs: Added
16708         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
16709         * XplatUIOSX.cs: Stubbed UpdateWindow() method
16710         * XplatUIWin32.cs: Implemented UpdateWindow() method
16711         * XplatUIX11.cs: Implemented UpdateWindow() method
16712         * Form.cs: Removed stray semicolon causing CS0162 warning
16713         * ThemeWin32Classic.cs: Fixed unused variable warnings
16714         * ScrollableControl.cs: Now calls base method for ScaleCore
16715         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
16716           style to avoid interference with internal click handler (which is
16717           different than standard Control click handling)
16718         * RadioButton.cs:
16719           - Now unchecks all sibling radio buttons when control is
16720             selected (Fixes #68756)
16721           - Removed internal tabstop variable, using the one inherited from
16722             Control
16723
16724 2005-01-17  Jackson Harper  <jackson@ximian.com>
16725
16726         * NavigateEventArgs.cs: Fix base type.
16727         * LinkLabel.cs: Sig fix
16728         
16729 2005-01-17  Jackson Harper  <jackson@ximian.com>
16730
16731         * TreeView.cs: Only invalidate the effected nodes bounds when
16732         selecting nodes.
16733
16734 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16735
16736         * XplatUIWin32.cs: fixes Win32 marshaling
16737         * XplatUIX11.cs: fixes method signature
16738
16739 2005-01-17  Peter Bartok  <pbartok@novell.com>
16740
16741         * XplatUIX11.cs: Clean up resources when we no longer need them
16742
16743 2005-01-17  Peter Bartok  <pbartok@novell.com>
16744
16745         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
16746           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
16747           and DestroyCursor() methods.
16748         * Cursor.cs: Partially implemented, now supports standard cursors;
16749           still contains some debug code
16750         * Cursors.cs: Implemented class
16751         * Control.cs:
16752           - WndProc(): Added handling of WM_SETCURSOR message, setting the
16753             appropriate cursor
16754           - Implemented Cursor property
16755           - Replaced break; with return; more straightforwar and possibly
16756             faster
16757           - Now properly setting the result for WM_HELP
16758         * X11Structs.cs: Added CursorFontShape enum
16759         * XplatUIStructs.cs:
16760           - Added StdCursor enum (to support DefineStdCursor() method)
16761           - Added HitTest enum (to support sending WM_SETCURSOR message)
16762         * XplatUIX11.cs:
16763           - Now sends the WM_SETCURSOR message
16764           - Implemented new cursor methods
16765         * XplatUIOSX.cs: Stubbed new cursor methods
16766         * XplatUIWin32.cs:
16767           - Implemented new cursor methods
16768           - Added GetSystemMetrics function and associated enumeration
16769
16770 2005-01-15  Peter Bartok  <pbartok@novell.com>
16771
16772         * Control.cs:
16773           - WndProc(): Now handles EnableNotifyMessage
16774           - SelectNextControl(): Fixed bug where if no child or sibling
16775             controls exist we looped endlessly
16776
16777 2005-01-14  Jackson Harper  <jackson@ximian.com>
16778
16779         * TreeView.cs: Recalculate the tab pages when a new one is added
16780         so that the proper bounding rects are created.
16781
16782 2005-01-14  Jackson Harper  <jackson@ximian.com>
16783
16784         * TreeView.cs: Draw a gray box instead of a grip in the lower
16785         right hand corner when there are both horizontal and vertical
16786         scroll bars.
16787
16788 2005-01-14  Jackson Harper  <jackson@ximian.com>
16789
16790         * Control.cs: When erasing backgrounds use FromHwnd instead of
16791         FromHdc when there is a NULL wparam. This occurs on the X driver.
16792         * XplatUIX11.cs: Set the wparam to NULL.
16793
16794 2005-01-13  Jackson Harper  <jackson@ximian.com>
16795
16796         * PictureBox.cs: Implement missing methods (except ToString, need
16797         to test that on windows) and events. When visibility is changed we
16798         need to redraw the image because the buffers are killed. When size
16799         is changed refresh if the sizemode needs it.
16800
16801 2005-01-13  Peter Bartok  <pbartok@novell.com>
16802
16803         * Control.cs (SelectNextControl): Was using wrong method to select
16804           a control
16805
16806 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16807
16808         * ComboBox.cs: fixes dropstyle
16809
16810 2005-01-13  Peter Bartok  <pbartok@novell.com>
16811
16812         * Form.cs:
16813           - Implemented Select() override
16814           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
16815           - Now sets keyboard focus on startup
16816         * Control.cs (SelectNextControl): Now properly handles directed=true
16817         * TextBoxBase.cs:
16818           - WndProc: Now passes tab key on to base if AcceptTabChar=false
16819           - Added (really bad) focus rectangle (mostly for testing)
16820         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
16821           to enforce redraw on focus changes
16822         * ContainerControl.cs:
16823           - Fixed detection of Shift-Tab key presses
16824           - Fixed traversal with arrow keys
16825         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
16826           gonna keep this or if it's complete yet
16827         
16828 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
16829
16830         * ComboBox.cs: missing properties, fixes
16831
16832 2005-01-13  Peter Bartok  <pbartok@novell.com>
16833
16834         * Panel.cs (ctor): Setting Selectable window style to off
16835         * Splitter.cs (ctor): Setting Selectable window style to off
16836         * GroupBox.cs (ctor): Setting Selectable window style to off
16837         * Label.cs (ctor): Setting Selectable window style to off
16838
16839 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
16840
16841         * UpDownBase.cs (InitTimer): If the timer has been already
16842         created, enable it.
16843
16844         Use a TextBox instead of a Label.
16845
16846 2005-01-12  Jackson Harper  <jackson@ximian.com>
16847
16848         * TreeView.cs: Refresh the tree after sorting the nodes. Always
16849         draw the connecting node lines (when ShowLines is true).
16850         * TreeNode.cs: The nodes index can now be updated. This is used
16851         when a node collection is sorted.
16852         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
16853         insert or an existing unsorted node collection can be sorted.
16854         
16855 2005-01-12  Peter Bartok  <pbartok@novell.com>
16856
16857         * ContainerControl.cs: Implemented ProcessDialogKeys()
16858
16859 2005-01-12  Peter Bartok  <pbartok@novell.com>
16860
16861         * Control.cs:
16862           - Implemented SelectNextControl() method
16863           - Several focus related bug fixes
16864           - Fixed Docking calculations to match MS documentation and
16865             behaviour
16866
16867 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
16868
16869         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
16870         bug fixes
16871
16872 2005-01-12  Peter Bartok  <pbartok@novell.com>
16873
16874         * Control.cs:
16875           - Fixed broken Contains() method
16876           - Implemented GetNextControl() method. Finally. This is the pre-
16877             requisite for focus handling.
16878
16879 2005-01-12  Peter Bartok  <pbartok@novell.com>
16880
16881         * OSXStrucs.cs: Added
16882
16883 2005-01-12  Peter Bartok  <pbartok@novell.com>
16884
16885         * XplatUIWin32.cs:
16886           - Removed PeekMessageFlags
16887           - Implemented SetWindowStyle() method
16888         * XplatUIStructs.cs: Added PeekMessageFlags
16889         * X11Structs: Added missing border_width field to XWindowChanges struct
16890         * XplatUIX11.cs:
16891           - PeekMessage: Now throws exception if flags which are not yet
16892             supported are passed
16893           - Implemented SetWindowStyle() method
16894           - Fixed SetZOrder to handle AfterHwnd properly
16895         * XplatUI.cs: Added SetWindowStyle() method
16896         * XplatUIDriver.cs: Added SetWindowStyle() abstract
16897         * Control.cs:
16898           - Implemented UpdateStyles() method
16899           - Implemented UpdateZOrder() method
16900         * XplatUIOSX.cs: Added SetWindowStyle() stub
16901
16902 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
16903
16904         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
16905         button mouse).
16906
16907
16908 2005-01-11  Jackson Harper  <jackson@ximian.com>
16909
16910         * TreeView.cs: Still need to draw lines to siblings even if out of
16911         the current node is out of the clip.
16912
16913 2005-01-11  Jackson Harper  <jackson@ximian.com>
16914
16915         * TreeView.cs: When setting the hbar/vbar/grip position use
16916         SetBounds so that perform layout is only called once. Also suspend
16917         and resume layout so layout is only done once for all controls.
16918         - Removed some debug fluff
16919         * SizeGrip.cs: Call base implmentation in overriding methods.
16920         - When visibility is changed the drawing buffers are killed so we
16921         need to redraw.
16922
16923 2005-01-11  Jackson Harper  <jackson@ximian.com>
16924
16925         * TreeView.cs: Calculate the open node count while drawing. This
16926         saves us an entire tree traversal for every paint operation. Use
16927         a member var for the open node count so less vars are passed around.
16928
16929 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
16930
16931         * MonthCalendar.cs:
16932         - fixed selection to use mousemove, not mouse polling on timer
16933         * ThemeWin32Classic.cs
16934         - removed redundant unused variable "no_more_content"
16935         
16936 2005-01-11  Peter Bartok  <pbartok@novell.com>
16937
16938         * XplatUIX11.cs (DoEvents): Needs to return when no more events
16939           are pending, so it now calls PeekMessage instead of GetMessage;
16940           implemented a incomplete version of PeekMessage
16941         
16942 2005-01-11  Peter Bartok  <pbartok@novell.com>
16943
16944         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
16945           I18n issues
16946         * TextBoxBase.cs: Added sending of TextChanged event
16947
16948 2005-01-10  Jackson Harper  <jackson@ximian.com>
16949
16950         * TreeView.cs: Try not to draw outside the clipping rectangle on
16951         each node element.
16952
16953 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
16954
16955         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
16956
16957 2005-01-10  Jackson Harper  <jackson@ximian.com>
16958
16959         * TreeView.cs:
16960         - Implement fast scrolling. Now only the newly
16961         exposed nodes are drawn and the old image is moved using the
16962         XplatUI::ScrollWindow method.
16963         - Factor in height of nodes when calculating whether or not the
16964         node is in the clipping rect.
16965
16966 2005-01-10  Jackson Harper  <jackson@ximian.com>
16967
16968         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
16969
16970 2005-01-10  Peter Bartok  <pbartok@novell.com>
16971
16972         * Application.cs: Added temporary hack to resolve all our resize
16973           required issues on startup. This will get fixed properly at
16974           some point in the future
16975
16976 2005-01-10  Jackson Harper  <jackson@ximian.com>
16977
16978         * SizeGrip.cs: New internal class that is used as a sizing
16979         grip control...hence the name.
16980
16981 2005-01-10  Peter Bartok  <pbartok@novell.com>
16982
16983         * Control.cs: Implemented proper TabIndex handling, now assigning
16984           a tabindex when a control is added to a container
16985         * GroupBox.cs (ctor): Now sets the Container style bit, required
16986           for Control.GetNextControl()
16987
16988 2005-01-09  Jackson Harper  <jackson@ximian.com>
16989
16990         * TextBoxBase.cs: Clear window when scrolling (fixes build).
16991
16992 2005-01-09  Peter Bartok <pbartok@novell.com>
16993
16994         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
16995           XplatUIX11.cs: Added ability to control ScrollWindow expose and
16996           an overload for ScrollWindow to allow only scrolling a rectangle
16997
16998 2005-01-09  Peter Bartok <pbartok@novell.com>
16999
17000         * Form.cs:
17001           - Implemented SetDesktopBounds method
17002           - Implemented SetDesktopLocation method
17003
17004 2005-01-08  Jackson Harper  <jackson@ximian.com>
17005
17006         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
17007         the node count has changed, this removes to VScroll::Refresh calls
17008         when drawing.
17009
17010 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
17011
17012         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
17013
17014 2005-01-07  Jackson Harper  <jackson@ximian.com>
17015
17016         * TreeNode.cs: Just update the single node when it is
17017         checked. Don't refresh after toggling, the Expand/Collapse already
17018         handles this.
17019         * TreeView.cs: Respect clipping a little more when drawing. Try
17020         not to redraw things that don't need to be redrawn. Just hide the
17021         scrollbars when they are no longer needed instead of removing
17022         them, so they don't have to be created again and again.
17023         
17024 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
17025
17026         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
17027         coordinates to window space to place the caret properly, FIXED.
17028         Implement GetWindowState & SetWindowState
17029
17030 2005-01-06  Peter Bartok <pbartok@novell.com>
17031
17032         * Form.cs:
17033           - Implemented ClientSize property
17034           - Implemented DesktopBounds property
17035           - Implemented DesktopLocation property
17036           - Implemented IsRestrictedWindow property
17037           - Implemented Size property
17038           - Implemented TopLevel property
17039           - Implemented FormWindowState property
17040         * Control.cs:
17041           - Implemented GetTopLevel() method
17042           - Implemented SetTopLevel() method
17043         * X11Structs.cs (Atom):
17044           - Added AnyPropertyType definition
17045           - Added MapState definiton and updated XWindowAttribute struct
17046         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
17047         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
17048         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
17049         * XplatUIWin32.cs:
17050           - Implemented GetWindowState() and SetWindowState() methods
17051           - Fixed Win32GetWindowLong return type
17052         * XplatUIX11.cs:
17053           - Introduced central function for sending NET_WM messages
17054           - Implemented GetWindowState() and SetWindowState() methods
17055         * TextBoxBase.cs (set_Lines):
17056           - Now uses Foreground color for text added via Text property (Duh!)
17057           - Added code to remember programmatically requested size (fixes
17058             behaviour when Multiline is set after Size)
17059           - Added AutoSize logic
17060
17061 2005-01-06  Jackson Harper  <jackson@ximian.com>
17062
17063         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
17064
17065 2005-01-06  Jackson Harper  <jackson@ximian.com>
17066
17067         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
17068         set to less then 0.
17069
17070 2005-01-06  Jackson Harper  <jackson@ximian.com>
17071
17072         * ScrollableControl.cs: Lazy init the scrollbars.
17073         
17074 2005-01-06  Jackson Harper  <jackson@ximian.com>
17075
17076         * Theme.cs: Speed up getting pens and solid brushes, by using
17077         their ARGB as a hash instead of tostring and not calling Contains.
17078
17079 2005-01-06  Peter Bartok <pbartok@novell.com>
17080
17081         * Form.cs:
17082           - Implemented OnActivated and OnDeactivate event trigger
17083           - Implemented Activate() method
17084           - Fixed ShowDialog() to activate the form that was active before
17085             the dialog was shown
17086         * XplatUIX11.cs:
17087           - Added global active_window var that tracks the currently active
17088             X11 window
17089           - Now always grabs Property changes from the root window to always
17090             catch changes on the active window property
17091           - Added code to PropertyNotify handler to send Active/Inactive
17092             messages when state changes. This puts X11 and Win32 en par on
17093             WM_ACTIVATE notifications (except for double notifications when
17094             the user clicks away from our modal window to another one of our
17095             windows)
17096
17097 2005-01-05  Jackson Harper  <jackson@ximian.com>
17098
17099         * ImageList.cs: Implment ctor
17100
17101 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17102
17103         * XplatUIOSX.cs: Implement Activate/SetTopmost
17104
17105 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17106
17107         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
17108
17109 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
17110
17111         * XplatUIOSX.cs: Implement GetActive/SetFocus.
17112
17113 2005-01-05  Peter Bartok <pbartok@novell.com>
17114
17115         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
17116           XplatUIOSX.cs: Added GetActive method to return the currently
17117           active window for the application (or null, if none is active)
17118         * Form.cs:
17119           - Implemented ActiveForm
17120           - Commented out owner assignment for modal dialogs (causes problems
17121             on Win32, since the owner will be disabled)
17122           - Reworked some Active/Focus handling (still incomplete)
17123         * CommonDialog.cs: Commented out owner assignment for modal dialogs
17124           (causes problems on Win32, since the owner will be disabled)
17125         * IWin32Window: Added ComVisible attribute
17126
17127 2005-01-05  Peter Bartok <pbartok@novell.com>
17128
17129         * ToolTip.cs (WndProc): Enable setting focus now that we have the
17130           required XplatUI functions.
17131
17132 2005-01-05  Peter Bartok <pbartok@novell.com>
17133
17134         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
17135           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
17136           to implement focus and activation handling; still incomplete and
17137           with debug output
17138
17139 2005-01-04  Peter Bartok <pbartok@novell.com>
17140
17141         * TextBoxBase.cs: Changed access level for Document property to
17142           match switch to internal for TextControl
17143
17144 2005-01-04  Peter Bartok <pbartok@novell.com>
17145
17146         * AccessibleObject: Added ComVisible attribute
17147
17148 2005-01-04  Jackson Harper  <jackson@ximian.com>
17149
17150         * X11Keyboard.cs: Remove unneeded var.
17151
17152 2005-01-04  Jackson Harper  <jackson@ximian.com>
17153
17154         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
17155         but PAINT.
17156         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
17157         ClientMessage. This makes apps exit cleanly (more often).
17158         
17159 2005-01-04  Jackson Harper  <jackson@ximian.com>
17160
17161         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
17162         handling focus, return correct colors and fonts,
17163         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
17164         handle selection, horizontal scrolling, and mouse interaction.
17165
17166 2005-01-04  Peter Bartok <pbartok@novell.com>
17167
17168         * ICommandExecutor.cs: Added
17169         * IDataGridColumnStyleEditingNotificationService.cs: Added
17170         * IFeatureSupport.cs: Added
17171         * IFileReaderService.cs: Added
17172         * IDataObject.cs: Added ComVisible attribute
17173         * AmbientProperties.cs: Added
17174         * BaseCollection.cs: Added missing attributes
17175         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
17176         * BaseCollection.cs: Added missing attributes
17177         * Binding.cs: Added TypeConverter attribute
17178         * BindingContext.cs: Added DefaultEvent attribute
17179         * BindingsCollection.cs: Added DefaultEvent attribute
17180         * Button.cs: Added DefaultValue attribute
17181         * DragEventArgs.cs: Added ComVisible attribute
17182         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
17183         * KeyEventArgs.cs: Added ComVisible attribute
17184         * KeyPressEventArgs.cs: Added ComVisible attribute
17185         * MouseEventArgs.cs: Added ComVisible attribute
17186         * NavigateEventArgs.cs: Added
17187         * NavigateEventHandler.cs: Added
17188         * FeatureSupport.cs: Added
17189         * OSFeature.cs: Added
17190         * Theme.cs: Added abstract Version property to support OSFeature
17191         * ThemeWin32Classic.cs: Added Version property to
17192           support OSFeature.Themes
17193         * ProgressBar.cs: Removed OnPaintBackground override, not required since
17194           the proper styles to avoid background drawing are set, also doesn't
17195           match MS signature
17196         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
17197         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
17198         * ScrollEventArgs.cs: Added ComVisible attribute
17199         * SplitterEventArgs.cs: Added ComVisible attribute
17200         * AccessibleSelection.cs: Added Flags attribute
17201         * Appearance.cs: Added ComVisible attribute
17202         * Border3DSide.cs: Added ComVisible attribute
17203         * Border3DStyle.cs: Added ComVisible attribute
17204         * BorderStyle.cs: Added ComVisible attribute
17205         * DragAction.cs: Added ComVisible attribute
17206         * ErrorBlinkStyle.cs: Added
17207         * ScrollEventType.cs: Added ComVisible attribute
17208         * AnchorStyles.cs: Added Editor attribute
17209         * DockStyle.cs: Added Editor attribute
17210         * HorizontalAlignment.cs: Added ComVisible attribute
17211         * HelpEventArgs.cs: Added ComVisible attribute
17212         * PaintEventArgs.cs: Added IDisposable
17213
17214 2005-01-04  Peter Bartok <pbartok@novell.com>
17215
17216         * TextControl.cs: Switched Line, LineTag and Document classes to
17217           internal
17218
17219 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17220
17221         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
17222         Simple mode, fixes, IntegralHeight, etc.
17223
17224 2005-01-04  Peter Bartok <pbartok@novell.com>
17225
17226         * TextBoxBase.cs: Using proper font variable now
17227
17228 2005-01-04  Peter Bartok <pbartok@novell.com>
17229
17230         * Form.cs (ShowDialog): Set parent to owner, if provided
17231         * GroupBox.cs: Removed unused vars
17232         * TextControl.cs:
17233           - Added GetHashCode() for Document and LineTag classes
17234           - Removed unused variables
17235           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
17236             to allow translation between continuous char position and line/pos
17237         * CheckBox.cs: Removed vars that are provided by base class
17238         * RadioButton.cs: Removed vars that are provided by base class, added
17239           new keyword where required
17240         * LinkLabel.cs: Added new keyword where required
17241         * Control.cs (WndProc): Removed unused variable
17242         * TextBoxBase.cs:
17243           - Finished SelectionLength property
17244           - Implemented SelectionStart property
17245           - Implemented Text property
17246           - Removed unused vars
17247         * MessageBox.cs: Added new keyword where required
17248         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
17249           WndProc signature
17250         * MenuAPI.cs: Added new keyword where required
17251         * ButtonBase.cs: Removed vars that are provided by base class, added
17252           new keyword where required
17253         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
17254           argument to double, to allow compiling with csc 2.0 (Atsushi ran
17255           into this)
17256         * Application.cs (Run): Now triggers the ThreadExit event
17257         * CommonDialog.cs: Added new keyword where required; now properly sets
17258           parent (owner) for dialog
17259         * XplatUIX11.cs: Commented out unused vars
17260         * StatusBar.cs: Fixed signature for Text property
17261         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
17262
17263 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
17264
17265         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
17266         TrackBar.cs, MonthCalendar.cs: remove unused vars
17267
17268 2005-01-03  Jackson Harper  <jackson@ximian.com>
17269
17270         * ThemeWin32Classic.cs:
17271         * X11Keyboard.cs: Remove unused vars.
17272
17273 2005-01-03  Peter Bartok  <pbartok@novell.com>
17274
17275         * TextBox.cs:
17276           - set_Text: Tied into TextControl
17277           - set_TextAlignment: Tied into TextControl
17278         * TextControl.cs:
17279           - Added alignment properties and implemented alignment handling
17280             and drawing (still has a bug, not generating proper expose events)
17281           - Added new Line() constructor to allow passing the line alignment
17282           - Fixed selection setting, properly handling end<start now
17283           - Added aligment considerations to RecalculateDocument()
17284         * TextBoxBase.cs:
17285           - Now properly enforces control height for single line controls
17286           - Added support for CharacterCasing
17287           - Added IsInputKey override
17288           - Fixed Keys.Enter logic
17289           - Added SetBoundsCore override
17290           - Fixed mouse selection handling
17291
17292 2005-01-03  Jackson Harper  <jackson@ximian.com>
17293
17294         * TreeView.cs:
17295           - Collapse and uncheck all nodes when CheckBoxes is disabled.
17296           - Checkboxes are always aligned to the bottom of the node,
17297           regardless of item height.
17298           - Use the node bounds to draw the text so we can center it when
17299           the item height is greater then the font height.
17300           - Node::Bounds are only the text part of the node.
17301         * TreeNode.cs: New method to combine collapsing and unchecking all
17302           nodes recursively.
17303
17304 2005-01-02  Jackson Harper  <jackson@ximian.com>
17305
17306         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
17307         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
17308         tree when a check is changed. TODO: Only refresh the checked node.
17309
17310 2004-12-30  Jackson Harper  <jackson@ximian.com>
17311
17312         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
17313         * TreeNode.cs: When collapsing make sure to never collapse the
17314         root node.
17315
17316 2004-12-29  Jackson Harper  <jackson@ximian.com>
17317
17318         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
17319         
17320 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
17321
17322         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
17323
17324 2004-12-28  Peter Bartok  <pbartok@novell.com>
17325
17326         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
17327           not yet assigned
17328
17329 2004-12-28  Peter Bartok  <pbartok@novell.com>
17330
17331         * Control.cs (WndProc): Added WM_HELP handler, now generates
17332           HelpRequested event
17333         * Form.cs: Added HelpButton property and required support code
17334         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
17335
17336 2004-12-28  Peter Bartok  <pbartok@novell.com>
17337
17338         * CommonDialog.cs:
17339           - Made DialogForm.owner variable internal
17340           - Added check to ensure owner form is set before setting
17341             owner properties in CreateParams
17342
17343 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
17344
17345         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
17346           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
17347           GetCursorPos.  Fix major visibility issues.  Rework the windowing
17348           system to support borderless/titleless windows (implements menus).
17349           Fix GetWindowPos.  Implement initial background color support for
17350           views.
17351
17352 2004-12-28  Peter Bartok  <pbartok@novell.com>
17353
17354         * Form.cs (get_CreateParams): Make sure we have an owner before using
17355           the owner variable. Implement proper default if no owner exists
17356
17357 2004-12-28  Peter Bartok  <pbartok@novell.com>
17358
17359         * In preparation for making Managed.Windows.Forms the default build target
17360           for System.Windows.Forms, the following stubbed files were added.
17361           Dialogs are currently being implemented by contributors and are only
17362           short-term place holders.
17363         * ColorDialog.cs: Initial check-in (minmal stub)
17364         * DataGrid.cs: Initial check-in (minimal stub)
17365         * DataGridLineStyle.cs: Initial check-in (minimal stub)
17366         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
17367         * DataGridTableStyle.cs: Initial check-in (minimal stub)
17368         * FontDialog.cs: Initial check-in (minimal stub)
17369         * FileDialog.cs: Initial check-in (minimal stub)
17370         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
17371         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
17372         * OpenFileDialog: Initial check-in (minimal stub)
17373         * IComponentEditorPageSite.cs: Initial check-in
17374         * Splitter.cs: Initial check-in (for Jackson)
17375         * SplitterEventArgs.cs: Initial check-in (for Jackson)
17376         * SplitterEventHandler.cs: Initial check-in (for Jackson)
17377         * TextBox.cs: Initial check-in; still needs some wiring to
17378           TextControl backend
17379         * Form.cs: Implemented ControlBox property
17380         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
17381         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
17382         * TextControl.cs: Added selection functionality; added todo header
17383         * TextBoxBase.cs:
17384           - Implemented Lines property
17385           - Implemented TextHeight property
17386           - Implemented SelectedText property
17387           - Implemented SelectionLength property
17388           - Implemented SelectAll method
17389           - Implemented ToString method
17390           - Removed and cleaned up some debug code
17391           - Implemented (still buggy) mouse text selection
17392
17393 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
17394
17395         * ComboBox.cs: Complete DropDownList implementation, fixes.
17396
17397 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
17398
17399         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
17400         * ComboBoxStyle.cs: ComboBoxStyle enum
17401         * ComboBox.cs: Initial work on ComboBox control
17402
17403 2004-12-21  Peter Bartok  <pbartok@novell.com>
17404
17405         * Control.cs (ctor, CreateParams): Moved setting of is_visible
17406           forward so that anything that creates a window gets the default,
17407           also no longer uses Visible property in CreateParams to avoid
17408           walking up the parent chain and possibly get the wrong visible
17409           status. Fixed IsVisible to no longer walk up to the parent.
17410
17411 2004-12-21  Peter Bartok  <pbartok@novell.com>
17412
17413         * Form.cs (ShowDialog): Unset modality for the proper window
17414  
17415 2004-12-20  Peter Bartok  <pbartok@novell.com>
17416
17417         * CommonDialog.cs: Initial check-in
17418
17419 2004-12-20  Peter Bartok  <pbartok@novell.com>
17420
17421         * Control.cs (Visible): Now uses the parent window instead of the
17422           client area window for the property
17423
17424         * Form.cs
17425           - ShowDialog(): Now uses the proper window for modality
17426           - The default visibility state for the form parent is now false. This
17427             will prevent the user from seeing all the changes to the form and
17428             its controls before the application hits Application.Run()
17429           - Removed some stale commented out code
17430
17431         * NativeWindow.cs:
17432           - Added FindWindow() method to have a method to check for existence
17433             of a window handle
17434           - Added ability to override default exception handling (for example
17435             when debugging with VS.Net; to do this the ExternalExceptionHandler
17436             define must be set
17437           - Removed some useless debug output
17438
17439         * XplatUIX11.cs:
17440           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
17441             not working as expected
17442           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
17443             property to allow switching back to the modal window if focus is
17444             given to another one of our windows (Application Modal)
17445           - Now only sets override_redirect if we create a window
17446             without WS_CAPTION
17447           - Moved EventMask selection before mapping of newly created window
17448             so we can catch the map event as well
17449           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
17450           - Added various Atom related DllImports
17451           - Implemented Exit() method
17452           - .ctor() : No longer shows window if WS_VISIBLE is not defined
17453             in the CreateParams
17454
17455         * MessageBox.cs: Now properly deals with the FormParent window by
17456           providing an override the FormParent CreateParams property to
17457           set as POPUP instead of OVERLAPPED window.
17458
17459 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17460
17461         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
17462         Minor code cleanup.
17463
17464 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
17465         
17466         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
17467
17468 2004-12-18  Peter Bartok  <pbartok@novell.com>
17469
17470         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
17471           implementing SetModal() method
17472
17473 2004-12-18  Peter Bartok  <pbartok@novell.com>
17474
17475         * X11Structs.cs (XGCValues): Fixed type of function element
17476         * XplatUI.cs: Added ScrollWindow() method
17477         * XplatUIDriver.cs: Added ScrollWindow() abstract
17478         * XplatUIWin32.cs: Implemented ScrollWindow() method
17479         * XplatUIX11.cs: Implemented ScrollWindow() method
17480         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
17481
17482 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17483
17484         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
17485         Some more keyboard support (INCOMPLETE)
17486
17487 2004-12-17  Peter Bartok  <pbartok@novell.com>
17488
17489         * TextControl.cs:
17490         - Added color attribute to line tags.
17491         - Added color argument to all functions dealing with tags
17492         - Added color argument support to various functions
17493         - Fixed miss-calculation of baseline/shift in certain circumstances
17494
17495         * TextBoxBase.cs: Added new color option to test code
17496
17497 2004-12-17  Jackson Harper  <jackson@ximian.com>
17498
17499         * TreeNode.cs:
17500         * MonthCalendar.cs: Signature fixes
17501
17502 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17503
17504         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
17505         keyboard event moved it.  Create a new graphics context for each paint resolves this
17506
17507 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
17508
17509         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
17510         Make caret exist and go blink blink.  Initial keyboard support.
17511         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
17512         works.
17513
17514 2004-12-17  Jackson Harper  <jackson@ximian.com>
17515
17516         * XplatUIStructs.cs: Updated set of virtual keycodes.
17517         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
17518
17519 2004-12-17  Jackson Harper  <jackson@ximian.com>
17520
17521         * XplatUIX11.cs: Prune old keyboard code.
17522
17523 2004-12-17  Jackson Harper  <jackson@ximian.com>
17524
17525         * XplatUIX11.cs: When generating mouse wparams get the modifier
17526         keys from the ModifierKeys property.
17527
17528 2004-12-17  Jackson Harper  <jackson@ximian.com>
17529
17530         * X11Keyboard.cs: Send up/down input when generating
17531         messages. Remove some unused vars.
17532
17533 2004-12-17  Jackson Harper  <jackson@ximian.com>
17534
17535         * TabControl.cs:
17536         * TreeView.cs: get rid of warnings.
17537
17538 2004-12-17  Jackson Harper  <jackson@ximian.com>
17539
17540         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
17541
17542 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
17543
17544         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
17545           CheckedListBox.cs: Implementation
17546
17547 2004-12-17  Peter Bartok  <pbartok@novell.com>
17548
17549         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
17550
17551 2004-12-16  Peter Bartok  <pbartok@novell.com>
17552
17553         * TextControl.cs:
17554           - InsertCharAtCaret(): Fixed start pos fixup
17555           - CaretLine_get: No longer derives the line from the tag, the tag
17556             could be stale if lines in the document have been added or deleted
17557           - RebalanceAfterDelete(): Fixed bug in balancing code
17558           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
17559           - Line.Streamline(): Now can also elminate leading empty tags
17560           - DumpTree(): Added a few more tests and prevented exception on
17561             uninitialized data
17562           - Added Debug section for Combining lines
17563           - Delete(): Now copies all remaining properties of a line
17564           
17565         * TextBoxBase.cs:
17566           - Left mousebutton now sets the caret (and middle button still acts
17567             as formatting tester, which must go away soon)
17568           - Added Debug section for Deleting/Combining lines
17569           - Fixed calculations for UpdateView after Combining lines
17570
17571 2004-12-16  Peter Bartok  <pbartok@novell.com>
17572
17573         * TextControl.cs: Now properly aligns text on a baseline, using the
17574           new XplatUI.GetFontMetrics() method. Simplified several calculations
17575         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
17576           defined
17577
17578 2004-12-16  Peter Bartok  <pbartok@novell.com>
17579
17580         * XplatUI.cs: Added GetFontMetrics() method
17581         * XplatUIDriver.cs: Added GetFontMetrics() abstract
17582         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
17583           into libgdiplus, our private GetFontMetrics function
17584         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
17585         * XplatUIWin32.cs: Implemented GetFontMetrics() method
17586
17587 2004-12-16  Jackson Harper  <jackson@ximain.com>
17588
17589         * XplatUIStruct.cs: Add enum for dead keys
17590         * X11Keyboard.cs: Map and unmap dead keys.
17591
17592 2004-12-16  Jackson Harper  <jackson@ximian.com>
17593
17594         * X11Keyboard.cs: Detect and use the num lock mask.
17595
17596 2004-12-16  Peter Bartok  <pbartok@novell.com>
17597
17598         * Control.cs (CreateGraphics): Added check to make sure the
17599           handle of the window exists before calling Graphics.FromHwnd()
17600
17601 2004-12-16  Peter Bartok  <pbartok@novell.com>
17602
17603         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
17604           contains a lot of code that's not supposed to be there for the
17605           real thing, but required for developing/testing the textbox
17606           backend.
17607
17608 2004-12-16  Peter Bartok  <pbartok@novell.com>
17609
17610         * TextControl.cs:
17611         - Fixed Streamline method
17612         - Added FindTag method to Line
17613         - Added DumpTree method for debugging
17614         - Added DecrementLines() method for deleting lines
17615         - Fixed UpdateView to update the cursor to end-of-line on single-line
17616           updates
17617         - Added PositionCaret() method
17618         - Fixed MoveCaret(LineDown) to move into the last line, too
17619         - Added InsertChar overload
17620         - Fixed InsertChar tag offset calculations
17621         - Added DeleteChar() method
17622         - Added Combine() method for folding lines
17623         - Fixed Delete() method, no longer allocates wasted Line object and
17624           now copies all properties when swapping nodes
17625         - Delete() method now updates document line counter
17626
17627 2004-12-15  Jackson Harper  <jackson@ximian.com>
17628
17629         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
17630         * X11Keyboard.cs: Expose the currently selected modifier keys
17631         through a property.
17632
17633 2004-12-15  Peter Bartok  <pbartok@novell.com>
17634
17635         * TextControl.cs: Initial check-in. Still incomplete
17636
17637 2004-12-15  Jackson Harper  <jackson@ximian.com>
17638
17639         * TreeNode.cs:
17640         * TreeView.cs: Fix build on csc (second time today ;-))
17641
17642 2004-12-15  Jackson Harper  <jackson@ximian.com>
17643
17644         * TreeView.cs: Store the treenodes plus/minus box bounds when it
17645         is calculated and use this for click testing.
17646         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
17647
17648 2004-12-15  Jackson Harper  <jackson@ximian.com>
17649
17650         * TreeView.cs: Pass the nodes image index to the image list when
17651         drawing that image.
17652
17653 2004-12-15  Jackson Harper  <jackson@ximian.com>
17654
17655         * X11Keyboard.cs: Set messages hwnd.
17656         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
17657         post_message calls.
17658
17659 2004-12-15  Jackson Harper  <jackson@ximian.com>
17660
17661         * X11Keyboard.cs: Fix to compile with csc.
17662         
17663 2004-12-15  Jackson Harper  <jackson@ximian.com>
17664
17665         * X11Structs.cs: Add key mask values
17666         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
17667         * X11Keyboard.cs: New file - Extrapolates and interpolates key
17668         down/up foo into WM_CHAR foo
17669         * KeyboardLayouts.cs: Common keyboard layouts
17670         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
17671         post messages into the main queue.
17672
17673 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
17674
17675         * Button.cs: implement ProcessMnemonic
17676         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
17677           brushes everytime
17678         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
17679         * ButtonBase.cs: Show HotkeyPrefix (not the &)
17680
17681 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
17682         
17683         * MonthCalendar.cs: Implemented click-hold for next/previous month
17684           and date selection
17685           
17686 2004-12-11  Peter Bartok  <pbartok@novell.com>
17687
17688         * X11Structs.cs:
17689           - Added XKeyboardState (moved from XplatUIX11.cs)
17690           - Added XCreateGC related enums and structures
17691           - Added GXFunction for XSetFunction
17692
17693         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
17694
17695         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
17696           CaretVisible() calls
17697
17698         * ToolTip.cs: Added code to prevent stealing focus from app windows
17699
17700         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
17701           DestroyCaret, SetCaretPos and CaretVisible)
17702
17703         * XplatUIX11.cs:
17704           - Added implementation for caret functions
17705           - Moved hover variables into a struct, to make it a bit easier
17706             on the eyes and to debug
17707           - Removed XKeyboardState (moved to XplatUIX11.cs)
17708           - Moved Keyboard properties into the properties region
17709
17710         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
17711           call to get a graphics context for our control
17712
17713         * XplatUIOSX.cs: Added empty overrides for the new caret functions
17714
17715         * TreeView.cs: Fixed bug. No matter what color was set it would always
17716           return SystemColors.Window
17717
17718         * XplatUIWin32.cs: Implemented caret overrides
17719
17720 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
17721
17722         * ListBox.cs: fire events, implement missing methods and properties,
17723         sorting.
17724
17725 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
17726
17727         * MonthCalendar.cs: invalidation bug fixing
17728         * ThemeWin32Classic.cs: paint fixing
17729
17730 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
17731
17732         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
17733         prepare the CGContextRef there now.
17734
17735 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
17736
17737         * MonthCalendar.cs:
17738           - optimisationL only invalidate areas that have changed
17739         * ThemeWin32Classic.cs:
17740           - only paint parts that intersect with clip_area
17741
17742 2004-12-09  Peter Bartok  <pbartok@novell.com>
17743
17744         * Application.cs: Undid changes from r37004 which cause problems
17745         on X11
17746
17747 2004-12-09  Ravindra  <rkumar@novell.com>
17748
17749         * ToolBar.cs: Added support for displaying ContextMenu
17750         attached to a button on ToolBar.
17751         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
17752         property.
17753
17754 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17755
17756         * Label.cs: autosize works in text change and removes unnecessary
17757         invalidate
17758
17759 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
17760
17761         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17762         remove warnings
17763
17764 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
17765
17766         * XplatUIOSX.cs: Added mouse move/click/grab support
17767         Remove some debugging WriteLines not needed anymore.
17768         Add window resizing/positioning.
17769         Fix visibility on reparenting.
17770
17771 2004-12-08  Peter Bartok  <pbartok@novell.com>
17772
17773         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
17774
17775 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
17776
17777         * XplatUIOSX.cs: Initial checkin
17778         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
17779
17780 2004-12-03  Ravindra <rkumar@novell.com>
17781
17782         * ListView.cs: Added some keybindings and fixed scrolling.
17783         ScrollBars listen to ValueChanged event instead of Scroll
17784         Event. This would let us take care of all changes being
17785         done in the scrollbars' values programmatically or manually.
17786         * ListView.cs (CanMultiselect): Added a check for shift key.
17787         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
17788         * ListViewItem.cs (Clone): Fixed. We need to make a copy
17789         of ListViewSubItemCollection as well.
17790
17791 2004-12-06  Peter Bartok <pbartok@novell.com>
17792
17793         * Control.cs (Parent): Added check and exception to prevent
17794         circular parenting
17795
17796 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
17797
17798         * ListBox.cs: implemented clipping, selection single and multiple,
17799         bug fixing
17800
17801 2004-12-03  Ravindra <rkumar@novell.com>
17802
17803         * ListView.cs (ListView_KeyDown):
17804         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
17805         when CTRL key is pressed.
17806         * ListViewItem.cs (Selected): Fixed setting the property.
17807
17808 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17809
17810         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
17811
17812         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
17813         MinimizeBox, ShowInTaskbar, TopMost properties.
17814
17815         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
17816         will be implemented).
17817
17818 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
17819
17820         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
17821
17822         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
17823         tests.
17824         
17825         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
17826         
17827         * TreeView.cs: BackColor is Colors.Window.
17828
17829 2004-12-01  Jackson Harper  <jackson@ximian.com>
17830
17831         * TreeView.cs: When resizing the tree if the user is making it
17832         smaller we don't get expose events, so we need to handle adding
17833         the horizontal scrollbar in the size changed handler as well as
17834         the expose handler.
17835
17836 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
17837
17838         * DrawItemState.cs: fixes wrong enum values
17839
17840 2004-12-01  Jackson Harper  <jackson@ximian.com>
17841
17842         * TreeView.cs: Resize the hbar as well as the vbar on resize.
17843
17844 2004-12-01  Jackson Harper  <jackson@ximian.com>
17845
17846         * NodeLabelEditEventArgs.cs:
17847         * NodeLabelEditEventHandler.cs:
17848         * OpenTreeNodeEnumerator.cs:
17849         * TreeNode.cs:
17850         * TreeNodeCollection.cs:
17851         * TreeView.cs:
17852         * TreeViewAction.cs:
17853         * TreeViewCancelEventArgs.cs:
17854         * TreeViewCancelEventHandler.cs:
17855         * TreeViewEventArgs.cs:
17856         * TreeViewEventHandler.cs: Initial implementation.
17857
17858 2004-12-01  Ravindra <rkumar@novell.com>
17859
17860         * ListView.cs (CalculateListView): Fixed scrolling related
17861         calculations. Also, removed some debug statements from other
17862         places.
17863         * ListViewItem.cs: Changed access to 'selected' instance variable
17864         from private to internal.
17865         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
17866
17867 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
17868
17869         * ThemeWin32Classic.cs: remove cache of brush and pens for
17870         specific controls and use the global system, fixes scrollbutton
17871         bugs (for small sizes, disabled, etc)
17872         
17873         * ScrollBar.cs: does not show the thumb for very small controls
17874         (as MS) and allow smaller buttons that the regular size
17875
17876 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
17877
17878         * UpDownBase.cs: Add abstract methods for the interface.
17879         Add new virtual methods (need to be hooked up to TextEntry when it
17880         exists).
17881         Add override methods for most features.
17882         Computes the size, forces the height of the text entry.
17883
17884         * NumericUpDown.cs: Put here the current testing code.
17885
17886         * Set eol-style property on all files that do not have mixed line
17887         endings, to minimize the future problems.  There are still a few
17888         files with mixed endings, and someone should choose whether they
17889         want to move it or not.
17890
17891 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
17892
17893         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
17894         System.Colors
17895         
17896 2004-11-30  Ravindra <rkumar@novell.com>
17897
17898         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
17899         drawing and replaced use of SystemColors by theme colors.
17900         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
17901         * ListView.cs (ListViewItemCollection.Add): Throw exception when
17902         same ListViewItem is being added more than once.
17903
17904 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
17905
17906         * MonthCalendar.cs:
17907           - ControlStyles love to make the control not flicker
17908           
17909 2004-11-30  Peter Bartok  <pbartok@novell.com>
17910
17911         * CharacterCasing.cs: Added
17912
17913 2004-11-29  Peter Bartok  <pbartok@novell.com>
17914
17915         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
17916           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
17917           I am removing these files as they conflict with already completed
17918           work. While it is fantastic to get contributions to MWF, I
17919           respectfully ask that everyone please coordinate their contributions
17920           through mono-winforms-list or #mono-winforms at this time. We're
17921           explicitly avoiding stubbing and don't want controls that don't have
17922           their basic functionality implemented in svn. Please also see
17923           http://www.mono-project.com/contributing/winforms.html
17924
17925
17926 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
17927
17928         * Application.cs (ModalRun): Don't hang after exit.
17929
17930         * Theme.cs: New TreeViewDefaultSize property.
17931
17932         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
17933         with less hardcoded SystemColors constant.
17934         Implemented TreeViewDefaultSize.
17935
17936         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
17937         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
17938
17939
17940 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
17941
17942         * MonthCalendar.cs:
17943           - Fix NextMonthDate and PrevMonthDate click moving calendar
17944
17945 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
17946
17947         * MonthCalendar.cs:
17948           - Fix usage of ScrollChange Property when scrolling months
17949
17950 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
17951
17952         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
17953          - Fixes menu destroying
17954          - Support adding and removing items on already created menus
17955
17956 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
17957
17958         * MonthCalendar.cs:
17959           - Re-worked all bolded dates handling to match win32
17960         * ThemeWin32Classic.cs:
17961           - Fixed rendering with bolded dates
17962
17963 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
17964
17965         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
17966         - Horizontal scroolbar
17967         - Multicolumn
17968         - Fixes
17969
17970
17971 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
17972
17973         * MonthCalendar.cs:
17974           - Fix Usage of MaxSelectionCount from SelectionRange
17975           - Fixed Shift + Cursor Selection
17976           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
17977           - Fixed normal cursor selection to be compat with win32
17978           - Fixed Shift + Mouse Click selection
17979
17980 2004-11-24  Peter Bartok <pbartok@novell.com>
17981
17982         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
17983         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
17984         * XplatUIX11.cs:
17985           - CreatedKeyBoardMsg now updates keystate with Alt key
17986           - Added workaround for timer crash to CheckTimers, Jackson will
17987             develop a proper fix and check in later
17988           - Implemented DispatchMessage
17989           - Removed calling the native window proc from GetMessage (call
17990             now moved to DispatchMessage)
17991
17992         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
17993           the keydata (Fixes bug #69831)
17994
17995         * XplatUIWin32.cs:
17996           - (DispatchMessage): Switched to return IntPtr
17997           - Added DllImport for SetFocus
17998
17999 2004-11-24  Ravindra <rkumar@novell.com>
18000
18001         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
18002         background drawing.
18003         * ListViewItem.cs: Fixed various properties, calculations
18004         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
18005         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
18006         and some internal properties. Fixed MouseDown handler and Paint
18007         method.
18008
18009 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18010
18011         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
18012
18013 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18014
18015         * ContainerControl.cs: correct accidental check in of local changes
18016
18017 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
18018
18019         * ThemeWin32Classic.cs:
18020                 - Fixed Drawing Last month in grid (sometimes not showing)
18021         * MonthCalendar.cs:
18022                 - Fixed title width calculation bug (makeing title small)
18023
18024 2004-11-23  Peter Bartok <pbartok@novell.com>
18025
18026         * XplatUIX11.cs:
18027           - Added generation of WM_MOUSEHOVER event
18028           - Added missing assignment of async_method atom
18029           - Fixed WM_ERASEBKGND; now only redraws the exposed area
18030
18031 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18032
18033         * ThemeWin32Classic.cs:
18034                 - Fixed Drawing of today circle when showtodaycircle not set
18035                 - fixed drawing of first and last month in the grid (gay dates)
18036         * MonthCalendar.cs:
18037                 - Fixed Drawing of today circle
18038                 - Fixed drawing of grady dates
18039                 - Fixed HitTest for today link when ShowToday set to false
18040                 - Fixed DefaultSize to obey ShowToday
18041
18042 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
18043
18044         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
18045         * System.Windows.Forms/Theme.cs
18046         * MonthCalendar.cs: added for MonthCalendar
18047         * SelectionRange.cs: added for MonthCalendar
18048         * Day.cs: added for MonthCalendar: added for MonthCalendar
18049         * DateRangeEventArgs.cs: added for MonthCalendar
18050         * DateRangeEventHandler.cs: added for MonthCalendar
18051
18052 2004-11-22  Ravindra <rkumar@novell.com>
18053
18054         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
18055         property.
18056
18057 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
18058
18059         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
18060         event handler.
18061         
18062         * NumericUpDown.cs: Added new implementation.
18063         * UpDownBase.cs: Added new implementation.
18064
18065         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
18066         implementations.
18067         
18068         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
18069         implementations.
18070
18071         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
18072         methods.
18073
18074 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
18075
18076         * Timer.cs  (Dispose): Should call the base dispose when
18077         overriding.
18078
18079 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18080
18081         * ScrollBar.cs: updates thumb position when max, min or increment
18082         is changed
18083
18084 2004-11-21  Ravindra <rkumar@novell.com>
18085
18086         * ListView.cs: Implemented item selection, activation and
18087         column header style. Fixed properties to do a redraw, if
18088         required. Added support for MouseHover, DoubleClick, KeyDown
18089         and KeyUp event handling and some minor fixes.
18090         * ListViewItem.cs: Fixed constructor.
18091         * ThemeWin32Classic.cs: Improved drawing for ListView.
18092
18093 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
18094
18095         * ThemeWin32Classic.cs: initial listbox drawing code
18096         * DrawMode.cs: new enumerator
18097         * ListControl.cs: stubbed class
18098         * ListBox.cs: initial implementation
18099         * Theme.cs: new methods definitions
18100         * SelectionMode.cs: new enumerator
18101
18102 2004-11-17  Peter Bartok  <pbartok@novell.com>
18103
18104         * XplatUIWin32.cs: Added double-click events to the class style
18105         * Control.cs (WndProc):
18106           - Added handling of click-count to MouseDown/ MouseUp events.
18107           - Added handling of middle and right mouse buttons
18108           - Removed old debug code
18109
18110 2004-11-17  Jackson Harper  <jackson@ximian.com>
18111
18112         * XplatUIX11.cs: Use the new Mono.Unix namespace.
18113
18114 2004-11-17  Ravindra <rkumar@novell.com>
18115
18116         * ListView.cs: Added event handling for MouseMove/Up/Down.
18117         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
18118         * ThemeWin32Classic.cs: We need to clear the graphics context and
18119         draw column header in a proper state.
18120
18121
18122 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
18123
18124         *  Menu.cs: fixes signature
18125
18126 2004-11-16  Peter Bartok  <pbartok@novell.com>
18127
18128         * XplatUIX11.cs (GetMessage): Implemented generation of
18129           double click mouse messages
18130
18131 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
18132
18133         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
18134         not by menu
18135
18136 2004-11-11  Peter Bartok  <pbartok@novell.com>
18137
18138         * HandleData.cs: Added Visible property
18139         * XplatUIX11.cs (IsVisible): Now uses Visible property from
18140           HandleData
18141         * XplatUIX11.cs: Removed old debug leftovers
18142         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
18143         * Control.cs (WndProc): Removed old debug leftovers,
18144           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
18145           needed WM_SIZE handling
18146
18147 2004-11-11  Jackson Harper  <jackson@ximian.com>
18148
18149         * OwnerDrawPropertyBag.cs:
18150         * TreeViewImageIndexConverter.cs: Initial implementation
18151
18152 2004-11-10  Jackson Harper  <jackson@ximian.com>
18153
18154         * ThemeWin32Classic.cs:
18155         * TabControl.cs: instead of moving tabs by the slider pos just
18156         start drawing at the tab that is offset by the slider. This way
18157         scrolling always moves by exactly one tab.
18158
18159 2004-11-10  Jackson Harper  <jackson@ximian.com>
18160
18161         * TabControl.cs: You can only scroll left when the slider has
18162         already ben moved right.
18163         
18164 2004-11-10  Jackson Harper  <jackson@ximian.com>
18165
18166         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
18167         the clip area.
18168         
18169 2004-11-10  Jackson Harper  <jackson@ximian.com>
18170
18171         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
18172         clip area.
18173         
18174 2004-11-09  Jackson Harper  <jackson@ximian.com>
18175
18176         * TabControl.cs (CalcXPos): New helper method so we can determine
18177         the proper place to start drawing vertical tabs.
18178         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
18179         
18180 2004-11-09  Jackson Harper  <jackson@ximian.com>
18181
18182         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
18183         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
18184         and Bottom, left and right are illegal values for this and
18185         multiline is enabled when the alignment is set to left or right.
18186         (DrawTab): Each alignment block should draw the text itself now
18187         because Left requires special love. Also add rendering for Left
18188         aligned tabs.
18189         
18190 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
18191
18192         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
18193         does not destroy the windows, removes debugging messages
18194
18195 2004-11-09  jba  <jba-mono@optusnet.com.au>
18196
18197         * ThemeWin32Classic.cs
18198         (DrawButtonBase): Fix verticle text rect clipping in windows
18199         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18200         rendering and incorrect text rect clipping
18201         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
18202         rendering and incorrect text rect clipping
18203         
18204 2004-11-08  Jackson Harper  <jackson@ximian.com>
18205
18206         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
18207         bottom when they are bottom aligned so the bottoms of the tabs get
18208         displayed.
18209         * TabControl.cs (DropRow): Move rows up instead of down when the
18210         tab control is bottom aligned.
18211
18212 2004-11-08 13:59  pbartok
18213
18214         * XplatUIX11.cs:
18215           - Added handling for various window styles
18216           - Added handling for popup windows
18217           - Added SetTopmost handling
18218
18219 2004-11-08 13:55  pbartok
18220
18221         * XplatUIWin32.cs:
18222           - Added argument to SetTopmost method
18223           - Fixed broken ClientToScreen function
18224
18225 2004-11-08 13:53  pbartok
18226
18227         * XplatUIStructs.cs:
18228           - Added missing WS_EX styles
18229
18230 2004-11-08 13:53  pbartok
18231
18232         * XplatUI.cs, XplatUIDriver.cs:
18233           - Added argument to SetTopmost
18234
18235 2004-11-08 13:52  pbartok
18236
18237         * X11Structs.cs:
18238           - Added XSetWindowAttributes structure
18239           - Improved XWindowAttributes structure
18240           - Added SetWindowValuemask enum
18241           - Added window creation arguments enum
18242           - Added gravity enum
18243           - Added Motif hints structure
18244           - Added various Motif flags and enums
18245           - Added PropertyMode enum for property functions
18246
18247 2004-11-08 13:50  pbartok
18248
18249         * Form.cs:
18250           - Fixed arguments for updated SetTopmost method
18251
18252 2004-11-08 13:49  pbartok
18253
18254         * ToolTip.cs:
18255           - Fixed arguments for updated SetTopmost function
18256           - Fixed usage of PointToClient
18257
18258 2004-11-08 13:44  pbartok
18259
18260         * MenuAPI.cs:
18261           - Added Clipping of children and siblings
18262
18263 2004-11-08 13:41  pbartok
18264
18265         * MainMenu.cs:
18266           - Removed SetMenuBarWindow call. We do this in Form.cs
18267
18268 2004-11-08 13:40  jackson
18269
18270         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
18271           scrolling jimmi in the correct location with bottom aligned tabs
18272
18273 2004-11-08 13:36  pbartok
18274
18275         * ContainerControl.cs:
18276           - Implemented BindingContext
18277           - Implemented ParentForm
18278
18279 2004-11-08 12:46  jackson
18280
18281         * TabControl.cs: Put bottom rendered tabs in the right location
18282
18283 2004-11-08 07:15  jordi
18284
18285         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
18286           removes dead code
18287
18288 2004-11-05 17:30  jackson
18289
18290         * TabControl.cs: When selected tabs are expanded make sure they
18291           don't go beyond the edges of the tab control
18292
18293 2004-11-05 14:57  jackson
18294
18295         * TabControl.cs: Reset show_slider so if the control is resized to
18296           a size where it is no longer needed it's not displayed anymore
18297
18298 2004-11-05 13:16  jackson
18299
18300         * TabControl.cs: Make tab pages non visible when added to the
18301           control
18302
18303 2004-11-05 12:42  jackson
18304
18305         * TabControl.cs: Implement SizeMode.FillToRight
18306
18307 2004-11-05 12:16  jackson
18308
18309         * Control.cs: Do not call CreateHandle if the handle is already
18310           created
18311
18312 2004-11-05 11:46  jackson
18313
18314         * TabControl.cs: Remove superflous call to CalcTabRows
18315
18316 2004-11-05 09:07  jackson
18317
18318         * XplatUIX11.cs: Update for Mono.Posix changes
18319
18320 2004-11-05 07:00  ravindra
18321
18322         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
18323           scrolling.
18324
18325 2004-11-04 22:47  jba
18326
18327         * ThemeWin32Classic.cs:
18328           - Fix Button rendering for FlatStyle = Flat or Popup
18329           - Fix RadioButton and CheckBox rendering when Appearance = Button
18330             (normal and flatstyle).
18331           - Correct outer rectangle color when drawing focus rectangle
18332           - Adjust button bounds to be 1 px smaller when focused
18333           - Make button not draw sunken 3d border when pushed (windows compat)
18334           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
18335           - Offset the text in RadioButton and Checkbox when being rendered as
18336           a button.
18337           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
18338           radiobuttons
18339           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
18340           - Fixed disabled text rendering for normally rendered radiobuttons
18341
18342 2004-11-04 10:26  jackson
18343
18344         * TabControl.cs: Recalculate tab rows when resizing
18345
18346 2004-11-04 07:47  jordi
18347
18348         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
18349           collection completion, drawing issues, missing features
18350
18351 2004-11-04 05:03  ravindra
18352
18353         * ScrollBar.cs:
18354                 - We need to recalculate the Thumb area when
18355                 LargeChange/maximum/minimum values are changed.
18356           - We set the 'pos' in UpdatePos() method to minimum, if it's less
18357                 than minimum. This is required to handle the case if large_change is
18358                 more than max, and use LargeChange property instead of large_change
18359                 variable.
18360           - We return max+1 when large_change is more than max, like MS does.
18361
18362 2004-11-04 04:29  ravindra
18363
18364         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
18365                 - Changed default value signatures (prefixed all with ListView).
18366                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
18367                 ListView.
18368           - Fixed calculations for ListViewItem and implemented Clone()
18369           method.
18370
18371 2004-11-04 04:26  ravindra
18372
18373         * Theme.cs, ThemeWin32Classic.cs:
18374                 - Changed default ListView values signatures (prefixed all with
18375                 ListView).
18376           - Fixed default size values for VScrollBar and HScrollBar.
18377                 - Fixed DrawListViewItem method.
18378
18379 2004-11-04 04:05  ravindra
18380
18381         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
18382
18383 2004-11-04 04:04  ravindra
18384
18385         * ImageList.cs: Implemented the missing overload for Draw method.
18386
18387 2004-11-03 19:29  jackson
18388
18389         * TabControl.cs: Handle dropping rows on selection properly
18390
18391 2004-11-03 11:59  jackson
18392
18393         * TabControl.cs: remove debug code
18394
18395 2004-11-03 11:52  jackson
18396
18397         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
18398           the scrolly widgerywoo
18399
18400 2004-11-02 13:52  jackson
18401
18402         * TabControl.cs: Resize the tab pages and tabs when the tab control
18403           is resized
18404
18405 2004-11-02 13:40  jackson
18406
18407         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
18408           selected tab to the bottom
18409
18410 2004-11-02 13:39  jackson
18411
18412         * TabPage.cs: Store the tab pages row
18413
18414 2004-11-02 12:33  jordi
18415
18416         * MenuItem.cs: fixes handle creation
18417
18418 2004-11-02 11:42  jackson
18419
18420         * TabControl.cs: signature fix
18421
18422 2004-11-02 08:56  jackson
18423
18424         * TabControl.cs: Calculate whether the tab is on an edge properly.
18425           Remove top secret debugging code
18426
18427 2004-11-01 19:57  jackson
18428
18429         * TabControl.cs: Add click handling, and proper sizing
18430
18431 2004-11-01 19:47  jackson
18432
18433         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
18434           tab controls
18435
18436 2004-11-01 19:39  jackson
18437
18438         * TabPage.cs: add internal property to store the bounds of a tab
18439           page
18440
18441 2004-10-30 04:23  ravindra
18442
18443         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
18444           values.
18445
18446 2004-10-30 04:21  ravindra
18447
18448         * ListView.cs, ListViewItem.cs: Added support for scrolling and
18449           fixed calculations.
18450
18451 2004-10-30 03:06  pbartok
18452
18453         * XplatUIX11.cs:
18454           - Removed extension of DllImported libs
18455
18456 2004-10-29 09:55  jordi
18457
18458         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
18459           navigation, itemcollection completion, menu fixes
18460
18461 2004-10-27 22:58  pbartok
18462
18463         * XplatUIX11.cs:
18464           - Now throws a nice error message when no X display could be opened
18465
18466 2004-10-26 13:51  jordi
18467
18468         * ListView.cs: removes warning
18469
18470 2004-10-26 03:55  ravindra
18471
18472         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
18473           ThemeWin32Classic.cs: Some formatting for my last checkins.
18474
18475 2004-10-26 03:36  ravindra
18476
18477         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
18478           control and default values.
18479
18480 2004-10-26 03:35  ravindra
18481
18482         * Theme.cs: Added some default values for ListView control.
18483
18484 2004-10-26 03:33  ravindra
18485
18486         * ToolBar.cs: ToolBar should use the user specified button size, if
18487           there is any. Added a size_specified flag for the same.
18488
18489 2004-10-26 03:33  ravindra
18490
18491         * ColumnHeader.cs: Added some internal members and calculations for
18492           ColumnHeader.
18493
18494 2004-10-26 03:32  ravindra
18495
18496         * ListViewItem.cs: Calculations for ListViewItem.
18497
18498 2004-10-26 03:31  ravindra
18499
18500         * ListView.cs: Added some internal members and calculations for
18501           ListView.
18502
18503 2004-10-22 13:31  jordi
18504
18505         * MenuAPI.cs: speedup menus drawing
18506
18507 2004-10-22 13:16  jackson
18508
18509         * XplatUIX11.cs: Make sure to update exposed regions when adding an
18510           expose event
18511
18512 2004-10-22 11:49  jackson
18513
18514         * Control.cs: oops
18515
18516 2004-10-22 11:41  jackson
18517
18518         * Control.cs: Check to see if the window should have its background
18519           repainted by X when drawing.
18520
18521 2004-10-22 11:31  jackson
18522
18523         * XplatUIX11.cs: When invalidating areas only use XClearArea if
18524           clear is true, this way we do not get flicker from X repainting the
18525           background
18526
18527 2004-10-22 11:28  jackson
18528
18529         * XEventQueue.cs: Queue properly
18530
18531 2004-10-21 09:38  jackson
18532
18533         * XEventQueue.cs: Fix access modifier
18534
18535 2004-10-21 09:36  jackson
18536
18537         * XEventQueue.cs: Don't loose messages
18538
18539 2004-10-21 09:22  jackson
18540
18541         * XEventQueue.cs: Don't loose messages
18542
18543 2004-10-20 04:15  jordi
18544
18545         * BootMode.cs: enum need it by SystemInfo
18546
18547 2004-10-19 21:58  pbartok
18548
18549         * XplatUIWin32.cs:
18550           - Small sanity check
18551
18552 2004-10-19 21:56  pbartok
18553
18554         * Form.cs:
18555           - Added private FormParentWindow class which acts as the container
18556             for our form and as the non-client area where menus are drawn
18557           - Added/Moved required tie-ins to Jordi's menus
18558           - Fixed/Implemented the FormStartPosition functionality
18559
18560 2004-10-19 21:52  pbartok
18561
18562         * Control.cs:
18563           - Removed unneeded locals
18564           - Added code to all size and location properties to understand and
18565             deal with the parent container of Form
18566
18567 2004-10-19 21:33  pbartok
18568
18569         * Application.cs:
18570           - Fixed to deal with new Form subclasses for menus
18571
18572 2004-10-19 17:48  jackson
18573
18574         * XEventQueue.cs: commit correct version of file
18575
18576 2004-10-19 16:50  jackson
18577
18578         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
18579
18580 2004-10-19 16:15  jordi
18581
18582         * MenuAPI.cs: MenuBarCalcSize returns the height
18583
18584 2004-10-19 08:31  pbartok
18585
18586         * Control.cs:
18587           - Added missing call to PreProcessMessage before calling OnXXXKey
18588           methods
18589
18590 2004-10-19 00:04  ravindra
18591
18592         * ToolTip.cs: Fixed constructor.
18593
18594 2004-10-18 09:31  jordi
18595
18596         * MenuAPI.cs: menuitems in menubars do not have shortcuts
18597
18598 2004-10-18 09:26  jordi
18599
18600         * MenuItem.cs: fixes MenuItem class signature
18601
18602 2004-10-18 08:56  jordi
18603
18604         * MenuAPI.cs: prevents windows from showing in the taskbar
18605
18606 2004-10-18 00:28  ravindra
18607
18608         * ToolTip.cs: Suppressed a warning message.
18609
18610 2004-10-18 00:27  ravindra
18611
18612         * Control.cs: Default value of visible property must be true.
18613
18614 2004-10-17 23:19  pbartok
18615
18616         * ToolTip.cs:
18617           - Complete implementation
18618
18619 2004-10-17 23:19  pbartok
18620
18621         * XplatUIX11.cs:
18622           - Added EnableWindow method
18623           - Added SetModal stub
18624           - Added generation of WM_ACTIVATE message (still needs testing)
18625           - Added SetTopMost stub
18626           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
18627
18628 2004-10-17 23:17  pbartok
18629
18630         * XplatUIWin32.cs:
18631           - Removed VirtualKeys to XplatUIStructs
18632           - Implemented SetTopMost method
18633           - Implemented EnableWindow method
18634           - Bugfix in ScreenToClient()
18635           - Bugfixes in ClientToScreen()
18636
18637 2004-10-17 22:51  pbartok
18638
18639         * XplatUIStructs.cs:
18640           - Added WS_EX styles to WindowStyles enumeration
18641
18642 2004-10-17 22:50  pbartok
18643
18644         * XplatUI.cs, XplatUIDriver.cs:
18645           - Added method for enabling/disabling windows
18646           - Added method for setting window modality
18647           - Added method for setting topmost window
18648
18649 2004-10-17 22:49  pbartok
18650
18651         * ThemeWin32Classic.cs:
18652           - Added ToolTip drawing code
18653
18654 2004-10-17 22:49  pbartok
18655
18656         * Theme.cs:
18657           - Added ToolTip abstracts
18658
18659 2004-10-17 22:47  pbartok
18660
18661         * Form.cs:
18662           - Fixed Form.ControlCollection to handle owner relations
18663           - Added Owner/OwnedForms handling
18664           - Implemented Z-Ordering for owned forms
18665           - Removed unneeded private overload of ShowDialog
18666           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
18667             so I hope)
18668           - Fixed Close(), had wrong default
18669           - Added firing of OnLoad event
18670           - Added some commented out debug code for Ownership handling
18671
18672 2004-10-17 22:16  pbartok
18673
18674         * Control.cs:
18675           - Fixed/implemented flat list of controls
18676
18677 2004-10-17 22:14  pbartok
18678
18679         * Application.cs:
18680           - Added code to simulate modal dialogs on Win32
18681
18682 2004-10-17 16:11  jordi
18683
18684         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
18685           mouse event
18686
18687 2004-10-17 13:39  jordi
18688
18689         * MenuAPI.cs: menu drawing fixes
18690
18691 2004-10-15 09:10  ravindra
18692
18693         * StructFormat.cs: General Enum.
18694
18695 2004-10-15 09:09  ravindra
18696
18697         * SizeGripStyle.cs: Enum for Form.
18698
18699 2004-10-15 09:08  ravindra
18700
18701         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
18702           in Theme for ListView.
18703
18704 2004-10-15 09:06  ravindra
18705
18706         * ColumnHeader.cs: Flushing some formatting changes.
18707
18708 2004-10-15 09:05  ravindra
18709
18710         * ListViewItem.cs: Implemented GetBounds method and fixed coding
18711           style.
18712
18713 2004-10-15 09:03  ravindra
18714
18715         * ListView.cs: Implemented Paint method and fixed coding style.
18716
18717 2004-10-15 07:34  jordi
18718
18719         * MenuAPI.cs: fix for X11
18720
18721 2004-10-15 07:32  ravindra
18722
18723         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
18724                 - Renamed Paint() method to Draw() for clarity. Also, moved
18725                 DrawImage() to OnPaint().
18726
18727 2004-10-15 07:25  ravindra
18728
18729         * CheckBox.cs, RadioButton.cs:
18730                 - Removed Redraw (), we get it from ButtonBase.
18731                 - Implemented Paint (), to do class specific painting.
18732
18733 2004-10-15 07:16  ravindra
18734
18735         * ButtonBase.cs:
18736                 - Redraw () is not virtual now.
18737                 - Added an internal virtual method Paint (), so that
18738                 derived classes can do their painting on their own.
18739                 - Modified OnPaint () to call Paint ().
18740
18741 2004-10-15 06:43  jordi
18742
18743         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
18744           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
18745
18746 2004-10-15 00:30  ravindra
18747
18748         * MessageBox.cs:
18749                 - MessageBox on windows does not have min/max buttons.
18750                 This change in CreateParams fixes this on Windows. We
18751                 still need to implement this windowstyle behavior in
18752                 our X11 driver.
18753
18754 2004-10-14 05:14  ravindra
18755
18756         * ToolBar.cs:
18757                 - Changed Redraw () to do a Refresh () always.
18758                 - Fixed the MouseMove event handling when mouse is pressed,
18759                 ie drag event handling.
18760                 - Replaced the usage of ToolBarButton.Pressed property to
18761                 ToolBarButton.pressed internal variable.
18762
18763 2004-10-14 05:10  ravindra
18764
18765         * ToolBarButton.cs:
18766                 - Added an internal member 'inside' to handle mouse move
18767                 with mouse pressed ie mouse drag event.
18768                 - Changed 'Pressed' property to return true only when
18769                 'inside' and 'pressed' are both true.
18770                 - Some coding style love.
18771
18772 2004-10-14 00:17  ravindra
18773
18774         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
18775           public method.
18776
18777 2004-10-14 00:15  ravindra
18778
18779         * ButtonBase.cs: Redraw () related improvements.
18780
18781 2004-10-14 00:14  ravindra
18782
18783         * MessageBox.cs: Moved InitFormSize () out of Paint method and
18784           removed unnecessary calls to Button.Show () method.
18785
18786 2004-10-13 17:50  pbartok
18787
18788         * XplatUIX11.cs:
18789           - Formatting fix
18790           - Removed destroying of window until we solve the problem of X
18791             destroying the window before us on shutdown
18792
18793 2004-10-13 16:32  pbartok
18794
18795         * ButtonBase.cs:
18796           - Now Redraws on MouseUp for FlatStyle Flat and Popup
18797
18798 2004-10-13 14:18  pbartok
18799
18800         * XplatUIX11.cs:
18801           - Added code to destroy the X window
18802
18803 2004-10-13 14:18  pbartok
18804
18805         * XplatUIWin32.cs:
18806           - Added code to destroy a window
18807
18808 2004-10-13 14:12  pbartok
18809
18810         * ButtonBase.cs:
18811           - Added the Redraw on Resize that got dropped in the last rev
18812
18813 2004-10-13 09:06  pbartok
18814
18815         * ThemeWin32Classic.cs:
18816           - Path from John BouAntoun:
18817             * Fix check rendering (centre correctly for normal style, offset
18818               correctly for FlatStyle).
18819             * Fix border color usage (use backcolor) for FlatStyle.Popup
18820             * Use checkbox.Capture instead of checkbox.is_pressed when
18821               rendering flatstyle states.
18822
18823 2004-10-12 21:48  pbartok
18824
18825         * ThemeWin32Classic.cs:
18826           - Removed all occurences of SystemColors and replaced them with the
18827             matching theme color
18828
18829 2004-10-12 21:41  pbartok
18830
18831         * ThemeWin32Classic.cs:
18832           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
18833             him using the function for flatstyle drawing
18834           - Changed functions to use the new version of CPDrawBorder3D
18835
18836 2004-10-12 21:15  pbartok
18837
18838         * ControlPaint.cs:
18839           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
18840             match MS documentation. They need to return defined colors if the
18841             passed color matches the configured control color. Thanks to John
18842             BouAntoun for pointing this out.
18843
18844 2004-10-12 20:57  pbartok
18845
18846         * Control.cs:
18847           - Fix from John BouAntoun: Raise ForeColorChanged event when text
18848             color is changed
18849
18850 2004-10-12 20:46  pbartok
18851
18852         * CheckBox.cs:
18853           - Fix from John BouAntoun: Now properly sets the Appearance property
18854
18855 2004-10-12 20:45  pbartok
18856
18857         * ThemeWin32Classic.cs:
18858           - Fixes from John BouAntoun: now handles forecolors and backcolors
18859             for flatstyle rendered controls much better; It also fixes normal
18860             checkbox rendering when pushed or disabled.
18861
18862 2004-10-08 02:50  jordi
18863
18864         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
18865           work
18866
18867 2004-10-07 08:56  jordi
18868
18869         * ThemeWin32Classic.cs: Removes deletion of cached brushes
18870
18871 2004-10-06 03:59  jordi
18872
18873         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
18874           XplatUIWin32.cs: removes warnings from compilation
18875
18876 2004-10-05 12:23  jackson
18877
18878         * RadioButton.cs: Fix ctor
18879
18880 2004-10-05 11:10  pbartok
18881
18882         * MessageBox.cs:
18883           - Partial implementation by Benjamin Dasnois
18884
18885 2004-10-05 10:15  jackson
18886
18887         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
18888           by John BouAntoun
18889
18890 2004-10-05 03:07  ravindra
18891
18892         * ToolBar.cs:
18893                 - Removed a private method, Draw ().
18894                 - Fixed the ButtonDropDown event handling.
18895                 - Fixed MouseMove event handling.
18896
18897 2004-10-05 03:04  ravindra
18898
18899         * ThemeWin32Classic.cs:
18900                 - Added DrawListView method and ListViewDefaultSize property.
18901                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
18902                 - Changed DOS style CRLF to Unix format (dos2unix).
18903
18904 2004-10-05 03:03  ravindra
18905
18906         * Theme.cs:
18907                 - Added DrawListView method and ListViewDefaultSize property.
18908
18909 2004-10-05 02:42  ravindra
18910
18911         * ToolBarButton.cs: Added an internal member dd_pressed to handle
18912           clicks on DropDown arrow.
18913
18914 2004-10-04 22:56  jackson
18915
18916         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
18917           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
18918           Control handle the buffers, derived classes should not have to
18919           CreateBuffers themselves.
18920
18921 2004-10-04 21:20  jackson
18922
18923         * StatusBar.cs: The control handles resizing the buffers now.
18924
18925 2004-10-04 21:18  jackson
18926
18927         * Control.cs: When resizing the buffers should be invalidated. This
18928           should be handled in Control not in derived classes.
18929
18930 2004-10-04 14:45  jackson
18931
18932         * TabPage.cs: oops
18933
18934 2004-10-04 02:14  pbartok
18935
18936         * LeftRightAlignment.cs:
18937           - Initial check-in
18938
18939 2004-10-04 01:09  jordi
18940
18941         * ThemeWin32Classic.cs: fixes right button position causing right
18942           button not showing on horizontal scrollbars
18943
18944 2004-10-02 13:12  pbartok
18945
18946         * XplatUIX11.cs:
18947           - Simplified the Invalidate method by using an X call instead of
18948             generating the expose ourselves
18949           - Added an expose when the window background is changed
18950           - Implemented ClientToScreen method
18951
18952 2004-10-02 13:08  pbartok
18953
18954         * XplatUIWin32.cs:
18955           - Added Win32EnableWindow method (test for implementing modal
18956           dialogs)
18957           - Added ClientToScreen method and imports
18958
18959 2004-10-02 13:07  pbartok
18960
18961         * XplatUI.cs, XplatUIDriver.cs:
18962           - Added ClientToScreen coordinate translation method
18963
18964 2004-10-02 13:06  pbartok
18965
18966         * KeyPressEventArgs.cs:
18967           - Fixed access level for constructor
18968
18969 2004-10-02 13:06  pbartok
18970
18971         * NativeWindow.cs:
18972           - Changed access level for the window_collection hash table
18973
18974 2004-10-02 13:05  pbartok
18975
18976         * Form.cs:
18977           - Added KeyPreview property
18978           - Added Menu property (still incomplete, pending Jordi's menu work)
18979           - Implemented ProcessCmdKey
18980           - Implemented ProcessDialogKey
18981           - Implemented ProcessKeyPreview
18982
18983 2004-10-02 13:02  pbartok
18984
18985         * Control.cs:
18986           - Added private method to get the Control object from the window
18987           handle
18988           - Implemented ContextMenu property
18989           - Implemented PointToScreen
18990           - Implemented PreProcessMessage
18991           - Implemented IsInputChar
18992           - Implemented IsInputKey
18993           - Implemented ProcessCmdKey
18994           - Completed ProcessKeyEventArgs
18995           - Fixed message loop to call the proper chain of functions on key
18996           events
18997           - Implemented ProcessDialogChar
18998           - Implemented ProcessDialogKey
18999           - Implemented ProcessKeyMessage
19000           - Implemented ProcessKeyPreview
19001           - Added RaiseDragEvent stub (MS internal method)
19002           - Added RaiseKeyEvent stub (MS internal method)
19003           - Added RaiseMouseEvent stub (MS Internal method)
19004           - Added RaisePaintEvent stub (MS Internal method)
19005           - Added ResetMouseEventArgs stub (MS Internal method)
19006           - Implemented RtlTranslateAlignment
19007           - Implemented RtlTranslateContent
19008           - Implemented RtlTranslateHorizontal
19009           - Implemented RtlTranslateLeftRight
19010           - Added generation of KeyPress event
19011
19012 2004-10-02 05:57  ravindra
19013
19014         * ListViewItem.cs: Added attributes.
19015
19016 2004-10-02 05:32  ravindra
19017
19018         * ListView.cs: Added attributes.
19019
19020 2004-10-01 11:53  jackson
19021
19022         * Form.cs: Implement the Close method so work on MessageBox can
19023           continue.
19024
19025 2004-09-30 14:06  pbartok
19026
19027         * XplatUIX11.cs:
19028           - Bug fixes
19029
19030 2004-09-30 11:34  jackson
19031
19032         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
19033
19034 2004-09-30 07:26  ravindra
19035
19036         * ListViewItemConverter.cs: Converter for ListViewItem.
19037
19038 2004-09-30 07:26  ravindra
19039
19040         * SortOrder.cs: Enum for ListView control.
19041
19042 2004-09-30 07:25  ravindra
19043
19044         * ColumnHeader.cs: Supporting class for ListView control.
19045
19046 2004-09-30 07:24  ravindra
19047
19048         * ListView.cs, ListViewItem.cs: Initial implementation.
19049
19050 2004-09-30 07:20  ravindra
19051
19052         * ItemActivation.cs: Enum for ListView Control.
19053
19054 2004-09-29 20:29  pbartok
19055
19056         * XplatUIX11.cs:
19057           - Added lookup of pixel value for background color; tries to get a
19058             color 'close' to the requested color, it avoids having to create a
19059             colormap.  Depending on the display this could mean the used color
19060             is slightly off the desired color. Might have to change it to a more
19061             resource intensive colormap approach, but it will work as a
19062           workaround to avoid red screens.
19063
19064 2004-09-29 14:27  jackson
19065
19066         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
19067
19068 2004-09-28 12:44  pbartok
19069
19070         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
19071           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
19072           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
19073           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
19074           TrackBar.cs, VScrollBar.cs:
19075           - Streamlined Theme interfaces:
19076             * Each DrawXXX method for a control now is passed the object for
19077               the control to be drawn in order to allow accessing any state the
19078               theme might require
19079
19080             * ControlPaint methods for the theme now have a CP prefix to avoid
19081               name clashes with the Draw methods for controls
19082
19083             * Every control now retrieves it's DefaultSize from the current
19084             theme
19085
19086 2004-09-28 12:17  jackson
19087
19088         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
19089           drawing
19090
19091 2004-09-24 14:57  jackson
19092
19093         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
19094           Gives us a nice little performance boost.
19095
19096 2004-09-24 12:02  jackson
19097
19098         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
19099           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
19100           Control and supporting classes. Initial checkin
19101
19102 2004-09-23 13:08  jackson
19103
19104         * Form.cs: Temp build fixage
19105
19106 2004-09-23 01:39  ravindra
19107
19108         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
19109           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
19110           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
19111           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
19112           EventHandlers needed by ListView Control.
19113
19114 2004-09-22 14:12  pbartok
19115
19116         * ScrollableControl.cs:
19117           - Implemented DockPadding property
19118           - Implemented AutoScroll property
19119           - Implemented AutoScrollMargin property
19120           - Implemented AutoScrollMinSize property
19121           - Implemented AutoScrollPosition property
19122           - Implemented DisplayRectangle property (still incomplete)
19123           - Implemented CreateParams property
19124           - Implemented HScroll property
19125           - Implemented VScroll property
19126           - Implemented OnVisibleChanged property
19127
19128 2004-09-22 14:09  pbartok
19129
19130         * Form.cs:
19131           - Added Form.ControllCollection class
19132           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
19133             RemoveOwnedForm (still incomplete, missing on-top and common
19134             minimize/maximize behaviour)
19135           - Added StartPosition property (still incomplete, does not use when
19136             creating the form)
19137           - Added ShowDialog() methods (still incomplete, missing forcing the
19138             dialog modal)
19139
19140 2004-09-22 14:05  pbartok
19141
19142         * Application.cs:
19143           - Added message loop for modal dialogs
19144
19145 2004-09-22 14:02  pbartok
19146
19147         * GroupBox.cs:
19148           - Fixed wrong types for events
19149
19150 2004-09-22 14:00  pbartok
19151
19152         * Shortcut.cs, FormWindowState.cs:
19153           - Fixed wrong values
19154
19155 2004-09-22 12:01  jackson
19156
19157         * Control.cs: Text is never null
19158
19159 2004-09-20 22:14  pbartok
19160
19161         * XplatUIWin32.cs:
19162           - Fixed accessibility level for Idle handler
19163
19164 2004-09-20 18:54  jackson
19165
19166         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19167           XplatUIX11.cs: New message loop that uses poll so we don't get a
19168           busy loop
19169
19170 2004-09-17 10:43  pbartok
19171
19172         * ScrollBar.cs:
19173           - Fixed behaviour of arrow buttons. Now properly behaves like
19174             Buttons (and like Microsoft's scrollbar arrow buttons)
19175
19176 2004-09-17 10:14  pbartok
19177
19178         * ScrollBar.cs:
19179           - Added missing release of keyboard/mouse capture
19180
19181 2004-09-17 06:18  jordi
19182
19183         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
19184           Theme.cs: Very early menu support
19185
19186 2004-09-16 17:45  pbartok
19187
19188         * XplatUIWin32.cs:
19189           - Fixed sending a window to the front
19190           - Added overload for SetWindowPos to avoid casting
19191
19192 2004-09-16 17:44  pbartok
19193
19194         * Control.cs:
19195           - Added SendToBack and BringToFront methods
19196
19197 2004-09-16 07:00  ravindra
19198
19199         * Copyright: Added Novell URL.
19200
19201 2004-09-16 07:00  ravindra
19202
19203         * ToolBar.cs: Invalidate should be done before redrawing.
19204
19205 2004-09-15 21:19  ravindra
19206
19207         * ColumnHeaderStyle.cs: Enum for ListView Control.
19208
19209 2004-09-15 21:18  ravindra
19210
19211         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
19212           ListView Control.
19213
19214 2004-09-13 18:26  jackson
19215
19216         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
19217           properly
19218
19219 2004-09-13 18:13  jackson
19220
19221         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
19222           a second thread and post messages into the main threads message
19223           queue. This makes timing much more consistent. Both win2K and XP
19224           have a minimum timer value of 15 milliseconds, so we now do this
19225           too.
19226
19227 2004-09-13 15:18  pbartok
19228
19229         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19230           XplatUIX11.cs:
19231           - Added Z-Ordering methods
19232
19233 2004-09-13 10:56  pbartok
19234
19235         * Form.cs:
19236           - Fixed #region names
19237           - Moved properties and methods into their proper #regions
19238
19239 2004-09-13 10:51  pbartok
19240
19241         * Form.cs:
19242           - Added Accept and CancelButton properties
19243           - Added ProcessDialogKey() method
19244
19245 2004-09-13 08:18  pbartok
19246
19247         * IWindowTarget.cs:
19248           - Initial check-in
19249
19250 2004-09-10 21:50  pbartok
19251
19252         * Control.cs:
19253           - Added DoDragDrop() [incomplete]
19254           - Properly implemented 'Visible' handling
19255           - Added SetVisibleCore()
19256           - Implemented FindChildAtPoint()
19257           - Implemented GetContainerControl()
19258           - Implemented Hide()
19259
19260 2004-09-10 19:28  pbartok
19261
19262         * Control.cs:
19263           - Moved methods into their appropriate #regions
19264           - Reordered methods within regions alphabetically
19265
19266 2004-09-10 18:57  pbartok
19267
19268         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19269           - Added method to retrieve text from window
19270
19271 2004-09-10 18:56  pbartok
19272
19273         * Control.cs:
19274           - Moved some internal functions into the internal region
19275           - Implemented FontHeight
19276           - Implemented RenderRightToLeft
19277           - Implemented ResizeRedraw
19278           - Implemented ShowFocusCues
19279           - Implemented ShowKeyboardCues
19280           - Implemented FromChildHandle
19281           - Implemented FromHandle
19282           - Implemented IsMnemonic
19283           - Implemented ReflectMessage
19284           - All public and protected Static Methods are now complete
19285
19286 2004-09-10 16:54  pbartok
19287
19288         * Control.cs:
19289           - Implemented remaining missing public instance properties
19290           - Alphabetized some out of order properties
19291
19292 2004-09-10 05:51  ravindra
19293
19294         * PictureBox.cs: Added a check for null image.
19295
19296 2004-09-10 00:59  jordi
19297
19298         * GroupBox.cs: remove cvs tag
19299
19300 2004-09-09 05:25  ravindra
19301
19302         * ToolBar.cs: Make redraw accessible from ToolBarButton.
19303
19304 2004-09-09 05:23  ravindra
19305
19306         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
19307           parent redraw.
19308
19309 2004-09-09 02:28  pbartok
19310
19311         * ThemeWin32Classic.cs:
19312           - Improve disabled string look
19313
19314 2004-09-09 01:15  jordi
19315
19316         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
19317           args and handler
19318
19319 2004-09-08 23:56  ravindra
19320
19321         * ItemBoundsPortion.cs: It's enum, not a class!
19322
19323 2004-09-08 23:47  ravindra
19324
19325         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
19326           Enums for Form.
19327
19328 2004-09-08 21:13  ravindra
19329
19330         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
19331           ListView control.
19332
19333 2004-09-08 21:03  ravindra
19334
19335         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
19336           avoid crash.
19337
19338 2004-09-08 21:01  ravindra
19339
19340         * ScrollableControl.cs: Removed unreachable code.
19341
19342 2004-09-08 06:45  jordi
19343
19344         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
19345
19346 2004-09-08 01:00  jackson
19347
19348         * XplatUIX11.cs: Only run the timers when updating the message
19349           queue. This effectively gives X messages a higher priority then
19350           timer messages. Timers still need love though
19351
19352 2004-09-07 14:01  jackson
19353
19354         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
19355           this for us and the handle is no longer valid.
19356
19357 2004-09-07 13:59  jackson
19358
19359         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
19360           loop that manages to not crash. TODO: Add poll and cleanup timers
19361
19362 2004-09-07 11:12  jordi
19363
19364         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
19365
19366 2004-09-07 03:40  jordi
19367
19368         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
19369           fixes, methods, multiple links
19370
19371 2004-09-06 06:55  jordi
19372
19373         * Control.cs: Caches ClientRectangle rectangle value
19374
19375 2004-09-05 02:03  jordi
19376
19377         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
19378           certain situations
19379
19380 2004-09-04 11:10  jordi
19381
19382         * Label.cs: Refresh when font changed
19383
19384 2004-09-02 16:24  pbartok
19385
19386         * Control.cs:
19387           - Added sanity check to creation of double buffer bitmap
19388
19389 2004-09-02 16:24  pbartok
19390
19391         * ButtonBase.cs:
19392           - Fixed selection of text color
19393           - Fixed handling of resize event; now properly recreates double
19394             buffering bitmap
19395           - Added missing assignment of TextAlignment
19396           - Added proper default for TextAlignment
19397
19398 2004-09-02 14:26  pbartok
19399
19400         * RadioButton.cs:
19401           - Added missing RadioButton.RadioButtonAccessibleObject class
19402
19403 2004-09-02 14:26  pbartok
19404
19405         * Control.cs:
19406           - Added missing Control.ControlAccessibleObject class
19407           - Started to implement Select()ion mechanisms, still very incomplete
19408
19409 2004-09-02 14:25  pbartok
19410
19411         * AccessibleObject.cs:
19412           - Added missing methods
19413
19414 2004-09-02 14:23  pbartok
19415
19416         * AccessibleNavigation.cs, AccessibleSelection.cs:
19417           - Initial check-in
19418
19419 2004-09-02 10:32  jordi
19420
19421         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
19422           pool for pens, brushes, and hatchbruses
19423
19424 2004-09-01 15:30  jackson
19425
19426         * StatusBar.cs: Fix typo
19427
19428 2004-09-01 14:44  pbartok
19429
19430         * RadioButton.cs:
19431           - Fixed state
19432
19433 2004-09-01 14:39  pbartok
19434
19435         * Button.cs, RadioButton.cs:
19436           - Functional initial check-in
19437
19438 2004-09-01 14:01  pbartok
19439
19440         * CheckBox.cs:
19441           - Added missing default
19442           - Added missing region mark
19443
19444 2004-09-01 09:10  jordi
19445
19446         * Label.cs: fixes method signatures, new methods, events, fixes
19447           autosize
19448
19449 2004-09-01 07:19  jordi
19450
19451         * Control.cs: Init string variables with an empty object
19452
19453 2004-09-01 04:20  jordi
19454
19455         * Control.cs: fires OnFontChanged event
19456
19457 2004-08-31 20:07  pbartok
19458
19459         * ButtonBase.cs:
19460           - Enabled display of strings
19461
19462 2004-08-31 20:05  pbartok
19463
19464         * Form.cs:
19465           - Added (partial) implementation of DialogResult; rest needs to be
19466             implemented when the modal loop code is done
19467
19468 2004-08-31 19:55  pbartok
19469
19470         * CheckBox.cs:
19471           - Fixed to match the removal of the needs_redraw concept
19472
19473 2004-08-31 19:55  pbartok
19474
19475         * ButtonBase.cs:
19476           - Removed the rather odd split between 'needs redraw' and redrawing
19477           - Now handles the events that require regeneration (ambient
19478             properties and size)
19479
19480 2004-08-31 19:41  pbartok
19481
19482         * Control.cs:
19483           - Added firing of BackColorChanged event
19484           - Added TopLevelControl property
19485           - Fixed handling of WM_ERASEBKGRND message
19486
19487 2004-08-31 12:49  pbartok
19488
19489         * ButtonBase.cs:
19490           - Removed debug
19491           - Minor fixes
19492
19493 2004-08-31 12:48  pbartok
19494
19495         * CheckBox.cs:
19496           - Finished (famous last words)
19497
19498 2004-08-31 04:35  jordi
19499
19500         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
19501           scrolling bugs, adds new methods
19502
19503 2004-08-30 14:42  pbartok
19504
19505         * CheckBox.cs:
19506           - Implemented CheckBox drawing code
19507
19508 2004-08-30 14:42  pbartok
19509
19510         * ButtonBase.cs:
19511           - Made Redraw() and CheckRedraw() virtual
19512           - Improved mouse up/down/move logic to properly track buttons
19513
19514 2004-08-30 09:44  pbartok
19515
19516         * CheckBox.cs:
19517           - Updated to fix broken build. Not complete yet.
19518
19519 2004-08-30 09:28  pbartok
19520
19521         * CheckState.cs:
19522           - Initial checkin
19523
19524 2004-08-30 09:17  pbartok
19525
19526         * Appearance.cs:
19527           - Initial check-in
19528
19529 2004-08-27 16:12  ravindra
19530
19531         * ToolBarButton.cs: Added TypeConverter attribute.
19532
19533 2004-08-27 16:07  ravindra
19534
19535         * ImageIndexConverter.cs: Implemented.
19536
19537 2004-08-27 14:17  pbartok
19538
19539         * Control.cs:
19540           - Removed unneeded stack vars
19541           - First attempt to fix sizing issues when layout is suspended
19542
19543 2004-08-25 15:35  jordi
19544
19545         * ScrollBar.cs: more fixes to scrollbar
19546
19547 2004-08-25 14:04  ravindra
19548
19549         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
19550           Added the missing divider code and grip for ToolBar Control.
19551
19552 2004-08-25 13:20  pbartok
19553
19554         * Control.cs:
19555           - Control now properly passes the ambient background color to child
19556             controls
19557
19558 2004-08-25 13:20  jordi
19559
19560         * ScrollBar.cs: small bug fix regarding bar position
19561
19562 2004-08-25 12:33  pbartok
19563
19564         * Timer.cs:
19565           - Now only calls SetTimer or KillTimer if the enabled state has
19566           changed
19567
19568 2004-08-25 12:33  pbartok
19569
19570         * XplatUIWin32.cs:
19571           - Fixed timer handling, now seems to work
19572           - Improved error message for window creation
19573
19574 2004-08-25 12:32  pbartok
19575
19576         * Control.cs:
19577           - Fixed generation of MouseUp message
19578
19579 2004-08-25 12:29  jordi
19580
19581         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
19582           and fixes for progressbar
19583
19584 2004-08-24 18:43  ravindra
19585
19586         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
19587           in ToolBar control.
19588
19589 2004-08-24 17:15  pbartok
19590
19591         * Panel.cs:
19592           - Added #region
19593           - Added missing events
19594           - Alphabetized
19595
19596 2004-08-24 17:14  pbartok
19597
19598         * StatusBar.cs, PictureBox.cs:
19599           - Now uses Control's CreateParams
19600
19601 2004-08-24 16:36  pbartok
19602
19603         * XplatUIX11.cs:
19604           - Fixed background color handling
19605           - Fixed sending of enter/leave events on a grab
19606
19607 2004-08-24 16:35  pbartok
19608
19609         * X11Structs.cs:
19610           - Refined definitions for CrossingEvent
19611
19612 2004-08-24 12:37  jordi
19613
19614         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
19615           formmating, methods signature, and adds missing events
19616
19617 2004-08-24 12:24  jordi
19618
19619         * Control.cs: fire OnEnabledChanged event
19620
19621 2004-08-24 11:17  pbartok
19622
19623         * XplatUIWin32.cs:
19624           - Implemented SetTimer() and KillTimer()
19625
19626 2004-08-24 11:16  pbartok
19627
19628         * XplatUIX11.cs:
19629           - Now uses Remove instead of Add to kill the timer
19630
19631 2004-08-24 10:16  jackson
19632
19633         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
19634           picture boxes in the theme now. Draw picture box borders and obey
19635           sizing modes
19636
19637 2004-08-24 05:49  jackson
19638
19639         * Timer.cs: Remove top secret debugging code
19640
19641 2004-08-24 05:34  jackson
19642
19643         * PictureBox.cs: Temp hack to make picture boxes draw their full
19644           image
19645
19646 2004-08-24 05:29  jackson
19647
19648         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
19649           XplatUIX11.cs: Move timers to the driver level. On X they are
19650           queued by the driver and checked on idle.
19651
19652 2004-08-24 01:07  jackson
19653
19654         * XplatUIX11.cs: Use a queue for async messages instead of passing
19655           them as ClientMessages since that was totally broken. Also simply
19656           check for events and return an idle message if none are found. This
19657           gives us an idle handler, and prevents deadlocking when no messages
19658           are in the queue.
19659
19660 2004-08-23 18:19  ravindra
19661
19662         * XplatUIWin32.cs: Removed the unwanted destructor.
19663
19664 2004-08-23 17:27  pbartok
19665
19666         * ButtonBase.cs:
19667           - Finishing touches. Works now, just needs some optimizations.
19668
19669 2004-08-23 16:53  jordi
19670
19671         * ScrollBar.cs: small fix
19672
19673 2004-08-23 16:45  pbartok
19674
19675         * Application.cs:
19676           - Removed debug output
19677           - Simplifications
19678
19679 2004-08-23 16:43  jordi
19680
19681         * ScrollBar.cs: [no log message]
19682
19683 2004-08-23 16:10  pbartok
19684
19685         * Form.cs:
19686           - Fixed handling of WM_CLOSE message
19687           - Removed debug output
19688
19689 2004-08-23 16:09  pbartok
19690
19691         * Application.cs:
19692           - Added handling of Idle event
19693           - Added handling of form closing
19694           - Fixed reporting of MessageLoop property
19695           - Removed some unneeded code, should provide a bit of a speedup
19696
19697 2004-08-23 15:22  pbartok
19698
19699         * Control.cs:
19700           - Added InitLayout() method
19701           - Added code to properly perform layout when Anchor or Dock property
19702             is changed
19703           - Changed 'interpretation' of ResumeLayout. MS seems to have a
19704             LAMESPEC, tried to do it in a way that makes sense
19705
19706 2004-08-23 14:10  jordi
19707
19708         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
19709           properties and methods
19710
19711 2004-08-23 13:55  pbartok
19712
19713         * Control.cs:
19714           - Properly fixed Jordi's last fix
19715           - Now uses Cursor's Position property instead of calling XplatUI
19716           directly
19717
19718 2004-08-23 13:44  jordi
19719
19720         * PaintEventHandler.cs: Adding missing attribute
19721
19722 2004-08-23 13:39  pbartok
19723
19724         * Cursor.cs:
19725           - Implemented Position property
19726
19727 2004-08-23 13:39  pbartok
19728
19729         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
19730           - Added method to move mouse cursor
19731
19732 2004-08-23 13:39  pbartok
19733
19734         * XplatUIX11.cs:
19735           - Fixed setting of background color
19736           - Added method to move mouse cursor
19737
19738 2004-08-23 13:16  jordi
19739
19740         * Control.cs: avoids null exception
19741
19742 2004-08-22 17:46  jackson
19743
19744         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
19745           PictureBox
19746
19747 2004-08-22 17:40  jackson
19748
19749         * XplatUIX11.cs: Add some missing locks
19750
19751 2004-08-22 15:10  pbartok
19752
19753         * Control.cs, Form.cs:
19754           - Removed OverlappedWindow style from Control, instead it's default
19755             now is child
19756           - Made form windows OverlappedWindow by default
19757
19758 2004-08-22 13:34  jackson
19759
19760         * ScrollBar.cs: Update the position through the Value property so
19761           the OnValueChanged event is raised.
19762
19763 2004-08-22 12:04  pbartok
19764
19765         * SWF.csproj:
19766           - Added Cursor.cs and UserControl.cs
19767
19768 2004-08-22 12:03  pbartok
19769
19770         * Cursor.cs:
19771           - Started implementation, not usable yet
19772
19773 2004-08-22 12:00  pbartok
19774
19775         * UserControl.cs:
19776           - Implemented UserControl (complete)
19777
19778 2004-08-21 19:20  ravindra
19779
19780         * ToolBar.cs: Correcting the formatting mess of VS.NET.
19781
19782 2004-08-21 18:49  ravindra
19783
19784         * ToolBar.cs: Probably this completes the missing attributes in
19785           toolbar control.
19786
19787 2004-08-21 18:03  ravindra
19788
19789         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
19790           Fixed toolbar control signatures.
19791
19792 2004-08-21 16:32  pbartok
19793
19794         * LinkLabel.cs:
19795           - Signature Fixes
19796
19797 2004-08-21 16:30  pbartok
19798
19799         * Label.cs:
19800           - Signature fixes
19801
19802 2004-08-21 16:19  pbartok
19803
19804         * Control.cs, Label.cs:
19805           - Signature fixes
19806
19807 2004-08-21 15:57  pbartok
19808
19809         * ButtonBase.cs:
19810           - Added loads of debug output for development
19811           - Fixed typo in method name
19812
19813 2004-08-21 15:52  pbartok
19814
19815         * ToolBarButtonClickEventArgs.cs:
19816           - Added missing base class
19817
19818 2004-08-21 14:53  pbartok
19819
19820         * Control.cs:
19821           - Updated to match new GrabWindow signature
19822
19823 2004-08-21 14:51  pbartok
19824
19825         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19826           - Added method to get default display size
19827
19828 2004-08-21 14:23  pbartok
19829
19830         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
19831           - Added method to query current grab state
19832           - Added argument to allow confining a grab to a window
19833
19834 2004-08-21 14:22  pbartok
19835
19836         * Keys.cs:
19837           - Added [Flags] attribute so that modifiers can be used in bitwise
19838           ops
19839
19840 2004-08-21 14:21  pbartok
19841
19842         * TrackBar.cs, ScrollBar.cs:
19843           - Replaced direct XplatUI calls with their Control counterpart
19844
19845 2004-08-21 13:32  pbartok
19846
19847         * Control.cs:
19848           - Implemented Created property
19849
19850 2004-08-21 13:28  pbartok
19851
19852         * Control.cs:
19853           - Implemented ContainsFocus
19854
19855 2004-08-21 13:26  pbartok
19856
19857         * Control.cs:
19858           - Implemented CausesValidation
19859
19860 2004-08-21 13:21  pbartok
19861
19862         * Control.cs:
19863           - Implemented CanFocus
19864           - Implemented CanSelect
19865           - Implemented Capture
19866
19867 2004-08-21 12:35  pbartok
19868
19869         * XplatUIWin32.cs:
19870           - Fixed bug with Async message handling
19871           - Implemented getting the ModifierKeys
19872
19873 2004-08-21 12:32  jackson
19874
19875         * AsyncMethodResult.cs: Make sure we have the mutex before we
19876           release it. Fixes BeginInvoke on windows
19877
19878 2004-08-21 11:31  pbartok
19879
19880         * XplatUIWin32.cs, XplatUIX11.cs:
19881           - Drivers now return proper mouse state
19882
19883 2004-08-21 10:54  jackson
19884
19885         * Control.cs: Implement EndInvoke
19886
19887 2004-08-21 10:48  jackson
19888
19889         * Timer.cs: Remove unneeded finalizer
19890
19891 2004-08-20 19:52  ravindra
19892
19893         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
19894           in mouse event handling in the ToolBar control.
19895
19896 2004-08-20 19:50  ravindra
19897
19898         * ImageList.cs: Changed draw method to use the arguments passed in
19899           to draw the image.
19900
19901 2004-08-20 18:58  pbartok
19902
19903         * XplatUIStructs.cs:
19904           - Added private message for async communication
19905
19906 2004-08-20 17:38  ravindra
19907
19908         * Control.cs: Made RightToLeft property virtual and removed a
19909           Console.WriteLine.
19910
19911 2004-08-20 14:39  jordi
19912
19913         * ThemeGtk.cs: use style_attach
19914
19915 2004-08-20 14:39  pbartok
19916
19917         * XplatUIWin32.cs:
19918           - Added jackson's Async code from X11 to Win32
19919
19920 2004-08-20 14:09  pbartok
19921
19922         * SWF.csproj:
19923           - Added all new files
19924
19925 2004-08-20 14:09  pbartok
19926
19927         * Control.cs:
19928           - Added call to set window background color
19929
19930 2004-08-20 14:03  pbartok
19931
19932         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
19933           - Added method for setting the window background
19934
19935 2004-08-20 14:02  pbartok
19936
19937         * XplatUIWin32.cs:
19938           - Added method for setting the background color
19939           - Added handling for erasing the window background
19940
19941 2004-08-20 13:45  jordi
19942
19943         * TrackBar.cs: fixes timer, new properties and methods
19944
19945 2004-08-20 13:34  jackson
19946
19947         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
19948           correct thread
19949
19950 2004-08-20 13:22  jackson
19951
19952         * Timer.cs: Timer Tick events are now handed through Controls Async
19953           mechanism so the callbacks are executed in the same thread as X
19954
19955 2004-08-20 13:19  jackson
19956
19957         * XplatUIDriver.cs: Expose functionality to send async messages
19958           through the driver
19959
19960 2004-08-20 13:18  jackson
19961
19962         * Control.cs: Implement Begininvoke
19963
19964 2004-08-20 13:14  jackson
19965
19966         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
19967           messages through the driver
19968
19969 2004-08-20 13:12  jackson
19970
19971         * XplatUIX11.cs: Lock before all X operations. Also added Async
19972           method functionality through XSendEvent
19973
19974 2004-08-20 13:11  jackson
19975
19976         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
19977           This will screw up on 64 bit systems)
19978
19979 2004-08-20 13:10  jackson
19980
19981         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
19982           Async messages through X/Win32
19983
19984 2004-08-19 19:39  pbartok
19985
19986         * XplatUIX11.cs:
19987           - Updated code to match new HandleData.DeviceContext type
19988
19989 2004-08-19 19:38  pbartok
19990
19991         * HandleData.cs:
19992           - Made DeviceContext a generic object to allow usage from various
19993           drivers
19994           - Added support for queueing Windows messages
19995
19996 2004-08-19 19:37  pbartok
19997
19998         * XplatUIWin32.cs:
19999           - Added generation of MouseEnter, MouseLeave and MouseHover events
20000           - Added cleanup on EndPaint
20001
20002 2004-08-19 19:17  pbartok
20003
20004         * Control.cs:
20005           - Added handling of WM_MOUSEHOVER
20006           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
20007           code
20008
20009 2004-08-19 18:55  jordi
20010
20011         * ThemeGtk.cs: fixes button order
20012
20013 2004-08-19 18:12  jordi
20014
20015         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
20016
20017 2004-08-19 17:09  pbartok
20018
20019         * Control.cs:
20020           - Added Right property
20021           - Added RightToLeft property
20022
20023 2004-08-19 16:27  jordi
20024
20025         * ThemeGtk.cs: experimental GTK theme support
20026
20027 2004-08-19 16:26  jordi
20028
20029         * ITheme.cs, Theme.cs: move themes from an interface to a class
20030
20031 2004-08-19 16:25  jordi
20032
20033         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
20034           theme enhancaments
20035
20036 2004-08-19 16:04  pbartok
20037
20038         * XplatUIX11.cs:
20039           - Added colormap basics
20040           - Added a way to re-initialize with a different display handle
20041           - Fixed setting of the window background color
20042           - Added various X11 imports related to colors and colormaps
20043
20044 2004-08-19 15:51  pbartok
20045
20046         * X11Structs.cs:
20047           - Removed packing hints (Paolo suggested this a while back)
20048           - fixed colormap type
20049           - Added default Atom types
20050           - Added Screen and color structs and enums
20051
20052 2004-08-19 15:39  pbartok
20053
20054         * ImageList.cs:
20055           - Added missing Draw() method
20056           - Added missing RecreateHandle event
20057
20058 2004-08-19 15:30  pbartok
20059
20060         * Form.cs:
20061           - Added handling of WM_CLOSE
20062
20063 2004-08-18 13:16  jordi
20064
20065         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
20066           a table
20067
20068 2004-08-18 09:56  jordi
20069
20070         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
20071
20072 2004-08-17 15:31  ravindra
20073
20074         * SWF.csproj: Updated project.
20075
20076 2004-08-17 15:25  pbartok
20077
20078         * Control.cs:
20079           - Drawing improvement; don't call UpdateBounds if we are not visible
20080             (or have been minimized)
20081
20082 2004-08-17 15:24  pbartok
20083
20084         * XplatUIWin32.cs:
20085           - Finished IsVisible
20086           - Added Win32GetWindowPlacement
20087
20088 2004-08-17 15:08  jackson
20089
20090         * Panel.cs: Initial checkin of the Panel
20091
20092 2004-08-17 14:25  pbartok
20093
20094         * Control.cs:
20095           - Fixed broken handling of default window sizes
20096
20097 2004-08-17 13:29  jackson
20098
20099         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
20100           has a large startup time.
20101
20102 2004-08-17 10:25  jackson
20103
20104         * HandleData.cs: union areas properly
20105
20106 2004-08-17 10:12  jackson
20107
20108         * HandleData.cs: union areas properly
20109
20110 2004-08-16 20:00  ravindra
20111
20112         * ToolBar.cs, ToolBarButton.cs: Added attributes.
20113
20114 2004-08-16 18:48  ravindra
20115
20116         * ToolBar.cs: Added attributes.
20117
20118 2004-08-16 17:17  ravindra
20119
20120         * SWF.csproj: Updated project.
20121
20122 2004-08-16 17:16  jackson
20123
20124         * XplatUIX11.cs: Check for more expose events before sending a
20125           WM_PAINT so they can all be grouped together. This makes dragging a
20126           window across another window redraw in a sane way.
20127
20128 2004-08-16 15:47  pbartok
20129
20130         * Control.cs:
20131           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
20132             support OnMouseEnter/Leave()
20133           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
20134             exposure handling
20135
20136 2004-08-16 15:46  pbartok
20137
20138         * XplatUIStructs.cs, XplatUIX11.cs:
20139           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
20140           OnMouseEnter/Leave()
20141
20142 2004-08-16 15:34  jackson
20143
20144         * XplatUIX11.cs: Group multiple expose events in HandleData, make
20145           sure messages get the message field set to WM_NULL if they are not
20146           handled.
20147
20148 2004-08-16 15:24  jackson
20149
20150         * HandleData.cs: HandleData is used for storing message information
20151           for window handles
20152
20153 2004-08-15 17:23  ravindra
20154
20155         * ColorDepth.cs: Added attribute.
20156
20157 2004-08-15 17:23  ravindra
20158
20159         * SWF.csproj: Updated project for ToolBar Control.
20160
20161 2004-08-15 17:20  ravindra
20162
20163         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
20164           control and also dos2unix format.
20165
20166 2004-08-15 17:13  ravindra
20167
20168         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
20169           ToolBarButtonClickEventArgs.cs,
20170           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
20171           ToolBarTextAlign.cs: First Implementation of ToolBar control.
20172
20173 2004-08-15 15:31  pbartok
20174
20175         * ButtonBase.cs:
20176           - First (mostly) working version
20177
20178 2004-08-13 16:15  pbartok
20179
20180         * Control.cs:
20181           - Fixed Anchor default
20182
20183 2004-08-13 15:43  pbartok
20184
20185         * Control.cs:
20186           - Changed GetCursorPos signature
20187
20188 2004-08-13 15:42  pbartok
20189
20190         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
20191           - Changed signature for GetCursorPos
20192
20193 2004-08-13 15:25  pbartok
20194
20195         * XplatUIX11.cs:
20196           - Cleanup
20197           - Fixed resizing/exposure handling
20198
20199 2004-08-13 15:22  jordi
20200
20201         * ThemeWin32Classic.cs: removes redundant code and fixes issues
20202           with tickposition
20203
20204 2004-08-13 14:55  jordi
20205
20206         * TrackBar.cs: change from wndproc to events
20207
20208 2004-08-13 13:00  jordi
20209
20210         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20211           XplatUIX11.cs: implements PointToClient (ScreenToClient)
20212
20213 2004-08-13 12:53  pbartok
20214
20215         * XplatUIWin32.cs:
20216           - Changed GetWindowPos to also provide client area size
20217           - Fixed broken prototypes for several win32 functions
20218
20219 2004-08-13 12:53  pbartok
20220
20221         * XplatUI.cs, XplatUIDriver.cs:
20222           - Changed GetWindowPos to also provide client area size
20223
20224 2004-08-13 12:52  pbartok
20225
20226         * XplatUIX11.cs:
20227           - Added generation of WM_POSCHANGED
20228           - Changed GetWindowPos to also provide client area size
20229
20230 2004-08-13 12:52  pbartok
20231
20232         * Control.cs:
20233           - Added Dispose() and destructor
20234           - Fixed resizing and bounds calculation
20235           - Fixed Layout
20236           - Added memory savings for invisible windows
20237
20238 2004-08-13 12:46  jordi
20239
20240         * TrackBar.cs: adds timer and grap window
20241
20242 2004-08-13 10:25  jackson
20243
20244         * Timer.cs: SWF Timer
20245
20246 2004-08-12 16:59  pbartok
20247
20248         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20249           - Implemented method to get current mouse position
20250
20251 2004-08-12 14:29  jordi
20252
20253         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
20254           enhancement, fix mouse problems, highli thumb, etc
20255
20256 2004-08-12 13:31  pbartok
20257
20258         * Control.cs:
20259           - Fixed Anchoring bugs
20260
20261 2004-08-12 13:01  jackson
20262
20263         * StatusBar.cs: Don't forget things
20264
20265 2004-08-12 12:54  jackson
20266
20267         * ThemeWin32Classic.cs: Handle owner draw status bars
20268
20269 2004-08-12 12:54  jackson
20270
20271         * StatusBar.cs: Implement missing properties, events, and methods.
20272           Handle mouse clicking
20273
20274 2004-08-12 10:19  jackson
20275
20276         * StatusBarPanelClickEventArgs.cs,
20277           StatusBarPanelClickEventHandler.cs: Classes for handling status
20278           bar panel click events
20279
20280 2004-08-12 10:10  jackson
20281
20282         * Control.cs: Add missing properties
20283
20284 2004-08-12 09:46  pbartok
20285
20286         * BindingsManagerBase.cs:
20287           - Name changed to BindingManagerBase.cs
20288
20289 2004-08-12 09:25  jordi
20290
20291         * ScrollableControl.cs: calls ctrlbase instead of exeception
20292
20293 2004-08-11 16:28  pbartok
20294
20295         * InputLanguageChangingEventArgs.cs:
20296           - Never check in before compiling. Fixes the last check-in
20297
20298 2004-08-11 16:26  pbartok
20299
20300         * InputLanguageChangingEventArgs.cs:
20301           - More signature fixes
20302
20303 2004-08-11 16:20  pbartok
20304
20305         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
20306           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
20307           ImageListStreamer.cs, InputLanguage.cs,
20308           InputLanguageChangedEventArgs.cs,
20309           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
20310           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
20311           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
20312           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20313           - Signature fixes
20314
20315 2004-08-11 16:16  pbartok
20316
20317         * Application.cs:
20318           - Fixed Signature
20319           - Added .Net 1.1 method
20320
20321 2004-08-11 15:25  pbartok
20322
20323         * SWF.csproj:
20324           - Fixed BindingManagerBase.cs filename
20325
20326 2004-08-11 15:22  pbartok
20327
20328         * BindingManagerBase.cs:
20329           - Was checked in with wrong filename
20330
20331 2004-08-11 14:50  pbartok
20332
20333         * SWF.csproj:
20334           - Updated
20335
20336 2004-08-11 13:41  jordi
20337
20338         * XplatUIWin32.cs: Fixes ClientRect
20339
20340 2004-08-11 13:19  pbartok
20341
20342         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20343           XplatUIX11.cs:
20344           - We had SetWindowPos and MoveWindow to set window positions and
20345             size, removed MoveWindow. We have GetWindowPos, so it made sense to
20346             keep SetWindowPos as matching counterpart
20347           - Added some X11 sanity checking
20348
20349 2004-08-11 12:59  pbartok
20350
20351         * Control.cs:
20352           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
20353             (It seems that SetBounds is just a front for SetBoundsCore and
20354              SetBoundsCore updates the underlying window system and
20355              UpdateBounds is responsible for updating the variables associated
20356              with the Control and sending the events)
20357           - Major cleanup of Size handling; we now have two sizes, client_size
20358             and bounds. Bounds defines the window with decorations, client_size
20359             without them.
20360
20361 2004-08-11 12:55  pbartok
20362
20363         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20364           - Added method to calculate difference between decorated window and
20365             raw client area
20366
20367 2004-08-11 12:54  pbartok
20368
20369         * Label.cs:
20370           - Forcing redraw on resize
20371
20372 2004-08-11 11:43  pbartok
20373
20374         * ImageList.cs:
20375           - Removed disposing of the actual images when the list is disposed
20376
20377 2004-08-11 09:13  pbartok
20378
20379         * Control.cs:
20380           - Now properly reparents windows
20381
20382 2004-08-11 08:37  pbartok
20383
20384         * Control.cs:
20385           - Duh!
20386
20387 2004-08-11 07:47  pbartok
20388
20389         * Control.cs:
20390           - Rewrote the collection stuff. Might not be as fast now, not
20391             keeping the number of children around and accessible directly, but
20392             it's more straightforward
20393
20394 2004-08-11 07:44  pbartok
20395
20396         * AccessibleObject.cs:
20397           - Fixed to match ControlCollection rewrite
20398
20399 2004-08-11 07:43  pbartok
20400
20401         * ImageList.cs:
20402           - Added missing creation of the collection list
20403
20404 2004-08-10 20:08  jackson
20405
20406         * StatusBar.cs: Get the paint message from WndProc
20407
20408 2004-08-10 19:31  jackson
20409
20410         * ThemeWin32Classic.cs: Create Brushes as little as possible
20411
20412 2004-08-10 19:20  jackson
20413
20414         * UICues.cs: Add Flags attribute
20415
20416 2004-08-10 19:19  jackson
20417
20418         * StatusBarPanel.cs: Signature cleanup
20419
20420 2004-08-10 19:10  jackson
20421
20422         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
20423           Initial implementation of status bar item drawing
20424
20425 2004-08-10 17:27  jordi
20426
20427         * TrackBar.cs: add missing methods, properties, and restructure to
20428           hide extra ones
20429
20430 2004-08-10 16:24  jackson
20431
20432         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
20433           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
20434           attribute
20435
20436 2004-08-10 13:21  jordi
20437
20438         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
20439           enhancements and standarize on win colors defaults
20440
20441 2004-08-10 12:52  jackson
20442
20443         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
20444           ThemeWin32Classic.cs: Implement DrawItem functionality
20445
20446 2004-08-10 12:47  jordi
20447
20448         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
20449
20450 2004-08-10 12:32  jordi
20451
20452         * Control.cs: throw ontextchange event
20453
20454 2004-08-10 11:43  pbartok
20455
20456         * Control.cs:
20457           - Added more to the still unfinished Dock/Anchor layout code
20458
20459 2004-08-10 11:39  pbartok
20460
20461         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
20462           - Added GetWindowPos method
20463
20464 2004-08-10 11:36  pbartok
20465
20466         * XplatUIWin32.cs:
20467           - Implemented several methods
20468
20469 2004-08-10 09:47  jackson
20470
20471         * TrackBar.cs: Allow control to handle buffering
20472
20473 2004-08-10 09:41  jackson
20474
20475         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
20476
20477 2004-08-10 09:24  jackson
20478
20479         * Label.cs, LinkLabel.cs: Let Control handle buffering.
20480
20481 2004-08-10 09:09  jackson
20482
20483         * StatusBar.cs: Let Control handle all the buffering.
20484
20485 2004-08-10 09:08  jackson
20486
20487         * Control.cs: Control will now handle the buffering code, so each
20488           control does not have to implement this.
20489
20490 2004-08-10 08:34  jackson
20491
20492         * XplatUIDriver.cs: Use default colors from the theme
20493
20494 2004-08-09 17:12  pbartok
20495
20496         * ImageList.cs:
20497           - Fixed several bugs Ravindra pointed out
20498
20499 2004-08-09 16:11  pbartok
20500
20501         * Control.cs:
20502           - Added incomplete dock layout code
20503           - Added support for mouse wheel
20504
20505 2004-08-09 16:09  pbartok
20506
20507         * XplatUIX11.cs:
20508           - Added handling for middle and right mousebutton
20509           - Added handling for mouse wheel
20510           - Added handling for key state and mouse state and position
20511           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
20512           messages
20513
20514 2004-08-09 15:40  jackson
20515
20516         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
20517           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
20518           checkin
20519
20520 2004-08-09 15:37  jackson
20521
20522         * StatusBar.cs: Initial implementation of StatusBar
20523
20524 2004-08-09 15:36  jackson
20525
20526         * ITheme.cs: Add support for drawing status bar and getting status
20527           bar item sizes
20528
20529 2004-08-09 15:35  pbartok
20530
20531         * MouseButtons.cs:
20532           - Fixed values
20533
20534 2004-08-09 15:34  jackson
20535
20536         * ThemeWin32Classic.cs: Add support for drawing status bar and get
20537           status bar item sizes
20538
20539 2004-08-09 15:21  jackson
20540
20541         * ThemeWin32Classic.cs: Use known colors for default control
20542           colours
20543
20544 2004-08-09 15:12  jackson
20545
20546         * ThemeWin32Classic.cs: Make the default font static, it is static
20547           in control so this doesn't change functionality and creating fonts
20548           is sloooooow.
20549
20550 2004-08-09 14:56  pbartok
20551
20552         * X11Structs.cs:
20553           - Added GrabMode enum
20554
20555 2004-08-09 14:55  pbartok
20556
20557         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20558           - Removed Run method, was only required for initial development
20559
20560 2004-08-09 14:51  pbartok
20561
20562         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
20563           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
20564           capture
20565
20566 2004-08-09 13:48  pbartok
20567
20568         * XplatUIX11.cs:
20569           - Fixed default sizing for child windows
20570
20571 2004-08-09 12:56  pbartok
20572
20573         * XplatUIX11.cs:
20574           - Added generation of WM_DESTROY message
20575           - Added handling of window manager induced shutdown
20576
20577 2004-08-09 11:31  jackson
20578
20579         * ThemeWin32Classic.cs: New names for control properties
20580
20581 2004-08-09 11:25  jackson
20582
20583         * Control.cs: Use new color names
20584
20585 2004-08-09 11:02  jackson
20586
20587         * XplatUI.cs: Get default window properties from the theme
20588
20589 2004-08-09 11:01  jackson
20590
20591         * ITheme.cs: The theme engine now controls default window
20592           properties
20593
20594 2004-08-09 11:00  jackson
20595
20596         * ThemeWin32Classic.cs: Add default window color properties
20597
20598 2004-08-09 10:17  jackson
20599
20600         * ThemeWin32Classic.cs: Use correct default back color
20601
20602 2004-08-09 10:05  jackson
20603
20604         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
20605           the theme now.
20606
20607 2004-08-09 09:56  jackson
20608
20609         * XplatUI.cs: Remove defaults, these are handled by the theme now.
20610
20611 2004-08-09 09:54  jackson
20612
20613         * Control.cs: Get default properties from the theme.
20614
20615 2004-08-09 09:53  jackson
20616
20617         * ITheme.cs: Themes now handle default control properties
20618
20619 2004-08-09 09:53  jackson
20620
20621         * ThemeWin32Classic.cs: Themes now handle default control
20622           properties so coloring will be consistent
20623
20624 2004-08-08 16:54  jordi
20625
20626         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
20627
20628 2004-08-08 15:08  jordi
20629
20630         * XplatUIX11.cs: fixes keyboard crash
20631
20632 2004-08-08 13:47  jordi
20633
20634         * Label.cs: add cvs header info
20635
20636 2004-08-08 12:09  jackson
20637
20638         * ThemeWin32Classic.cs: Add pen_buttonface
20639
20640 2004-08-08 11:52  jordi
20641
20642         * Label.cs, LinkLabel.cs: [no log message]
20643
20644 2004-08-08 11:34  jordi
20645
20646         * ThemeWin32Classic.cs: Use Windows Standard Colours
20647
20648 2004-08-07 17:32  jordi
20649
20650         * TrackBar.cs: throw exceptions of invalid enums values
20651
20652 2004-08-07 17:31  jordi
20653
20654         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
20655           draw method name
20656
20657 2004-08-07 16:56  jackson
20658
20659         * HorizontalAlignment.cs: Initial checkin
20660
20661 2004-08-07 13:16  jordi
20662
20663         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
20664           methods
20665
20666 2004-08-07 13:05  jordi
20667
20668         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
20669           GetSysColor defines
20670
20671 2004-08-06 18:01  pbartok
20672
20673         * ThemeWin32Classic.cs:
20674           - Fixed some rounding issues with float/int
20675
20676 2004-08-06 18:00  jackson
20677
20678         * DockStyle.cs, AnchorStyles.cs:
20679
20680                   Add flags and serializable attributes.
20681
20682 2004-08-06 17:46  pbartok
20683
20684         * XplatUIX11.cs:
20685           - Implemented GetParent
20686
20687 2004-08-06 17:18  pbartok
20688
20689         * TrackBar.cs:
20690           - Fixed some rounding issues with float/int
20691
20692 2004-08-06 17:17  pbartok
20693
20694         * X11Structs.cs, XplatUIX11.cs:
20695           - Fixed Refresh and Invalidate
20696
20697 2004-08-06 15:30  pbartok
20698
20699         * Control.cs, X11Structs.cs, XplatUIX11.cs:
20700           - Fixed recursive loop when resizing
20701           - Improved/fixed redrawing on expose messages
20702
20703 2004-08-06 09:53  jordi
20704
20705         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
20706           keyboard navigation
20707
20708 2004-08-06 08:02  pbartok
20709
20710         * X11Structs.cs, XplatUIX11.cs:
20711           - Fixed reparenting
20712           - Fixed window border creation
20713
20714 2004-08-05 15:38  pbartok
20715
20716         * XplatUIX11.cs:
20717           - Attempted fix for reparenting problems
20718
20719 2004-08-04 15:14  pbartok
20720
20721         * Control.cs:
20722           - Fixed Invalidation bug (calculated wrong client area)
20723           - Added ClientSize setter
20724
20725 2004-08-04 15:13  pbartok
20726
20727         * Form.cs:
20728           - Added AutoScale properties
20729
20730 2004-08-04 15:13  pbartok
20731
20732         * SWF.csproj:
20733           - Added latest files
20734
20735 2004-08-04 14:11  pbartok
20736
20737         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
20738           XplatUIX11.cs:
20739           - Added Invalidate handling
20740
20741 2004-08-03 17:09  jordi
20742
20743         * XplatUIDriver.cs: fixes spelling mistake
20744
20745 2004-07-27 09:53  jordi
20746
20747         * TrackBar.cs: fixes trackbar events, def classname, methods
20748           signature
20749
20750 2004-07-27 09:29  jordi
20751
20752         * ScrollBar.cs: fixes scrollbar events
20753
20754 2004-07-27 04:38  jordi
20755
20756         * Control.cs: changes to be able to run winforms samples
20757
20758 2004-07-26 11:42  jordi
20759
20760         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
20761           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
20762
20763 2004-07-26 05:41  jordi
20764
20765         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
20766           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
20767           implementation
20768
20769 2004-07-22 09:22  jordi
20770
20771         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
20772           check link overlapping, implement events, and fixes
20773
20774 2004-07-21 10:28  jordi
20775
20776         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
20777
20778 2004-07-21 10:19  jordi
20779
20780         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
20781           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
20782           LinkLabelLinkClickedEventArgs.cs,
20783           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
20784           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
20785           implementation
20786
20787 2004-07-19 13:09  jordi
20788
20789         * Control.cs, Label.cs: label control re-written: added missing
20790           functionlity, events, and properties
20791
20792 2004-07-19 10:49  jordi
20793
20794         * Control.cs: fixes SetBounds logic
20795
20796 2004-07-19 01:29  jordi
20797
20798         * Control.cs: Call RefreshWindow only if the window has created
20799
20800 2004-07-15 14:05  pbartok
20801
20802         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
20803           - Implemented ImageList and ImageList.ImageCollection classes
20804           - Added ColorDepth enumeration
20805           - Updated SWF VS.Net project
20806
20807 2004-07-15 11:06  jordi
20808
20809         * XplatUIStructs.cs: added MsgButons enum
20810
20811 2004-07-15 11:03  jordi
20812
20813         * Control.cs: added basic mouse handeling events
20814
20815 2004-07-15 03:38  jordi
20816
20817         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
20818           Vertical TrackBar control implementation
20819
20820 2004-07-13 09:33  jordi
20821
20822         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
20823
20824 2004-07-13 09:31  jordi
20825
20826         * Control.cs, Form.cs: commit: new properties and fixes form size
20827           problems
20828
20829 2004-07-09 14:13  miguel
20830
20831         * ProgressBar.cs: Spelling
20832
20833 2004-07-09 11:25  pbartok
20834
20835         * ProgressBar.cs:
20836           - Removed usage of Rectangle for drawing. Miguel pointed out it's
20837           faster
20838
20839 2004-07-09 11:17  miguel
20840
20841         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
20842
20843                 * ProgressBar.cs: Fixed spelling for `block'
20844
20845                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
20846                 style guidelines.
20847
20848                 Avoid using the += on rect.X, that exposed a bug in the compiler.
20849
20850 2004-07-08 23:21  pbartok
20851
20852         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
20853           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
20854           BaseCollection.cs, Binding.cs, BindingContext.cs,
20855           BindingMemberInfo.cs, BindingsCollection.cs,
20856           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
20857           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
20858           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
20859           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
20860           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
20861           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
20862           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
20863           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
20864           FrameStyle.cs, GiveFeedbackEventArgs.cs,
20865           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
20866           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
20867           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
20868           InputLanguageChangedEventArgs.cs,
20869           InputLanguageChangedEventHandler.cs,
20870           InputLanguageChangingEventArgs.cs,
20871           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
20872           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
20873           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
20874           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
20875           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
20876           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
20877           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
20878           QueryAccessibilityHelpEventArgs.cs,
20879           QueryAccessibilityHelpEventHandler.cs,
20880           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
20881           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
20882           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
20883           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
20884           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
20885           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
20886           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
20887           XplatUIX11.cs, lang.cs:
20888           - Initial check-in
20889