2007-02-12 Everaldo Canuto <everaldo@simios.org>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
2
3         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
4         font height when compatible_text_rendering is false. Partially fix #80801.
5
6 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
7
8         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
9
10 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
11
12         * Form.cs: Improved exception messages in ShowDialog.
13
14 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
15
16         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
17         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
18         if not set. Fixes bug #80764. Avoid accessing current_settings field
19         directly.
20
21 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
22
23         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
24         false.
25
26         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
27         public in 2.0 and for easy maintenance and dont break compatibility it is 
28         internal in 1.1.
29         
30 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
31
32         * ToolStripItem.cs: Implement using images from ImageList.
33
34 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
35
36         * DateTimePicker.cs: Change default date-formatting culture from
37           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
38           seems to be the way MS does it.
39
40 2007-02-08  Andreia Gaita  <avidigal@novell.com>
41
42         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
43         (the 6 was cut off on the right side)
44
45 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
46
47         * Form.cs: Tell MenuStrips to close when the form is clicked.
48         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
49         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
50         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
51         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
52         support for Overflow, where items that do not fit are automatically
53         reparented to a drop down menu.
54         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
55         Also: fixes bug #80747.
56
57 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
58
59         * ComboBox.cs: Remove warning (unused code).
60         * ScrollableControl.cs: Remove warning for 1.1 profile.
61
62 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
63
64         * Form.cs: Remove a warning.
65
66 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
67
68         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
69           'g' specifier, not documented anywhere, but seems to always show up
70           as a single space (might have something to do with the DateTime 'g'
71           specifier, which is the era format, but since DateTimePicker can't
72           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
73           won't crash if the format has an unmatched quote. Now shows
74           single-character formats correctly. Fixes #80744.
75
76 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
77
78         * StatusStrip.cs: Stretch property needs to call base.Stretch,
79         not this.Stretch to fix stack overflow. [Fixes bug #80760]
80
81 2007-02-07  Chris Toshok  <toshok@ximian.com>
82
83         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
84         background color.  it overwrites the background image we've
85         already painted.  Fixes #80599.
86
87 2007-02-07  Chris Toshok  <toshok@ximian.com>
88
89         * DataGrid.cs: return immediately from Edit() when there are no
90         columns.  Fixes #80662.
91
92 2007-02-07  Chris Toshok  <toshok@ximian.com>
93
94         * MessageBox.cs: fix #80625.  don't always show the Help button in
95         2.0.  use the displayHelpButton parameter to determine if we
96         should show it. Also, make the internal show_help field private.
97
98 2007-02-07  Chris Toshok  <toshok@ximian.com>
99
100         * Control.cs (SetVisibleCore): check in the proposed patch for
101         80604, and set is_visible before calling CreateControl.
102
103 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
104
105         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
106         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
107         on it.
108
109 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
110
111         * MenuAPI.cs: hotkey_active internal field added, it is required because
112         we need to know when hotkeys must be draw, before this change a keystate
113         Navigating was used but we can have menu in navigating state without
114         hotkeys. Fixes #80694.
115         
116         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
117
118 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
119
120         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
121           corresponding events and methods to be internal for 1.1 profile and
122           public for 2.0 profile (required by SizeGrip).
123         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
124           implicit control list). Don't set the size nor the location of the
125           SizeGrip anymore as it's not needed.
126         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
127           draw directly on the captured control (fixes #80656). Removed
128           ShowGrip (it wasn't used anywhere), redraw (always true), added
129           GetDefaultSize and GetDefaultRectangle to calculate defaults.
130         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
131           be called from SizeGrip.
132
133 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
134
135         * Timer.cs: Throw ArgumentException if Interval <= 0.
136
137 2007-02-05  Jackson Harper  <jackson@ximian.com>
138
139         * TreeView.cs: We need to check scrollbar visibility when window
140         visibility is updated, because non visible trees don't ever add
141         scrollbars.
142         * Cursor.cs: We want the override cursor to be reset to NULL when
143         we set current cursor to the default cursor.
144
145 2007-02-05  Jackson Harper  <jackson@ximian.com>
146
147         * TextControl.cs: Don't have crlfs when we are non multiline.
148         - Consolidate the line position.
149
150 2007-02-05  Jackson Harper  <jackson@ximian.com>
151
152         * X11Keyboard.cs: BACK+CTRL gets a special char code.
153
154 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
155
156         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
157           handling LeaveNotify->NotifyUngrab in order to send
158           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
159           after calling XUngrabPointer, so we call WindowUngrabbed directly
160           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
161         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
162           MouseCaptureChanged correctly. Also create handles if changing
163           Capture (matches MS behaviour).
164
165 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
166
167         * SizeGrip.cs: Make the last change 2.0 only.
168
169 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
170
171         * SizeGrip.cs: If resizing and the capture is lost, revert any size
172           changes to initial size (fixes #80597).
173
174 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
175
176         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
177
178 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
179
180         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
181           background) and only allow dragging if enabled. This way the
182           sizegrip can be used to fill the open square that otherwise would
183           have been shown in the bottom right corner of ScrollableControl
184           when ScrollableControl is not suppose to support sizing.
185         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
186           sizegrip is shown and enabled, and hook up with necessary events.
187
188 2007-02-01  Chris Toshok  <toshok@ximian.com>
189
190         * DataGridTextBoxColumn.cs: clean up the
191         GetFormattedString/GetColumnValueAtRow combination of functions.
192         Also fix UpdateUI, and the initial state of
193         IsInEditOrNavigateMode.
194
195         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
196         aren't supposed to scroll the textbox here, we're supposed to
197         scroll the datagrid.
198
199 2007-02-01  Chris Toshok  <toshok@ximian.com>
200
201         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
202         setting the position.
203
204 2007-02-01  Chris Toshok  <toshok@ximian.com>
205
206         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
207         here, since the most recent focus fixes keep us from generating
208         the Leave event when our textbox gets focus.
209         (Edit): we should be passing null for the column style's
210         instantText parameter.
211         
212 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
213
214         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
215         raised.  Fixes menu text/icons not showing up in PDN.
216
217 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
218
219         * Control.cs: Remove code in constructor that makes every
220         control with WS_CHILD set have initial location -1, -1.
221
222 2007-01-31  Jackson Harper  <jackson@ximian.com>
223
224         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
225         XplatUIX11.
226         * XplatUIX11.cs: Give teh keyboard to teh dnd.
227
228 2007-01-31  Jackson Harper  <jackson@ximian.com>
229
230         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
231         - Remove some debug code.
232
233 2007-01-31  Jackson Harper  <jackson@ximian.com>
234
235         * XplatUIX11.cs: If you set the override cursor during a grab, it
236         should actually override the grab cursor.  This comes into play
237         when you are setting custom cursors in a DND feedback method.
238
239 2007-01-31  Jackson Harper  <jackson@ximian.com>
240
241         * X11Dnd.cs: Add support for handling the QueryContinue and
242         GiveFeedback events.
243         - Cancel drag and drop actions when the escape key is clicked.
244         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
245         can handle the ESCAPE key.
246         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
247         done when dnd events are continued after the button is released.
248         - Add a new helper method so that dnd can translate key events.
249
250 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
251
252         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
253         make it more obvious what is happening.
254
255 2007-01-30  Jackson Harper  <jackson@ximian.com>
256
257         * XplatUIX11.cs: Don't break when handling button release in drag
258         and drop operations. We need that BUTTONUP message to get through
259         so capture is released.
260         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
261         this is handled automatically when the mouse is down.
262
263 2007-01-30  Jackson Harper  <jackson@ximian.com>
264
265         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
266         is closed, so we need to make sure that we aren't changing the
267         dialog result when the OK (Open or Save) button has been clicked
268         and we are closing the window ourselves.  Note we don't need to
269         worry about the cache being written in this case, because it was
270         already done in the previous FilOk call.
271
272 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
273         
274         * DateTimePicker.cs: Remove a warning.
275         * ComboBox.cs: Remove a couple of warnings.
276
277 2007-01-29  Chris Toshok  <toshok@ximian.com>
278
279         * XplatUIX11.cs: don't crash, and remove the icon if the user has
280         set one, if SetIcon is passed a null icon.
281
282 2007-01-29  Andreia Gaita  <avidigal@novell.com>
283
284         * TextBox.cs: Redraw when the password characters changes
285         * TextControl.cs: Check if textbox has a password char and draw 
286         a line of password chars instead of the text in the line. LineTag gets 
287         an extra Draw() method which allows document.Draw to override the text 
288         that will be drawn. Removes 1024 char limitation on length of passworded 
289         lines.
290
291 2007-01-29  Jackson Harper  <jackson@ximian.com>
292
293         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
294         single chars is not.
295
296 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
297
298         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
299         one pixel.  Fix a StackOverflowException caused by an overload wrongly
300         calling itself.
301
302 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
303
304         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
305         also remove ProcessArrowKey and put the code inside ProcessKeys.
306
307 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
308
309         * PaddingConverter.cs: Added.
310
311 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
312         
313         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
314         ShowPanels is false (fixes #80600). Only draw up to 127 characters
315         of text (fixes #80601). For panels clip the text to draw to the
316         panel (fixes #80603).
317
318 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
319
320         * ComboBox.cs: Fixed implementation of ResetText.
321
322 2007-01-25  Jackson Harper  <jackson@ximian.com>
323
324         * TextControl.cs: For the last char of a line we need to use the
325         line size, not that chars width, since it won't actually be
326         computed since the right side of a char is based on the start of
327         the left side of the next char, and the next char does not exist.
328
329 2007-01-25  Chris Toshok  <toshok@ximian.com>
330
331         * Splitter.cs: fix the new unit tests, and reindent some switch
332         statements.
333
334 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
335
336         * ComboBox.cs: Implemented 2.0 methods and events.
337         * TextBoxBase.cs: Added OnTextUpdate, so that
338         ComboBox.ComboTextBox can inform ComboBox of it.
339
340 2007-01-25  Jackson Harper  <jackson@ximian.com>
341
342         * TextControl.cs: Respect ShowSelection when deciding whether or
343         not to display the caret, this allows comboboxes to have carets
344         when the combotextbox does not have focus.
345
346 2007-01-25  Jackson Harper  <jackson@ximian.com>
347
348         * TextControl.cs: Add a Suspend/Resume for updating, basically the
349         same as the Suspend/Resume for recalc, except this will do actual
350         Invalidates.
351         - New Undo manager, works much like the MS version.
352         - Implemented Redo
353         * TextBoxBase.cs: The Cut operation is undoable.
354
355 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
356         
357         * TextBoxBase.cs: Don't antialias text. Makes it look way better
358         on Windows (no difference on Linux).    
359
360 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
361
362         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
363         we don't want to activate any windows. Fixes #79433.
364
365 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
366
367         - ButtonBase.cs: Fix capitalization of parameter: disposing.
368         [Fixes bug #80609]
369
370 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
371
372         * FileDialog.cs:
373         - Move to using System.ComponentModel.EventHandlerList
374         - Replace Refresh with Invalidate
375         - Clear the mime filecache on closing
376         - Some other memory reducing work. After beeing closed FD now uses
377           only about 300 KB for the fdo mime stuff plus the memory of the
378           cached icons.
379         * Mime.cs: Changed coding style and removed unnecessary commented
380         code. Some more memory memory reducing work.
381
382 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
383
384         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
385         a few other missing 2.0 properties.
386         * Theme.cs: Added DrawFlatStyleComboBox.
387         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
388
389 2007-01-24  Chris Toshok  <toshok@ximian.com>
390
391         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
392         wake_waiting flag, not just when there's data to be read.  if we
393         don't, then future wakeup's won't reach us and we'll be doomed to
394         wait for the entire 1 second timeout forever (unless there are X
395         events to be had).
396
397 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
398
399         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
400         until you pass Items.Count, not Items.Count - 1 like 1.1.
401
402 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
403
404         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
405
406 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
407
408         * ToolStripContainer.cs: The recent Dock fix exposed that I was
409         adding the panels in the wrong order.
410
411 2007-01-24  Jackson Harper  <jackson@ximian.com>
412
413         * TextBoxBase.cs: When we move the caret we also need to move the
414         selection, this fixes some random crashing after doing select
415         text, unselect, delete a char, paste.
416
417 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
418
419         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
420
421 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
422
423         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
424         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
425         * ToolBar.cs: Force redraw in BackgroundImageChanged.
426
427 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
428
429         * ToolBar.cs:
430         - Implement support for vertical toolbars. Fixes #80539;
431         - Call LayoutToolBar when resize, it fix some other problems in layout.
432         - Rename requested_height to requested_size, as we can have width on it
433         when toolbar is vertical.
434         - Create a private property "Vertical" that uses Dock to verify when 
435         toolbar is vertical or not.
436         - Set ControlStyles when change Dock property.
437         - Refactory in LayoutToolBar to have better variables names and to support
438         vertical toolbars.
439         - Fixes default value for ButtonSize when button count is equal zero, size
440         must be (39, 36) test case writed.
441
442 2007-01-23  Chris Toshok  <toshok@ximian.com>
443
444         * Control.cs: fix the checks so that they work correctly for mdi
445         parents/children.
446
447 2007-01-23  Chris Toshok  <toshok@ximian.com>
448
449         * Control.cs: ControlCollection seems to have super-secret
450         abstraction breaking knowledge of Mdi containers.  allow MdiClient
451         to add toplevel controls.
452
453 2007-01-23  Chris Toshok  <toshok@ximian.com>
454
455         * Control.cs: throw an ArgumentException if a toplevel control is
456         added to our control collection from ControlCollection.Add, as
457         well as from ControlCollection.IList.Add.  This fixes the
458         ControlSetTopLevelTest.TestTopLevelAdd unit test.
459
460         Also, in ControlCollection.IList.Add, don't through an
461         ArgumentNullException, throw an ArgumentException, when value ==
462         null.  This matches MS.
463
464 2007-01-23  Chris Toshok  <toshok@ximian.com>
465
466         * BindingSource.cs: initial, incomplete, implementation of
467         BindingSource.
468
469 2007-01-23  Jackson Harper  <jackson@ximian.com>
470
471         * TextControl.cs:
472         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
473         that I can fix a broken unit test (TextBoxTest::ClearUndo)
474         
475 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
476
477         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
478
479 2007-01-23  Andreia Gaita  <avidigal@novell.com>
480
481         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
482         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
483         IndexOfKey() for 2.0
484
485 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
486
487         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
488         to prevent it from changing z-order.
489         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
490         leave UI updates in MdiWindowManager.
491         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
492         1 sized (NC handling goes weird on Linux otherwise).
493         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
494         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
495         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
496         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
497         and SetWindowState(s) to allow for changing the size of an activated child
498         before activating it (reduces a lot of flicker).
499
500 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
501
502         * Form.cs: Changing FormBorderStyle has different semantics based
503         on whether the Form is visible or not.  If not visible, don't change
504         the Size.  But InvalidateNC needs to be called to force the window
505         to pick up the changes and redraw itself.  [Fixes bug #80574]
506
507 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
508
509         [Moma work]
510         * ContainerControl.cs: ProcessCmdKey.
511         * ErrorProvider.cs: new constructor.
512         * Form.cs: fix AutoValidateEvent compiler warning.
513         * Label.cs: fix OnAutoSizeChanged compiler warning.
514         * MenuStrip.cs: fix CanOverflow compiler warning.
515         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
516         * TextBox.cs: Dispose.
517         * ToolStrip.cs: CanOverflow, re-enable double buffering.
518         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
519         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
520         * ToolStripItem.cs: Overflow, RightToLeft properties.
521
522 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
523
524         * Form.cs: Move the layout of the main form to MdiWindowManager.
525         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
526         do a layout of the main window to update MdiClient's client area to
527         the right area. Fixes #80533. Remove the calculation of nc size, 
528         it was just wrong and the correct one is the same as for 
529         InternalWindowManager. 
530
531 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
532
533         * Control.cs: Setting Anchor or Dock needs to reset the other
534         to its default.  [Fixes bug #80556]
535
536 2007-01-20  Chris Toshok  <toshok@ximian.com>
537
538         * CheckedListBox.cs: class status changes.
539
540         * ScrollableControl.cs: same.
541
542         * RichTextBox.cs: same.
543
544         * ContainerControl.cs: same.
545
546         * ListView.cs: same.
547
548         * NotifyIcon.cs: same.
549
550         * MenuStrip.cs: same.
551
552         * RadioButton.cs: same.
553
554         * CheckBox.cs: same.
555
556         * PrintPreviewDialog.cs: same.
557
558         * Form.cs: same.
559
560 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
561
562         * TreeNode.cs: Apply Alan's patch for Name property.
563
564 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
565         
566         * Form.cs: Implemented SizeGripStyle.
567         * SizeGrip.cs: Check for minimum and maximum size for the
568         control being resized and only resize if size has actually
569         changed.
570
571 2007-01-19  Chris Toshok  <toshok@ximian.com>
572
573         * DataGridColumnStyle.cs: stop setting _readonly in the
574         PropertyDescriptor setter.  fixes a unit test failure.
575
576         also, rename ParentReadOnly to TableStyleReadOnly, and have it
577         just consult our table style (if we have one).  We don't need to
578         consult the datagrid readonly attribute because that's passed in
579         as the _ro arg to Edit.  this simplifies things a little.
580         
581         * DataGrid.cs: use CurrentColumn instead of
582         current_cell.ColumnNumber just to simplify some of the code.
583
584         switch the order of some things in the CurrentCell setter to keep
585         the previous cell from getting a textbox again -
586         EnsureCellVisibility causes scrolling to happen, which calls Edit.
587         So we need to set the new cell before calling it.
588         
589         call Edit in OnEnter, as does Microsoft.
590         
591         also, make sure the current table style isn't the one we create
592         initially when checking to see if it's different than the one
593         we're setting it to in BindColumns (this fixes #80421).
594
595         * GridTableStylesCollection.cs: table styles can have "" for a
596         mapping name.  part of the fix for #80421.
597
598         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
599         Edit significantly.
600
601 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
602
603         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
604         and less GDI object leaky-er.
605
606 2007-01-18  Andreia Gaita  <avidigal@novell.com>
607
608         * LinkLabel.cs: Add opaque control style
609
610 2007-01-18  Jackson Harper  <jackson@ximian.com>
611
612         * TextControl.cs: Calculate width properly.
613         - Don't store the tag's X offset, this can be figured out very
614         easily.
615         - When getting the caret tag make sure to get the last empty tag.
616
617 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
618
619         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
620         [Fixes bug #79959]
621
622         * Control.cs: Color.Empty shouldn't count for previous transparent
623         redraw changes.
624
625 2007-01-18  Jackson Harper  <jackson@ximian.com>
626
627         * TextBox.cs:
628         * RichTextBox.cs:
629         * TextControl.cs: Starting to merge in some pieces of my older
630         undo work.  Basically just some slight cleanup of the undo API.
631
632 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
633
634         * TrackBar.cs: Fix signature of RightToLeftLayout.
635         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
636         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
637         * Application.cs: Implemented UseWaitCursor.
638
639 2007-01-18  Jackson Harper  <jackson@ximian.com>
640
641         * TextControl.cs: We can't skip tags if any part of the tag is
642         visible.
643
644 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
645
646         * ContainerControl.cs: Override OnLayout.
647
648 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
649
650         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
651
652         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
653         everything else.
654
655 2007-01-18  Chris Toshok  <toshok@ximian.com>
656
657         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
658         (leftover from the container_selected days, I'd wager).  fixes bug
659         #80546.
660
661 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
662
663         * Control.cs: Apply patch from George to fix the new testcase on
664         bug #80451.  We can't just check for Color.Transparent, we need 
665         to check if the back color's alpha channel is < 255.
666
667 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
668
669         * Form.cs: Move setting show_icon = true to before the constructor
670         so that the base constructor has that information when it calculates
671         the form's size.  Was causing forms to be (6, 6) bigger than they
672         were supposed to be.  Thanks for catching this Rolf!
673
674 2007-01-18  Jackson Harper  <jackson@ximian.com>
675
676         * TextControl.cs: When replacing a selection we need to invalidate
677         from the initial selection start, because selection start is moved
678         to the end of the replacement.
679
680 2007-01-18  Andreia Gaita  <avidigal@novell.com>
681
682         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
683
684 2007-01-18  Chris Toshok  <toshok@ximian.com>
685
686         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
687         I just added.
688
689 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
690
691         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
692         layout methods and properties from ToolBarButton must be available
693         into ToolBarButtonInfo.
694
695 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
696
697         * Control.cs: If the control has a transparent background, we
698         need to refresh it when it moves and when it's parent's background
699         image changes.  [Fixes bug #80451]
700
701 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
702
703         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
704
705 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
706
707         * XplatUIWin32.cs: Implement proper double buffering for Windows.
708         [Fixes bug #80447, and probably speeds up things as well]
709
710 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
711
712         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
713         * XplatUIWin32.cs: We need to recalculate NC size after changing 
714         window style to toolwindow (otherwise the client rectangle will be
715         3 pixels to small for some reason).
716         * MdiWindowManager.cs: Revert NC size calculations to match how
717         they are calculated only based on window styles (to match
718         Win32AdjustWindowRectEx, since otherwise when setting size or 
719         location, Control will call Win32AdjustWindowRectEx to update client 
720         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
721         calculate a different value of client size causing another paint 
722         (and flickering))
723         * InternalWindowManager.cs: When moving or resizing a window only
724         update size or location if they actually changed.
725         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
726         (seems to match Windows behaviour better). Cleaned up 
727         ManagedWindowDecorations to draw what's needed and nothing else
728         (was drawing borders and lines where they shouldn't be)
729         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
730         (style = 0xFFFF) and takes into account caption height when 
731         calculating window rectangle.   
732
733 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
734
735         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
736         can be added to toolbar multiple times, we need to maintain a list of 
737         button information for each positions.
738
739 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
740
741         * ToolBar.cs: Some small stetic changes.
742
743 2007-01-16  Jackson Harper  <jackson@ximian.com>
744
745         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
746         that allow us to have nested recalc = false blocks.
747         - Add paste support for images in the RichTextBox
748         * RichTextBox.cs: flush the text after the color is changed, so
749         the change takes effect.
750         - Use SuspendRecalc
751         - Some extra debugging info
752         * TextControl.cs: Tags no longer track their length, it is just
753         computed from the next tags length, this makes things a little
754         simpler and reduces places that we have to track length changes.
755         - Refactored the linetag class a little so we could make it
756         a base class for different kinds of tags
757         - Created a image tag, a tag that can have a single image inserted
758         into it
759         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
760         that we can call suspend multiple times.
761         - Add some debugging methods
762
763 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
764
765         * MdiClient.cs: Add ActivatePreviousChild for 
766         mdi child window navigation.
767         * Form.cs: Use MdiClient.ActivateNextChild/
768         ActivatePreviousChild instead of Form.SelectNextControl
769         to select the next/previous child since 
770         SelectNextControl doesn't do it in the same order
771         as mdi children should do it.
772
773 2007-01-16  Chris Toshok  <toshok@ximian.com>
774
775         * Control.cs: remove container_selected field.
776
777 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
778
779         * MdiClient.cs: Update main form's ActiveChild when
780         updating keyboard focus for the mdi child.
781
782 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
783
784         * Control.cs: PreferredSize fix.
785
786         * Form.cs: Add several 2.0 events, properties, and methods.
787
788 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
789
790         * Form.cs: Provide meaningful message when MdiParent is assigned a
791         Form that is not an MdiContainer.
792
793 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
794
795         * MdiClient.cs: Update main form's ActiveChild when
796         activating a mdi child.
797
798 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
799
800         * MdiWindowManager.cs: Fix NRE when merging menus and main form
801         doesn't have a menu.
802
803         * Form.cs: Request NCRecalc after creating a mdi child window.
804         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
805         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
806         
807         * MdiClient.cs: Add new method SendFocusToActiveChild that either
808         sends keyboard focus to the active child, or to the MdiClient
809         if there are no child forms.
810         
811 2007-01-15  Chris Toshok  <toshok@ximian.com>
812
813         * ListView.cs: drop the *Internal overrides, just do our work in
814         ItemControl's WndProc instead.
815
816         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
817         of the various controls, and forward the events properly (in the
818         same manner as MS) from the textbox to the UpDown.  Also the
819         ActiveControl of the UpDownBase gets set properly now.  Finally,
820         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
821
822         * NumericUpDown.cs: set Text in the ctor.
823
824         * DomainUpDown.cs: call UpdateEditText in the ctor.
825         
826         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
827         so even a Selectable = false textbox can be focused if you click
828         in it.  Go figure.
829
830         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
831         just add their handling in their respective WndProc's.  Also add
832         an explicit FocusInternal method that doesn't consult CanFocus
833         before calling Select(this).
834
835         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
836         do our work in WndProc instead.
837
838         * TabControl.cs: same.
839
840         * ComboBox.cs: same.
841
842 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
843
844         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
845         Fixes #80006.
846
847 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
848
849         * ListViewItem.cs:
850         * ThemeWin32Classic.cs: Don't draw the item text outside
851         item bounds in Details view, as well as use trimming.
852         Fixes bug #80376.
853
854 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
855
856         * Form.cs: Implement Form.ShowIcon.
857         
858         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
859         null, which when combined with the DlgModalFrame window style removes
860         the icon from the title bar.
861
862 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
863
864         * Control.cs: Call OnMouseClick after OnClick. (2.0)
865
866 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
867
868         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
869         menu when mdi child windows theres a menu, uses insert to get icon
870         at first position. Partially fix #80006.
871
872 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
873
874         * Clipboard.cs: Implement 2.0 methods.
875
876 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
877
878         * Menu.cs: Implement Insert method of MenuItemCollection class
879         to fix MenuMerge.
880
881 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
882
883         * ListView.cs: Implement 2.0 FindItemWithText method.
884
885 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
886
887         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
888         to calculate menu bar size. Fixes #80290.
889
890 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
891
892         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
893
894 2007-01-11  Chris Toshok  <toshok@ximian.com>
895
896         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
897         initial form.
898
899 2007-01-11  Chris Toshok  <toshok@ximian.com>
900
901         * LinkLabel.cs: make sure to call base.Select in our Select method
902         if it turns out we're going to be selected (i.e. if we have a link
903         that is going to receive focus).  That way our container's
904         ActiveControl is updated properly.
905
906 2007-01-11  Chris Toshok  <toshok@ximian.com>
907
908         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
909         they have 1 or more links.  this fixes the crash gert reported.
910
911 2007-01-11  Andreia Gaita  <avidigal@novell.com>
912
913         * ContainerControl.cs: Remove ContainerSelected flag, not needed
914         anymore.
915
916         * Control.cs (Controls.Add): Check if control to be added to the collection
917         is a top level control, and throw an ArgumentException if it is.
918         Remove ContainerSelectedFlag, not needed anymore.
919
920         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
921         top most control doesn't activate the form. This fixes a problem in the
922         MessageBox, where the default button wouldn't get focus because the form
923         was activated before being Loaded - when the Owner is set, SetTopMost is
924         called, and it would activate it.
925
926 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
927
928         * Button.cs: When clicked and setting the parent form's DialogResult,
929         use FindForm instead of Parent, since parent could be a container
930         control and not the Form.  Fixes bug #80495.
931
932 2007-01-10  Chris Toshok  <toshok@ximian.com>
933
934         * Form.cs: move the call to SendControlFocus into the same
935         is_loaded check.
936
937 2007-01-10  Chris Toshok  <toshok@ximian.com>
938
939         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
940         It breaks in the face of the new ActiveControl stuff, and should
941         be unnecessary.
942
943         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
944         activecontrol's focus if it's not already set, after we set
945         ActiveControl, but before we call OnActivated.  Re-fixes #79667
946         after the previous focus/active control fixes regressed it.
947
948         * Control.cs: reindent some code.
949         
950 2007-01-10  Chris Toshok  <toshok@ximian.com>
951
952         * Splitter.cs: clearing some outstanding changes from my tree.
953         Replace all accesses (not writes) to the internal dock_style field
954         with the Dock property.
955
956 2007-01-10  Chris Toshok  <toshok@ximian.com>
957
958         * Control.cs: make FireEnter, FireLeave, FireValidating, and
959         FireValidated virtual.
960
961         * Form.cs: override and don't chain up calls to FireEnter and
962         FireLeave.
963
964 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
965
966         * ListView.cs: Add more text padding space when using
967         auto resize for columns (the previous value didn't work fine).
968
969         * ThemeWin32Classic.cs: Update text position inside columns,
970         to match the appeareance of .Net.
971
972         * ColumnHeader.cs: When using auto resize, only the Width should
973         depend on the sub items, not the Height. Also, set width after
974         auto resizing (the value of Width should never remain as -1 or -2).
975
976 2007-01-10  Chris Toshok  <toshok@ximian.com>
977
978         * Application.cs: fix compilation errors when debug is enabled.
979
980 2007-01-10  Chris Toshok  <toshok@ximian.com>
981
982         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
983         add some nice ascii art pictures and explanation of the process).
984         (GetMostDeeplyNestedActiveControl): new utility function we need
985         because our ActiveControl can refer to a child container with its
986         own ActiveControl.
987
988         * Form.cs (OnActivated): remove the call to SelectActiveControl
989         from here, since you can override this method and not chain up,
990         and winforms still sets the active control.
991         (OnCreateControl): also remove the unnecessary SelectActiveControl
992         call from here.
993         (WndProc): it's actually called from the WM_ACTIVATE block, just
994         before calling OnActivated.
995
996         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
997         inside the else.  the ActiveControl setter will end up setting
998         focus on @control.  This keeps us from setting it again (and
999         generating an extra LostFocus/GotFocus pair).
1000         (Select (bool, bool)): reindent.
1001
1002 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1003
1004         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1005         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1006         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1007         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1008         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1009         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1010         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1011         ToolStripTextBox.cs: Another wave of corcompare work.
1012
1013 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1014
1015         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1016         the Width property.
1017
1018         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1019         methods by callling Column.AutoResize method on columns.
1020
1021 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1022
1023         * Control.cs: Provide proper implementations of PreferredSize
1024         and GetPreferredSize (2.0).
1025
1026 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1027
1028         * Form.cs: Remove one character (!) to make my previous OnClosing
1029         stuff work for modal windows like MessageBox.
1030
1031 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1032
1033         * ListView.cs:
1034         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1035         ListView.Columns to get the last displayed column. Fixes #80452.
1036
1037 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1038
1039         * Label.cs, LinkLabel.cs: Source code identation fixes.
1040
1041 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1042
1043         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1044         we dont need to invalidate only borders because when we invalidate four
1045         border lines the invalidate's generates a complete redraw of button, 
1046         because it now invalidate a complete rect some other redraws operations
1047         are fixed. Fixes #80196.
1048         
1049         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1050         Remove ToolBarInvalidateEntireButton as it is not used.
1051
1052 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1053         
1054         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1055         called for 2.0 profile.
1056         * CloseReason.cs: Make class internal for 1.1.
1057
1058 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1059
1060         * ToolStripManager.cs: Implement FindToolStrip functionality.
1061         * ToolStrip.cs: Register and unregister with ToolStripManager.
1062
1063 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1064
1065         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1066         to ArrangedElementCollection.  Implemented this with as few #if's as 
1067         possible (which is still too many).
1068
1069 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1070
1071         * Control.cs: Implement SizeFromClientSize() [2.0].
1072
1073 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1074
1075         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1076         use Theme.BorderSize to calculate area instead of static value 1, 
1077         by the way use new BorderStaticSize instead     Border3DSize when 
1078         border_static is true. Fixes #79537.
1079         
1080         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1081         
1082         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1083         it is not needed.
1084
1085 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1086
1087         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1088
1089 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1090
1091         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1092         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1093         
1094         * Hwnd.cs: 
1095         - border_static field added, it will used to define when a control 
1096         theres 3D border but it must be static (thin).
1097         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1098         instead of static value 1, by the way use new BorderStaticSize instead
1099         Border3DSize when border_static is true.
1100
1101         * XplatUIX11.cs, XplatUIOSX.cs: 
1102         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1103         
1104         * Theme.cs: BorderStaticSize field added.
1105
1106 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1107
1108         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1109
1110 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1111
1112         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1113         mimic same behavior than win32 that set border only in CreateParams,
1114         it fix problems under CreateParams overrides. Fix #79442 and partial
1115         fix #79537.
1116         
1117         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1118         of thi control you must call recreate handle. 
1119         
1120         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1121         need to do anything as RecreateHangle will take care about borders.
1122
1123 2007-01-05  Mike Kestner  <mkestner@novell.com>
1124
1125         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1126         cycles between the ItemControl and parent.  Fixes #80388.
1127
1128 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1129
1130         * Control.cs: Lazy init layout engine. Do not directly use 
1131         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1132
1133 2007-01-05  Chris Toshok  <toshok@ximian.com>
1134
1135         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1136         unless our list manager has changed (i.e. unless we have reason to
1137         believe our columns have changed).  Fixes #80422.
1138         
1139         also, disable the call do BindColumns in
1140         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1141         1.1 the event isn't raised in response to a column addition on a
1142         table.)
1143
1144 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1145
1146         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1147         that inheritors can not call it if they choose.  Fixes bug #80456.
1148
1149 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1150
1151         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1152         doesn't blow up with a null exception on marshalling.
1153         
1154 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1155
1156         * Control.cs: Implement several 2.0 protected properties and methods.
1157         Ensure that all necessary events are being called when properties
1158         are set.
1159
1160 2007-01-05  Mike Kestner  <mkestner@novell.com>
1161
1162         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1163         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1164         instead of the parent control.  Fixes #80378.
1165
1166 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1167
1168         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1169           determine whether to use yard-pound or not (bug #78399).
1170
1171 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1172
1173         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1174         problems. So it is time to bring back the old popupbutton colors.
1175
1176 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1177
1178         * ColumnHeader.cs:
1179         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1180         property by using the internal information of the
1181         columns order in ListView.
1182
1183 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1184
1185         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1186         Add 2.0 Tag properties.
1187
1188         * LinkArea.cs: Add 2.0 ToString method.
1189
1190 2007-01-03  Chris Toshok  <toshok@ximian.com>
1191
1192         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1193         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1194         when we're editing, which fixes #80047.
1195
1196 2007-01-03  Chris Toshok  <toshok@ximian.com>
1197
1198         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1199         #80404.
1200
1201 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1202
1203         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1204         property and implementation.
1205
1206         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1207         for MdiWindowListItem property.
1208
1209         * ToolStripDropDown.cs: Don't consider hidden menu items while
1210         laying out the menu.
1211
1212 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1213
1214         * SendKeys.cs: window handle is not needed in win32, so just
1215         get the active window for X after parsing keys and don't use
1216         it when building the message; it is passed by parameter to the 
1217         Xplat method and used there to build the message instead. Also,
1218         wait for events to be processed on SendWait, as opposed to Send,
1219         which doesn't wait :) Playing with threads and Send() completely 
1220         hangs on ms.net, only SendWait() works.
1221         
1222         XplatUIX11.cs
1223         X11Display.cs: Check for valid window handle.
1224
1225 2007-01-03  Jackson Harper  <jackson@ximian.com>
1226
1227         * TextControl.cs: Need to prevent wrap calculations when replacing
1228         text (this was there before i removed it accidently).
1229         - Don't update the cursor during the positioning, just set it to
1230         selection_start at the end of the operaion.
1231
1232 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1233
1234         * Control.cs:
1235         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1236         
1237 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1238
1239         * MonthCalendar.cs: Added Click and DoubleClick events again,
1240         but this time they only hide Control's Click and DoubleClick.
1241         
1242 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1243
1244         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1245         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1246
1247 2007-01-02  Jackson Harper  <jackson@ximian.com>
1248
1249         * TextBoxBase.cs: We move the caret with the split now, so we
1250         don't need to explicitly move the caret after splitting.  This
1251         fixes the caret bumping down an extra line on Enter.
1252
1253 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1254
1255         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1256         2.72). 
1257
1258         * ScrollableControl.cs: Add Scroll event.
1259
1260 2007-01-02  Mike Kestner  <mkestner@novell.com>
1261
1262         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1263         to fix all hdr height padding codepaths.  Fixes #80207.
1264
1265 2007-01-02  Chris Toshok  <toshok@ximian.com>
1266
1267         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1268         setting it to the Control defaults anyway, and it being after the
1269         Dock set was screwing up layout.
1270         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1271         no need to call UpdateStatusBar here, as it'll be re-layed out if
1272         it needs to be.
1273
1274 2007-01-02  Mike Kestner  <mkestner@novell.com>
1275
1276         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1277         to header height for width == -1. Fixes the rest of #80207.
1278
1279 2007-01-02  Mike Kestner  <mkestner@novell.com>
1280
1281         * ListView.cs: rework the mouse event forwarding everaldo added
1282         to translate the coordinates to the parent control not
1283         raise the parent events until after we've done our work. Hover
1284         needs more work, in the case where HoverSelection is on, because
1285         the item control receives more than one MouseHover per Enter
1286         event, so we need to ensure only the "first" hover gets forwarded.
1287         Opening a minor bug for that.
1288
1289 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1290
1291         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1292         * ListControl.cs: Implemented AllowSelection property. Removed extra
1293         tabs.
1294         * ListBox.cs: Implemented AllowSelection property.
1295
1296 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1297
1298         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1299         SelectedItem, it prevent for errors when you must disable item
1300         before perform click. Fixes #80409.
1301
1302 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1303
1304         * MenuAPI.cs: Prevent second level and beyond submenus to close
1305         until first level when move out side of popup.
1306         
1307 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1308
1309         * MenuAPI.cs:
1310         - Down submenu positin in three pixels.
1311         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1312
1313 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1314
1315         * ThemeWin32Classic.cs:
1316         - Fix popup menu size adding one pixel on the top.
1317         - Down menu item border from two to one to mimic Win32.
1318         - Some source identation fixes. 
1319
1320 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1321
1322         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1323         position of menu arrows, it fix wrong arrow size.
1324
1325 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1326
1327         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1328         instead of line, it simplify draw operation and fix it using 3D
1329         borders to mimic Win32.
1330
1331 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1332
1333         * StatusStrip.cs: Add implementation of the sizing grip.
1334
1335         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1336         StatusStrip rendering.
1337
1338 2006-12-31  Chris Toshok  <toshok@ximian.com>
1339
1340         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1341         override the layout style (anchor/dock) of the control.  assign to
1342         Dock instead.  Fixes bug #80416.
1343
1344         * ToolStrip.cs: same.
1345
1346 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1347
1348         * ContainerControl.cs: Use ContainerSelected flag to check if 
1349         a Container is directly selected, or if Select is called on a 
1350         non-container. If a container is directly selected, focus events 
1351         should not be raised.
1352         Apply #80411 patch to throw exception on set_ActiveControl if 
1353         control is the same as the current one.
1354         
1355         * Control.cs: Use ContainerSelected flag (see above).
1356         Add invalidation check to raise event but not invalidate if 
1357         dimensions are 0.       
1358         Apply #80411 patch.
1359         
1360
1361 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1362
1363         * MenuAPI.cs: After click, dont close popup menu when menu is
1364         ContextMenu. Fixes #80399.
1365
1366 2006-12-30  Chris Toshok  <toshok@ximian.com>
1367
1368         * ContainerControl.cs: make sure we throw the exception if the
1369         container control doesn't contain the control we're setting
1370         ActiveControl to.
1371
1372 2006-12-30  Chris Toshok  <toshok@ximian.com>
1373
1374         * Control.cs (SetTopLevel): fix the exception raised by
1375         SetTopLevel for child controls.
1376         (set_Anchor): call UpdateDistances when setting the anchor type.
1377         This fixes bug #80336.
1378
1379 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1380
1381         * Theme.cs: For now, revert back to 8pt font.
1382
1383 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1384
1385         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1386         Fixes #80395.
1387
1388 2006-12-29  Chris Toshok  <toshok@ximian.com>
1389
1390         * Control.cs: reorder the code in OnResize to give the same event
1391         ordering as MS.
1392
1393 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1394
1395         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1396         TileHorizontally and TileVertically.
1397         
1398 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1399
1400         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1401         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1402         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1403         Corrected copyright and email adress.
1404
1405 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1406
1407         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1408         of Exception in FullPath property if no TreeView is associated with
1409         the TreeNode.
1410
1411 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1412
1413         * Theme.cs: Marked default_font as private, and initialize it in ctor
1414         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1415         on 2.0 profile.
1416         * ThemeGtk.cs: Removed default_font intialization.
1417         * ThemeWin32Classic.cs: Removed default_font initialization.
1418
1419 2006-12-28  Chris Toshok  <toshok@ximian.com>
1420
1421         * Control.cs: fix a couple of place where we were creating handles
1422         more aggressively than we should be.  Fixes ControlRefresh unit
1423         tests.
1424
1425 2006-12-28  Chris Toshok  <toshok@ximian.com>
1426
1427         * Control.cs: contrary to what the comment said, Control.Dock does
1428         not supercede Control.Anchor - the last one you assign to decides
1429         the layout behavior.  so we need to keep track of which was the
1430         last set.  Also, fix some of the affected property arguments in
1431         PerformLayout calls, and remove an redundant parent.PerformLayout
1432         call in OnResized.
1433
1434         Add a VisibleInternal property, which returns is_visible.  We
1435         can/should get rid of all the usage of this field elsewhere.
1436
1437 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1438         
1439         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1440         control style, not DoubleBuffer. Added UseDoubleBuffering property
1441         that indicates whether doublebuffering is enabled and supported.
1442         (comment from and code based on Gert Driesen's patch in #80324).
1443         Fixes #80324.
1444
1445 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1446         
1447         * Control.cs: Fixed a NRE.
1448
1449 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1450
1451         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1452         for 2.0.
1453
1454 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1455
1456         * Control.cs: Rewrote double buffering, now a seperate
1457         class handles all the buffering, no Graphics is disposed of
1458         until the painting is finished (earlier implementation 
1459         would crash if the control was resized in the OnPaint, 
1460         since it would cause the double buffer to be recreated
1461         and the old one disposed), a separate Graphics is 
1462         created for every paint (MS behaviour and anyways the state
1463         of the Graphics would have to be saved and restored otherwise)
1464         
1465         * XplatUIDriver.cs: 
1466         * XplatUIX11.cs:
1467         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1468         so that we can get the graphics for the back buffer without
1469         having to create a new one and remove the offscreen_dc parameter
1470         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1471         
1472 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1473
1474         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1475         Also make virtual all the key-related methods.
1476
1477         * ListViewItem.cs: Make virtual the key related methods for
1478         ListViewSubItemCollection.
1479
1480 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1481
1482         * ListView.cs:
1483         * ListViewItem.cs:
1484         * ThemeWin32Classic.cs:
1485         * Theme.cs: Initial support for Tile view in ListView,
1486         as well as the implementation of the required bits for it (Item
1487         and Subitem).
1488
1489 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1490
1491         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1492         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1493         Provide useful exception messages.
1494
1495 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1496
1497         * TrackBar.cs: Remove a warning.
1498         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1499         when used by DateTimePicker, fixes #80287. This also requires that 
1500         MonthCalendar implements it's own drawing for the yearly updown control,
1501         otherwise the Capture tracking would be too complicated. Removed the Click 
1502         and DoubleClick events (according to comments they were hiding the base class
1503         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1504         raise these events, not that they cannot be raised. It is possible to raise 
1505         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1506         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1507         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1508         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1509         event, no longer needed.
1510         
1511 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1512
1513         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1514         true if new value differs from current value.
1515
1516 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1517
1518         * Control.cs: ControlCollection.Count must be public. Fixed build of
1519         unit tests.
1520
1521 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1522
1523         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1524
1525 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1526
1527         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1528
1529 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1530
1531         * Control.cs: Invalidates control including when Width and Height is 
1532         equal zero or is not visible, only Paint event must be care about 
1533         this. Fixes #79913.
1534
1535 2006-12-26  Chris Toshok  <toshok@ximian.com>
1536
1537         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1538         more corcompare work.
1539
1540         * DataGridView.cs: fix compiler warning.
1541
1542         * ColumnHeader.cs: some corcompare work, and also take the
1543         opportunity to make the internal fields private.
1544
1545         * ListView.cs: fix the fallout from the above field change.
1546
1547 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1548
1549         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1550         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1551         ToolStripTextBox.cs: Fixes to events and corcompare.
1552
1553 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1554
1555         * ListView.cs: Call owner.OnMousexx event to propagate events from
1556         item to ListView. Fixes #80367.
1557
1558 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1559
1560         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1561         if value is less than one. ItemHeight should not be set to a value
1562         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1563         Removed extra tabs.
1564
1565 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1566
1567         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1568         * ToolStripStatusLabel.cs: Add Spring for Moma.
1569
1570 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1571
1572         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1573         Fixed code formatting. Removed debug code.
1574         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1575
1576 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1577
1578         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1579         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1580         ArgumentOutOfRangeException if ColumnCount is negative. In 
1581         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1582         less than 4 or higher than 32768.
1583         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1584         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1585         Fixed IsFormatProviderDefault to return true if FormatProvider has
1586         not been explicitly set.
1587
1588 2006-12-25  Chris Toshok  <toshok@ximian.com>
1589
1590         * Application.cs: add a couple of 2.0 events.
1591
1592 2006-12-25  Chris Toshok  <toshok@ximian.com>
1593
1594         * Control.cs: fix compiler warning.
1595
1596         * AxHost.cs: corcompare fixes.
1597
1598         * ApplicationContext.cs: corcompare fixes.
1599
1600 2006-12-25  Chris Toshok  <toshok@ximian.com>
1601
1602         * Control.cs: only update dist_right/dist_bottom if the
1603         width/height is > 0.  this fixes anchored controls being resized
1604         smaller until they disappear and then resized larger again.
1605
1606 2006-12-25  Chris Toshok  <toshok@ximian.com>
1607
1608         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1609         since they're nothing more than X/Left and Y/Top, respectively.
1610
1611         Also, move back to a per-control Bitmap/Graphics for
1612         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1613         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1614         Height.
1615
1616 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1617
1618         * MessageBox.cs: Implemented overload that takes a new "bool
1619         displayHelpButton" by adding a new internal field "show_help".
1620         When clicked this will raise the HelpRequested on the owner or the
1621         main form. 
1622
1623         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1624         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1625
1626         * ListView.cs: Add support ColumnWidthChanged and
1627         ColumnWidthChanging. 
1628
1629         Add support for ColumnReordered event.
1630         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1631         reorder.
1632
1633         Very nice codebase!
1634
1635         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1636
1637         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1638
1639 2006-12-24  Chris Toshok  <toshok@ximian.com>
1640
1641         * GridTablesFactory.cs: 2.0 corcompare work.
1642
1643         * ToolStripContainer.cs: add "override" to
1644         ContextMenuStripChanged, and remove the local event object.
1645
1646         * ToolStripDropDown.cs: same with a couple properties.
1647
1648         * ToolStripPanel.cs: same with AutoSizeChanged event.
1649
1650         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1651
1652         * Form.cs: add the remaining 2.0 events, and do some corcompare
1653         attribute work.
1654
1655         * DateTimePicker.cs: add "new" to padding.
1656
1657         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1658
1659         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1660
1661         * DataGridView.cs: PaddingChanged is overridden.
1662
1663 2006-12-24  Chris Toshok  <toshok@ximian.com>
1664
1665         * Control.cs: corecompare work here too.
1666
1667         * DataGridViewElement.cs, DataGridView.cs,
1668         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1669         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1670         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1671         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1672         work.
1673
1674 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1675
1676         * Control.cs: Switched the error message on the console for a
1677         todo.  A review of the code will have to cope with this anyways
1678         (since its a large feature, it is in our radar) and it was
1679         producing too much output when running PDN.
1680
1681         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1682         changes.  Applications depend on this (PDN 2.72)
1683
1684 2006-12-23  Chris Toshok  <toshok@ximian.com>
1685
1686         * TableLayoutSettings.cs: finish up the corcompare work for this
1687         class.
1688
1689 2006-12-23  Chris Toshok  <toshok@ximian.com>
1690
1691         * Control.cs: make SetImplicitBounds internal, do some futzing
1692         with LayoutEngine so that it's available in 1.1, and remove the
1693         entire duplicated code mess from PerformLayout.  Use
1694         System.Windows.Forms.Layout.DefaultLayout instead.
1695
1696         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1697
1698 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1699
1700         * Form.cs: Add MainMenuStrip property.
1701
1702 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1703
1704         * Control.cs: Add ContextMenuStrip property and implementation.
1705         Fix ContextMenu implementation to show menu centered on control when
1706         activated using the keyboard instead of showing at screen (0,0).
1707
1708         * ToolStripDropDown.cs: Fix needed overload of Show ().
1709
1710 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1711
1712         * Menu.cs: Name property added for 2.0 profile.
1713         
1714 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1715
1716         * Menu.cs: Update information about FindMenuItem, method to be
1717         implemented soon.
1718
1719 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1720
1721         * MenuAPI.cs: When deselect items deselect also selected subitems.
1722         
1723 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1724
1725         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1726         FindSubItemByCoord to found itens that is not active, also an
1727         cheking added to FindSubItemByCoord to search for items only 
1728         in visible popup windows. Fixes #80274.
1729
1730 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1731
1732         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1733         internal property, it be care about change ExStyle. 
1734
1735 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1736
1737         * ContainerControl.cs: set activeControl for parent forms up the 
1738         tree when the new activecontrol is a container.
1739         When validating the active control, if it is a container, also
1740         raise up the validation for it's active control. Fixes #80280
1741         
1742         * Control.cs: Add internal property flag and check to prevent
1743         Focus events from getting raised when Select() is called for
1744         a ContainerControl. There are still too many focus events being
1745         raised at the moment though.
1746         Cleaned up the code a bit.
1747
1748 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1749
1750         * Control.cs: Added all missing 2.0 events.and
1751         fixed a couple of corcompare issues.
1752         * TrackBar.cs: Implemented missing 2.0 bits.
1753         * MonthCalendar.cs, 
1754         * DateTimePicker.cs, 
1755         * MdiClient.cs: Fixed some corcompare issues.
1756
1757 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1758
1759         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1760         SplitterPanel.cs: corecompare work.
1761
1762 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1763
1764         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1765         Clean up warnings for BackgroundImageChanged and PaddingChanged
1766         events now that they are implemented in Control.cs.
1767
1768 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1769
1770         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1771         
1772         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1773         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1774         of TableLayoutPanel and supporting cast.
1775
1776 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1777
1778         * XplatUIWin32.cs: 
1779         - GrabWindow now confines the mouse pointer to the confine window.
1780         - Added Win32ClipCursor and Win32GetClipCursor.
1781
1782         * Control.cs: 
1783         - Added CaptureWithConfine to be able to capture and confine 
1784         mouse pointer.
1785         
1786         * InternalWindowManager.cs: 
1787         - Call CaptureWithConfine instead of Capture if we're an
1788         MdiChild (fixes #79982).
1789
1790 2006-12-21  Chris Toshok  <toshok@ximian.com>
1791
1792         * DataGrid.cs: guard against the initial state of selection, where
1793         selection_start == -1.  make sure we only select from index >= 0.
1794         Fixes bug #80291.
1795
1796 2006-12-21  Chris Toshok  <toshok@ximian.com>
1797
1798         * Control.cs: we don't need to be so draconian with
1799         UpdateDistances, and we thusly don't need to call it before
1800         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1801
1802 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1803
1804         * ComboBox.cs,
1805         TextBox.cs: Implemented AutoComplete properties.
1806
1807 2006-12-20  Chris Toshok  <toshok@ximian.com>
1808
1809         * DataGridView*.cs: some corecompare work.
1810
1811 2006-12-20  Jackson Harper  <jackson@ximian.com>
1812
1813         * XplatUIX11.cs: We need to hide the caret when deleting it,
1814         otherwise you get carets left lying around everywhere.
1815         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1816         prevents getting some weird half drawn caret tracers when
1817         scrolling.
1818         * TextControl.cs: Attempt to reduce the number of times we need to
1819         recreate the caret.
1820
1821 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1822
1823         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1824
1825 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1826
1827         * DateTimePicker.cs:
1828         - Implemented missing 2.0 bits.
1829         - Changed some default values to match MS.
1830         
1831 2006-12-20  Jackson Harper  <jackson@ximian.com>
1832
1833         * TextBoxBase.cs: When changing the font across the document we
1834         can't recalculate after changing each line, since that will cahnge
1835         the line count.
1836         - PreferredHeight is a little different than i thought.
1837         - When backspacing, move the caret before we do the actual char
1838         delete, because when that delete crosses a wrap boundary the
1839         positional information will change.
1840
1841 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1842
1843         * Control.cs: Added some missing 2.0 bits: 
1844         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1845         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1846         add IBindableComponent and IDropTarget implementation.
1847         
1848         * MonthCalendar.cs: 
1849         - Added all missing 2.0 features:
1850         BackgroundImageLayout, RightToLeftLayout, 
1851         OnHandleDestroyed, RightToLeftLayoutChanged, 
1852         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1853         PaddingChanged.
1854         - Rewrote all the BoldDate code, it was completely broken.
1855         - Fixed all the tests (the tests can now be re-enabled, the
1856         problems were not with the tests, but with the control, it was
1857         mostly broken).
1858         
1859         * DateTimePicker.cs: Changed the location where the 
1860         MonthCalendar is shown.
1861         
1862 2006-12-19  Chris Toshok  <toshok@ximian.com>
1863
1864         * DataGridView.cs: add IDropTarget implementation.
1865
1866         * ToolStripPanel.cs: add IDropTarget implementation.
1867
1868 2006-12-19  Jackson Harper  <jackson@ximian.com>
1869
1870         * TextControl.cs: soft now means something different than what it
1871         used to mean, we want to move the caret regardless of whether or
1872         not this break was soft (would we really have wanted the caret
1873         to not move with the break in the old context?)
1874         * TreeView.cs: Make sure we factor in the vert scrollbar when
1875         calculating the horizontal scrollbar's maximum.
1876
1877 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1878
1879         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
1880         check for keywords in alternate casing, close bug #80049.
1881
1882 2006-12-19  Chris Toshok  <toshok@ximian.com>
1883
1884         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
1885         methods (which all do nothing).
1886
1887         * IDropTarget.cs: add the 4 missing methods.
1888
1889 2006-12-19  Chris Toshok  <toshok@ximian.com>
1890
1891         * TableLayoutRowStyleCollection.cs: corcompare work.
1892         
1893         * TableLayoutSettings.cs: same.
1894
1895         * TableLayoutStyle.cs: same.
1896
1897         * TableLayoutColumnStyleCollection.cs: same.
1898
1899 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
1900
1901         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
1902         TableLayoutPanel I've had in my local tree for way too long.
1903
1904 2006-12-19  Miguel de Icaza  <miguel@novell.com>
1905
1906         * TableLayoutSettings.cs: Finish the public API (still needs all
1907         the logic to update on changes). 
1908
1909         * TableLayoutPanelCellPosition.cs: new file.
1910         
1911         * TableLayoutRowStyleCollection.cs,
1912         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
1913         TableLayoutSettings.cs: Track the final 2.0 table api.
1914
1915 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1916
1917         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
1918         and Image List 2.0 members for ColummnHeader.
1919         * ListView.cs: Add key-related 2.0 methods for
1920         ColumnHeaderCollection.
1921
1922 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1923
1924         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
1925         ArgumentNullException if items argument is null. Ignore null item in
1926         arrays. Removed extra tabs.
1927
1928 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1929
1930         * MonthCalendar.cs: Fixed InvalidCastException.
1931
1932 2006-12-19  Jackson Harper  <jackson@ximian.com>
1933
1934         * TextControl.cs: Don't increment the position here.
1935         - When calculating char positions only add in the line break size
1936         for hard line breaks.
1937
1938 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1939
1940         * SendKeys.cs: Changed some things to match ms.net behaviour
1941         when parsing shifted capital letters.
1942         
1943         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
1944         Add window handle as parameter to SendInput. X11 needs the 
1945         window handle, and the handle being passed      to it in the keys 
1946         queue is the active control handle (which windows needs), not 
1947         the window handle.
1948         
1949         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
1950         to support SendKeys on X.       
1951         
1952         * X11Keyboard: Implement helper method to lookup a linux keycode
1953         given the virtual keycode. Added table of keycode-2-virtualkey
1954         values to support this.
1955
1956 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1957
1958         * ListView.cs: Add support for SelectedIndexCollection
1959         and SelectedItemCollection 2.0 methods. Implement support
1960         for ImageKey too.
1961         * ListViewItem.cs: Add support for ListViewSubItemCollection
1962         2.0 methods. Also, fix an incorrect behavior of AddRange method
1963         (it shouldn't call Clear).
1964         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
1965
1966 2006-12-19  Jackson Harper  <jackson@ximian.com>
1967
1968         * RichTextBox.cs: 
1969         * TextBoxBase.cs: New args for FormatText
1970         * TextControl.cs: Rewrote the main drawing method, this version
1971         feels a little easier to understand and debug to me.  Hopefully it
1972         does to others also
1973         - Fix FormatText to OR in the new formating values.  Added
1974         FormatSpecified param, basically this works in the same way as
1975         BoundsSpecified in Control.
1976         - Set the caret properties when the caret is positioned.
1977         - When wrapping text make sure that we calculate the width of the
1978         last character
1979         - when calculating alignments we might have wrapped down to the
1980         next line, so don't search for an individual tag, search for the
1981         end of the line
1982         - We need to invalidate the selection area when we replace the
1983         selection.
1984         
1985 2006-12-19  Daniel Nauck  <dna@mono-project.de>
1986
1987         * Application.cs: add Restart () 2.0 support
1988
1989 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1990
1991         * MenuItem.cs: Invalidate menu item rectangle after change Enable
1992         property. Fixes #80268.
1993         
1994 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1995
1996         * MenuAPI.cs: Dont trigger select event when closes top menu
1997         item. Fixes #80270.
1998
1999 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2000
2001         * MenuAPI.cs: When you click on menuitem only trigger onselect
2002         event for top menu itens. Fixes #80271.
2003         
2004 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2005
2006         * MdiWindowManager.cs: Make IconicBounds depend on
2007         the bottom of MdiClient, not the top (fixes #80267)
2008         
2009 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2010
2011         * MdiClient.cs: Added missing 2.0 attribute
2012
2013 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2014
2015         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2016         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2017
2018 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2019
2020         * MenuAPI.cs: Fix click when menuitem is not popup,
2021         this regression was caused by last commit (#80272).
2022
2023 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2024
2025         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2026         fire click event or close menu. Fixes #80272.
2027
2028 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2029
2030         * ListViewHitTestInfo.cs: add
2031
2032 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2033
2034         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2035         * FlatButtonAppearance.cs: add
2036         * DockingAttribute.cs: add
2037
2038 2006-12-17  Chris Toshok  <toshok@ximian.com>
2039
2040         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2041         and rebind our columns when it does - this way, if you make
2042         changes to the DataTable (or set the Table attribute on a DataView
2043         after setting it as the DataGrid's DataSource, the changes are
2044         made visible.)  Fixes bug #80107.
2045
2046 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2047
2048         * ListViewGroup.cs: add internal Location property for layouting.
2049         * Theme.cs: add abstract ListViewGroupHeight function.
2050         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2051
2052 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2053
2054         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2055         Added reset of selected index to 0 when adding first tab page.
2056         Fixes #80264
2057         
2058         * NumericUpDown.cs: Fix NET_2_0 check
2059
2060 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2061
2062         * ListViewGroup.cs: fixed DefaultValueAttribute value
2063
2064 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2065
2066         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2067
2068 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2069
2070         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2071         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2072         ScrollableControl.cs: Add a handful of methods that are
2073         overwritten in 2.0 
2074
2075 2006-12-15  Chris Toshok  <toshok@ximian.com>
2076
2077         * XplatUIWin32.cs: initial implementation of the Reversible
2078         drawing functions.  there are some problems.  DrawReversibleFrame
2079         doesn't seem to work at all for Dashed FrameStyle, and in the
2080         Thick case there are drawing errors at the corners (we probably
2081         need to bind Rectangle instead of doing moveto/lineto's.)
2082
2083 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2084         
2085         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2086         to send blocks of key messages. Send accumulates keys to send with Flush, 
2087         while SendWait sends all keys immediately.
2088                 
2089         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2090         XplatUIX11.cs,  XplatUIX11-new.cs:
2091         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2092         to Win32 SendInput.
2093         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2094         
2095         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2096         testing for ms.net on this class is very tricky, as the tests run too fast 
2097         to allow the hook to release, essentially freezing the keyboard and the 
2098         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2099         category :p
2100
2101 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2102
2103         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2104                         added missing attributes.
2105  
2106 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2107
2108         * ListViewGroup.cs: Added missing attributes.
2109         * ListViewGroupCollection.cs: Added missing attributes.
2110
2111 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2112
2113         * ListViewItem.cs: fixed ListViewSubItem text property.
2114
2115 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2116         
2117         * Control.cs: Added missing 2.0 attributes
2118         
2119 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2120         
2121         * MdiClient.cs: Added missing 2.0 attribute.
2122         * MonthCalendar.cs: Added some missing 2.0 attributes 
2123         and properties.
2124         
2125 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2126
2127         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2128
2129 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2130
2131         * MainMenu.cs: Add the new 2.0 constructor to help out people
2132         using the MainMenu in VS2005.
2133
2134 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2135         
2136         * MdiChildContext.cs: Removed it, no longer used.
2137         * MdiClient.cs: Added missing 2.0 attributes.
2138         
2139 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2140         
2141         * InternalWindowManager.cs: Fix a NullRef with previous 
2142         changes for toolwindows.
2143         
2144 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2145
2146         * Control.cs: 
2147         - Added AfterTopMostControl to allow for certain controls 
2148         to always stay on top when normal controls are brought to 
2149         front.
2150         
2151         * XplatUIWin32.cs: 
2152         - (DrawInversibleRectangle): Get window rectangle from Win32 
2153         in stead of from control, since Win32 doesn't calculate
2154         screen coords correctly from control's Location if it 
2155         have docked siblings.
2156         
2157         * MdiWindowManager.cs:
2158         - Correct the control menu popup location when clicked on
2159         the maximized form icon. (fixes #80223.1)
2160         - Don't show moving rectangle if mouse hasn't moved from
2161         the original clicked point.
2162         - Removed FormGotFocus handler (not used).
2163         - Calculate the control buttons location from the main
2164         window's size and not client size (fixes #79770).
2165         - Form is now closed when the form icon is double-clicked
2166         (fixes #79775). 
2167         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2168         
2169         * InternalWindowManager.cs:
2170         - Moved some MDI-only methods to MdiWindowManager.
2171         - Removed unused properties and methods.
2172         - Unified method naming for methods handling wm messages.
2173         - Moved all message handling to seperate methods for
2174         each message.
2175         
2176         * ThemeWin32Classic.cs:
2177         - DrawManagedWindowDecorations now draws the title bar 
2178         with a gradient brush.
2179         - Add a CPDrawButtonInternal that allows us to specify
2180         light, normal and dark colors for the buttons (control 
2181         buttons for MDI children were drawn with the same light
2182         color as the background, therefore loosing the 3D effect).
2183         
2184         * SizeGrip.cs:
2185         - Add a CapturedControl property that is used to 
2186         determine the control to resize (defaults to parent). 
2187         Needed for MdiClient, since its SizeGrip's parent is
2188         MdiClient, but the control to resize is the main form.
2189         
2190         * MdiClient.cs:
2191         - Set SizeGrip's CapturedControl to the main form in order
2192         to resize the main form and not the MdiClient.
2193         - Override AfterTopMostControl to leave the scrollbars 
2194         always on top.
2195
2196 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2197
2198         * ListView.cs: fixed ListViewItemCollection AddRange and
2199                         implemented ListViewItemCollection AddRange 2.0 support.
2200
2201 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2202
2203         * ListViewGroup.cs: Add.
2204         * ListViewGroupCollection.cs: Add
2205         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2206         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2207                                 stub for ImageKey 2.0 support.
2208
2209 2006-12-14  Mike Kestner  <mkestner@novell.com>
2210
2211         * ListView.cs: add text padding to the autocalculation for columns
2212         of width -2.  Fixes #80207.
2213  
2214 2006-12-14  Mike Kestner  <mkestner@novell.com>
2215
2216         * ListView.cs: add some index guarding for partial row navigation 
2217         logic.  Fixes #80250.
2218
2219 2006-12-14  Mike Kestner  <mkestner@novell.com>
2220
2221         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2222         are added or inserted to the collection.  Fixes #81099.
2223
2224 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2225
2226         * MenuAPI.cs: Closes menu when right click out side of popup
2227         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2228
2229 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2230
2231         * ListViewItem.cs: Fix dumb error.
2232
2233         * ListView.cs: Add Find and ContainsKey methods in 
2234         ListViewItemCollection, and also return true for IsReadOnly
2235         and IsFixedSize (changes for 2.0). 
2236
2237 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2238
2239         * Control.cs: Allow Region to be set to null.
2240
2241 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2242
2243         * MdiWindowManager.cs: Remove unused (commented out) code.
2244         * Form.cs: When the MdiChild is maximized, the form needs 
2245         WM_NCMOUSELEAVE, so request it.
2246         * InternalWindowManager.cs: 
2247         - Added tooltips to control buttons.
2248         - Removed duplicated control button handling code.
2249         - Removed unused (commented out) code.
2250         
2251 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2252
2253         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2254         was used because we must set cursor without trigger ChangeCursor event
2255         and without change Cursor control property. Fixes #79963.
2256
2257 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2258         
2259         * Control.cs: Check if Region setter value is null, and ignore
2260
2261 2006-12-12  Jackson Harper  <jackson@ximian.com>
2262
2263         * TextControl.cs: We were almost always drawing one more line then
2264         needed, since the GetLineByPixel will return the last line found
2265         at that pixel. In most cases though, we were invalidating up to
2266         the junction between two lines.
2267         - Improve debug code.
2268
2269 2006-12-12  Chris Toshok  <toshok@ximian.com>
2270
2271         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2272         and FillReversibleRectangle.
2273
2274         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2275         and FillReversibleRectangle.
2276
2277         * XplatUIWin32.cs: add stubs which do nothing for
2278         DrawReversibleFrame, DrawReversibleLine, and
2279         FillReversibleRectangle.
2280
2281         * XplatUIOSX.cs: add stubs which raise NIE for
2282         DrawReversibleFrame, DrawReversibleLine, and
2283         FillReversibleRectangle.
2284
2285         * XplatUIX11.cs: add working implementation for
2286         DrawReversibleFrame, DrawReversibleLine, and
2287         FillReversibleRectangle.
2288         
2289         * ControlPaint.cs: implement DrawReversibleFrame,
2290         DrawReversibleLine, and FillReversibleRectangle, by calling into
2291         the appropriate XplatUI method.
2292
2293 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2294
2295         * Form.cs: Make MdiClient have the focus even if it's
2296         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2297         messages. Fixes #79907.
2298         
2299 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2300
2301         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2302         queried after the window is created.
2303         
2304         * XplatUIX11.cs: Added SendParentNotify to implement 
2305         WM_PARENTNOTIFY logic. Fixes #79965.
2306         
2307         * Control.cs: Added MakeParam.
2308         
2309 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2310
2311         * MdiClient.cs: Resume Layout before setting window
2312         states (fixes #80201).
2313
2314 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2315
2316         * MenuAPI.cs: Deselect a menu item after performing
2317         the click (fixes #80197).
2318
2319 2006-12-11  Jackson Harper  <jackson@ximian.com>
2320
2321         * TextBoxBase.cs: We need to cap this value, since Maximum -
2322         ViewPortHeight can be less than zero.
2323         - Only do selection with the left mouse button.
2324         * TextBox.cs: Don't tell the world that we have a context menu.
2325         * Control.cs: New method so that we can control whether or not the
2326         context menu is visible outside MWF.
2327
2328 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2329
2330         * ToolBarButton.cs: Fix text positon. 
2331
2332 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2333
2334         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2335
2336         * Control.cs (DoubleBuffered): Add implementation.
2337
2338         * Application.cs (OpenForms): Add.
2339
2340 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2341
2342         * Form.cs: Use opacity instead of Opactiy to determine if we need
2343         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2344
2345 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2346
2347         * Control.cs: Fix NRE if Control.Site was set to null.
2348
2349 2006-12-11  Chris Toshok  <toshok@ximian.com>
2350
2351         * Control.cs: ControlCollection.Remove should return if the arg is
2352         null, and ControlCollection.SetChildIndex should raise a ANE.
2353
2354 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2355
2356         * Control.cs: Verify value set for Dock property. Code formatting
2357         updates.
2358
2359 2006-12-11  Jackson Harper  <jackson@ximian.com>
2360
2361         * TextControl.cs: Draw the caret and the selection when a flag is
2362         set on the owner.
2363         * TextBoxBase.cs: We want to draw the caret and the selection for
2364         TextBox but not for TextBoxBase.
2365         - If the window is resized and scrolling is no longer needed (the
2366         whole doc is visible) set the scroll position to zero.
2367         - The default SelectWord (the one TextBox uses) should move the
2368         caret to the end of the word.
2369         - SelectAll moves the caret to the end of the selection.
2370         * TextBox.cs: We don't selectall on focus, we just do it when the
2371         control is created.
2372         
2373 2006-12-11  Mike Kestner  <mkestner@novell.com>
2374
2375         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2376
2377 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2378
2379         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2380         2.0 support.
2381         * ListViewItem.cs: Add Name 2.0 property.
2382
2383 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2384
2385         * TabControl.cs: Set visibility on selected or default tab 
2386         when tabcontrol handle is created, so that it's contents
2387         actually show up (duh). Fixes #80193
2388         Don't redraw the control if there is no handle created, as
2389         the selected index might be completely invalid. Added some tests
2390         to check for this.
2391
2392 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2393
2394         * ToolBar.cs: Uses maximun width and height of all buttons as 
2395         button rectangle when ButtonSize specified, it looks strange but
2396         is what happens in Win32. Fixes #80189.
2397
2398 2006-12-11  Jackson Harper  <jackson@ximian.com>
2399
2400         * TextControl.cs: Need to track undo levels ourself, since
2401         compound actions will mess them up.
2402
2403 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2404
2405         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2406         SelectedIndex value is changed (even if it's not valid).
2407         Reset SelectedIndex to 0 when the handle is created and if
2408         the current index is invalid.
2409         Fixes SelectdeIndex unit tests and #80128
2410
2411 2006-12-08  Chris Toshok  <toshok@ximian.com>
2412
2413         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2414         calls EndEdit, it needs to be called before we set current_cell to
2415         its new value.  Otherwise, we end up committing the value in the
2416         textbox to the new cell as well.  Fixes bug #80160.
2417
2418 2006-12-08  Chris Toshok  <toshok@ximian.com>
2419
2420         * Form.cs (set_CancelButton): if the button's DialogResult is
2421         None, set it to Cancel.  Fixes bug 80180.
2422
2423 2006-12-08  Jackson Harper  <jackson@ximian.com>
2424
2425         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2426         to watch ourselves when setting the canvas size and setting the
2427         scrollbar values.
2428
2429 2006-12-08  Chris Toshok  <toshok@ximian.com>
2430
2431         * DataGrid.cs: comment out the two MakeTransparent calls for the
2432         time being so people using trunk (and not 1.2.2) on windows can
2433         actually use the datagrid.  This deals with bug #80151.
2434
2435 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2436
2437         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2438         Graphics.DrawImage (image, int, int, int, int) overload instead
2439         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2440         the dpi difference and was blurring images it drew.
2441         [Fixes bug #79960]
2442
2443 2006-12-08  Chris Toshok  <toshok@ximian.com>
2444
2445         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2446         rowcnt is 0 (such as with an empty datasource), and make sure we
2447         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2448         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2449
2450 2006-12-08  Chris Toshok  <toshok@ximian.com>
2451
2452         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2453         grid.
2454
2455 2006-12-08  Chris Toshok  <toshok@ximian.com>
2456
2457         [ Fixes bug #80167 ]
2458         
2459         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2460         style is FlatStyle.System.
2461
2462         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2463         ButtonBase.flat_style private, and switch uses of it to the public
2464         property.
2465         
2466 2006-12-08  Chris Toshok  <toshok@ximian.com>
2467
2468         [ Fixes bug #80121 ]
2469         
2470         * ThemeWin32Classic.cs: center the caption text in the datagrid
2471         when we draw it.
2472
2473         * DataGrid.cs: lessen the amount we add to the caption height from
2474         6 to 2.  6 was making it huge.
2475
2476 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2477
2478         * UpDownBase: Handle MouseWheel call directly instead of capturing
2479         the inner textbox's OnMouseWheel. Fixes #80166
2480
2481 2006-12-08  Jackson Harper  <jackson@ximian.com>
2482
2483         * TextControl.cs: We need to invalidate the textbox when we empty
2484         it (how had this not been discovered before?)
2485
2486 2006-12-08  Jackson Harper  <jackson@ximian.com>
2487
2488         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2489         to behave like MS, we now ignore the eventargs.Click and just
2490         track state ourself, which we were already doing anyways.
2491         - Constrain the double click handler to the double click size.
2492         
2493 2006-12-08  Chris Toshok  <toshok@ximian.com>
2494
2495         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2496         direction if that scrollbar isn't shown.  fixes bug #80158.
2497
2498 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2499
2500         * NumericUpDown.cs: Update value on getter. Fixes #79950
2501
2502 2006-12-08  Chris Toshok  <toshok@ximian.com>
2503
2504         * MenuItem.cs: add back in the event cloning code.  I didn't know
2505         how to do it in the face of the EventHandlerList work i'd done
2506         last week.  Fixes bug #80183.
2507
2508 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2509
2510         * Control.cs: Add an invalidate to the BackgroundImage setter.
2511         [Fixes 80184]
2512
2513 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2514
2515         * ToolStrip*: Add some small properties reported by MoMA, fix event
2516         firing and default properties based off of unit tests, and add some
2517         attributes based off of the class status page.
2518
2519 2006-12-07  Jackson Harper  <jackson@ximian.com>
2520
2521         * TextBoxBase.cs: Take HideSelection into account when determining
2522         whether or not to show the selection.
2523         * RichTextBox.cs: After inserting the RTF into the document move
2524         the cursor to the beginning of the document.
2525
2526 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2527
2528         * Control.cs: Remove static ArrayList "controls" which maintained
2529         a reference to every control created.
2530         * Application.cs: Create a static FormCollection to maintain a reference
2531         to every form created.  Use it in places that formerly enumerated through
2532         the controls one looking for forms.
2533         * Form.cs: Add and remove self from above FormCollection.
2534
2535 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2536
2537         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2538           not libgdk (though it makes me wonder why I didn't have any
2539           problems)
2540
2541 2006-12-07  Chris Toshok  <toshok@ximian.com>
2542
2543         [ you had to know this was coming after that last commit...]
2544         
2545         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2546         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2547         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2548         XCopyArea).
2549
2550 2006-12-07  Chris Toshok  <toshok@ximian.com>
2551
2552         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2553         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2554         all the behavior we need for double buffering.
2555
2556         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2557         client side Bitmap, just like the old Control-based double buffer
2558         code did.  The methods are virtual, so each XplatUI driver
2559         subclass can replace the implementation to use a faster, platform
2560         specific approach.
2561
2562         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2563         double buffer code, and clean things up a bit in the process.
2564
2565 2006-12-06  Chris Toshok  <toshok@ximian.com>
2566
2567         * Control.cs: reindent WndProc.
2568
2569 2006-12-06  Chris Toshok  <toshok@ximian.com>
2570
2571         [ I wanna be like BenM when I grow up ]
2572         
2573         * Hwnd.cs: create a single static Graphics object on the static
2574         Bitmap we create.  use this for our text measurements.
2575
2576         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2577         This was causing us to allocate a backbuffer for every control,
2578         even when it wasn't flagged as double buffered.  Instead use the
2579         single graphics instance.  This might have implications for
2580         multithreaded applications.  If we run into problems we can switch
2581         to creating 1 Graphics per control, on the static Hwnd bitmap.
2582
2583         this change nets us a 7M savings in private dirty mappings when
2584         running FormsTest.exe.
2585
2586 2006-12-06  Chris Toshok  <toshok@ximian.com>
2587
2588         * ListView.cs: the BackgroundImage override is just to set
2589         attributes.  chain up to base.BackgroundImage.
2590
2591         * RichTextBox.cs: same.
2592
2593         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2594         changes, so instead a handler for BackgroundImageChanged.
2595         
2596         * Control.cs: make background_image private.
2597
2598 2006-12-06  Chris Toshok  <toshok@ximian.com>
2599
2600         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2601         sure we even need this assignment, but roll with it for now.
2602
2603         * Control.cs: make the cursor field private.
2604
2605 2006-12-06  Chris Toshok  <toshok@ximian.com>
2606
2607         * Form.cs: we don't need to explicitly set ImeMode to
2608         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2609         behavior in the face of ImeMode.Inherit.
2610
2611         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2612         change the ctor's assignment to use ImeMode instead of ime_mode.
2613
2614         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2615         ImeModeInherit.  Only check for the parent's imemode (and return
2616         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2617         This fixes the button unit test, which sets both ImeMode and
2618         DefaultImeMode to ImeMode.Disable.
2619
2620         also make the ime_mode field private.
2621
2622 2006-12-06  Chris Toshok  <toshok@ximian.com>
2623
2624         * Control.cs: make control_style private.
2625
2626         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2627         setting the styles to true, then setting them to false instead of
2628         reverting to their previous values.
2629
2630         also, call SetStyle on the scrollbars instead of using
2631         control_style directly.
2632
2633 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2634
2635         * FormCollection.cs: Implement. [2.0]
2636
2637 2006-12-06  Chris Toshok  <toshok@ximian.com>
2638
2639         * Control.cs: make tab_stop private.
2640
2641         * Label.cs: set TabStop, not tab_stop.  reformat some event
2642         add/remove methods to make them more compact.
2643
2644 2006-12-06  Chris Toshok  <toshok@ximian.com>
2645
2646         * RadioButton.cs: fix TabStop handling.
2647
2648 2006-12-06  Chris Toshok  <toshok@ximian.com>
2649
2650         * TextBox.cs: remove the explicit assignments to has_focus.
2651         Control does that.
2652
2653         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2654         manage that.
2655         
2656 2006-12-06  Chris Toshok  <toshok@ximian.com>
2657
2658         * ButtonBase.cs: remove all uses of is_enabled from this code.
2659         it's always true when any of the code containing the checks is
2660         executed.
2661
2662 2006-12-06  Chris Toshok  <toshok@ximian.com>
2663
2664         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2665         with different semantics (some are present in both 1.1 and 2.0
2666         profiles) so that we match MS's behavior in our unit tests.
2667
2668 2006-12-06  Jackson Harper  <jackson@ximian.com>
2669
2670         * TextControl.cs: Make this operation undoable.
2671         * TextBoxBase.cs: Factor the border width into the preferred
2672         height.
2673         - implement Modified as per the spec.
2674
2675 2006-12-06  Chris Toshok  <toshok@ximian.com>
2676
2677         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2678
2679 2006-12-06  Chris Toshok  <toshok@ximian.com>
2680
2681         * Control.cs: make right_to_left and context_menu fields private.
2682
2683 2006-12-06  Chris Toshok  <toshok@ximian.com>
2684
2685         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2686         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2687         Control.child_controls private.  switch all uses over to
2688         Control.Controls.
2689
2690 2006-12-06  Chris Toshok  <toshok@ximian.com>
2691
2692         * System.Windows.Forms/GroupBox.cs,
2693         System.Windows.Forms/AccessibleObject.cs,
2694         System.Windows.Forms/ErrorProvider.cs,
2695         System.Windows.Forms/Control.cs,
2696         System.Windows.Forms/UpDownBase.cs,
2697         System.Windows.Forms/ScrollBar.cs,
2698         System.Windows.Forms/DateTimePicker.cs,
2699         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2700         System.Windows.Forms/ToolTip.cs,
2701         System.Windows.Forms/RadioButton.cs,
2702         System.Windows.Forms/LinkLabel.cs,
2703         System.Windows.Forms/Splitter.cs,
2704         System.Windows.Forms/TextBoxBase.cs,
2705         System.Windows.Forms/ToolStripTextBox.cs,
2706         System.Windows.Forms/ContainerControl.cs,
2707         System.Windows.Forms/ThemeWin32Classic.cs,
2708         System.Windows.Forms/SizeGrip.cs,
2709         System.Windows.Forms/ToolStripDropDown.cs,
2710         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2711         private.  switch all uses over to Control.Parent.
2712
2713 2006-12-06  Chris Toshok  <toshok@ximian.com>
2714
2715         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2716         Control does this before calling emitting these events.
2717
2718         * TabControl.cs: same.
2719
2720         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2721         Control.client_rect.
2722
2723         * ButtonBase.cs: use the ClientSize property instead of the
2724         client_size field.
2725
2726         * ScrollableControl.cs: same.
2727
2728         * Control.cs: another pass at making properties private.  also,
2729         move the initialization of tab_stop to the ctor.
2730
2731 2006-12-05  Andreia Gaita <avidigal@novell.com>
2732
2733         * TabControl.cs: Let the selected index be set freely if the 
2734         control handle is not yet created.
2735
2736 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2737
2738         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2739         internal until I can rewrite DefaultLayout.
2740         * ToolStrip.cs: Fix build error and some general cleaning.
2741         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2742         Fix build errors caused by making some of Control's fields private.
2743
2744 2006-12-05  Jackson Harper  <jackson@ximian.com>
2745
2746         * TextControl.cs: Redo Insert a little so that it use IndexOf
2747         instead of Split, this prevents it from messing up on things like
2748         \n\n\n. Also more effecient since the split array doesn't need to
2749         be created.
2750         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2751         multiline text differently, this is the first of many fixes that
2752         will make multiline/non-multiline the same thing as far as the
2753         TextBoxBase is concerned.
2754         - Don't split the text and insert lines, this can lose some line
2755         endings (like is the last line a soft or hard break). Instead use
2756         the new Insert.
2757         - Fix an off by one when combining all the lines in the Text
2758         getter.
2759         - Remove separate multiline handling from the Text getter/setter.
2760
2761 2006-12-05  Chris Toshok  <toshok@ximian.com>
2762
2763         * ButtonBase.cs: a few changes:
2764
2765         - don't reinitialize internal Control fields in the ctor when they
2766         have the same values as Control sets them.
2767
2768         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2769         this before calling those methods.
2770
2771         - we don't need to call Refresh for anything.  use Invalidate
2772         instead.
2773
2774         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2775         calls Refresh in its OnEnabledChanged.
2776         
2777         - several of the events we were registered for in the ctor to
2778         redraw ourselves already include calls to Invalidate in the
2779         property setters that raise the events.  remove the extra
2780         invalidation.
2781
2782         - reformat a switch statement that was 83274658 columns wide.
2783         
2784 2006-12-05  Mike Kestner  <mkestner@novell.com>
2785
2786         * ComboBox.cs: fix a unit test regression from a TextBox
2787         SelectionLength return of -1 when there's no selection.  
2788
2789 2006-12-05  Chris Toshok  <toshok@ximian.com>
2790
2791         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2792         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2793         cleaning up some of the internal Control fields being used by
2794         subclasses.
2795
2796 2006-12-05  Mike Kestner  <mkestner@novell.com>
2797
2798         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2799         listbox after AddImplicit calls since it defaults to hidden. Add a 
2800         hack to preserve requested heights across DropDownStyle changes.
2801
2802 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2803
2804         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2805
2806 2006-12-05  Chris Toshok  <toshok@ximian.com>
2807
2808         * DataGridView.cs: fix compiler warnings.
2809
2810         * PrintControllerWithStatusDialog.cs: same.
2811
2812         * ToolBar.cs: same.
2813
2814         * FolderBrowserDialog.cs: same.
2815
2816         * Splitter.cs: same.
2817
2818         * DataGridViewComboBoxCell.cs: same.
2819
2820         * XplatUIWin32.cs: same.
2821
2822         * PictureBox.cs: same.
2823
2824         * Win32DnD.cs: same.
2825
2826         * PageSetupDialog.cs: same.
2827
2828         * FileDialog.cs: same.
2829
2830         * PrintDialog.cs: same.
2831
2832         * DataGridTextBoxColumn.cs: same.
2833
2834         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2835
2836 2006-12-05  Chris Toshok  <toshok@ximian.com>
2837
2838         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2839         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2840         System.ComponentModel.EventHandlerList work.
2841
2842 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2843
2844         * DrawTreeNodeEventArgs.cs: Added.
2845
2846 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2847         
2848         * InternalWindowManager.cs: Remove an unused field.
2849         
2850 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2851
2852         * InternalWindowManager.cs:
2853         - Save the point where the title bar is clicked.
2854         
2855         * MdiWindowManager.cs:
2856         - Only allow moving of the window as long as the 
2857         clicked point on the title bar does not get out of
2858         MdiClient's rectangle. Fixes #79982.
2859         
2860         * MdiClient.cs:
2861         - Added Horizontal/VerticalScrollbarVisible.
2862         - Simplified the scrollbar sizing algorithm.
2863         - Cache the difference in scrolled value in
2864         H/VBarValueChanged and move the calculation out
2865         of the for loop.
2866
2867 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2868
2869         * Control.cs: Make the Console.WriteLine in WndProc 
2870         write more info.
2871
2872 2006-12-05  Chris Toshok  <toshok@ximian.com>
2873
2874         * ToolStripManager.cs, ToolStripButton.cs,
2875         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
2876         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
2877         ToolStripSplitButton.cs, ToolStripSeparator.cs,
2878         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
2879         ToolStripProgressBar.cs, ToolStripContainer.cs,
2880         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
2881         to using System.ComponentModel.EventHandlerList.
2882
2883 2006-12-04  Chris Toshok  <toshok@ximian.com>
2884
2885         * LinkLabel.cs: fix up compiler warnings.
2886
2887         * TableLayoutSettings.cs: same.
2888
2889         * TreeView.cs: same.
2890
2891         * ToolBar.cs: same.
2892
2893         * TabControl.cs: same.
2894
2895         * RichTextBox.cs: same.
2896
2897         * ListViewItem.cs: same.
2898
2899         * PropertyGrid.cs: same.
2900
2901         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
2902
2903         * ToolTip.cs same.
2904
2905         * TextRenderer.cs: fix up compiler warnings.
2906
2907         * Label.cs: same.
2908
2909         * Form.cs: corcompare fixes.
2910
2911         * PictureBox.cs: fix up compiler warnings.
2912
2913         * ImageListStreamer.cs: same.
2914
2915         * TrackBar.cs: corcompare fix.
2916
2917         * Control.cs: fix up compiler warnings.
2918
2919         * SplitterPanel.cs: same.
2920
2921         * NumericTextBox.cs: same.
2922
2923         * ImageList.cs: same.
2924
2925         * StatusStrip.cs: same.
2926
2927         * ProgressBar.cs: corcompare fix.
2928
2929         * ToolStripButton.cs: fix up compiler warnings.
2930
2931         * ToolStripStatusLabel.cs: same.
2932
2933         * ToolStripSplitButton.cs: same.
2934
2935         * ToolStripSeparator.cs: same.
2936
2937         * ToolStripProgressBar.cs: same.
2938
2939         * ToolStripDropDownMenu.cs: same
2940
2941         * ToolStripDropDown.cs: same.
2942
2943         * ToolStripDropDownButton.cs: same.
2944
2945         * ToolStrip.cs: same.
2946
2947         * ToolStripControlHost.cs: same.
2948
2949         * ToolStripContentPanel.cs: same.
2950
2951         * ToolStripDropDown.cs: same.
2952
2953         * ToolStripContainer.cs: same.
2954
2955         * ToolStripPanel.cs: same, and add "new" where we need it to work
2956         with the new ArrangedElementCollection.
2957
2958         * ToolStripItemCollection.cs: add "new" where we need it to work
2959         with the new ArrangedElementCollection.
2960
2961 2006-12-04  Andreia Gaita <avidigal@novell.com>
2962
2963         * TabControl.cs: Fix default tab selection to after TabControl
2964         gets focus and not before. Fixes #80128
2965
2966 2006-12-04  Chris Toshok  <toshok@ximian.com>
2967
2968         * DataGridTableStyle.cs: remove the gross calling of
2969         datagrid.Refresh from here.  It's a broken idea and it doesn't
2970         work anyway.
2971
2972         * DataGrid.cs: instead, just register/unregister from the
2973         DataGridTableStyle events in CurrentTableStyle.  we play it
2974         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
2975         even though some would most likely not require it.  Fixes bug
2976         #80115 (and one portion of #80117 as a side effect).
2977
2978 2006-12-04  Chris Toshok  <toshok@ximian.com>
2979
2980         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
2981         so the textbox (if any) goes away.  Fixes bug #80117.
2982
2983 2006-12-04  Chris Toshok  <toshok@ximian.com>
2984
2985         * DataGridColumnStyle.cs: set the column's readonly property
2986         initially based on the property descriptor's IsReadOnly.  Fixes
2987         bug #80044.
2988
2989 2006-12-04  Chris Toshok  <toshok@ximian.com>
2990
2991         * ComboBox.cs: wrap the dropdown style changing work in
2992         SuspendLayout/ResumeLayout.  Fixes bug #79968.
2993
2994 2006-12-04  Jackson Harper  <jackson@ximian.com>
2995
2996         * TextBoxBase.cs: Fix off by one, since these are one-based.
2997         * TextBox.cs: Select all the text when we get focus.  The TextBox
2998         does this but the RTB does not.
2999
3000 2006-12-04  Chris Toshok  <toshok@ximian.com>
3001
3002         * DataGridTextBoxColumn.cs: remove some spew.
3003
3004         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3005         but some part of me is saying "it shouldn't be here.."  At any
3006         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3007         setting the value.
3008
3009 2006-12-04  Chris Toshok  <toshok@ximian.com>
3010
3011         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3012         to reassign the propertydescriptor.
3013
3014 2006-12-04  Jackson Harper  <jackson@ximian.com>
3015
3016         * TextBoxBase.cs:
3017         * TextControl.cs: Remove some unused variables.  Maybe this will
3018         patch things up between mike and I.
3019         - don't split lines less then one char wide, if the viewport is
3020         that small text won't be visible anyways.
3021         
3022 2006-12-04  Jackson Harper  <jackson@ximian.com>
3023
3024         * TextBoxBase.cs: Default selection length is -1, need to do some
3025         more testing on windows to see when this is used for the property.
3026         - Redid the Lines [] property to that we properly remove soft line
3027         breaks
3028         - added support for preserving carriage returns
3029         -  CanUndo is not a variable like 'is undo enabled' it just returns
3030         true if there is undo operations available.
3031         - AppendText doesn't need to grab the last tag itself anymore,
3032         this happens automatically when we move the cursor.
3033         * TextControl.cs: Add CompoundActions to the undo class. This
3034         allows combining the other operations into one big option.  ie a
3035         paste will combine { delete old, insert new, move cursor }
3036         - Add InsertString undo operation
3037         - New method for deleting multiline text
3038         - Add carriage returns to lines. So we can preserve carriage
3039         returns when text is 'roundtripped'
3040
3041 2006-12-04  Chris Toshok  <toshok@ximian.com>
3042
3043         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3044         minimum 0.  Fixes the scrollbar exception in bug #80136.
3045
3046 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3047
3048         * MdiClient.cs: 
3049         * MdiWindowManager: Removed unused fields and methods.
3050         
3051 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3052         
3053         * StatusBar.cs: Update all panels when a AutoSize=Contents
3054         panel needs updating.
3055         
3056         * StatusBarPanel.cs: Remove twidth and only use initialize.
3057         Fixes #80031.
3058                 
3059 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3060
3061         * Form.cs: When a form's MdiParent is set add it directly
3062         on top of the z-order in stead of relying on MdiClient's
3063         ActivateChild to do it. Fixes #80135.
3064         
3065         * MdiClient.cs: 
3066         - Remove original_order, mdi_child_list is already doing
3067         the same thing.
3068         - Create mdi_child_list on construction in
3069         stead of first use (avoids a few null checks).
3070
3071         * MenuItem.cs: Use an already existing list of mdi children
3072         to get the correct order of children and remove the other
3073         redundant list.
3074
3075 2006-12-04  Chris Toshok  <toshok@ximian.com>
3076
3077         * PropertyGridView.cs: cached_splitter_location is only used in
3078         !DOUBLEBUFFER code.
3079
3080         * PropertyGrid.cs: implement the ComComponentNameChanged event
3081         using Events, hoping that would fix the warning.  Looks like a
3082         compiler bug instead (#80144).
3083
3084         * PropertyManager.cs: remove unused method.
3085
3086 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3087
3088         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3089         include parentesis to fix expression evaluation. Fixes #79634.
3090
3091 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3092         
3093         * MenuAPI.cs:
3094         - Changes to fix behavior in Menu control, some reported in #80097
3095         and other detected during behavior refactory like a select event
3096         problems.
3097         - Remove unneded "if's" conditions.
3098         - Created an internal to flag when popup is active in control, we need 
3099         it because in .NET you can have menu active but without popup active
3100         when you active menu using popup without visible items.
3101         - Mimic win32 behavior for Select and Popup events.  
3102         - Dont open popup menu when you dont have visible subitems.
3103         - Do nothing when click on disabled menu item.
3104         - Some small changes to follow the coding style guidelines.
3105         - Unselect menu only when another control gives focus. Fixes #80097.
3106         - Remove unused code.
3107         
3108         * MenuItem.cs: internal VisibleItems method to check if menu
3109         theres visible subitems, it will be usefull to fix some 
3110         behavior in Menu control.
3111         
3112 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3113         
3114         * Timer.cs: Tag property for 2.0 profile.
3115         
3116 2006-12-01  Chris Toshok  <toshok@ximian.com>
3117
3118         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3119         
3120         * Win32DnD.cs: comment out some unused fields.
3121
3122         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3123         some unused properties/methods.
3124
3125         * XplatUIX11.cs: fix MousePosition so we override the base class's
3126         property instead of conflicting with it.
3127
3128         * PictureBox.cs: comment out some unused fields
3129
3130         * OSXStructs.cs: make some struct fields public.
3131
3132         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3133         MousePosition so we override the base class's property instead of
3134         conflicting with it.
3135
3136         * X11Dnd.cs: comment out some unused fields
3137
3138         * X11DesktopColors.cs: fix some struct field visibility to quiet
3139         the compiler.
3140
3141         * X11Dnd.cs: remove some debug code.
3142
3143         * ThemeClearlooks.cs: comment out unused field.
3144
3145         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3146
3147         * ThemeGtk.cs: comment out some unused pinvokes.
3148
3149         * Timer.cs: remove some unused fields.
3150
3151         * ThemeClearlooks.cs: comment out unused field.
3152
3153         * UpDownBase.cs: comment out unused field.
3154
3155         * DataObject.cs: comment out unused field.
3156
3157         * DataGridBoolColumn.cs: reomve unused field.
3158
3159         * DataGrid.cs: remove unused field.
3160
3161         * Cursor.cs: remove old ToBitmap code.
3162
3163         * ControlPaint.cs: remove unused method.
3164
3165         * ScrollBar.cs: remove unused fields.
3166
3167         * ComboBox.cs: remove unused field, and chain up to
3168         AccessibleObject ctor.
3169
3170         * ListBox.cs: remove unused field.
3171
3172         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3173
3174         * GridEntry.cs: remove unused fields.
3175
3176         * Binding.cs: remove unused fields.
3177
3178         * AxHost.cs: remove unused method.
3179
3180         * ContainerControl.cs: remove unused field.
3181
3182         * ScrollableControl.cs: remove unused fields.
3183
3184 2006-12-01  Chris Toshok  <toshok@ximian.com>
3185
3186         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3187         the Where/WhereString stuff.  it's easy enough to CWL
3188         Environment.StackTrace.
3189
3190         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3191         unused private fields.
3192
3193 2006-12-01  Jackson Harper  <jackson@ximian.com>
3194
3195         * TextControl.cs: Do not update the view while inserting multiline
3196         text. If we update the view we might wrap lines, before entering
3197         the new lines, which causes the new line insertion calculations to
3198         be totally fubared.
3199         - Remove an old TODO
3200         - Make debug output a little nicer
3201         
3202 2006-12-01  Chris Toshok  <toshok@ximian.com>
3203
3204         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3205
3206 2006-12-01  Chris Toshok  <toshok@ximian.com>
3207
3208         [ fix the majority of the CS0108 warnings we've been suppressing ]
3209         
3210         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3211
3212         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3213         to "LayoutToolBar" to quiet mcs.
3214         
3215         * TabControl.cs: mark our ControlCollection class as 'new'.
3216
3217         * TextBoxBase.cs: mark some events as 'new'.
3218
3219         * Splitter.cs: TabStop is 'new'.
3220
3221         * ControlBindingsCollection.cs: mark a few methods as new since
3222         they change the visibility from protected to public.
3223
3224         * RadioButton.cs: DoubleClick -> base class, and remove unused
3225         HaveDoubleClick.
3226
3227         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3228         events as new.
3229
3230         * NumericUpDown.cs: TextChanged -> base class.
3231
3232         * CheckedListBox.cs: mark our ObjectCollection class as new to
3233         quiet mcs.
3234
3235         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3236         muck with the base class.
3237
3238         * StatusBar.cs: fix some mcs warnings about Update being the same
3239         name as a base class method.
3240
3241         * RichTextBox.cs: mark some events as new, and make them do things
3242         to the base class impl.
3243
3244         * UserControl.cs: mark TextChanged as new, and have it manipulate
3245         base.TextChanged.
3246
3247         * UpDownBase.cs: mark some things new.
3248
3249         * CheckBox.cs: mark DoubleClick "new", and add some text about
3250         what we need to look at.
3251
3252         * Panel.cs: make the events "new", and manipulate the base
3253         version.  these are just here for attributes.
3254
3255         * AccessibleObject.cs: make owner private.
3256
3257         * Control.cs: deal with AccessibleObject.owner being private.
3258         cache our own copy if we need it.
3259
3260         * Button.cs: add "new" to the DoubleClickEvent.
3261
3262         * ListBox.cs: no need to track our own has_focus here.  let
3263         Control.has_focus do it for us.  Also some other work to clear up
3264         warnings about not overriding base class methods of the same name.
3265         
3266         * ComboBox.cs: clear up some warnings about not override base
3267         class methods of the same name.
3268
3269 2006-12-01  Chris Toshok  <toshok@ximian.com>
3270
3271         * Form.cs: flag a few things as "new" to quiet some of the mcs
3272         warnings.
3273
3274         * AxHost.cs: same.
3275
3276         * PrintPreviewDialog.cs: same.
3277
3278         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3279         now DGV isn't so horrible on the class status page.  also, move
3280         all events to using System.ComponentModel.EventHandlerList.  my
3281         wrists hurt.
3282
3283 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3284
3285         * MdiWindowManager.cs:
3286         - Set form to active mdi child if shown,
3287         and update the active mdi child to the next 
3288         remaining child in the z-order if the form is hidden.
3289
3290         * Form.cs: 
3291         - Track if the form has been visible and if its 
3292         visibility is beeing changed, so that the MdiClient
3293         can properly decide the ActiveMdiChild. The MdiClient 
3294         cannot track this since the form can change visibility 
3295         before MdiClient is created.
3296
3297         * MdiClient.cs:
3298         - Don't activate anything of the parent form is changing
3299         its visibility.
3300         - Rework ActiveMdiChild to only return visible mdi 
3301         children and take into account several other corner 
3302         cases.
3303
3304 2006-12-01  Chris Toshok  <toshok@ximian.com>
3305
3306         * IBindableComponent.cs: new 2.0 interface.
3307
3308 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3309
3310         * DataGrid.cs: Font for caption area is bold by default.
3311
3312 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3313
3314         * Menu.cs: Tag property for 2.0.
3315         
3316 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3317
3318         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3319         
3320 2006-12-01  Chris Toshok  <toshok@ximian.com>
3321
3322         * TreeView.cs: doh, the Begin* events should be
3323         TreeViewCancelEventHandler.
3324
3325 2006-12-01  Chris Toshok  <toshok@ximian.com>
3326
3327         * Form.cs: Form.ControlCollection already stores off the
3328         form_owner field.  don't access the base class's internal "owner"
3329         field.
3330
3331         * Control.cs: make all the fields in Control.ControlCollection
3332         private.  there's no need for any internal fields here.
3333
3334 2006-12-01  Chris Toshok  <toshok@ximian.com>
3335
3336         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3337         OnHandleCreated.  Fixes bug #80109.
3338
3339 2006-12-01  Chris Toshok  <toshok@ximian.com>
3340
3341         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3342         SplitContainer.cs, Control.cs, StatusStrip.cs,
3343         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3344         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3345         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3346         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3347         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3348         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3349         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3350         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3351         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3352         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3353
3354         do most of the work to convert our code over to use
3355         System.ComponentModel.Component.Events for
3356         adding/removing/dispatching events.
3357
3358
3359 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3360
3361         * DataGridView.cs: Fix an ArgumentNullException reported 
3362         twice today in IRC.
3363
3364 2006-11-30  Mike Kestner  <mkestner@novell.com>
3365
3366         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3367         grabbed listbox.  Fixes #80036 and #80101.
3368
3369 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3370
3371         * Message.cs: Changed ToString() to match MS.
3372         
3373 2006-11-30  Jackson Harper  <jackson@ximian.com>
3374
3375         * TextBoxBase.cs: You can still change the selected text on a read
3376         only textbox.
3377         * TextControl.cs: Lower magic number for wrap calculations. This
3378         lets text get closer to the right (far) edge.
3379
3380 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3381
3382         * Control.cs: Tweak 2.0 layout properties.
3383         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3384         * TextRenderer.cs: Add a new overload.
3385         * ToolStrip*: Huge amount of changes and new features.
3386
3387 2006-11-30  Mike Kestner  <mkestner@novell.com>
3388
3389         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3390         scroll range correct.  Fixes #79994.
3391
3392 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3393
3394         * MdiWindowManager.cs: Update main form's text when
3395         a form is closed. (fixes #80038)
3396         
3397 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3398
3399         * ToolBar.cs:
3400         - Fix an regression in ButtonSize.
3401         - Get ImeMode default value change to "Disable".
3402         - Get ShowTooltips default value change to true, default value is 
3403         "false" but after make a test in .NET we get "true" result as default.
3404         
3405 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3406
3407         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3408
3409 2006-11-29  Chris Toshok  <toshok@ximian.com>
3410
3411         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3412         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3413         SetWindowTransparency hasn't been called.
3414
3415 2006-11-29  Chris Toshok  <toshok@ximian.com>
3416
3417         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3418         if it's supported.
3419         (set_AllowTransparency): reorder things a little so that the
3420         WS_EX_LAYERED style is removed properly.
3421
3422 2006-11-29  Chris Toshok  <toshok@ximian.com>
3423
3424         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3425         
3426         * Form.cs: only call the XplatUI transparency method (get/set) if
3427         SupportsTransparency says it's supported. Otherwise fallback to
3428         doing nothing (in the set case) or returning the instance field we
3429         cache (in the get case).
3430
3431         * XplatUIStructs.cs: add TransparencySupport flag enum.
3432         
3433         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3434         change to SupportsTransparency.
3435
3436         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3437         TransparencySupport.None from SupportsTransparency.
3438
3439         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3440         TransparencySupport.Set from SupportsTransparency.
3441
3442         * XplatUIWin32.cs: implement GetWindowTransparency calling
3443         GetLayeredWindowAttributes, and implement SupportsTransparency by
3444         checking whether or not both
3445         GetWindowTransparency/SetWindowTransparency are available
3446         entrypoints.  We need to do this since SetWindowTransparency is
3447         available as of win2k, but GetWindowTransparency requires winxp.
3448         yay win32 api.
3449
3450         * XplatUI.cs: Add GetWindowTransparency, and change
3451         SupportsTransparency to allow for either/both Get/Set.
3452
3453 2006-11-29  Chris Toshok  <toshok@ximian.com>
3454
3455         * DataGrid.cs: keep from going into an infinite loop redrawing a
3456         datagrid that has no datasource.  Fixes bug #80033.
3457
3458 2006-11-29  Chris Toshok  <toshok@ximian.com>
3459
3460         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3461         Invalidate) before the mainmenu has been assigned to a control.
3462
3463 2006-11-29  Chris Toshok  <toshok@ximian.com>
3464
3465         * DataGrid.cs: detect when we should be double the double click
3466         row/column autosize stuff, although that codepath has yet to be
3467         written.  part of the work for bug #79891.
3468
3469 2006-11-29  Chris Toshok  <toshok@ximian.com>
3470
3471         * Binding.cs (SetControl): fix unit test.
3472
3473 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3474
3475         * PageSetupDialog.cs: Validate the margins and set them in
3476         PageSettings. 
3477         * NumericTextBox.cs: New class to mimic the behavior of the
3478         textboxes used in the printing dialogs.
3479
3480 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3481         
3482         * Form.cs: Revert previous change (remove call UpdateBounds
3483         from form constructor), because it messes with the handle creation
3484         order, and that one needs lots and lots of love.
3485         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3486         for valid printer and throw InvalidPrinterException if document
3487         is set but printer not valid), adding a MonoTODO. Once 
3488         handle creation is done properly, we can put this back in.
3489
3490 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3491
3492         * MenuItem.cs: Create a invalidate method for menu item, to be
3493         calling from set text, it make text changes to imadiate update
3494         on screen. Fixes #80013. 
3495         
3496 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3497
3498         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3499         fixes bug #80070 and some other problem on toolbar buttons
3500         layout.
3501
3502 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3503
3504         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3505         with dotted brush.      Fixes #79564
3506         
3507 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3508
3509         * Form.cs: Removed call to UpdateBounds on Form
3510         constructor, it was causing a call to CreateHandle
3511         before it was supposed to.
3512         * PrintControllerWithStatusDialog: Applied patch
3513         by Chris Toshok to hide controller when there are
3514         no printers available.
3515         PrintDialog.cs: initialize printer settings to 
3516         null - correct DefaultValues test #5
3517         * PrintPreviewControl.cs: Move PrintController
3518         initialization to GeneratePreview
3519         * PrintPreviewDialog.cs: 
3520         - Remove Preview generation     from Document_set(). It is 
3521         called on OnPaint
3522         - Throw InvalidPrinterException on CreateHandle if
3523         a Document is set but there are no printers or 
3524         printer is not valid.
3525         * ThemeWin32Classic: don't paint PrintPreviewControl
3526         if there is nothing to paint    
3527
3528 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3529
3530         * Form.cs: Add another popular method.
3531
3532         * TabPage.cs: ditto.
3533
3534 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3535
3536         * MenuItem.cs: Fixed a warning.
3537         * InternalWindowManager: Fixed a warning.
3538
3539 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3540
3541         * MenuItem.cs:
3542         - When cloning a menu also clone MdiList and clone the 
3543           window menu items properly (as the forms and menuitems
3544           are kept in an internal hashtable, these need updating 
3545           as well)
3546         - Rewrote the window menu code, menu items are added in the
3547           order the forms were added to their parent, and they are
3548           updated every time the window menu is shown (before the
3549           list was only generated once, in the current order of the
3550           forms, and would never be updated). A checkmark is shown
3551           next to the item corresponding to the active mdi child.
3552
3553 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3554
3555         * XplatUIStructs.cs: 
3556         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3557         
3558         * XplatUIWin32.cs: 
3559         - Added TME_NONCLIENT to TMEFlags.
3560         - Handles WM_NCMOUSEMOVE in GetMessage to 
3561           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3562
3563         * MdiWindowManager:
3564         - Now merges mdi child menu to parent menu when maximized.
3565         - Recalculate NC areas of both mdi child and mdi parent. 
3566           Fixes #79757 (4).
3567           on window state and size changes.Fixes #79844 (3).
3568         - Handle WM_NCCALCSIZE to properly calculate borders.
3569
3570         * Form.cs:
3571         - Add/remove to the mdi containers list of mdi children 
3572           in the order they are added.
3573         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3574           to the maximized mdi child.
3575         
3576         * InternalWindowManager.cs:
3577         - Only execute a click on the control buttons on the mouse up,
3578           not on the mouse down. Show the state of the button 
3579           (was only showing Normal state, never Pressed state). The
3580           pressed button now follows the mouse (if you click the Close 
3581           button and move the mouse over the Maximize button, the 
3582           Maximize button will be shown as pressed). Since Win32 does
3583           not generate WM_NCLBUTTONUP if you release the button outside
3584           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3585           it as a mouse up.
3586         
3587         * ThemeWin32Classic.cs:
3588         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3589
3590         * MdiClient.cs:
3591         - Added a list of forms which contains the order the forms are
3592           added to the mdi parent.
3593         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3594         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3595         - If the active form changes set the scrollbars to the top
3596           of the Z order, otherwise the form could hide them.
3597         - Scrollbars are now sized according to ClientSize, not 
3598           to Size, and they take into account the other scrollbar
3599           to determine maximum.
3600         
3601 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3602         
3603         * XplatUI.cs:
3604         * XplatUIDriver.cs:
3605         * XplatUIX11.cs:
3606         * XplatUIWin32.cs:
3607         * XplatUIOSX.cs:
3608         - Added RequestAdditionalWM_NCMessages for windows to 
3609           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3610           Currently only implemented in XplatUIWin32.
3611
3612 2006-11-27  Chris Toshok  <toshok@ximian.com>
3613
3614         * Hwnd.cs: only add the hwnd to the windows hash in
3615         set_WholeWindow and set_ClientWindow if whole_window/client_window
3616         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3617
3618 2006-11-27  Mike Kestner  <mkestner@novell.com>
3619
3620         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3621         from the ComboListBox.ShowWindow code. Fixes #79969.
3622
3623 2006-11-27  Chris Toshok  <toshok@ximian.com>
3624
3625         * Hwnd.cs: remove the setters for ExposePending and
3626         NCExposePending - noone uses them.
3627
3628 2006-11-27  Jackson Harper  <jackson@ximian.com>
3629
3630         * TextControl.cs: new param for ReplaceSelection which determines
3631         whether we select the new selection, or set the cursor to the end
3632         of the new selection.
3633         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3634         pasting, select the new text.
3635         * RichTextBox.cs: Use new param for ReplaceSelection.
3636
3637 2006-11-27  Jackson Harper  <jackson@ximian.com>
3638
3639         * TextBoxBase.cs: Set the selection to the caret after the caret
3640         is moved, otherwise they get out of sync.
3641
3642 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3643
3644         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3645         it fixes #80015
3646
3647 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3648
3649         * ThemeWin32Classic.cs: 
3650         - Fix toolbar drop down arrow position.
3651         - Fix drop down appearance when ToolBar.Appearance is normal,
3652         it fixes #80018.
3653         
3654 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3655
3656         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3657         * Control.cs: Same.
3658         * UpDownBase.cs: Same.
3659         * ButtonBase.cs: Same.
3660         * ScrollBar.cs: Same.
3661         * TrackBar.cs: Same.
3662         * PictureBox.cs: Same.
3663         * UserControl.cs: Same.
3664         * Label.cs: Same.
3665         * ListControl.cs: Same.
3666         * TextBoxBase.cs: Same.
3667         * ListView.cs: Same.
3668         * RichTextBox.cs: Same.
3669         * TreeView.cs: Same.
3670
3671 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3672
3673         * PrintDialog.cs:
3674         - Text label for where 
3675         - Text label comment was not shown
3676
3677 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3678
3679         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3680
3681 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3682
3683         * InternalWindowManager.cs: 
3684         - Handle WM_PARENTNOTIFY to activate the form
3685         if any child control is clicked.
3686         - The form is only sizable if not minimized.
3687
3688         * MdiWindowManager.cs:
3689         - Save the IconicBounds if the form is moved.
3690         - Rework SetWindowState, now the window bounds 
3691         are stored only if the old window state is Normal.
3692         
3693         * MdiClient.cs:
3694         - In SetWindowStates store the old window state if 
3695         the window is maximized and restore window state if
3696         the window looses focus.
3697         - Don't handle any scrollbar value changes if 
3698         initializing the scroll bars. Fixes #79771.
3699         - Reworked ArrangeIconicWindows. Current algorithm
3700         tests bounds agains all other minimized windows, if
3701         any intersections create new bounds (going left to 
3702         right, bottom to top) and then test again. When 
3703         successful the bounds are saved and never computed
3704         again. Fixes #79774.
3705
3706 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3707
3708         * InternalWindowManager.cs: Added HandleTitleBarUp.
3709
3710 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3711
3712         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3713         hexadecimal in ParseUserEdit.
3714
3715         
3716 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3717
3718         * MdiWindowManager.cs: 
3719         - Handle a click on the form's icon to show the 
3720         system menu (when maximized). Fixes #79775.
3721         - Change the existing click handler for the form's
3722         icon when not maximized to show on MouseUp.
3723         Fixes #79776.
3724
3725         * Form.cs: In OnResize only layout the mdi child's
3726         parent if it actually has a parent. Might not if
3727         the window is closing.
3728
3729
3730 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3731
3732         * MdiClient.cs: Ignore active MDI client for text of parent, if
3733         child has no text set.
3734
3735 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3736
3737         * ToolBar.cs: Fixed ToString to match MS.
3738
3739 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3740
3741         * NumericUpDown: 
3742         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3743         update inner values on set. Fixes #79966.
3744         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3745         - Fix hexadecimal parsing.
3746         
3747         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3748         parent. Fixes #79957
3749
3750 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3751
3752         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3753         the actual size has to be queried, since if height /
3754         width is negative Win32 changes it to 0. 
3755         Fixes #79999 on Windows.
3756         
3757         * XplatUIX11.cs: Set height / width to 0 if negative
3758         in SetWindowPos. Fixes #79999 on Linux.
3759         
3760 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3761
3762         * ThemeWin32Classic.cs: Fix text redenring when button is
3763         pressed.
3764
3765 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3766
3767         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3768         and later navigate by mouse. Fixes #79528.
3769
3770 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3771
3772         * ToolBar.cs: Set default value for TabStop to false in
3773         constructor, it fixes remaining behavior of bug #79863.
3774
3775 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3776
3777         * MdiWindowManager.cs:
3778         * InternalWindowManager.cs:
3779         - Moved a few methods specific to Mdi from 
3780         InternalWindowManager to MdiWindowManager.
3781         Fixes #79996.
3782         
3783 2006-11-21  Chris Toshok  <toshok@ximian.com>
3784
3785         * XplatUIOSX.cs: stub out InvalidateNC.
3786
3787         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3788         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3789
3790         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3791
3792         * XplatUIDriver.cs: add InvalidateNC abstract method.
3793
3794         * XplatUI.cs: add InvalidateNC.
3795
3796 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3797
3798         * ToolBar.cs: Invalidate complete button area when pressed status 
3799         was changed.
3800         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3801         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3802         by 1 when button is pressed.
3803
3804 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3805
3806         * ToolButton.cs: Invalidate middle of DropDown button when
3807         ToolBar theres DropDownArrows.
3808         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3809         fix DropDown drawing operations.
3810
3811 2006-11-20  Chris Toshok  <toshok@ximian.com>
3812
3813         * NativeWindow.cs: fix the formatting of functions ('{' on the
3814         following line), and enable the thread exception dialog.
3815
3816         * Application.cs: remove the duplicate exception catching from
3817         here.
3818
3819 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3820
3821         * Toolbar.cs: Triggers button click event when click on icon
3822         of dropdown ToolBarButton. Fixes #79912.
3823         
3824 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3825
3826         * Theme.cs:
3827         * ThemeWin32Classic.cs:
3828         - Added a property WindowBorderFont to enable themeing
3829           of mdi child windows' Text.
3830           
3831 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3832
3833         * InternalWindowManager.cs:
3834         * Form.cs:
3835         * MdiClient.cs:
3836         * MdiWindowManager.cs: 
3837         - If mdi child is maximized, set mdi parent's
3838           text to "Parent - [Child]". Fixes #79770.
3839         - If there is any maximized mdi child windows, only the active 
3840           window (and any new windows) is maximized, the rest are normal.
3841         - On a WindowState change only save mdi child's window bounds 
3842           if the old window state was normal. Fixes #79774.
3843         - The scroll bars are now calculated on hopefully all
3844           necessary events. Fixed #79771 / #79844->6 / #79906.
3845         - MdiClient.SizeScrollBars() now takes into account docked 
3846           controls in the parent when calculating available space.
3847         - InternalWindowManager now always repaints the entire title
3848           area. Fixes #79844->1/4/5.
3849         - Added RequestNCRecalc on mdi child windowstate changes.
3850           Fixes #79772.
3851
3852 2006-11-20  Mike Kestner  <mkestner@novell.com>
3853
3854         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3855         in the MouseUp handler of the listbox and move the return handling
3856         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3857
3858 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3859
3860         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
3861
3862 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3863
3864         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
3865           working in 1.2.x anymore. So, updated.
3866
3867 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
3868
3869         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
3870         NumberGroupSeparator of current culture instead of assuming en-US.
3871         Fixed bug #79967.
3872
3873 2006-11-17  Mike Kestner  <mkestner@novell.com>
3874
3875         * Control.cs: Add the concept of implicit bounds setting so that
3876         dock/undock round trips preserve explicitly set size/locations.
3877         Fixes #79313.
3878
3879 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3880
3881         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
3882           can't handle those filters. (Fixes bug #79961)
3883
3884 2006-11-17  Chris Toshok  <toshok@ximian.com>
3885
3886         [ fixes the exit/crashes associated with #79835.  it's clearly
3887         suboptimal though, we need to figure out a better way to solve
3888         this. ]
3889         
3890         * PrintPreviewControl.cs: deal with the new invalid printer
3891         exceptions.
3892
3893         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
3894         and return false (so CommonDialog.ShowDialog doesn't actually show
3895         the form.)
3896
3897         * PrintDialog.cs: enable/disable the Ok button depending on
3898         whether or not the printer is valid.
3899
3900         * CommonDialog.cs (ShowDialog): only actually show the form if
3901         RunDialog returns true.
3902
3903 2006-11-17  Jackson Harper  <jackson@ximian.com>
3904
3905         * TextControl.cs: When soft splitting a line, mark it as a soft
3906         split line. Also carry over the current line break to the next
3907         line.
3908
3909 2006-11-17  Chris Toshok  <toshok@ximian.com>
3910
3911         * XplatUIX11.cs: when scrolling a window with an invalid area, we
3912         only want to shift the part of the invalid area that overlaps the
3913         area we're scrolling.  we also don't want to clear the invalid
3914         area unless the invalid area was entirely contained within the
3915         scrolling area.
3916
3917 2006-11-16  Chris Toshok  <toshok@ximian.com>
3918
3919         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
3920         also make sure to free the memory returned by XGetWindowProperty
3921         in GetText().
3922
3923         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
3924
3925 2006-11-16  Chris Toshok  <toshok@ximian.com>
3926
3927         * XplatUI.cs: add a new super secret way to get at the totally
3928         unsupported X11 backend.
3929
3930 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
3931
3932         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
3933
3934 2006-11-16  Jackson Harper  <jackson@ximian.com>
3935
3936         * TreeView.cs: Allow more explicit setting of top node position
3937         for scrollbars. Slower algo, but more accurate.
3938         - CollapseAll should maintain the current top node.
3939         * TextBoxBase.cs: When positioning the caret, use the line, pos
3940         method, since the x, y method does not grab the correct tag, and
3941         the caret height never gets set correctly. (Maybe I should just do
3942         away with the caret having its own height, and always use the
3943         carets current tag for height).
3944
3945 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
3946
3947         [Fixes 79778, 79923]
3948
3949         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
3950         Parent to the FosterParent instead.
3951
3952 2006-11-16  Jackson Harper  <jackson@ximian.com>
3953
3954         * TreeView.cs: Need to recalc the topnode when we expand or
3955         collapse. The scrolling methods can't handle this on their own,
3956         since they use differences between the last scroll position, and
3957         those difference get completely messed up since we are expanding
3958         nodes.  This problem should probably be fixed in the scrolling
3959         methods, so they can figure out exactly where they are, but this
3960         will slow things down a little.
3961         * ThemeWin32Classic.cs: Special case for groupboxes with empty
3962         strings, makes nunit-gui look a lot nicer.
3963
3964 2006-11-16  Chris Toshok  <toshok@ximian.com>
3965
3966         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
3967         the broken multithreaded event handling we have in here.  File
3968         this entry under "Why we should move to the new X11 backend".
3969
3970         Any thread can make it into UpdateMessageQueue, which gets events
3971         from the X socket - some of which could belong to hwnds being
3972         managed by a different thread.  We can also have multiple threads
3973         in UpdateMessageQueue at the same time, with each one reading from
3974         the X socket.  This leads to many problems, with the following
3975         solutions:
3976
3977         We can't use hwnd.Queue.Enqueue anywhere in here and must use
3978         EnqueueLocked.
3979
3980         The MotionNotify compression we do can't work across threads
3981         (without locking the entire queue, perhaps) since we call
3982         hwnd.Queue.Peek, so we just punt and don't compress motion events
3983         unless the owning thread is the one which got the X event.
3984
3985         ConfigureNotify is another fun one, since it modifies the hwnd's
3986         bounds and then enqueues the event.  We add a lock to Hwnd which
3987         is held when setting configure_pending to true (and enqueuing the
3988         event).
3989
3990         There is a race wrt the wake socket.  we need to make sure that
3991         only 1 thread is waiting on that socket, or else a thread could
3992         sleep waiting for data that never comes.  It's difficult (but not
3993         impossible) to make happen, because it seems to require something
3994         like the following:
3995
3996             1. Thread 1 polls on wake_receive
3997         
3998             2. poll returns saying there's data to be read on
3999                wake_receive.
4000         
4001             3. Thread 2 polls on wake_receive and immediately returns
4002                saying there's data to be read.
4003
4004             4. Thread 2 reads the wakeup byte from wake_receive
4005
4006             5. Thread 1 attempts to read the wakeup byte from
4007                wake_receive.
4008
4009             6. Thread 2 exits (due to a form closing, perhaps).
4010
4011             7. Thread 1 blocks forever.
4012         
4013         Fun, eh?
4014
4015         Fixing the Expose handling isn't done yet, and the races inherent
4016         in that piece of code are responsible for the drawing mistakes you
4017         see when generating expose events in a MT app (like NPlot).  This
4018         one is the likely to be the hardest to bandaid, and it doesn't
4019         appear to cause anything but drawing problems.  The other issues
4020         caused apps to exit or hang.
4021
4022         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4023         called from a different thread than the one that should be calling
4024         these functions.
4025
4026         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4027
4028 2006-11-15  Chris Toshok  <toshok@ximian.com>
4029
4030         * Application.cs: null out the context's MainForm when we exit
4031         RunLoop.  Fixes a newly checked in unit test as well as the last
4032         ODE from bug #79933.
4033
4034 2006-11-15  Chris Toshok  <toshok@ximian.com>
4035
4036         * Form.cs (set_Owner): allow a null value so we can clear the
4037         form's owner.
4038         (Dispose): set all our owned_form's Owner properties to null, and
4039         clear the owned_forms collection.
4040         (WM_CLOSE): clean up this a little bit.. still not right though.
4041
4042         * ApplicationContext.cs: OnMainFormClosed should only call
4043         ExitThreadCore if the main form isn't recreating.  Fixes unit
4044         test.
4045
4046 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4047
4048         [Fixes 78346]
4049
4050         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4051
4052 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4053
4054         [Fixes 79433]
4055
4056         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4057         keep popup window types from stealing focus from the main form
4058         on Windows.
4059
4060         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4061
4062         * MenuAPI.cs: Set above flag to true.
4063
4064 2006-11-15  Chris Toshok  <toshok@ximian.com>
4065
4066         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4067         the button being released is not in wParam.
4068
4069 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4070
4071         * Form.cs: Add the released button to MouseEventArgs.Button
4072         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4073         on Win32.
4074
4075 2006-11-15  Chris Toshok  <toshok@ximian.com>
4076
4077         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4078         GetText().  untested because it's unused in our implementation.
4079         Control.Text always caches the text, even if
4080         ControlStyles.CacheText is not set.
4081
4082         fixes bug #79939.
4083
4084 2006-11-15  Chris Toshok  <toshok@ximian.com>
4085
4086         [ fixes #79933 ]
4087         
4088         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4089         message.  no hiding, no disposing.
4090
4091         in the WM_CLOSE handler, hide the form if it's modal.
4092
4093 2006-11-15  Chris Toshok  <toshok@ximian.com>
4094
4095         * XplatUIX11.cs: use AddExpose instead of sending a message.
4096         fixes textbox border drawing.
4097
4098 2006-11-15  Chris Toshok  <toshok@ximian.com>
4099
4100         * PropertyGridView.cs: keep from crashing on mouse move/down when
4101         the property grid is empty.
4102
4103 2006-11-14  Jackson Harper  <jackson@ximian.com>
4104
4105         * TextControl.cs: Make PageUp and PageDown more like the MS
4106         versions.
4107         * TextBoxBase.cs: When we set the text property position the
4108         cursor at the beginning of the document.
4109
4110 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4111
4112         * Form.cs: if a mdi child's WindowState has changed
4113         before it's creation, it would display wrong control
4114         buttons.
4115         
4116 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4117
4118         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4119           (Fixes bug #79927)
4120
4121 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4122
4123         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4124         the window gets to paint its borders even if the window is
4125         getting smaller.
4126         
4127         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4128         otherwise the old control buttons would still be painted 
4129         if the window gets bigger.
4130         
4131         * PaintEventArgs.cs: add an internal method so that the clip 
4132         rectangle can be changed.
4133         
4134 2006-11-13  Chris Toshok  <toshok@ximian.com>
4135
4136         [ fixes bug #79745 ]
4137         
4138         * NotifyIcon.cs: lots of cleanup.
4139
4140         * X11Structs.cs: add an enum for XEMBED messages.
4141
4142         * XplatUIX11.cs: reindent one of the giant switch statements, it
4143         was taking up an additional tab stop, and this file is already way
4144         too wide for my laptop's screen.
4145
4146         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4147         we get it, resize the hwnd to the WMNormalHints max_width/height.
4148
4149 2006-11-13  Jackson Harper  <jackson@ximian.com>
4150
4151         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4152         teh simple way.
4153
4154 2006-11-13  Chris Toshok  <toshok@ximian.com>
4155
4156         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4157         #79898.  force a reference to the Region to stick around so the
4158         unmanaged object isn't collected (rendering our handle in the MSG
4159         stale).
4160
4161 2006-11-13  Chris Toshok  <toshok@ximian.com>
4162
4163         * XplatUIX11.cs: fix #79917 for window managers which support
4164
4165         using XStoreName on the raw utf8, and we need to convert to
4166         COMPOUND_TEXT if it's non-latin1.
4167
4168 2006-11-13  Chris Toshok  <toshok@ximian.com>
4169
4170         * Form.cs (set_DialogResult): we need to set closing to false if
4171         we're setting our result to None.  fixes bug #79908.
4172
4173 2006-11-13  Jackson Harper  <jackson@ximian.com>
4174
4175         * TextControl.cs: When formatting text, compute the adjusted tag
4176         lengths correctly, using FindTag for the end tag instead of trying
4177         to figure it out outselves.
4178         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4179         the item, ItemHeight doesn't work, because trees with large
4180         imagelists use those for their height
4181         * TreeView.cs: ActualItemHeight factors in the image height
4182         - compute left edge of checkboxes correctly
4183         - when expanding/collapsing move the bottom down one pixel, so we
4184         aren't moving part of the node
4185
4186 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4187
4188         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4189         stack in PaintEventStart so that it won't get disposed by the gc
4190         before reaching PaintEventEnd.
4191
4192 2006-11-13  Jackson Harper  <jackson@ximian.com>
4193
4194         * TextBoxBase.cs: Don't select the word if we are on a line with
4195         no text.
4196         - We don't need to position the caret on mouse up, since the mouse
4197         move handler should be doing this
4198         - When double clicking a blank line, the caret is advanced to the
4199         next line.
4200
4201 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4202
4203         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4204
4205 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4206
4207         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4208         Fixes part of bug #79910.
4209
4210 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4211
4212         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4213           (bug #79903). Some minor string updates to match ms.
4214
4215 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4216
4217         * FileDialog.cs: Don't add an extension if the filename
4218           already ends with that extension.
4219
4220 2006-11-10  Jackson Harper  <jackson@ximian.com>
4221
4222         * TreeView.cs: Use the currently highlighted node for the
4223         BeforeSelect event.
4224         * TextBoxBase.cs: There is no need to expand selection on
4225         MouseMove.
4226         - CanUndo means 'is there any undo operations', not 'is undo
4227         allowed on this textcontrol. Fixed ClearUndo unit test.
4228
4229 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4230
4231         * Button.cs: only perform click when button is Selectable (so as 
4232         not to activate default buttons when they're disabled)
4233         
4234         * Control.cs: Rewrite of the SelectNextControl and related 
4235         methods. HandleClick now selects next control if the current one
4236         is being disabled.
4237         
4238         * Form.cs: OnActivated selects next active control only if Load 
4239         has already occurred. If Load hasn't run, there's no point in 
4240         selecting here, Load might change the state of controls.
4241         
4242         * FocusTest.cs: Tests marked as working again for these fixes
4243
4244 2006-11-10  Chris Toshok  <toshok@ximian.com>
4245
4246         * XplatUIX11.cs: a couple of fixes.
4247
4248         - use XInternAtoms with almost all the atoms we need to register,
4249         instead of many, many calls to XInternAtom.  should help a bit on
4250         startup time, at the expense of making the code look a little
4251         worse.
4252
4253         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4254         isn't reparented (which seems to be a clue that we're running fon
4255         compiz) and they have an Owner form.  This fixes the tool windows
4256         in paint.net when running under compiz.
4257
4258         - when setting the opacity of a window, support both the case
4259         where the window has been reparented and also when it hasn't been.
4260         Since compiz/beryl doesn't seem to reparent windows, and these are
4261         the only window managers which support translucency, I'm not sure
4262         why we need the hwnd.reparented case at all.. but leave it in.
4263         now we get translucent windows in paint.net under compiz/beryl.
4264
4265 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4266
4267         * FileDialog.cs: Always return the value for FilterIndex that
4268           was set. Internally convert it to values that make sense.
4269
4270 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4271         
4272         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4273
4274 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4275
4276         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4277         signature still using false to make it compatible with MS but the 
4278         initial value is true. Fixes #79855.
4279
4280 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4281
4282         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4283           only available on Linux.
4284
4285 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4286
4287         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4288         reduce number of calls to redraw method during toolbar creation.
4289
4290 2006-11-09  Mike Kestner  <mkestner@novell.com>
4291
4292         * ListView.cs : raise SelectedIndexChanged when an item is selected
4293         programmatically via the Item.Selected property.  Gert's nice 
4294         ListViewSelectedIndexChanged test fixture now runs clean.
4295
4296 2006-11-09  Mike Kestner  <mkestner@novell.com>
4297
4298         * ListView.cs : raise SelectedIndexChanged when a selected item is
4299         removed from the item collection using Remove or RemoveAt.
4300
4301 2006-11-09  Mike Kestner  <mkestner@novell.com>
4302
4303         * ListView.cs : raise SelectedIndexChanged once per selected item
4304         for compat with MS.  Fixes #79849+.
4305
4306 2006-11-09  Chris Toshok  <toshok@ximian.com>
4307
4308         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4309         we need to (if we have any tab pages).  Fixes unit test.
4310
4311 2006-11-09  Chris Toshok  <toshok@ximian.com>
4312
4313         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4314         width is 0, not 3.  Fixes a unit test.
4315
4316 2006-11-09  Mike Kestner  <mkestner@novell.com>
4317
4318         * ListView.cs : use Implicit scrollbars so that focus isn't 
4319         stolen from the listview when they are clicked. Fixes #79850.
4320
4321 2006-11-09  Chris Toshok  <toshok@ximian.com>
4322
4323         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4324         have a root item.  Fixes #79879.
4325
4326 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4327
4328         * FileDialog.cs:
4329           - Fix ToString ()
4330           - An ArgumentException is now thrown if a wrong filter
4331             is applied (matches ms). The previous filter doesn't change
4332             anymore if an exception is thrown.
4333           - Changing the FileName property also affects FileNames
4334         * ColorDialog.cs: The length of the CustomColors array is always
4335           16. It doesn't matter if we use a smaller array or null to update
4336           or change the custom colors property.
4337         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4338           for RootFolder if we get a undefined value.
4339
4340 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4341
4342         * StatusBarPanel.cs: 
4343         - Width is set to MinWidth if Width is smaller than
4344         MinWidth. Fixes #79842.
4345         - MinWidth now always overrides Width (MSDN says MinWidth
4346         is set to Width when AutoSize = None, but they do not 
4347         behave like that).
4348         - Style has now the the correct default value.
4349         
4350 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4351  
4352         * TrackBar.cs: 
4353         - The control is completely invalidated on 
4354         Got/LostFocus to draw the focus rectangle correctly.
4355         - When AutoSize then height is always 45 (width for 
4356         vertical controls).
4357         
4358         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4359         on the mouse when moved and it doesn't move when grabbed
4360         until the mouse moves as well. Also fixed some wrong 
4361         calculations when clicking on the thumb (control thought
4362         click was outside of thumb and didn't grab it).
4363         Fixes some of the issues in #79718.
4364
4365 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4366
4367         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4368
4369 2006-11-08  Chris Toshok  <toshok@ximian.com>
4370
4371         * PropertyGridView.cs: only call ToggleValue if the item is not
4372         readonly.
4373
4374 2006-11-08  Jackson Harper  <jackson@ximian.com>
4375
4376         * TextBoxBase.cs: The RichTextBox and textbox have very different
4377         word selection methods.  Implement the textbox's simple word
4378         selection here, and let the RichTextBox override and provide it's
4379         own.
4380         - Don't do extra selection on mouseup
4381         * RichTextBox.cs: Use the documents word selection algorithm, I
4382         think ideally, this function will be pulled into the
4383         RichTextBox.cs code someday.
4384
4385 2006-11-08  Chris Toshok  <toshok@ximian.com>
4386
4387         * RootGridEntry.cs: new class to represent GridItemType.Root.
4388
4389         * CategoryGridEntry.cs: reformat, and add boilerplate.
4390         
4391         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4392         returns the UI parent anyway, and we need special handling to
4393         implement the GetTarget method in the face of it.  Also, implement
4394         Select().
4395
4396         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4397         a root grid item, and use that instead of PropertyGrid.grid_items.
4398         Also, make use of TypeConverters (and add limitted support for
4399         ICustomTypeDescriptors) when initially populating the grid.
4400         Arrays now show up more or less properly.
4401
4402 2006-11-08  Chris Toshok  <toshok@ximian.com>
4403
4404         * Application.cs: set the modal dialog to non modal after we close
4405         it.  Fixes bug #79866.
4406
4407 2006-11-08  Jackson Harper  <jackson@ximian.com>
4408
4409         * TextControl.cs: When combining lines carry over the line end
4410         style from the end line.
4411         - Invalidate the selected area when setting it, if it is visible.
4412         * TextBoxBase.cs: Only rich text box can do full line selects.
4413         - Make sure to set the cursor position when there is a click,
4414         otherwise two clicks in separate areas could cause a large chunk
4415         to be selected.
4416
4417 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4418
4419         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4420         Fixes #79863.
4421
4422 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4423
4424         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4425         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4426
4427 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4428
4429         * MenuAPI.cs: Ignore right click for menu actions and fixes
4430         menu border when clicked.  Fixes #79846.
4431
4432 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4433
4434         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4435         MouseState after create wParam for message, this fixes mouse button 
4436         equal none in mouse up events.
4437         
4438 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4439
4440         * Control.cs : Focus() now calls Select to set the Container's
4441         Active Control and to give it focus. To avoid infinite recursion
4442         (because ActiveControl also calls Focus at one point), a check 
4443         is made in Focus with the help of a new internal variable
4444         is_focusing.
4445
4446 2006-11-07  Mike Kestner  <mkestner@novell.com>
4447
4448         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4449         if there's a selection.  Fixes #79849.
4450
4451 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4452
4453         * PropertyGrid.cs: Avoid fixed height of help description label.
4454         Fixes part of bug #79829.
4455
4456 2006-11-07  Chris Toshok  <toshok@ximian.com>
4457
4458         * XplatUIX11.cs: fix #79790 again, by using the
4459         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4460
4461 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4462
4463         * ToolBar.cs: Fix left click checking.
4464
4465 2006-11-07  Chris Toshok  <toshok@ximian.com>
4466
4467         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4468
4469 2006-11-07  Chris Toshok  <toshok@ximian.com>
4470
4471         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4472         PropertyManager unit tests.
4473
4474         * PropertyManager.cs: make property_name internal.
4475
4476 2006-11-07  Chris Toshok  <toshok@ximian.com>
4477
4478         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4479         pass a unit test.  Also, don't set image_index to anything in
4480         response to setting the ImageList property.
4481
4482 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4483
4484         * ToolBar.cs: Ignore click events when mouse button is not a
4485         left button, only accepts other button for dropdown menus.  
4486         Fixes #79854.
4487
4488 2006-11-07  Chris Toshok  <toshok@ximian.com>
4489
4490         * DataGrid.cs: make the back and parent row buttons a little less
4491         ugly.
4492
4493 2006-11-07  Jackson Harper  <jackson@ximian.com>
4494
4495         * TextBoxBase.cs: When converting to Text don't put line breaks in
4496         for soft line breaks.
4497         * TextControl.cs: There is an initial "fake" line in the document,
4498         this is now a soft break line, so that an extra line feed doesn't
4499         get added to the end of documents.
4500
4501 2006-11-07  Chris Toshok  <toshok@ximian.com>
4502
4503         [ fix bug #79778 ]
4504         
4505         * CurrencyManager.cs: if the list is readonly, don't bother
4506         checking if IBindingList.AllowNew is true.
4507
4508         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4509         for non-DataRowView datasources..  or rather, make it not crash.
4510         (DataGridPaintRelationRow): make sure we limit the row painting to
4511         the area not covered by the row header, and make our cell width at
4512         least large enough to cover the relation area.  This allows grids
4513         that have relations but no rows to render correctly.
4514         (DataGridPaintRowContents): same type of changes here.
4515         (SetDataSource): move back to always calling
4516         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4517         navigating back through relations.
4518         (HitTest): handle the case where we have no cells but have
4519         relations.  Right now we generate a hit in cell 0 of whatever the
4520         row is, not sure if this is strictly correct, but it works for our
4521         purposes.
4522         
4523         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4524         bother doing anything.
4525
4526 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4527
4528         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4529         early version of StatusStrip.  Not responsible for eaten
4530         application or firstborn children.
4531
4532 2006-11-06  Chris Toshok  <toshok@ximian.com>
4533
4534         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4535         call GetTabRect with a -1 index.  Fixes #79847.
4536
4537 2006-11-06  Jackson Harper  <jackson@ximian.com>
4538
4539         * TreeNodeCollection.cs: Update scrollbars after clearing.
4540
4541 2006-11-06  Chris Toshok  <toshok@ximian.com>
4542
4543         * NumericUpDown.cs: fix the ToString method for some unit test
4544         love.
4545
4546 2006-11-06  Chris Toshok  <toshok@ximian.com>
4547
4548         * PropertyGrid.cs:
4549         - set the initial SelectedGridItem if we can.
4550
4551         - Exclude non-mergable properties only if we're merging > 1
4552         object.  Merging 1 object isn't really merging, obviously.
4553
4554         - Handle PropertySort.NoSort just like Alphabetical, which is
4555         wrong of course, but at least gets things on the screen.
4556         
4557         * PropertyGridView.cs:
4558         - Add method "FindFirstItem" which finds the first property grid
4559         item, so we can select it by default.
4560
4561         - make use of GridEntry.CanResetValue.
4562
4563         - Don't call RedrawBelowItemOnExpansion here anymore, the
4564         individual GridEntry's will do that.
4565
4566         - Remove the ITypeDescriptorContextImpl internal class.
4567         
4568         * GridEntry.cs:
4569         - this class needs to implement ITypeDescriptorContext, as it's
4570         what MS's PropertyDescriptorGridEntry does, which means we can
4571         remove the ITypeDescriptorContextImpl internal class from
4572         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4573
4574         - keep a reference to our PropertyGridView, and move the call to
4575         RedrawBelowItemOnExpansion here from PGV.  This means
4576         programmaticly setting Expanded actually does something visible.
4577
4578         - add a CanResetValue() function which takes into account our
4579         possibly multiple "selected_objects" in the merged case.  Shifting
4580         PropertyGridView to use this method fixes another unreported
4581         crasher found running the test for #79829.
4582
4583         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4584         is updated to reflect this.
4585
4586         * CategoryGridEntry.cs: the ctor takes the PGV now.
4587         
4588 2006-11-06  Jackson Harper  <jackson@ximian.com>
4589
4590         * TextControl.cs: These are 1 based.
4591         * TextBoxBase.cs: When setting the selected text, don't change the
4592         selected text tags, this is done by ReplaceText, just position the
4593         cursor at the end of the new text.
4594
4595 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4596
4597         * ListView.cs: Allow label edit only when, when LabelEdit is
4598           set to true.
4599
4600 2006-11-06  Jackson Harper  <jackson@ximian.com>
4601
4602         * TextControl.cs: If a suitable wrapping position isn't found,
4603         just wrap right in the middle of a word.
4604
4605 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4606
4607         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4608           bug #79820.
4609
4610 2006-11-06  Jackson Harper  <jackson@ximian.com>
4611
4612         * TreeView.cs: Can't use the VisibleCount property when setting
4613         scrollbar heights, because this doesn't take into account whether
4614         or not the horz scrollbar just came visible.
4615
4616 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4617
4618         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4619         activated.  Fixes #79369, #79832.
4620
4621 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4622
4623         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4624           had to remove support for links that point to a directory. FileInfo
4625           returns no usefull information (means, the directory they point to)
4626           for such links. Replaced some empty string ("") with String.Empty.
4627
4628 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4629
4630         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4631         NullReferenceException when attempting to remove node that is not in
4632         collection. Throw NullReferenceException when null is passed to 
4633         Remove. Allow first element of the collection to be removed. Fixes
4634         bug #79831.  In GetEnumerator ().Current return null if positioned 
4635         before the first element of the collection. In GetEnumerator ().Reset,
4636         position before first element of the collection.
4637
4638 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4639
4640         * PropertyGrid.cs: To match MS, remove default title and description
4641         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4642         buttons.
4643
4644 2006-11-04  Chris Toshok  <toshok@ximian.com>
4645
4646         * Theme.cs: add a Clamp method, just for kicks.
4647
4648         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4649
4650 2006-11-04  Chris Toshok  <toshok@ximian.com>
4651
4652         * Form.cs: if the form isn't visible, Close() does nothing.
4653
4654 2006-11-03  Chris Toshok  <toshok@ximian.com>
4655
4656         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4657         Hide it.
4658         (WndProc): don't Dispose after handling the WM_CLOSE message.
4659
4660         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4661         them as such, instead of using casts from Control to Form.  Also,
4662         don't Dispose of the modal dialog when we fall out of the loop -
4663         Close() it instead.
4664
4665         fixes bug #79813.
4666
4667 2006-11-03  Chris Toshok  <toshok@ximian.com>
4668
4669         * Control.cs (Dispose): only go through the dispose thing if we're
4670         @disposing, and we haven't already been disposed.  Fixes bug
4671         #79814.
4672
4673         * Form.cs: no reason to call "base.Dispose()" here instead of
4674         "Dispose()".
4675
4676 2006-11-03  Mike Kestner  <mkestner@novell.com>
4677
4678         * ComboBox.cs : use ToString instead of casts in AddItem for
4679         sorting functionality.  Fixes #79812.
4680
4681 2006-11-03  Chris Toshok  <toshok@ximian.com>
4682
4683         * Application.cs: pave the way for actually using the thread
4684         exception dialog.  it's ifdefed out at the moment.
4685
4686 2006-11-03  Chris Toshok  <toshok@ximian.com>
4687
4688         * ThreadExceptionDialog.cs: until we get a better layout, actually
4689         hide the details textbox and label when we shouldn't see them.
4690
4691 2006-11-03  Jackson Harper  <jackson@ximian.com>
4692
4693         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4694         multiline textboxes anymore.  This method also determines the
4695         width/height of a textboxes canvas area.
4696         - Sorta a revert of the last patch.  For multiline just position
4697         the controls, then bail.  This way the scrollbar width won't be
4698         altered.
4699
4700 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4701
4702         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4703         it dont need.  Fixes #79537.
4704
4705 2006-11-02  Jackson Harper  <jackson@ximian.com>
4706
4707         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4708         send the status after firing the DndOver event.
4709
4710 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4711
4712         * TrackBar.cs: Now orientation only switches height / width if
4713         the control's handle is created (Win32 does it like this). Also 
4714         fixed a typo in ToString() for a test to pass, changed the 
4715         exception thrown in set_LargeChange and set_SmallChange to 
4716         match Win32 behaviour, and added TrackBar tests to the unit 
4717         tests.
4718
4719 2006-11-02  Chris Toshok  <toshok@ximian.com>
4720
4721         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4722         not _NET_WM_STATE_NO_TASKBAR.
4723
4724 2006-11-02  Jackson Harper  <jackson@ximian.com>
4725
4726         * TextControl.cs: Increment count by one, since in the update view
4727         count - 1 is used.
4728
4729 2006-11-02  Jackson Harper  <jackson@ximian.com>
4730
4731         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4732         the mouse is in the client rectangle (duh).
4733
4734 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4735         
4736         * TrackBar.cs: Fixed trackbar jumping around when clicking
4737         on it - the trackbar was not detecting correctly at which
4738         side of the thumb the click was done. (fixes #79718)
4739
4740 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4741
4742         * ListBox.cs: scroll visible area when change SelectedIndex to
4743         a non visible area.  Fixes #79481.
4744
4745 2006-11-01  Jackson Harper  <jackson@ximian.com>
4746
4747         * TextControl.cs: When replacing the selection move the selection
4748         start/end/anchor to the end of the new text.
4749
4750 2006-11-01  Jackson Harper  <jackson@ximian.com>
4751
4752         * XplatUIWin32.cs: When setting the parent change the controls
4753         visibility to it's visibility flag, not to it's old parents
4754         visibility (.Visible walks the parent chain).
4755
4756 2006-11-01  Chris Toshok  <toshok@ximian.com>
4757
4758         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4759         XSetTransientForHint fix breaks paint .net's tool windows.  more
4760         work needed for that one.
4761
4762 2006-11-01  Chris Toshok  <toshok@ximian.com>
4763
4764         * ScrollBar.cs: throw ArgumentException instead of Exception in
4765         LargeChange/SmallChange setters.  fixes unit tests.
4766
4767 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4768
4769         * ContainerControl.cs: reverted rev.67183 (which was itself
4770         a reversion of rev.66853... eh).
4771         
4772         * Control.cs: Fixes Reflector hang by changing Focus() call
4773         to what it was before rev.66643 (calling Select() here sets 
4774         ActiveControl, which in some situations calls back Focus and 
4775         eventually does a stack overflow). Temp fix.    
4776         Changes to GetNextControl() to not look for children to select when
4777         parent cannot be selectable (so it looks for siblings instead)  
4778         
4779 2006-10-31  Mike Kestner  <mkestner@novell.com>
4780
4781         * CheckedListBox.cs : off by one error in returned index from
4782         ObjectCollection.Add.  Fixes #79758.
4783
4784 2006-10-31  Chris Toshok  <toshok@ximian.com>
4785
4786         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4787         calls for the textbox/spinner, to keep from recursing to the point
4788         where we crash.  Fixes #79760.
4789
4790 2006-10-31  Chris Toshok  <toshok@ximian.com>
4791
4792         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4793         null/"" value, just return.  matches ms's behavior and fixes some
4794         failing tests.
4795
4796 2006-10-31  Chris Toshok  <toshok@ximian.com>
4797
4798         * Control.cs (set_Capture): make a logic a little easier to
4799         follow.
4800
4801         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4802         if it's being destroyed.  A necessary fix surely, but a bandaid
4803         also, to fix the stuck capture problem in bug #78413.
4804
4805 2006-10-31  Chris Toshok  <toshok@ximian.com>
4806
4807         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4808         convention of clearing hwnd.ClientRect when we set the
4809         width/height (so it'll be recalculated by Hwnd).
4810
4811 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4812
4813         * ContainerControl.cs: reversed Contains check from
4814         ActiveControl due to hanging problems. This fix
4815         partly regresses #79667 (button does not have
4816         initial focus), so this might be a symptom for 
4817         a larger parenting problem (set_ActiveControl
4818         is being called but the child control does
4819         not have the parent set yet?)   
4820         
4821 2006-10-31  Mike Kestner  <mkestner@novell.com>
4822
4823         * MenuAPI.cs : fix keynav when menu is click activated.
4824
4825 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4826
4827         * ToolStrip*: Version 0.2.
4828
4829         * MenuStrip.cs: Version 0.1.
4830
4831         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4832
4833 2006-10-30  Chris Toshok  <toshok@ximian.com>
4834
4835         [ fixes the oversized notify icon issue in bug #79745 ]
4836         
4837         * NotifyIcon.cs: scale the icon down to the size we're given by
4838         the XplatUI layer (this would be faster if we did it once instead
4839         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4840         since it's never invoked.
4841
4842         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4843         pixels high by default, so let's hardcode our systray icon to that
4844         size.  The SYSTEM_TRAY protocol should really have a way for
4845         client apps to query for the correct icon size.. but oh well.  A
4846         couple of patches to deal with the screwy client_window ==
4847         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4848         instance, and also make sure we don't XSelectInput twice).
4849
4850 2006-10-30  Chris Toshok  <toshok@ximian.com>
4851
4852         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4853         recreating forms.  Control recreation is the bane of my existence.
4854         Fix it in a way that keeps everyone happy.
4855
4856 2006-10-30  Chris Toshok  <toshok@ximian.com>
4857
4858         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
4859         just non-CHILD ones.  otherwise sometimes scrollbars end up with
4860         client_windows not being resized to the proper size (ReportBuilder
4861         shows this extremely well).
4862
4863 2006-10-30  Chris Toshok  <toshok@ximian.com>
4864
4865         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
4866         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
4867         showing up in the gnome taskbar.  Fixes bug #79790.
4868
4869 2006-10-30  Chris Toshok  <toshok@ximian.com>
4870
4871         * ApplicationContext.cs: guard against a NRE.
4872
4873         * Application.cs: null out the old MainForm for the context, so we
4874         don't try to use it again once it's disposed.  Fixes bug #79783.
4875
4876 2006-10-30  Chris Toshok  <toshok@ximian.com>
4877
4878         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
4879         BindingContext, set the data source directly, otherwise do the
4880         lazy approach - the actual ListManager will be created when we get
4881         a BindingContext. Fixes bug #79700.
4882
4883 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4884
4885         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
4886           XplatUIX11.cs: Remove old 2 parameter SetVisible.
4887
4888         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
4889
4890 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4891
4892         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
4893         of SetVisible that allows a window to be shown, but not activated.
4894         This is needed on Windows for MenuStrip, and can probably be used
4895         with MainMenu and ComboBox to fix the focus stealing issues on
4896         Windows.
4897
4898         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
4899
4900 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
4901
4902         * PictureBox.cs: Fix the output of the ToString method.
4903
4904 2006-10-29  Chris Toshok  <toshok@ximian.com>
4905
4906         * Control.cs (get_TopLevelControl): fix bug #79781.
4907
4908 2006-10-29  Chris Toshok  <toshok@ximian.com>
4909
4910         * ListControl.cs (set_DataSource): throw Exception here, not
4911         ArgumentException, to match MS behavior.
4912
4913 2006-10-29  Chris Toshok  <toshok@ximian.com>
4914
4915         * Form.cs: remove the try-catch's around calls to GetWindowState.
4916         We can just check the return value.
4917
4918         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
4919         Instead return -1.
4920
4921         * XplatUI.cs: Add note about additional return value for
4922         GetWindowState.
4923
4924 2006-10-29  Chris Toshok  <toshok@ximian.com>
4925
4926         * Control.cs (CreateHandle): when we create our handle, we also
4927         create the handles of our child controls.  Fixes one of the
4928         Control unit tests (CH11).
4929
4930 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4931
4932         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
4933
4934 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4935
4936         * ThemeClearlooks.cs: A little speedup.
4937
4938 2006-10-27  Chris Toshok  <toshok@ximian.com>
4939
4940         * Control.cs: implement Control.FromChildHandle in a way that
4941         matches the docs (and fixes the failed test.)
4942
4943 2006-10-27  Chris Toshok  <toshok@ximian.com>
4944
4945         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
4946         comments).
4947
4948         * DataGrid.cs: implement ResetForeColor such that the tests
4949         succeed.
4950         
4951 2006-10-27  Chris Toshok  <toshok@ximian.com>
4952
4953         * ToolBarButton.cs: setting text/tooltiptext to null results in it
4954         being set to "".  Fixes bug #79759.
4955
4956 2006-10-27  Jackson Harper  <jackson@ximian.com>
4957
4958         * TextControl.cs: We need to clear the entire selection area when
4959         setting the start, otherwise multiline selections are still
4960         visible.
4961
4962 2006-10-26  Chris Toshok  <toshok@ximian.com>
4963
4964         * PropertyGridView.cs: 
4965
4966         - ifdef all the code specific to the double
4967         buffer case, and provide some alternatives in the non-doublebuffer
4968         code, which makes heavy use of XplatUI.ScrollWindow to move things
4969         around without having to invalidate (and cause flicker).  There
4970         are still some drawing problems in the non-doublebuffered case, so
4971         DOUBLEBUFFER is defined by default.
4972
4973         - Fix the way dropdowns are handled.  now we explicitly watch for
4974         the events which might cause the dropdown to close, and break out
4975         of the nested event loop there.  This gets rid of all Capture
4976         code, at the expense of the Msg special casing.  Seems to work,
4977         though, and fixes bug #79743.
4978
4979 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
4980         * Control.cs: SetIsRecreating now recreates implicitly added
4981         child controls as well. Finally fixes #79629. The flag passed to 
4982         SetIsRecreating has also been removed since it wasn't used.
4983         
4984 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4985
4986         * PageSetupDialog.cs: Clean some code, fix some bits, 
4987         add some checks, and add a printer sub-dialog.
4988
4989 2006-10-26  Chris Toshok  <toshok@ximian.com>
4990
4991         * PropertyGrid.cs: make set_SelectedObject call
4992         set_SelectedObjects, and move the duplicate logic to the
4993         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
4994
4995         * PropertyGridView.cs: hide the textbox when we get a
4996         SelectedObjectsChanged event.
4997
4998         Fixes bug #79748.
4999
5000 2006-10-26  Chris Toshok  <toshok@ximian.com>
5001
5002         * PropertyGridView.cs: deal with the type converter not supporting
5003         GetStandardValues() or GetStandardValues() returning null, which
5004         is does in the default case.  Fixes #79742.
5005
5006 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5007
5008         * CheckedListBox.cs: nunit no longer crashes when selecting 
5009         Project/Edit menu option
5010         
5011 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5012
5013         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5014         is no menu selected. fixes #79739
5015
5016 2006-10-25  Chris Toshok  <toshok@ximian.com>
5017
5018         * PropertyGridView.cs: factor out the splitter invalidation code
5019         into the SplitterPercent setter, and for kicks implement the
5020         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5021         amount in either direction.
5022
5023 2006-10-25  Chris Toshok  <toshok@ximian.com>
5024
5025         * PropertyGridView.cs: do some cleanup of the brush used to draw
5026         text - read only fields should be grayed out.  not sure how to do
5027         this with the textbox, though.  but the textbox's should also be
5028         readonly now at least.  Also, hide/show the textbox when resizing
5029         the control.
5030         
5031         * CursorConverter.cs: use System.Reflection when getting the
5032         properties of Cursors, as TypeDescriptor.GetProperties isn't
5033         returning static properties.
5034
5035 2006-10-25  Chris Toshok  <toshok@ximian.com>
5036
5037         * PropertyGridView.cs: factor out the up/down handling, and reuse
5038         it for page up/down.  also add End/Home support.
5039
5040 2006-10-25  Chris Toshok  <toshok@ximian.com>
5041
5042         * PropertyGridView.cs:
5043
5044         - ensure the selected grid item is visible in the scrolled area,
5045         fixes bug #79572.
5046
5047         - fix Keys.Down handling when you're on the last item in the
5048         propertygrid.
5049
5050 2006-10-25  Mike Kestner  <mkestner@novell.com>
5051
5052         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5053         clicks too.  Fixes #79725.
5054
5055 2006-10-24  Chris Toshok  <toshok@ximian.com>
5056
5057         * PropertyGrid.cs: use property.Converter instead of
5058         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5059         TypeConverters declared on the property as well as on the
5060         PropertyType.  Fixes bug #79678.
5061
5062 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5063
5064         * MimeIcon.cs, Mime.cs:
5065           Fallback to the default platform handler if no shared mime info
5066           stuff exists (fixes #79693).
5067
5068 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5069         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5070         from previous fix (duh).
5071
5072 2006-10-20  Chris Toshok  <toshok@ximian.com>
5073
5074         * PropertyGridView.cs: the dropdown should be MIN(number of items
5075         in list, 15).  Fixes #79551.
5076
5077 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5078         Fixes #79384, #79394, #79652, #79667
5079         * Application.cs: 
5080         
5081         - Modal windows are now destroyed in the proper order for windows
5082         
5083         * ContainerControl.cs:
5084         
5085         - ActiveControl setter has more conditions on when to return:
5086                 - if we're reselecting the active control, but it actually
5087                 didn't have focus (window hidden or some such), it runs
5088                 - if the active control being selected doesn't actually 
5089                 exist in the container, it returns
5090         
5091         * Form.cs
5092         
5093         - The ShowDialog now gets the current form as the owner when
5094         invoking without parameters, and correctly activates the owner 
5095         when returning
5096         
5097         * MessageBox.cs
5098         
5099         - MessageBox now catches the Escape key to exit
5100
5101 2006-10-20  Chris Toshok  <toshok@ximian.com>
5102
5103         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5104         most of bug #79676):
5105
5106         - you can navigate around the property grid with the arrow keys.
5107
5108         - the dropdown is sized properly when the pg has a vertical
5109         scrollbar.
5110
5111         - fix the indentation for subentries, and properly select the
5112         entire label rect.
5113
5114         - fix the gray bar's drawing (only draw it to the last element,
5115         not for the height of the control.  Also make sure we draw that
5116         last horizontal grid line.
5117
5118         - use the same mechanism the datagrid uses wrt the editing textbox
5119         when scrolling/resizing/etc.  Namely, we hide it first, do the
5120         operation, then show it again (if it's still visible).
5121         
5122         - aggressively remove a lot of unnecessary refreshes (and also
5123         calls to Invalidate(). call more limited variants, and only redraw
5124         what we need.)
5125         
5126         * PropertyGrid.cs:
5127
5128         - when we're populating the merged collection, fill in the UI
5129         parent with either the passed in item, or the category item we
5130         create.
5131
5132         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5133
5134         * GridItem.cs: drop some fully qualified names.
5135         
5136         * GridEntry.cs: add a "UIParent", which is basically the parent
5137         treenode.
5138
5139         * GridItemCollection.cs: add an IndexOf method.
5140
5141 2006-10-20  Mike Kestner  <mkestner@novell.com>
5142
5143         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5144         a working win32 NC invalidation mechanism, we can't invalidate
5145         menus.  [Fixes #79705]
5146
5147 2006-10-20  Mike Kestner  <mkestner@novell.com>
5148
5149         * ListBox.cs : don't update the VScrollbar if the list is empty,
5150         just hide it.  [Fixes #79692]
5151
5152 2006-10-20  Jackson Harper  <jackson@ximian.com>
5153
5154         * RichTextBox.cs: Handle some special chars better, and don't skip
5155         the entire group when we encounter a special char that we don't
5156         handle correctly.
5157
5158 2006-10-18  Chris Toshok  <toshok@ximian.com>
5159
5160         * PropertyGridView.cs: address a number of issues from bug #79676,
5161         mostly of the cosmetic variety.
5162
5163         - The highlight rectangle for indented items not extends all the
5164         way to the left.
5165
5166         - Indented items aren't indented so much.
5167
5168         - the dropdown is properly sized width-wise if the pg has a
5169         vertical scrollbar.
5170
5171 2006-10-18  Chris Toshok  <toshok@ximian.com>
5172
5173         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5174         systray stuff is rather convoluted to begin with.
5175
5176         systray icons are a single window for some reason (that I haven't
5177         figured out yet), and for them, client_window == whole_window.
5178         Given the way the tests are structured elsewhere to determine
5179         which paints are pending (client vs. nc), that situation will
5180         always yield PAINT, not NCPAINT.  So, if we have a pending
5181         nc_expose and no pending expose, remove the hwnd from the paint
5182         queue, and also set nc_expose_pending to false, to keep us from
5183         blocking further expose's adding the hwnd to the paint queue.
5184
5185         phew.  like i said, a rather convoluted change.  Fixes the
5186         notifyicon repaint issues in bug #79645.
5187
5188 2006-10-18  Chris Toshok  <toshok@ximian.com>
5189
5190         * Form.cs: when getting the backcolor of the form, don't get
5191         base.BackColor, as this allows parents to influence the background
5192         color.  This breaks mdi forms.  Instead, if the background_color
5193         is empty, return the default.
5194
5195 2006-10-18  Chris Toshok  <toshok@ximian.com>
5196
5197         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5198         to being private instead of internal static.
5199
5200         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5201         crap, it wasn't working for more deeply nested controls anyway,
5202         and we already have the is_recreating flag - use that instead.
5203         Before calling DestroyHandle in RecreateHandle, recurse through
5204         the control tree setting it to true.  this returns the recreate
5205         code to much of its original simplicity, while now guaranteeing we
5206         actually recreate everything we're supposed to.  This change gets
5207         fyireporting actually showing mdi children.
5208
5209 2006-10-17  Chris Toshok  <toshok@ximian.com>
5210
5211         * Form.cs: remove some debug spew, and collapse some duplicate
5212         code at the end of SetClientSizeCore.
5213
5214         * XplatUIX11.cs: 
5215         - add some more debug spew here too wrt Destroy handling.
5216         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5217         in Control's handling of WM_DESTROY.
5218         - Remove the handling of zombie window DestroyNotifies from the
5219         event loop - we don't need it.  Now the only DestroyNotifies we
5220         actually handle are ones generated by X.
5221         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5222         match gtk's (functioning) handling of this. This keep metacity
5223         from leaving droppings in the form of wm borders with no window
5224         contents all over the place.
5225
5226         * Control.cs:
5227         - add a bunch of debug spew wrt control recreation.
5228         - fix a bug where we weren't tracking Visible properly on
5229         recreated hwnds.
5230         - fixed the WM_PAINT double buffer handling to support re-entrant
5231         calls (yes, i know it's gross, but it's happening to us).
5232
5233 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5234         * ThemeWin32Classic.cs: changed drawing of selected days
5235         to make them look better.
5236
5237 2006-10-16  Chris Toshok  <toshok@ximian.com>
5238
5239         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5240         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5241
5242         * XplatUIX11.cs: move away from using hwnd.client_dc and
5243         hwnd.non_client_dc and on to a stack of dc's (and in window's
5244         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5245         without puking or not disposing of Graphics objects.
5246
5247         * XplatUIOSX.cs: same.
5248
5249         * XplatUIWin32.cs: same.
5250
5251 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5252
5253         * FileDialog.cs: Don't call on_directory_changed inside
5254           OnSelectedIndexChanged (it changes the SelectedIndex too).
5255           Instead move it to OnSelectionChangeCommitted.
5256
5257 2006-10-13  Chris Toshok  <toshok@ximian.com>
5258
5259         * XplatUIX11.cs: more Destroy work.  the current code does the
5260         following things, in order:
5261
5262         1. Enumerates all handles of all controls at or below the one
5263         being destroyed, in pre-order.  As it is doing this, it marks the
5264         handles as zombie and clears all references to them.
5265         
5266         2. calls XDestroyWindow on the window passed in.
5267
5268         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5269         list.
5270
5271 2006-10-13  Chris Toshok  <toshok@ximian.com>
5272
5273         * XplatUIX11.cs: set hwnd.zombie to true before calling
5274         SendMessage (WM_DESTROY).  this keeps us from marking the new
5275         window a zombie, and also keeps us from calling sendmessage at
5276         all.
5277
5278 2006-10-13  Jackson Harper  <jackson@ximian.com>
5279
5280         * TextControl.cs: Do not show the caret and selection at the same
5281         time.  Reduces ugliness by 35%.
5282
5283 2006-10-13  Chris Toshok  <toshok@ximian.com>
5284
5285         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5286         zombie after we do the recursive call, so we actually do call
5287         SendMessage on the children controls.
5288         (GetMessage): if we find a pending paint event for a zombie hwnd,
5289         remove the hwnd from the paint queue, or else it will always be
5290         there (and we'll effectively loop infinitely)
5291
5292 2006-10-13  Mike Kestner  <mkestner@novell.com>
5293
5294         * MenuItem.cs : add Selected format under keynav too.
5295         Fixes #79528.
5296
5297 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5298
5299         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5300         implementation and that of MS.
5301
5302 2006-10-13  Chris Toshok  <toshok@ximian.com>
5303
5304         * Control.cs (OnInvalidated) only futz with the invalid_region if
5305         the control is double buffered.  this fixes the apparent hang in
5306         the ListView unit tests.  Someone needs to make the
5307         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5308
5309 2006-10-13  Chris Toshok  <toshok@ximian.com>
5310
5311         * PropertyGridView.cs:
5312
5313         - do a little refactoring so that only one place calls
5314         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5315         else call that.  Also make it Refresh, since there are redraw bugs
5316         otherwise (we should take a look at that...)
5317
5318         - do a little more refactoring work to share the body of code
5319         involved with the drop down.  it was duplicated in the code
5320         dealing with the listbox handling and in the code dealing with the
5321         UITypeEditors.
5322
5323         - add a Capture to the dropdown form's control once it's
5324         displayed, and add a MouseDown handler that checks to make sure
5325         the position is inside the control.  If it's not, close the
5326         dropdown.  This fixes #78190.
5327
5328         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5329         if the value is different than the initial value.
5330         
5331 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5332
5333         * Control.cs: see #78650
5334         - Fixed GetNextControl for several cases:
5335                 - Changed FindFlatForward to return 
5336                 correct sibling control when more than one
5337                 control has same TabIndex as the currently 
5338                 focused one.
5339                 - Changed FindFlatBackward to loop children
5340                 from last to first and apply same logic as in
5341                 FindFlatForward
5342                 - Changed FindControlForward to search for
5343                 children when control is not a container
5344                 but has children, or search for siblings if
5345                 control is a container...
5346                 - Changed FindControlBackward   to continue
5347                 searching for child controls when hitting 
5348                 Panel-like parents
5349                 
5350         - Fixed Focus method to update ActiveControl
5351         (FocusTest.FocusSetsActive failure)
5352         
5353         * TabControl.cs:
5354         - Focus rectangle now refreshes when gaining
5355         or losing focus
5356         - Removed grab for Tab key on IsInputKey that 
5357         was keeping tab navigation from working (#78650)
5358
5359 2006-10-13  Chris Toshok  <toshok@ximian.com>
5360
5361         * PropertyGridView.cs:
5362         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5363         SelectedObjects.
5364
5365         - Deal with GridItem.Value == null a few places.
5366
5367         * PropertyGrid.cs: 
5368         - replace the PopulateGridItemCollection with a pair of methods
5369         which compute the intersection of all the properties in the
5370         SelectedObjects array.  Fixes #79615.
5371
5372         - Throw ArgumentException from set_SelectedObjects if there's a
5373         null in the array.
5374
5375         - Add GetTarget method which can be used to traverse up the
5376         GridItem.Parent chain.  It depends on the assumption that
5377         selected_objects for different GridEntries are always in the same
5378         order (a safe assumption).  Use this method and loop over all the
5379         selected objects in the entry when calling RemoveValueChanged and
5380         AddValueChanged.
5381         
5382         * GridEntry.cs: Make this handle multiple selected objects.
5383         .Value returns null if not all the selected objects share the same
5384         value.
5385
5386 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5387         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5388           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5389           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5390           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5391           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5392         add additional functionality.
5393
5394 2006-10-12  Mike Kestner  <mkestner@novell.com>
5395
5396         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5397         * HelpProvider.cs : new ToolTipWindow ctor sig.
5398         * ToolTip.cs : remove ToolTip param from Window sig since it is
5399         not used.
5400         * ToolBar.cs : add tooltip support.  Fixes #79565.
5401
5402 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5403
5404         * ComboBox.cs: move the events in set_SelectedIndex to 
5405         after the call to HighlightIndex in order to avoid 
5406         possible recursion and subsequent problems with the call
5407         to HighlightIndex and include a range check in 
5408         set_HighlightIndex. Fixes #79588
5409         
5410 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5411
5412         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5413         to ui thread's settings instead of sunday. 
5414         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5415
5416 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5417
5418         * DateTimePicker.cs
5419         * MonthCalendar.cs
5420         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5421         and implement missing functionality (selecting different parts 
5422         of the date and edit them individually with the keyboard).
5423         
5424 2006-10-11  Chris Toshok  <toshok@ximian.com>
5425
5426         * Control.cs (OnInvalidated): fix NRE relating to last change.
5427
5428 2006-10-11  Chris Toshok  <toshok@ximian.com>
5429
5430         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5431         atoms in _NET_WM_STATE here if the window is maximized.  We need
5432         to do this because we're *replacing* the existing _NET_WM_STATE
5433         property, so those atoms will be lost otherwise, and any further
5434         call to GetWindowState will return Normal for a window which is
5435         actually maximized.  Fixes #79338.
5436
5437 2006-10-11  Jackson Harper  <jackson@ximian.com>
5438
5439         * TextControl.cs: Special case for setting selection end to
5440         selection start, we basically kill the anchor.
5441         - some todo comments.
5442
5443 2006-10-11  Chris Toshok  <toshok@ximian.com>
5444
5445         * Control.cs: switch to using an "invalid_region" to track which
5446         parts of the image buffer need updating.  This is more code than
5447         the simple fix from r66532.  That version just attempted to always
5448         fill the entire buffer on redraw, which turns out to be
5449         inefficient when invalidating small rectangles.  This version
5450         simply adds the invalid rectangle to the invalid region.  When we
5451         get any WM_PAINT message we see if it can be filled using the
5452         image buffer, and if it can't (if the paint event's clip rectangle
5453         is visible in the invalid region) we first fill the image buffer.
5454         So, the image buffer is still a cache, we just fill it lazily.
5455
5456         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5457         need it any longer.
5458
5459 2006-10-11  Chris Toshok  <toshok@ximian.com>
5460
5461         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5462         well as size after calling XMoveResizeWindow.  This keeps us from
5463         ignoring future SetWindowPos calls.  Fixes the disappearing
5464         DateTimePicker in the ToolBarDockExample from bug #72499.
5465
5466 2006-10-11  Chris Toshok  <toshok@ximian.com>
5467
5468         * TextBoxBase.cs: reorder things a bit when it comes to
5469         resizing-causing-recalculation.  we were recalculating the
5470         document when our position was changed, which shouldn't happen.
5471         We only care about size changes.  Clear up some more redundant
5472         recalculation calls while I'm at it.  This makes the toolbar dock
5473         example snappy when you're just dragging toolbars around (since it
5474         causes a relayout whenever you move one.)
5475
5476 2006-10-11  Chris Toshok  <toshok@ximian.com>
5477
5478         * ToolBarButton.cs (get_Rectangle): this only returns
5479         Rectangle.Empty if Visible == false, or Parent == null.
5480         Parent.Visible doesn't matter.
5481
5482 2006-10-10  Chris Toshok  <toshok@ximian.com>
5483
5484         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5485         by .net 1.1, so switch to an internal method instead.
5486
5487 2006-10-10  Chris Toshok  <toshok@ximian.com>
5488
5489         * Control.cs (WM_PAINT): when a control is double buffered we draw
5490         initially to the ImageBuffer and then copy from there.  But when a
5491         parent control which has child controls is double buffered, the
5492         initial drawing doesn't encompass the entire ClientRectangle of
5493         the parent control, so we end up with uninitialized bits (this is
5494         easily seen by dragging the top toolbar in
5495         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5496         manually set the ClipRectangle of the paint_event (only the one we
5497         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5498         of the nastiness in bug #72499.
5499
5500         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5501         which we use in Control.cs's WM_PAINT handling.
5502
5503 2006-10-10  Jackson Harper  <jackson@ximian.com>
5504
5505         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5506
5507 2006-10-10  Chris Toshok  <toshok@ximian.com>
5508
5509         * Cursor.cs: Apply a slightly different patch to the one suggested
5510         in #79609.
5511
5512 2006-10-10  Jackson Harper  <jackson@ximian.com>
5513
5514         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5515         not the parent form.
5516         * TextControl.cs: use difference in old line count vs new count to
5517         calculate how many lines were added, this takes into account soft
5518         line breaks properly.
5519
5520 2006-10-10  Chris Toshok  <toshok@ximian.com>
5521
5522         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5523         rectangle located at 0,0 and the size of the text.  Use
5524         ClientRectangle instead.  This fixes rendering of non-left aligned
5525         link labels.
5526
5527 2006-10-10  Jackson Harper  <jackson@ximian.com>
5528
5529         * TextBoxBase.cs: When we set the selection start position the
5530         caret.
5531         * TextControl.cs: Need to update the caret when we decrement it to
5532         zero.
5533         - Make sure that the selection_visible flag gets reset to false if
5534         the selection isn't visible.  Before this you could get it set to
5535         visible by changing the selection start, then changing the end to
5536         equal the start.
5537
5538 2006-10-09  Jackson Harper  <jackson@ximian.com>
5539
5540         * TreeView.cs: Don't update scrollbars when we aren't visible.
5541         * TreeNodeCollection.cs: Only need to update scrollbars if being
5542         added to an expanded visible node or the root node.
5543
5544 2006-10-09  Chris Toshok  <toshok@ximian.com>
5545
5546         * XplatUIX11.cs (SendMessage): fix NRE.
5547
5548 2006-10-09  Jackson Harper  <jackson@ximian.com>
5549
5550         * TextBoxBase.cs: Implement horizontal autoscrolling.
5551         * TextControl.cs: Add a movement types that allows moving forward
5552         and backwards without wrapping.
5553
5554 2006-10-09  Mike Kestner  <mkestner@novell.com>
5555
5556         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5557         with focus "expansion" of labels.  Fixes #79532 and then some.
5558         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5559         when wrapping.
5560
5561 2006-10-09  Jackson Harper  <jackson@ximian.com>
5562
5563         * TextBoxBase.cs: Set the default max values to MaxValue since
5564         we use the scrollbar for autoscrolling and the default value is
5565         100.  If we don't do this the caret won't keep up with typing
5566         after about 18 characters.
5567         * TextControl.cs: Make sure the selection is offset by the
5568         viewport x.  This fixes selection when using auto scrolling.
5569
5570 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5571         
5572         * Form.cs: The active control should be selected after the 
5573         OnLoad so that any child control initialization that affects
5574         the selection is done. Fixes #79406
5575
5576 2006-10-06  Chris Toshok  <toshok@ximian.com>
5577
5578         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5579         to have no evil effects.
5580
5581         - Stop selecting StructureNotifyMask on non-toplevel windows.
5582
5583           The only way children should be resized is by using the SWF api,
5584           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5585           Toplevel windows can be interacted with via the window manager,
5586           and so we keep the input mask there.
5587
5588           The other event StructureNotifyMask gives us (that we care
5589           about) is DestroyNotify.  The code is already structured such
5590           that it assumes we won't be getting a DestroyNotify event for
5591           the window we pass to XDestroyWindow (which is what
5592           StructureNotifyMask is supposed to guarantee.)  So, that code
5593           shouldn't be affected by this either.
5594
5595         - Stop selecting VisibilityChangeMask altogether.
5596
5597           We weren't doing anything with the resulting events anyway.
5598         
5599         This vastly reduces the number of X requests and events we see
5600         when resizing/laying out a large ui.
5601
5602 2006-10-06  Chris Toshok  <toshok@ximian.com>
5603
5604         * ScrollableControl.cs (DisplayRectangle): we need to take into
5605         account the DockPadding regardless of whether or not auto_scroll
5606         == true.  rework this slightly to this effect, and fix bug #79606,
5607         and part of #72499 (you can now see the drag handles and drag
5608         toolbars around).
5609
5610 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5611
5612         * ListViewItem.cs: Collections of selected and checked items are now
5613         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5614         we mark the collection "dirty".
5615         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5616         to only clear SelectedItems when a new item is selected and MultiSelect
5617         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5618         event of ListViewItemCollection, and mark its list dirty whenever
5619         that event is fire. This allows us to return selected/checked items 
5620         in the same order as they are in the Items collection. This matches
5621         the MS behavior.
5622
5623 2006-10-06  Chris Toshok  <toshok@ximian.com>
5624
5625         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5626         right mouse clicks.  Fixes bug #79593.
5627
5628 2006-10-06  Chris Toshok  <toshok@ximian.com>
5629
5630         * Splitter.cs: doh, fix splitters that don't want to cancel the
5631         movement when you drag them.  Also, impose the limits on the
5632         values we send to the SplitterMovingEvent.  Fixes #79598.
5633
5634 2006-10-06  Jackson Harper  <jackson@ximian.com>
5635
5636         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5637         since we use this for auto scrolling also.
5638
5639 2006-10-05  Chris Toshok  <toshok@ximian.com>
5640
5641         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5642         beginning to think that most datagrid column types don't need this
5643         method.  Fixes bug #79392.
5644
5645 2006-10-05  Chris Toshok  <toshok@ximian.com>
5646
5647         * DataGrid.cs: move back to a more lazy scheme for creating the
5648         CurrencyManager, so we aren't updating it every time you set
5649         either DataSource or DataMember.  Also, don't call
5650         RecreateDataGridRows if the currency manager hasn't changed.
5651
5652 2006-10-05  Chris Toshok  <toshok@ximian.com>
5653
5654         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5655         emitted, SelectedIndex should already be updated.  Fixes bug
5656         #78929.
5657
5658 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5659
5660         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5661           ToolStripTextBox.cs: Initial commit.
5662         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5663
5664 2006-10-05  Jackson Harper  <jackson@ximian.com>
5665
5666         * TabControl.cs: We need to invalidate the tab control area when
5667         new ones are added (duh).
5668
5669 2006-10-03  Chris Toshok  <toshok@ximian.com>
5670
5671         * Form.cs (ProcessDialogKey): if the focused control is in this
5672         form and is a button, call its PerformClick method here.  Fixes
5673         #79534.
5674
5675 2006-10-04  Jackson Harper  <jackson@ximian.com>
5676
5677         * TabPage.cs: Ignore setting of Visible, and add an internal
5678         method for setting the controls visibility.  TabPage's Visible
5679         property is a little strange on MS, this seems to make us
5680         compatible, and fixes cases where people set all the tab pages to
5681         visible.
5682         * TabControl.cs: Use the new internal setting on tab pages
5683         visibility.
5684
5685 2006-10-03  Mike Kestner  <mkestner@novell.com>
5686
5687         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5688
5689 2006-10-03  Mike Kestner  <mkestner@novell.com>
5690
5691         * ListView.cs : use is_visible instead of Visible to check if 
5692         scrollbars should be placed/sized.  Also some max_wrap_width
5693         love for LargeIcon view.  [Fixes #79533]
5694
5695 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5696
5697         * TextControl.cs :
5698           Make set_TextAlign() do actually update the align. Fixed #78403.
5699
5700 2006-10-03  Chris Toshok  <toshok@ximian.com>
5701
5702         * DataGrid.cs: fix a crash when switching datasources if the
5703         vertical scrollbar is at someplace other than Value = 0.  Also,
5704         reduce the number of recalculation passes we do in SetDataSource
5705         from 2 to 1.
5706
5707 2006-10-03  Jackson Harper  <jackson@ximian.com>
5708
5709         * TextBoxBase.cs: Move the if value the same bail check up, we
5710         don't want to empty the document if it is already empty, this
5711         seems to severly mess up the caret.  TODO: I should probably fix
5712         the empty statement to update teh caret somehow.
5713
5714 2006-10-03  Chris Toshok  <toshok@ximian.com>
5715
5716         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5717         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5718         reflection, an internal row type, properties on said type, etc.)
5719         will work with our datagrid.  Fixes #79531.
5720
5721 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5722
5723         * FileDialog.cs: Don't crash if a path is not accessible
5724           (System.UnauthorizedAccessException). Fixes #79569.
5725         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5726           a ':' too. Return unknown icon for those paths/files.
5727
5728 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5729
5730         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5731         GetContainerControl returns null.
5732
5733 2006-10-02  Chris Toshok  <toshok@ximian.com>
5734
5735         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5736         call to XGetWindowAttributes instead of "handle".  fixes an X
5737         error using notifyicon after the NotifyIconWindow to Form base
5738         class switch.
5739
5740 2006-10-02  Chris Toshok  <toshok@ximian.com>
5741
5742         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5743         server grab and looping we need to do to get down to the most
5744         deeply nested child window.
5745         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5746         QueryPointer again after the WarpPointer so we can generate a
5747         proper (fake) MotionNotify event to be enqueued in the destination
5748         window's queue.
5749         (GetCursorPos): call QueryPointer.
5750
5751         Fixes #79556.
5752
5753 2006-10-02  Jackson Harper  <jackson@ximian.com>
5754
5755         * NotifyIcon.cs: Derive the notify icon from a form, so things
5756         like FindForm work on it.
5757         - Swallow the WM_CONTEXTMENU message, since that is generated on
5758         mouse down, and context menu is a mouse up kinda guy.  I believe
5759         the correct fix here is probably to make the notify icon entirely
5760         NC area, but this seems to work fine for anyone not manipulating
5761         WndProc.
5762
5763 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5764
5765         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5766           ToolStripItemCollection.cs, ToolStripLabel.cs,
5767           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5768           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5769           Initial implementation.
5770         * TextRenderer.cs: Provide padding to MeasureText.
5771
5772 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5773
5774         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5775         of ButtonBaseAccessibleObject. Fix bug #79552.
5776
5777 2006-10-02  Jackson Harper  <jackson@ximian.com>
5778
5779         * MdiWindowManager.cs: When maximizing use the containers client
5780         rect, not it's bounds, so nc area is accounted correctly.
5781         - Use the parent form's size for the menu position, since the
5782         client isn't always the full form size.
5783
5784 2006-10-01  Chris Toshok  <toshok@ximian.com>
5785
5786         * ScrollableControl.cs: make sure neither right_edge or
5787         bottom_edge are < 0, since they're used as LargeChange for the
5788         horiz/vert scrollbars respectively.  Fixes #79539.
5789
5790 2006-10-01  Chris Toshok  <toshok@ximian.com>
5791
5792         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5793         the xplatuix11 code can cause us to destroy/recreate our handle.
5794
5795         * XplatUIX11.cs
5796         (SystrayAdd):
5797         - this code can be invoked many times for the same Hwnd.  Make
5798           sure we only destroy the client window once (the first time this
5799           method is called).  This fixes bug #79544.
5800         - Remove the call to the improperly bound XSync.  why we had two
5801           bindings to this, I will never know, but this call resulted in
5802           events being discarded from the queue(!).
5803         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5804           not our current state but the state we wish to be in.  So, 0 if
5805           we don't want to be mapped.  Change it to 1.
5806         (SystrayRemove): The XEMBED spec makes mention of the fact that
5807         gtk doesn't support the reparent of client windows away from the
5808         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5809         The only avenue we have for removing systray icons is to destroy
5810         them.  We don't want the handle to go away for good, though, so
5811         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5812         #79545.
5813         
5814 2006-10-01  Chris Toshok  <toshok@ximian.com>
5815
5816         * Form.cs (WndProc): inline the native_enabled variable usage into
5817         the cases in which it's used.  Fixes #79536.
5818
5819 2006-09-29  Mike Kestner  <mkestner@novell.com>
5820
5821         * ListView.cs : toggle the selection state for ctrl clicks in 
5822         multiselect mode. [Fixes #79417]
5823
5824 2006-09-29  Mike Kestner  <mkestner@novell.com>
5825
5826         * ListView.cs : kill CanMultiSelect and refactor the selection
5827         code to support multiselection in the absence of mod keys. Steal
5828         arrow/home/end keys by overriding InternalPreProcessMessage to
5829         restore regressed keynav behavior.
5830         [Fixes #79416]
5831
5832 2006-09-29  Jackson Harper  <jackson@ximian.com>
5833
5834         * MdiClient.cs: Repaint the titlebars when the active window is
5835         changed.
5836
5837 2006-09-29  Chris Toshok  <toshok@ximian.com>
5838
5839         * Application.cs: when entering a runloop with a modal, make sure
5840         the hwnd is enabled.  Fixes #79480.
5841
5842 2006-09-29  Chris Toshok  <toshok@ximian.com>
5843
5844         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5845         when ListManager.CanAddRows == false, bump us back one.
5846
5847         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5848         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5849         using a datagrid, which is not right.
5850         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5851         is an IEditable, but call property_descriptor.SetValue regardless.
5852         fixes #79435.
5853
5854 2006-09-29  Chris Toshok  <toshok@ximian.com>
5855
5856         * DataGridBoolColumn.cs: we need to test equality in the face of
5857         possible null values (as is the case with the default NullValue).
5858         This patch keeps us from crashing in that case.
5859
5860 2006-09-29  Jackson Harper  <jackson@ximian.com>
5861
5862         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
5863         here, since it will get called for every node collection in the
5864         tree. This is now done in the treeview once the sorting is
5865         finished.
5866         * TreeView.cs: Recalculate the visible order, and update the
5867         scrollbars after sorting, set the top nope to the root so that the
5868         recalc actually works.
5869
5870 2006-09-29  Chris Toshok  <toshok@ximian.com>
5871
5872         * LinkLabel.cs: more handling of the default link collection in
5873         the face of LinkArea manipulation.  The default link collection
5874         contains 1 element (start=0,length=-1).  If the user sets LinkArea
5875         to anything and the links collection is the default, clear it.
5876         Then only add the link if its nonempty.  Fixes #79518.
5877
5878 2006-09-29  Chris Toshok  <toshok@ximian.com>
5879
5880         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
5881         piece correctly when we hit a '\n'.  Fixes #79517.
5882
5883 2006-09-29  Chris Toshok  <toshok@ximian.com>
5884
5885         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
5886         change the binding of gdk_init_check to take two IntPtr's, and
5887         pass IntPtr.Zero for both of them.  Fixes #79520.
5888
5889 2006-09-29  Mike Kestner  <mkestner@novell.com>
5890
5891         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
5892         [Fixes #78779]
5893
5894 2006-09-28  Jackson Harper  <jackson@ximian.com>
5895
5896         * XplatUIX11.cs: When translating NC messages make sure we go from
5897         whole window to screen, not client window to screen.
5898         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
5899         method doesn't exist
5900         - Skip over controls that aren't forms when arranging.
5901
5902 2006-09-28  Jackson Harper  <jackson@ximian.com>
5903
5904         * XplatUIWin32.cs: Clip the rect to the parent window.
5905         * XplatUIStructs.cs: Add clipping modes struct.
5906         * InternalWindowManager.cs: New private method that factors title
5907         bar heights in when calculating the pos of an NC mouse message.
5908         - Use SendMessage to force a paint when the form's size is changed
5909         instead of painting the decorations immediately.
5910         - Don't let the NC button click messages get to DefWndProc,
5911         because they will attempt to handle windowing themself, and this
5912         messes up z-order (it will put them in front of the scrollbars).
5913         * XplatUIX11.cs: Make sure that we don't reset window managers if
5914         we already have one (ie the window is an MDI window).
5915
5916 2006-09-28  Chris Toshok  <toshok@ximian.com>
5917
5918         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
5919         menu code really needs going over.
5920
5921 2006-09-27  Chris Toshok  <toshok@ximian.com>
5922
5923         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
5924         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
5925         window is maximizable.  So, we need to make sure that even if we
5926         clear the border/wm frame of those functions, they're still
5927         available (basically, we remove the decoration without removing
5928         the function).  Half the fix for #79338.
5929
5930 2006-09-27  Chris Toshok  <toshok@ximian.com>
5931
5932         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
5933         Fixes bug #79515.
5934
5935 2006-09-27  Chris Toshok  <toshok@ximian.com>
5936
5937         * Splitter.cs: reorder things a bit so that we don't actually
5938         draw/move the splitter until after calling OnSplitterMoving.  This
5939         lets users cancel/disallow the movement by explicitly setting
5940         event.SplitX/SplitY.  Fixes #79372.
5941
5942 2006-09-27  Jackson Harper  <jackson@ximian.com>
5943
5944         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
5945         because it is most likely on a window being destroyed, and that
5946         will give us an X11 error.
5947
5948 2006-09-27  Chris Toshok  <toshok@ximian.com>
5949
5950         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
5951         the dropdown button now toggles between showing and hiding the
5952         dropdown.  Also, get rid of dropdown_form_showing and just use
5953         dropdown_form.Visible.  We still don't do a grab, but I'll leave
5954         that part to someone who has handled Capture-fu before.
5955
5956 2006-09-27  Chris Toshok  <toshok@ximian.com>
5957
5958         * DataGrid.cs: return false if alt isn't pressed when '0' is
5959         pressed.  this keeps the '0' key from being swallowed, and fixes
5960         bug #79350.
5961
5962 2006-09-27  Chris Toshok  <toshok@ximian.com>
5963
5964         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
5965         Calling Refresh (in response to a scrollbar event) screws up the
5966         scrollbar painting.  Fixes bug #78923.
5967
5968 2006-09-27  Chris Toshok  <toshok@ximian.com>
5969
5970         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
5971         then insert into hashtable" blocks threadsafe.
5972
5973 2006-09-27  Chris Toshok  <toshok@ximian.com>
5974
5975         * MessageBox.cs (CreateParams): the styles should be |'ed with our
5976         baseclass's, since otherwise the
5977         ControlBox/MinimizeBox/MaximizeBox assignments above have no
5978         effect.  This gets the close button back in messageboxes.
5979
5980 2006-09-27  Chris Toshok  <toshok@ximian.com>
5981
5982         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
5983         flag, not just != 0.  this makes flags that are actually multiple
5984         bits (like WS_CAPTION) work.  fixes bug #79508.
5985
5986 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
5987
5988         * PageSetupDialog.cs: add support for getting and settings the 
5989         paper size, source and orientation.
5990
5991 2006-09-26  Chris Toshok  <toshok@ximian.com>
5992
5993         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
5994         and caption == "", we need to remove the resize handles as well as
5995         the title bar.
5996
5997         * Control.cs (set_Text): turns out that setting Text on a form
5998         should change the WM styles on the window, since if ControlBox ==
5999         false, the only way to get a window border is to have a non-""
6000         Text property.  check winforms/forms/text.cs for an example.  so,
6001         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6002         update both window styles and title.  This fixes a lot of dialogs
6003         (including the preferences dialog in MonoCalendar.)
6004
6005 2006-09-26  Chris Toshok  <toshok@ximian.com>
6006
6007         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6008         control isn't a Form), call Win32ShowWindow to hide the window,
6009         but don't update the control Visible property.  When we reparent
6010         back to a parent control, call SetVisible in order for the
6011         window's visibility to be reinstated.
6012
6013         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6014         the FosterParent.
6015
6016         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6017         call for good, since it breaks MonoCalendar (and other things I'm
6018         sure.) Also, set all_controls to null *after* the owner calls,
6019         which end up regenerating it.
6020         (ChangeParent): allow new_parent to be == null, passing
6021         IntPtr.Zero down to XplatUI.
6022
6023         this fixes #79294 the right way.
6024
6025 2006-09-26  Mike Kestner  <mkestner@novell.com>
6026
6027         * GridEntry.cs : internal SetParent method.
6028         * PropertyGrid.cs : attach to property changed on the proper
6029         target if we have a hierarchical grid with subobjects. Setup
6030         GridItem.Parent for hierarchical items.
6031         * PropertyGridView.cs : Set value on the correct target for
6032         hierarchical grids. [Fixes #78903]
6033
6034 2006-09-26  Chris Toshok  <toshok@ximian.com>
6035
6036         * Control.cs (ChildNeedsRecreating): this should return true if
6037         either we're being recreated and the child is in our list, or our
6038         parent is waiting for our recreation.
6039
6040 2006-09-26  Chris Toshok  <toshok@ximian.com>
6041
6042         * Control.cs (ControlCollection.Remove): reinstate the
6043         value.Hide() call as suggested in bug #79294.
6044
6045 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6046
6047         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6048         coordinates (versus a relative move).
6049
6050 2006-09-26  Chris Toshok  <toshok@ximian.com>
6051
6052         * Control.cs: rework child recreation a little bit.  It turns out
6053         that we race between the DestroyNotify the WM_DESTROY message.  If
6054         the parent gets its DestroyNotify before the child gets the
6055         WM_DESTROY message, the child ends up not recreating (since the
6056         parent finishes its recreation on DestroyNotify, and the child
6057         checks ParentIsRecreating.)
6058
6059         So, instead we store off a list of all the child controls which
6060         need to be recreated when the parent control starts to recreate
6061         itself.  Then, when child controls get their WM_DESTROY message we
6062         check to see if they're in the parent's pending recreation list,
6063         and if so, we recreate.  This removes all dependency on ordering
6064         from the code and fixes the initial MonoCalendar upgrade dialog.
6065         
6066 2006-09-26  Jackson Harper  <jackson@ximian.com>
6067
6068         * TextControl.cs: Use the Line to get the length of the line,
6069         since soft line breaks can change the end line.
6070
6071 2006-09-26  Chris Toshok  <toshok@ximian.com>
6072
6073         * Control.cs (ControlCollection.AddImplicit): don't add the
6074         control again if it's already in one of our lists.  This keeps us
6075         from adding controls over and over again for comboboxes when their
6076         handle gets recreated (as the combobox adds implicit controls in
6077         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6078
6079 2006-09-26  Jackson Harper  <jackson@ximian.com>
6080
6081         * TextControl.cs: When deleting characters make sure that any
6082         orphaned zero lengthed tags get deleted.
6083         - Fix ToString for zero lengthed tags.
6084
6085 2006-09-25  Jackson Harper  <jackson@ximian.com>
6086
6087         * TextControl.cs: When getting a tag at the location there can be
6088         multiple tags at the same spot, these are 0-lengthed tags that
6089         appear when extra formatting has been stuck in a location.  We
6090         need to pull out the last of these 0 lengthed tags.
6091
6092 2006-09-25  Jackson Harper  <jackson@ximian.com>
6093
6094         * TextControl.cs: Fix print out in debug method.
6095         * TextBoxBase.cs: When text is set bail if we are setting to the
6096         previous value.
6097         
6098 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6099
6100         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6101           It is now possible to change the selected index in a FontXXXListBox
6102           with the up and down arrow keys from the FontXXXTextBoxes.
6103           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6104           FontXXXListBoxes to match ms.
6105
6106 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6107
6108         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6109         anyone can dispose it, anytime. All other properties returns enums, 
6110         structs or basic types so they don't need such tricks.
6111
6112 2006-09-22  Jackson Harper  <jackson@ximian.com>
6113
6114         * XplatUI.cs:
6115         * XplatUIWin32.cs:
6116         * Clipboard.cs:
6117         * DataFormats.cs:
6118         * XplatUIOSX.cs:
6119         * XplatUIDriver.cs: Update interface to add a primary selection
6120         flag, so the driver can use the primary selection buffer if
6121         needed.
6122         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6123
6124         * RichTextBox.cs: We need to supply the data object to paste now
6125         (so we can choose to supply CLIPBOARD or PRIMARY).
6126         * TextBoxBase.cs: Supply data object to paste (see above).
6127         - Middle click uses the primary selection data object.
6128         
6129 2006-09-21  Chris Toshok  <toshok@ximian.com>
6130
6131         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6132         of SetWMStyles.  It's still a rat's nest and is largely
6133         order-dependent which I dislike immensely.  This also fixes the X
6134         button disappearing from toplevel forms.
6135
6136 2006-09-21  Mike Kestner <mkestner@novell.com>
6137
6138         * ListBox.cs: move Jordi's click/dblclick raising code to the
6139         mouse up handler.
6140
6141 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6142
6143         * ListBox.cs: Fixes 79450
6144
6145 2006-09-21  Mike Kestner <mkestner@novell.com>
6146
6147         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6148         to deal with people updating the TreeNodeCollection after the tree
6149         is disposed.  "Fixes" 79330.
6150
6151 2006-09-20  Jackson Harper <jackson@ximian.com>
6152
6153         * TextControl.cs: Push the cursor record onto the undo stack
6154         before the delete action. This fixes 78651.
6155
6156 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6157
6158         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6159         CreateParams. Fixes 79329.
6160
6161 2006-09-19  Chris Toshok  <toshok@ximian.com>
6162
6163         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6164         things up a bit.  First, get rid of the NetAtoms array (and the NA
6165         enum), and just embed the atoms as static fields.  Also, add a
6166         couple of functions (StyleSet and ExStyleSet) to clean up all the
6167         bitmask testing of styles.
6168
6169         * X11Structs.cs: remove the NA enum, not needed anymore.
6170         
6171 2006-09-19  Chris Toshok  <toshok@ximian.com>
6172
6173         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6174         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6175         added cleanup to get MessageBox titles appearing again, which were
6176         broken by my earlier fix for caption-less/ControlBox-less windows.
6177
6178 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6179
6180         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6181           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6182           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6183           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6184           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6185           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6186           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6187           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6188           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6189           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6190           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6191             Inital import.
6192         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6193           ToolStripButton.cs: Stubs needed for above.
6194         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6195
6196 2006-09-15  Chris Toshok  <toshok@ximian.com>
6197
6198         * XplatUIX11.cs:
6199         - make the MessageQueues hashtable Synchronized.
6200         
6201         - SendMessage: if the Hwnd is owned by a different thread, use the
6202         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6203         thread.  Fixes bug #79201.
6204
6205 2006-09-15  Chris Toshok  <toshok@ximian.com>
6206
6207         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6208         ControlBox == false, we disallow maximize/minimize/close.  If the
6209         form Caption is "" we also disallow move (and get rid of the Title
6210         decoration).  Unfortunately, regardless of how things are set,
6211         we're stuck with the Title and WM menu.
6212
6213 2006-09-15  Chris Toshok  <toshok@ximian.com>
6214
6215         * Application.cs: add locking around the static message_filters
6216         ArrayList, part of #79196.
6217
6218 2006-09-15  Chris Toshok  <toshok@ximian.com>
6219
6220         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6221         Form.ControlBox == false, the window has no titlebar nor resize
6222         handles.  fixes bug #79368.
6223
6224 2006-09-15  Chris Toshok  <toshok@ximian.com>
6225
6226         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6227         >= 0.  Fixes bug #79370.
6228
6229 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6230         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6231         * Control.cs:
6232             Add properties: LayoutEngine, Margin, DefaultMargin.
6233             Add method: GetPreferredSize.
6234             Move layout logic from PerformLayout to layout engines. 
6235
6236 2006-09-13  Chris Toshok  <toshok@ximian.com>
6237
6238         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6239         fix for #79326 broke #78718, so this change addresses that.
6240
6241         - in SendWMDestroyMessages remove the call to
6242         CleanupCachedWindows, since we might be recreating the control and
6243         need to maintain the references to right Hwnd handles.  Also, set
6244         the zombie flag to true for each of the children in the hierarchy
6245         instead of calling hwnd.Dispose.  This will cause GetMessage to
6246         ignore all events for the window except for DestroyNotify.
6247
6248         - In GetMessage, ignore messages except for DestroyNotify for
6249         zombie hwnds.
6250         
6251         * Control.cs: revert the is_recreating fix from the last
6252         ChangeLog.  It's definitely "right", but it breaks switching from
6253         an MDI form to a non-MDI form.  Will need to revisit that.
6254
6255         * Hwnd.cs: add a zombie flag, which means "the
6256         client_window/whole_window handles are invalid, but we're waiting
6257         for the DestroyNotify event to come in for them".  Set the flag to
6258         false explicitly if setting WholeWindow/ClientWindow, and also
6259         when Disposing.
6260         
6261 2006-09-13  Chris Toshok  <toshok@ximian.com>
6262
6263         * XplatUIX11.cs: rework window destruction slightly.
6264
6265         - when destroying the windows associated with a control, we don't
6266         need 2 separate XDestroyWindow calls.  Just the one for the
6267         whole_window (or for client_window if whole_window is somehow
6268         IntPtr.Zero -- can this happen?) is enough.
6269
6270         - reworked SendWMDestroyMessages slightly, so we always dispose
6271         the child control hwnd's after sending the messages.
6272         
6273         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6274         the two places it was used (one was even using hwnd.Handle and the
6275         other hwnd.client_window.  ugh), adding another call in
6276         SendWMDestroyMessages.  We need this new call because now the
6277         DestroyNotify events in the queue will be ignored for the child
6278         controls (as their hwnd's were disposed, and the window id's
6279         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6280
6281         - this fixes bug #79326.
6282
6283 2006-09-13  Chris Toshok  <toshok@ximian.com>
6284
6285         * Control.cs: don't always set is_recreating to false at the end
6286         of RecreateHandle, since sometimes we're not done (and won't be
6287         until WndProc handles the WM_DESTROY message).  Also, set
6288         is_recreating to false in the WM_DESTROY handling code.  Part of
6289         the fix for bug #79326.
6290
6291 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6292
6293         * X11DesktopColors.cs: Start the droppage of debugging messages.
6294
6295         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6296
6297 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6298
6299         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6300
6301 2006-09-12  Chris Toshok  <toshok@ximian.com>
6302
6303         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6304         to create it using SetDataSource.  Fixes bug #79151.
6305
6306 2006-09-11  Chris Toshok  <toshok@ximian.com>
6307
6308         * XEventQueue.cs: add a DispatchIdle property.
6309
6310         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6311         either the queue is null, or the queue has DispatchIdle set to
6312         true.
6313         (DoEvents): set queue.DispatchIdle to false around the
6314         peek/translate/dispatch message loop in this method.  This keeps
6315         Application.Doevents from emitting idle events.  Part of the fix
6316         for #78823.
6317
6318 2006-09-11  Chris Toshok  <toshok@ximian.com>
6319
6320         * DataGrid.cs (set_DataSource): make this work for both the
6321         winforms/datagrid test and ReportBuilder.  It seems as though when
6322         we've created a ListManager (or maybe it's if we have a
6323         BindingContext?), when we set the DataSource it clears the
6324         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6325         #79333.
6326
6327 2006-09-11  Chris Toshok  <toshok@ximian.com>
6328
6329         * XplatUIX11.cs: deal with queue being null, which happens in all
6330         the Clipboard functions.  Fixes one of the two problems mentioned
6331         in #78612.
6332
6333 2006-09-11  Chris Toshok  <toshok@ximian.com>
6334
6335         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6336         button on various spots (including outside the menu) works closer
6337         to MS, and doesn't crash.  Fixes #79343.
6338
6339 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6340
6341         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6342         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6343         and the internal comparer is set. When a new ListViewItemSorter is set,
6344         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6345         was specified. No further processing is necessary if SortOrder is set
6346         to it's current value. If Sorting is modified to None, and View is
6347         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6348         (either custom or our internal ItemComparer) to null, on 1.0 profile
6349         only set item_sorter to null if its our internal IComparer. If Sorting
6350         is modified to Ascending or Descending, then use our internal IComparer
6351         if none is set, and if the current IComparer is our internal one then:
6352         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6353         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6354         Enum.IsDefined to verify whether a valid View value is specified in
6355         its setter. Automatically sort listview items when listview is
6356         created. In Sort, do nothing if ListView is not yet created, or if
6357         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6358         to None or ListViewItemSorter was set to null). Added Sort overload
6359         taking a bool to indicate whether the ListView should be redrawn when
6360         items are sorted (we use this in ListViewItemCollection to avoid double
6361         redraws). Modified our internal IComparer to take the sort order into
6362         account. In Add and AddRange methods of ListViewItemCollection, also
6363         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6364         view), but use overload with noredraw option to avoid double redraw.
6365         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6366         true when View is Tile, and do the same when attempting to set View to
6367         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6368         for selected/checked indices, as it involves overhead when sorting is
6369         done while these collections are not used all that often. Instead
6370         we'll build the indices on demand. Modified IList implementation of
6371         CheckedIndexCollection to use public methods if object is int.
6372         Modified CheckedListViewItemCollection to hide checked items if
6373         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6374         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6375         IList implementation in SelectedIndexCollection to use public methods
6376         if object is int. Modified SelectedListViewItemCollection to hide
6377         selected items if listview is not yet created.
6378         * ListViewItem.cs: CheckedIndices list no longer needs to be
6379         maintained separately (see ListView changes). Also clone font, fixes
6380         test failure.
6381
6382 2006-09-11  Mike Kestner  <mkestner@novell.com>
6383
6384         * ComboBox.cs: if we are updating the contents of the currently
6385         selected index, refresh the control or the textbox selection.
6386         [Fixes #79066]
6387
6388 2006-09-11  Mike Kestner  <mkestner@novell.com>
6389
6390         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6391         the 'specified' logic has been moved there.  This seems like a bug 
6392         in Control.cs, since our current SetBoundsCore completely ignores 
6393         the specified parameter.  Peter's commit seems to indicate that is 
6394         the way the MS control implementation works.  [Fixes #79325]
6395
6396 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6397
6398         * XplatUI.cs: Set default_class_name to be composed
6399         of current domain id. This allows MWF to be loaded in multiple
6400         domains on Win32.
6401
6402 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6403
6404         * X11Keyboard.cs: If we are unable to obtain the input method, do
6405         not call CreateXic to create the input context.   Should fix
6406         #78944/79276.
6407
6408 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6409
6410         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6411           Simplified gnome support by adding more pinvokes to get the
6412           icon for a file or mime type.
6413
6414 2006-09-08  Jackson Harper  <jackson@ximian.com>
6415
6416         * MenuAPI.cs: Deslect popup context menu items before closing the
6417         window, so that you don't see the previously selected item
6418         selected when you reopen the menu.
6419         * TextControl.cs: Update the cursor position even if we don't have
6420         focus.  This fixes typing in things like the ComboBox.  I'm not
6421         totally sure we should always set the visibility if we don't have
6422         focus, but couldn't find any corner cases where the cursor showed
6423         up when it shouldn't.
6424
6425 2006-09-08  Chris Toshok  <toshok@ximian.com>
6426
6427         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6428         our arrays are length 256.  & 0xff before indexing.  Fixes the
6429         crash in bug #78077.
6430         
6431 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6432
6433         * ThemeWin32Classic.cs: 
6434         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6435         is true. Handle that check box too.
6436
6437 2006-09-07  Chris Toshok  <toshok@ximian.com>
6438
6439         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6440         79244.
6441
6442 2006-09-07  Chris Toshok  <toshok@ximian.com>
6443
6444         * Control.cs: in set_BackColor only do the work if
6445         background_color != value.
6446
6447         * XplatUIX11.cs: move the clearing of invalid areas (both client
6448         and nc) to the same block of code where we set (nc_)expose_pending
6449         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6450         so things that cause invalidates from within OnPaint will trigger
6451         another call to OnPaint.  Fixes bug #79262.
6452
6453 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6454
6455         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6456         * FileDialog.cs: Fix typo
6457
6458 2006-09-07  Jackson Harper  <jackson@ximian.com>
6459
6460         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6461         for tab pages if they have any.
6462
6463 2006-09-06  Mike Kestner  <mkestner@novell.com>
6464
6465         * Splitter.cs: use the "current" rect when finishing drag handle
6466         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6467
6468 2006-09-06  Mike Kestner  <mkestner@novell.com>
6469
6470         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6471         support offset splitters. [Fixes #79298]
6472
6473 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6474
6475         * Mime.cs: Fixed a bug that could override the global mime type
6476           result.
6477
6478 2006-09-05  Jackson Harper  <jackson@ximian.com>
6479
6480         * TabControl.cs: Better calculation method for setting the slider
6481         pos. Prevents crashes on really wide tabs.
6482         - Draw Image on tab pages if an image list is used.
6483
6484 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6485
6486         * MonthCalendar.cs: When Font changes, the Size should be
6487         updated to fit the new font's space requirements.
6488
6489 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6490
6491         * ListBox.cs: If the items are cleared with Items.Clear set
6492           top_index to 0.
6493
6494 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6495
6496         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6497         fire DateChanged event instead of DateSelected event when
6498         the date was changed by keyboard interaction.
6499
6500 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6501
6502         * DateTimePicker.cs: Handle DateChanged for the associated
6503         month_calendar control, and set month_calendar.Font from 
6504         OnFontChanged method, as well as resize the height of the
6505         control when needed. Make PreferredHeight proportional.
6506
6507 2006-09-01  Chris Toshok  <toshok@ximian.com>
6508
6509         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6510         properties.
6511
6512         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6513
6514 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6515
6516         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6517           for decorations (Fixes #79219)
6518
6519 2006-09-01  Mike Kestner  <mkestner@novell.com>
6520
6521         * ComboBox.cs: first stab at sorting plus some selection handling
6522         fixes to bring us more in line with MS behavior.  Also switches back
6523         to index based selection.  Alternative patches for index-based 
6524         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6525         and latency@gmx.de on bug 78848.  I assume they were similar to this
6526         code I've had simmering in my tree forever.
6527         [Fixes #78848]
6528
6529 2006-09-01  Chris Toshok  <toshok@ximian.com>
6530
6531         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6532         when setting list position guard against ending up with a -1 index
6533         (the other part of the fix for #78812).  Should probably make sure
6534         we don't need the analogous fix in the ItemDeleted case.
6535
6536         * DataGrid.cs:
6537         - in SetDataSource, work around the fact that the way
6538         OnBindingContextChanged is invoked will cause us to re-enter this
6539         method.  I'll remove the hack once I investigate
6540         OnBindingContextChanged.
6541
6542         - fix the logic in set_DataSource and set_DataMember (basically
6543         what to do if the other of the two is null.)
6544         
6545         - in OnListManagerItemChanged, we need to take into account the
6546         edit row when deciding whether or not to call RecreateDataGridRows
6547         (part of the fix for #78812).
6548
6549 2006-09-01  Jackson Harper  <jackson@ximian.com>
6550
6551         * Splitter.cs: Don't do anything if there is no control to affect
6552         (prevents us from crashing in weird tet cases).
6553         * TreeView.cs: Bounding box for the mouse movement reverting
6554         focus/selection back to previously selected node.  This matches
6555         MS, and makes the tree a lot more useable.
6556         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6557         use clipping so they are not drawn.  This fixes when the control
6558         is set to have a transparent background, or if it was over an
6559         image.
6560
6561 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6562
6563         * MimeIcon.cs: Improved handling for reading default icons when
6564           using gnome (2.16 made it necessary). Check and read svg icons
6565           first, then 48x48 and then 32x32 icons.
6566
6567 2006-08-31  Chris Toshok  <toshok@ximian.com>
6568
6569         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6570         visible.
6571
6572         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6573         ProcessKeyPreview.  Fixes part of #77806.
6574
6575         * DataGrid.cs: big patch.
6576
6577         - revert the queueing up of DataSource/DataMember if inside
6578         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6579         its delayed databinding.  Instead, call SetDataSource in
6580         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6581         #78811.
6582
6583         - Also, it wasn't mentioned in #78811, but the test case exhibits
6584         behavior that was lacking in our datagrid implementation - Columns
6585         that have mapping names that don't exist in the datasource's
6586         properties aren't shown.  Yuck.  To fix this I added the bound
6587         field to the column style, and basically any calculation to figure
6588         out anything about columns uses a loop to find the bound columns.
6589         still need to investigate if I can cache an array of the bound
6590         columns or if the indices must be the same.
6591
6592         - When setting CurrentCell, we no longer abort if the cell being
6593         edited was in the add row.  This fixes the other part of #77806.
6594
6595         - The new code also fixes #78807.
6596         
6597         * ThemeWin32Classic.cs: perpetrate the same disgusting
6598         column.bound field hack, and only render bound fields.
6599
6600 2006-08-31  Chris Toshok  <toshok@ximian.com>
6601
6602         * DataGridColumnStyle.cs: add bound field.  this field is true if
6603         the datasource has a property corresponding to the mapping name.
6604
6605         * DataGridTableStyle.cs: set the bound field on the column styles
6606         depending on whether or not we have a column for that property.
6607
6608 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6609
6610         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6611           splitter control (fixes #79228)
6612
6613 2006-08-31  Chris Toshok  <toshok@ximian.com>
6614
6615         * DataGridColumnStyle.cs: we need to delay the assignment of
6616         property descriptor until the last possible moment due to the lazy
6617         databinding stuff in the datagrid.  Also, fix the exceptions
6618         thrown by CheckValidDataSource to match MS.
6619
6620 2006-08-31  Jackson Harper  <jackson@ximian.com>
6621
6622         * Form.cs: When activated select the active control, if there is
6623         no active control, we select the first control.
6624         * XplatUIX11.cs: If there is no focus control when we get a
6625         FocusIn event, find the toplevel form and activate it.  This
6626         occurs when you popup a window, it becomes the focus window, then
6627         you close that window, giving focus back to the main window.
6628
6629 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6630
6631         * MonthCalendar.cs: 
6632         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6633         as StringFormat with Center alignments in MonthCalendar,
6634         instead of creating new ones when drawing the control. 
6635         Also, draw the month name in bold style.
6636
6637 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6638
6639         * Control.cs:
6640           - PerformLayout(): It would seem MS performs the fill even if the 
6641             control is not visible (part of #79218 fix)
6642           - ResetBackColor(): Use the setter to reset the color, to allow
6643             overriders to catch the change.
6644         * Form.cs:
6645           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6646           - CreateHandle(): dito (part of $79218 fix)
6647           - Don't set an icon if we have a dialog
6648         * ScrollableControl.cs:
6649           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6650           - ScrollIntoView(): No need to scroll if control is already visible
6651             (resolves fixme and fixes #79218)
6652
6653 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6654
6655         * MonthCalendar.cs: Change proportions in SingleMonthSize
6656         to match the aspect of the original control.
6657
6658 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6659
6660         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6661           get updated when they get maximized.
6662
6663 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6664
6665         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6666
6667 2006-08-29  Chris Toshok  <toshok@ximian.com>
6668
6669         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6670
6671 2006-08-29  Jackson Harper  <jackson@ximian.com>
6672
6673         * TreeView.cs: Need to track selected node and highlighted node,
6674         they aren't always the same thing, when the mouse is down on a
6675         node it is hilighted, but not selected yet.
6676         - Do the HideSelection stuff right
6677         - Need to focus on rbutton mouse down. And redraw selection when
6678         right click is mouse upped.
6679
6680 2006-08-29  Mike Kestner  <mkestner@novell.com>
6681
6682         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6683         when SubItems.Count < Columns.Count.  [Fixes #79167]
6684
6685 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6686
6687         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6688
6689 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6690
6691         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6692           from X. Only send based on ConfigureNotify if we don't have the
6693           correct location in hwnd (if the window manager moved us)
6694
6695 2006-08-28  Mike Kestner  <mkestner@novell.com>
6696
6697         * ListView.cs: remove a TODO. 
6698         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6699         [Fixes ListView part of #79166]
6700
6701 2006-08-28  Mike Kestner  <mkestner@novell.com>
6702
6703         * ListView.cs: move wheel handler to parent since it is focused
6704         instead of the item_control now.  [Fixes #79177]
6705
6706 2006-08-28  Mike Kestner  <mkestner@novell.com>
6707
6708         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6709         when the control is focused. [Fixes #79171]
6710
6711 2006-08-28  Mike Kestner  <mkestner@novell.com>
6712
6713         * ListView.cs: size the item and header controls for empty and
6714         unscrollable views.
6715         * ThemeWin32Classic.cs: draw disabled backgrounds.
6716         [Fixes #79187]
6717
6718 2006-08-28  Chris Toshok  <toshok@ximian.com>
6719
6720         * Form.cs: remove unused "active_form" static field.
6721
6722         * Hwnd.cs: lock around accesses to static windows collection.
6723
6724         * Application.cs: lock threads in Exit ().
6725
6726 2006-08-28  Chris Toshok  <toshok@ximian.com>
6727
6728         * NativeWindow.cs: lock around accesses to window_collection.
6729         
6730 2006-08-28  Chris Toshok  <toshok@ximian.com>
6731
6732         * Control.cs: err, fix this the right way, by locking on controls
6733         when using it.  not by making it synchronized.
6734
6735 2006-08-28  Chris Toshok  <toshok@ximian.com>
6736
6737         * Control.cs: make the static "controls" field synchronized, as it
6738         gets updated from multiple threads.
6739
6740 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6741
6742         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6743           Prevent other threads from exiting when calling thread sets quit state.
6744         * XEventQueue.cs: Added PostQuitState property
6745
6746 2006-08-27  Chris Toshok  <toshok@ximian.com>
6747
6748         * AsyncMethodData.cs: add a slot for the window handle.
6749
6750         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6751         window (the destination control's window, not the foster window).
6752
6753         * Control.cs (BeginInvokeInternal): store the window's handle in
6754         the AsyncMethodData.
6755         
6756
6757 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6758
6759         * XplatUIX11.cs:
6760           - PostQuitMessage: Removed resetting S.D display handle, we might have
6761             another loop started after calling PostQuitMessage (Fixes #79119)
6762           - Created destructor to reset S.D handle
6763
6764 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6765
6766         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6767
6768 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6769
6770         * TextControl.cs (Insert): Update the caret position even if we don't
6771           have a handle yet, just don't call the driver in that case.
6772         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6773           to the end of the new selection text (Fixes #79184)
6774
6775 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6776
6777         * Form.cs (Activate): Only activate if the handle is created)
6778         * Control.c:
6779           - Mark window as invisible when it's disposed
6780           - Check if window handle is created when setting window visible, 
6781             instead of relying just on the is_created variable
6782           - Check if object is disposed when creating the control (Fixes #79155)
6783
6784 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6785
6786         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6787           when allowing layout again. Otherwise we re-generate the anchoring 
6788           distance to the border again and actually alter what the user wanted
6789           This is ugly, it'd be better if we used DisplayRectangle instead of
6790           ClientRectangle for Control.UpdateDistances, but that causes us to
6791           have other problems (initial anchoring positons would be wrong)
6792           (Fixes #78835)
6793
6794 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6795
6796         * Control.cs:
6797           - The size and location setters shouldn't go directly to 
6798             SetBoundsCore, but to SetBounds, which triggers layout on the
6799             parent, then calls SetBoundsCore. (Related to fix for #78835)
6800           - SetBounds: Moved actual location update code into this function
6801             from SetBoundsCore, to match MS. Added call to PerformLayout if
6802             we have a parent (to trigger resizing of anchored parents if the 
6803             child size has changed (see testcase for #78835) 
6804         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6805           new control code
6806         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6807
6808 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6809
6810         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6811           System.Drawing when a toplevel window gets closed; there might
6812           be other toplevel windows belonging to the same app (Fixes #78052)
6813
6814 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6815
6816         * FileDialog.cs: After reading FileDialog settings from mwf_config
6817           use Desktop prefix only if a real folder doesn't exist anymore.
6818         * FontDialog.cs: Added char sets.
6819           It is now possible to select the font, size or style with the
6820           textboxes.
6821
6822 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6823
6824         * PrintPreviewDialog.cs: Use assembly name constants.
6825
6826 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6827
6828         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6829           scrollbar from whacking it's buttons)
6830
6831 2006-08-24  Chris Toshok  <toshok@ximian.com>
6832
6833         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6834         in this patch (aggregating setting Left/Top/Width/Height to
6835         setting Bounds on the scrollbars), but the crux of the fix is in
6836         Recalculate, where we scroll by the remaining scroll_position if
6837         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6838         serious.
6839
6840 2006-08-24  Jackson Harper  <jackson@ximian.com>
6841
6842         * MdiClient.cs:
6843         * MdiWindowManager.cs: If the form is made a non-mdi window we
6844         need to remove the form closed event so that closing forms works
6845         correctly.
6846
6847 2006-08-24  Jackson Harper  <jackson@ximian.com>
6848
6849         * Control.cs: Make IsRecreating internal so that the driver can
6850         check it
6851         - Temporarily remove the Hide when controls are removed, its
6852         making a whole bunch of things not work because visibility isn't
6853         getting reset elsewhere correctly
6854         * Form.cs: Need to do a full handle recreation when the mdi parent
6855         is set.
6856         * XplatUIX11.cs: If we are recreating handles don't dispose the
6857         HWNDs.  What was happening is the handles were being recreated in
6858         SendWMDestroyMessages, but then flow continued on in that method
6859         and destroyed the new handles.
6860
6861 2006-08-23  Jackson Harper  <jackson@ximian.com>
6862
6863         * Form.cs: MdiClient is always at the back of the bus
6864         * Control.cs: When the order of items in the collection is changed
6865         we need to reset the all_controls array
6866         - do the same sorta setup thats done when adding a control when a
6867         control is set on the collection.
6868
6869 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6870
6871         * TextBoxBase.cs (get_Text): Return an empty array if our document
6872           is empty (fixes #79052)
6873
6874 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6875
6876         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
6877           on WM_SYSCHAR messages (fixes #79053)
6878
6879 2006-08-23  Chris Toshok  <toshok@ximian.com>
6880
6881         * DataGrid.cs: fix flickering when scrolling vertically.
6882
6883 2006-08-23  Chris Toshok  <toshok@ximian.com>
6884
6885         * DataGrid.cs (EndEdit): only invalidate the row header when we
6886         need to.
6887
6888 2006-08-23  Chris Toshok  <toshok@ximian.com>
6889
6890         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
6891         methods.  fixes the flicker when scrolling around.
6892
6893 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6894
6895         * FileDialog.cs: Making sure the control is created before we get a 
6896           chance to use it with BeginInvoke (Fixes #79096)
6897
6898 2006-08-23  Chris Toshok  <toshok@ximian.com>
6899
6900         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
6901         width to use when painting the rows.
6902
6903 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6904
6905         * TextBoxBase.cs:
6906           - Throw ArgumentException if a negative value is passed to SelectionLength
6907           - Update the selection end if start is moved. end needs to be always
6908             after start. (Fixes #79095)
6909           - Track selection length; MS keeps the selection length even if start
6910             is changed; reset on all other operations affection selection
6911
6912 2006-08-22  Jackson Harper  <jackson@ximian.com>
6913
6914         * TreeView.cs: Make sure both scrollbars get displayed and sized
6915         correctly when the other bar is visible.
6916         - Use the original clip rectangle for checking if the area between
6917         the two scrollbars is visible, not the viewport adjusted clipping
6918         rectangle.
6919
6920 2006-08-22  Jackson Harper  <jackson@ximian.com>
6921
6922         * Binding.cs: We don't use IsBinding because it requires the
6923         control to be created, which really shouldn't be necessary just to
6924         set a property on the control.
6925
6926 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6927
6928         * ComboBox.cs: Some CB.ObjectCollection methods must throw
6929         ArgumentNullReferenceException when the argument is null.
6930
6931 2006-08-21  Jackson Harper  <jackson@ximian.com>
6932
6933         * Timer.cs: Track the thread that the timer is started in (NOT
6934         CREATED), this way messages for it will only be triggered on its
6935         queue.
6936         * XEventQueue.cs: Track the timers here, this makes timers per
6937         thread, like MS.
6938         * XplatUIX11.cs: The timers are moved to the XEventQueue.
6939
6940 2006-08-19  Chris Toshok  <toshok@ximian.com>
6941
6942         * XplatUIX11.cs: after further communication with pdb, we get the
6943         best of both worlds.  SetZOrder working for un-Mapped windows, and
6944         no X errors for un-mapped windows.
6945
6946 2006-08-19  Chris Toshok  <toshok@ximian.com>
6947
6948         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
6949         as it was causing pdn toolbars to not have the correct stacking.
6950
6951 2006-08-18  Mike Kestner  <mkestner@novell.com> 
6952
6953         * ListView.cs : guard against negative ClientArea.Width in scrollbar
6954         calculation.  Not sure why control should ever be setting a negative
6955         width though.  Fixes #78931.
6956
6957 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6958
6959         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
6960         null items in ObjectCollection class.
6961         * ListBox.cs.: Likewise.
6962
6963 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
6964
6965         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
6966           as the base method in ThemeWin32Classic should work fine.
6967           Fixed bug #78607.
6968
6969 2006-08-18  Jackson Harper  <jackson@ximian.com>
6970
6971         * Binding.cs: When validating if the value entered doesn't convert
6972         properly reset to the old value.
6973         * RadioButton.cs: Don't fire click when we get focus.
6974
6975 2006-08-18  Jackson Harper  <jackson@ximian.com>
6976
6977         * FileDialog.cs: Paint the selection on the directory combobox the
6978         same way as on MS. 
6979
6980 2006-08-17  Jackson Harper  <jackson@ximian.com>
6981
6982         * ErrorProvider.cs: Don't allow the error control to be selected.
6983         * Control.cs: Don't send the SetFocus messages, the control
6984         activation will do this, and if we do it blindly here validation
6985         does not work.
6986
6987 2006-08-17  Jackson Harper  <jackson@ximian.com>
6988
6989         * Control.cs:
6990         * ContainerControl.cs: Make validation events fire in the correct
6991         order.  TODO: For some reason the first validation event is not
6992         getting fired.
6993
6994 2006-08-17  Mike Kestner  <mkestner@novell.com> 
6995
6996         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
6997
6998 2006-08-17  Mike Kestner  <mkestner@novell.com> 
6999
7000         * ComboBox.cs : implement scroll wheel support for popped-down
7001         state. Fixes #78945. 
7002
7003 2006-08-17  Jackson Harper  <jackson@ximian.com>
7004
7005         * TreeView.cs: Specify treeview actions (old patch that didn't get
7006         committed for some reason).
7007         - Don't let the mouse wheel scroll us too far.  Just want to make
7008         the bottom node visible, not scroll it all the ways to the top.
7009
7010 2006-08-17  Jackson Harper  <jackson@ximian.com>
7011
7012         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7013
7014 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7015
7016         * ComboBox.cs : don't do mouseover selection in simple mode.
7017
7018 2006-08-16  Jackson Harper  <jackson@ximian.com>
7019
7020         * Form.cs: Fire the closing events for all the mdi child windows
7021         when a window is closed.  If the cancel args are set to true, the
7022         main window still gets the event fired, but it doesn't not close.
7023         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7024         handler, instead of when the button is clicked, so cancelling the
7025         close works correctly.
7026         * ComboBox.cs: Send the mouse down to the scrollbar.
7027
7028 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7029
7030         * ListBox.cs: When passing 'null' to SelectedItem,
7031         set SelectedIndex to -1, to unselect items. This is the
7032         observed behaviour in .Net.
7033
7034 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7035
7036         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7037           MS flags saying there won't be any. (fixes #78800)
7038         * Control.cs (HandleClick): Made virtual
7039
7040 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7041
7042         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7043           cultures. Fixed bug #78399.
7044
7045 2006-08-16  Jackson Harper  <jackson@ximian.com>
7046
7047         * Form.cs: Use the MdiClients MdiChildren property to access
7048         MdiChildren instead of creating the array from the child controls.
7049         * MdiClient.cs: Maintain a separate array of the mdi children, so
7050         that insertion order is maintained when the Z-order is changed.
7051
7052 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7053
7054         * ListView.cs : add an ItemComparer and default to it for sorting.
7055         Fixes #79076, but sorting needs a complete overhaul to be compat with
7056         MS.
7057
7058 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7059
7060         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7061
7062 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7063
7064         * Hwnd.cs (Mapped): Properly traverse the tree
7065
7066 2006-08-15  Chris Toshok  <toshok@ximian.com>
7067
7068         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7069         pass manager.Current.GetType() to ParseData.  It has to be the
7070         property type.  So, hold off doing the ParseData until we're in
7071         SetPropertyValue where we know the type.  This fixes the crash in
7072         #78821 but the textbox is still empty.
7073
7074 2006-08-15  Chris Toshok  <toshok@ximian.com>
7075
7076         * DataGrid.cs:
7077         - when we're scrolling, only call Edit() again if the
7078         current cell is still unobscured. Fixes bug #78927.
7079         - when handling mousedown on a cell, ensure the cell is visible
7080         before calling Edit.
7081         - remove the properties from DataGridRow, and remove the
7082         DataGridParentRow class altogether.
7083         
7084
7085 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7086
7087         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7088           fire OnTextChanged by ourselves. There's no point calling base,
7089           we don't set the base value anywhere else. Fixes #78773.
7090
7091 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7092
7093         * ListBox.cs: Call CollectionChanged when modifying
7094         an item from Items indexer, to update the actual items
7095         in the list box.
7096
7097 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7098
7099         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7100         to match .Net behaviour.
7101
7102 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7103
7104         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7105
7106 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7107
7108         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7109
7110 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7111
7112         * MessageBox.cs: Prevent potential NRE exception.
7113         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7114
7115 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7116
7117         * MessageBox.cs: Calculate the owner of a messagebox, also make
7118           it topmost. Fixes #78753
7119
7120 2006-08-14  Chris Toshok  <toshok@ximian.com>
7121
7122         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7123         programmatically move windows.  first, set the PPosition hint as
7124         well as the USPosition hint.  Second include some code from pdb
7125         that sets the window type to NORMAL when we set the transient for
7126         hint.  This is because, in the absence of a window type, metacity
7127         thinks any window with TransientFor set is a dialog, and refuses
7128         to let us move it programmatically.  fascists.
7129
7130 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7131
7132         * XplatUIX11.cs: When setting normal hints, take into consideration
7133           an different hints previously set so we don't delete them (fixes #78866)
7134
7135 2006-08-12  Chris Toshok  <toshok@ximian.com>
7136
7137         * ToolBarButton.cs: make Layout return a boolean, if something to
7138         do with the button's layout changed.
7139
7140         * ToolBar.cs:
7141         - add another parameter to Redraw, @force, which all existing
7142           calls set to true.
7143         - make the Layout function return a boolean which is true if the
7144           layout has actually changed.  Redraw now uses this (and @force)
7145           to determine when to invalidate.  At present the only place
7146           where @force can be false is the call from OnResize, when
7147           background_image == null.  So, resizing a toolbar when the
7148           layout doesn't change results in no drawing.
7149
7150 2006-08-12  Chris Toshok  <toshok@ximian.com>
7151
7152         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7153         the VScrollBar and HScrollbar reversed.  oops.
7154
7155         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7156         scrollbars.  we were assigning them twice (once in
7157         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7158         therefore causing two scrollbar resizes (and redraws?) to happen
7159         per grid resize.
7160
7161 2006-08-12  Chris Toshok  <toshok@ximian.com>
7162
7163         * ToolBarButton.cs: redraw the entire button if the theme tells us
7164         to.
7165
7166         * Theme.cs: add ToolBarInvalidateEntireButton.
7167
7168         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7169         buttons, just the border.
7170
7171         * ThemeNice.cs: redraw the entire toolbar button since we need to
7172         draw the highlight image.
7173
7174         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7175         we need to redraw the entire button (not just the border).
7176
7177 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7178
7179         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7180           for vertical bars. Fixes the mismatches shown by #78513
7181
7182 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7183
7184         * FileDialog.cs: If a saved/remembered path doesn't exist
7185           anymore, fall back to "Desktop".
7186
7187 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7188
7189         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7190           parent. It's apparently legal to not have one
7191         * XplatUIX11.cs:
7192           - SetZOrder: Don't try to set Z-Order on an unmapped window
7193           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7194             it unless the coordinates are negative
7195
7196 2006-08-10  Mike Kestner  <mkestner@novell.com>
7197
7198         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7199         when setting to null per msdn docs.  Fixes #78854.
7200
7201 2006-08-10  Chris Toshok  <toshok@ximian.com>
7202
7203         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7204         flickering by setting a clip rectangle on the Graphics when we
7205         need to redraw just a particular menuitem.  Also, rename "OnClick"
7206         to "OnMouseDown" to reflect what it actually is.
7207         
7208         * Form.cs: track the OnMouseDown change.
7209
7210 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7211
7212         * CommonDialog.cs: Properly inherit the CreateParams from the form
7213           and only change what we need. Fixes #78865
7214
7215 2006-08-10  Chris Toshok  <toshok@ximian.com>
7216
7217         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7218         flickering in flat mode (and most of the flickering in general) by
7219         only invalidating the button border (and not the entire rectangle)
7220         when the state changes.  A couple of cases still flicker:
7221         ToggleButtons, and the dropdown arrow case when the user mouse
7222         ups.
7223
7224 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7225
7226         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7227           for german keyboards. Numlock state shouldn't affect the behaviour
7228           of the Del key. Fixes bug #78291.
7229
7230 2006-08-10  Chris Toshok  <toshok@ximian.com>
7231
7232         * ListControl.cs: remove the items.Clear line from BindDataItems,
7233         as this is the first thing done by both subclasses in their
7234         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7235         passed -1, refresh the list.  This gets databinding working when
7236         the datasource is set on the list before the datasource is
7237         populated (as in wf-apps/ReportBuilder.)
7238
7239         * ComboBox.cs: remove the argument to BindDataItems.  This call
7240         should really go away, and be initiated by the ListControl code.
7241
7242         * ListBox.cs: same.
7243
7244 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7245
7246         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7247           if no data is in the document when the control is displayed
7248
7249 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7250
7251         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7252           yes (fixes #78806)
7253         * TextControl.cs: 
7254           - PositionCaret: Allow positioning of caret but don't call methods 
7255             requiring a handle if the window isn't created yet
7256           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7257           - owner_HandleCreated: Don't position the caret, just update it's 
7258             location. User might have already set a different position
7259
7260 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7261
7262         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7263           windows. Screws up the returned coordinates for child windows. 
7264           Fixes #78825. I'm hoping this doesn't break something, since the
7265           code was explicitly put in 8 months ago, but no bug was attached.
7266           Menus still seem to work properly.
7267
7268 2006-08-08  Chris Toshok  <toshok@ximian.com>
7269
7270         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7271         supposed to do - delay data binding until the EndInit call.  Also,
7272         make the table style collection's CollectionChangeAction.Refresh
7273         work properly.
7274
7275         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7276         (with action = Refresh) when a consituent table's MappingName is
7277         changed.
7278
7279 2006-08-08  Chris Toshok  <toshok@ximian.com>
7280
7281         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7282         Invalidate, since changing the text can change the size of the all
7283         toolbar buttons.
7284
7285 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7286
7287         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7288           we don't have it yet
7289
7290 2006-08-08  Chris Toshok  <toshok@ximian.com>
7291
7292         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7293         dialog, as this causes X errors later on, since we actually
7294         destroy the window.  Instead, .Hide() it.
7295
7296 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7297
7298         * ComboBox.cs: Added focus reflection for popup window
7299         * XplatUIX11.cs: 
7300           - Removed transient setting for non-app windows for now, not sure it
7301             was needed
7302           - Fixed logic checking if we have captions when deciding 
7303             override_redirect, WS_CAPTION is two bits and a 0 check was not
7304             sufficient
7305           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7306             complicated
7307         * Form.cs: 
7308           - AddOwnedForm: Don't just add the form to the list, call the property
7309             to ensure the driver is informed about the ownership as well
7310           - CreateHandle: Set the TopMost status in the driver if we have an owner
7311         * XplatUI.cs: Fixed debug statement
7312
7313 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7314         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7315           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7316           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7317           TrackBarRenderer.cs: Make constructor private.
7318         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7319         * ProfessionalColorTable.cs: Make properties virtual.
7320
7321 2006-08-06  Duncan Mak  <duncan@novell.com>
7322
7323         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7324         is not changing.
7325
7326 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7327         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7328           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7329           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7330           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7331           Initial import of new 2.0 classes.
7332
7333 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7334         * Application.cs: Add 2.0 VisualStyles properties.
7335
7336 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7337         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7338           XplatUIX11.cs: Create property to allow access to existing private
7339           variable "themes_enabled"
7340
7341 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7342
7343         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7344         file size, as otherwise our class libraries fail using windows. Fixes
7345         bug #78759.
7346
7347 2006-08-04  Jackson Harper  <jackson@ximian.com>
7348
7349         * Form.cs:
7350         * XplatUIX11.cs: Move the toolwindow window manager creation into
7351         the X11 driver, this way on win32 we can let windows create/handle
7352         the toolwindows.
7353
7354 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7355
7356         * PrintDialog.cs: Remove some redundant checks, add some others,
7357         clean some code, and move the focus to the text boxes when the
7358         values are incorrect.
7359
7360 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7361
7362         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7363
7364 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7365
7366         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7367           handled correctly. Fixes bug #79001.
7368
7369 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7370
7371         * PrintDialog.cs: The "Copies" numeric up down must have
7372         set the Minimum property to 1; only if the value is bigger
7373         than 1, activate "Collate" check box. This is the behaviour of .Net.
7374         Also modify the Document elements only if it is not null.
7375
7376 2006-08-03  Jackson Harper  <jackson@ximian.com>
7377
7378         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7379         length. (We have a larger array then actual node count).
7380                 
7381 2006-08-03  Jackson Harper  <jackson@ximian.com>
7382
7383         * ComboBox.cs: Don't show selection by default.
7384         - The SelectAll isn't needed here, since the focus code should do
7385         that
7386         - DDL style lists to manual selection drawing, so when they
7387         get/lose focus they have to invalidate.
7388
7389 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7390
7391         * TextBoxBase.cs: Don't always show all selections by default.
7392
7393 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7394         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7395           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7396           Fixed various typos.
7397
7398 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7399
7400         * Control.cs: Removing the controls in a ControlCollection with
7401           Clear now hides the controls as expected. Fixes bug #78804. 
7402
7403 2006-08-03  Jackson Harper  <jackson@ximian.com>
7404
7405         * Control.cs: Revert previous focus patch, it breaks reflector.
7406
7407 2006-08-03  Jackson Harper  <jackson@ximian.com>
7408
7409         * ComboBox.cs: Cleanup selection and focus with the combobox.
7410         This also eliminates some duplicated keyboard code, since now
7411         everything is handled by the main class.
7412         - Make list selection work on mouse up instead of down, to match
7413         MS.
7414
7415 2006-08-02  Jackson Harper  <jackson@ximian.com>
7416
7417         * Control.cs: Setting focus needs to go through the whole
7418         selection mechanism.
7419
7420 2006-08-02  Chris Toshok  <toshok@ximian.com>
7421
7422         * PrintPreviewDialog.cs: change MinimumSize to use
7423         base.MinimumSize so it works.
7424
7425 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7426
7427         * TextControl.cs:
7428           - UpdateCaret: Added sanity check in case caret isn't defined yet
7429           - Line.Delete: Now updating selection and caret markers if we're
7430             transfering a node (Properly fixes #78323)
7431           - SetSelectionEnd: Added sanity check
7432         * TextBoxBase.cs: Removed broken attempt to fix #78323
7433
7434 2006-08-01  Chris Toshok  <toshok@ximian.com>
7435
7436         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7437         Close() call is handled in Form, not here.
7438
7439 2006-08-01  Chris Toshok  <toshok@ximian.com>
7440
7441         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7442         layout/rendering.
7443
7444         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7445         for sizes < 100% zoom.  The code now aggressively attempts to keep
7446         from calling document.Print (), and tries not to use the scaling
7447         g.DrawImage whenever possible (it still does if you scale to >
7448         100%, since usually that involves huge images).
7449
7450         * PrintPreviewControl.cs: hook up the close button.
7451
7452 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7453         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7454           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7455           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7456           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7457           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7458           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7459           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7460           Removed [Serializable] for 2.0 Event Handlers.
7461
7462 2006-07-31  Jackson Harper  <jackson@ximian.com>
7463
7464         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7465         * TextControl.cs: Uncomment out the body of this method.
7466
7467 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7468
7469         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7470           standard cursors.
7471
7472 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7473
7474         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7475           that embed TextBox and need selections visible even if textbox is not
7476           focused to enforce that behaviour.
7477         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7478           selection drawing
7479
7480 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7481
7482         * TextControl.cs:
7483           - Added new SetSelectionStart/SetSelectionEnd overloads
7484           - Fixed viewport width assignment to be accurate
7485           - Adjusted alignment line shift calculations to allow cursor on right
7486             aligned lines to be always visible at the right border (like MS)
7487         * TextBoxBase.cs:
7488           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7489           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7490           - CalculateScrollBars: Use ViewPort size instead of window size, to
7491             properly consider space occupied by the border and scrollbars 
7492             (Fixes #78661)
7493           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7494             calculations; no longer leaves artifacts
7495           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7496             calculation bugs (Still missing right/center align calculations)
7497
7498 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7499
7500         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7501           use of both scroll rect and clip rect, as they do the same.
7502
7503 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7504
7505         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7506           in the event handler (fixes #78912)
7507
7508 2006-07-31  Chris Toshok  <toshok@ximian.com>
7509
7510         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7511         grid.ListManager.Count, since grid.ListManager might be null.
7512         This of course begs the question "why are we drawing rows for a
7513         grid with no list manager (and therefor no rows)?"  Fixes the
7514         crash in bug #78929.
7515
7516 2006-07-31  Chris Toshok  <toshok@ximian.com>
7517
7518         * RelatedPropertyManager.cs: Don't always chain up to the parent
7519         ctor.  instead, call SetDataSource if the parent's position is !=
7520         -1.  Fixes the crash in #78822.
7521
7522 2006-07-31  Chris Toshok  <toshok@ximian.com>
7523
7524         * DataGrid.cs (get_ListManager): use field instead of property
7525         accessors for datasource and datamember.
7526         (RowsCount): make internal again.
7527         (OnMouseDown): end edits before resizing columns/rows.
7528         (OnMouseUp): restart edits after resizing columns/rows.
7529
7530 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7531
7532         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7533           This fixes the situation where the last set cursor is displayed
7534           whenever the mouse is over scrollbars.
7535
7536 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7537
7538         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7539         Document properties, as well as initial values.
7540
7541 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7542
7543         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7544           and ClientEdge results in a 3-pixel border, which is
7545           wrong.
7546
7547 2006-07-28  Jackson Harper  <jackson@ximian.com>
7548
7549         * TreeNodeCollection.cs: Fix the clear method.
7550         - Fix the Shrink also
7551
7552 2006-07-27  Jackson Harper  <jackson@ximian.com>
7553
7554         * TreeView.cs: Make sure the visible order is computed when we
7555         attempt to size the scrollbars (for trees that mess with the
7556         scrolling when they shouldn't.
7557         - Make sure to give the scrollbars valid values.
7558
7559 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7560
7561         * XplatUIX11.cs: Move motion compression code to where it
7562           has less performance impact
7563
7564 2006-07-26  Jackson Harper  <jackson@ximian.com>
7565
7566         * UpDownBase.cs: When the control is selected make the child
7567         controls non selectable, so that a click on them won't do a
7568         focus/unfocus cycle.
7569         - Don't give focus to the text box when the spinner is selected.
7570         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7571
7572 2006-07-26  Chris Toshok  <toshok@ximian.com>
7573
7574         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7575         satisfied with this solution.  If the bitmaps are small, we should
7576         just cache them in the PrintPreviewDialog and draw them here.
7577         Also, the layout is broken for the 2-up and 3-up cases.
7578
7579         * Theme.cs: add PrintPReviewControlPaint.
7580
7581         * PrintPreviewDialog.cs: first pass implementation.
7582
7583         * PrintPreviewControl.cs: first pass implementation.  No
7584         scrollbars yet.
7585
7586         * PrintDialog.cs: only validate fields if that particular portion
7587         of the UI is enabled.  Also, set the document's controller to a
7588         PrintControllerWithStatusDialog wrapping the document's print
7589         controller.
7590
7591         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7592         bring up a SaveFileDialog (i hope we don't want to match the
7593         behavior of the crappy windows file entry) and set the
7594         PrinterSettings.PrintFileName accordingly.
7595
7596 2006-07-26  Jackson Harper  <jackson@ximian.com>
7597
7598         * ContainerControl.cs: Add a field that disables auto selecting
7599         the next control in a container when the container is activated.
7600         * UpDownBase.cs: Don't select the text box when the up down is
7601         selected.
7602
7603 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7604
7605         * XEventQueue.cs: Added methods for peeking (used for compression
7606           of successive events)
7607         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7608           mouse move events (fixes #78732)
7609
7610 2006-07-25  Jackson Harper  <jackson@ximian.com>
7611
7612         * UpDownBase.cs: Use an internal class for the textbox so that we
7613         can control focus.  the updown control should always have focus,
7614         if either the text area or the buttons are clicked.
7615         - Send the key messages to the textbox, since it never actually
7616         has focus
7617         - Activate and decativate the textbox caret.
7618
7619 2006-07-24  Jackson Harper  <jackson@ximian.com>
7620
7621         * Control.cs: Use the directed select when selecting a control,
7622         this way the container controls override will get called and the
7623         whole ActiveControl chain will get triggered.  TODO: probably need
7624         to make sure this gets done everywhere instead of the old
7625         Select(Control).
7626         * ContainerControl.cs: Implement the directed Select method to
7627         find and activate the correct child control.    
7628         
7629 2006-07-22  Mike Kestner  <mkestner@novell.com>
7630
7631         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7632         menu handling code so that clicks without a grab work too.
7633         [Fixes #78914]
7634
7635 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7636
7637         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7638           Added some small optimizations.
7639
7640 2006-07-21  Matt Hargett  <matt@use.net>
7641
7642         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7643
7644 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7645
7646         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7647           tests pass and match MS in some strange border cases.
7648
7649 2006-07-21  Chris Toshok  <toshok@ximian.com>
7650
7651         * ThemeWin32Classic.cs: handle drawing of the relation links and
7652         parent row buttons.
7653
7654         * Theme.cs: change args to DataGridPaintParentRow.
7655
7656         * DataGrid.cs: Don't use controls for the relation links and
7657         parent buttons, so we have to handle all their interactions in
7658         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7659         when we're navigating through child tables, so we can reinstate
7660         selection, expanded state, current cell, etc.
7661
7662 2006-07-20  Chris Toshok  <toshok@ximian.com>
7663
7664         * ToolBar.cs: When we redraw a button, for whatever reason,
7665         there's no reason to redraw the entire toolbar.  Also, don't call
7666         Control.Refresh from within Redraw, as it's much heavier than
7667         Invalidate (which is really what we want).
7668
7669 2006-07-20  Chris Toshok  <toshok@ximian.com>
7670
7671         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7672         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7673         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7674         traces from within a debug IBindingList datasource
7675         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7676         to work in a similar fashion.
7677
7678 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7679
7680         * ListBox.cs: Don't call Sort () when setting 
7681         the Sorted property to false (avoid an unnecessary sort).
7682
7683 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7684
7685         * ListControl.cs: DataSource should throw an ArgumentException
7686         instead of a normal exception when the argument is not of the 
7687         correct type.
7688
7689 2006-07-20  Mike Kestner  <mkestner@novell.com>
7690
7691         * Control.cs: add InternalPreProcessMessage to allow us to steal
7692         key events before MWF gets its paws on them.  Adapted from a
7693         suggestion by eno.
7694         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7695         up/down/left/right navigation. Override the new internal control
7696         method to steal the events since they never make it to WndProc.
7697         * ToolBarButton.cs: don't worry about pushed when setting hilight
7698         since the drawing code prefers pushed to hilight. Invalidate on 
7699         Hilight changes. Fixes #78547 and #78525.
7700
7701 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7702
7703         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7704           the canvas size. Fixes #78868
7705
7706 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7707
7708         * Splitter.cs: Track requested split position until first layout
7709           is performed. Fixes #78871
7710
7711 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7712
7713         * Application.cs: Removed code that forces 1.x for the version
7714           number if the version started with 0. Not sure why that code was
7715           there and I couldn't find any bugs that indicated we needed it.
7716           Fixes #78869
7717
7718 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7719
7720         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7721           ResetDefaults(), just write some output to the console until it's
7722           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7723
7724 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7725
7726         * PropertyGridView.cs: set StartPosition of drop down forms
7727         so they appear in correct initial spot.  Fixes #78190.
7728
7729 2006-07-19  Mike Kestner  <mkestner@novell.com>
7730
7731         * ThemeWin32Classic.cs: use parent background color when drawing
7732         flat toolbars.  Restructure the conditionals to make sure non-flat
7733         non-Divider toolbars are filled too.  Fixes #78837.
7734
7735 2006-07-19  Mike Kestner  <mkestner@novell.com>
7736
7737         * ListBox.cs: Sort on collection changes even if the handle
7738         isn't created yet.  Fixes #78813.
7739
7740 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7741
7742         * ListControl.cs: DisplayMember should never be null,
7743         and now we assign String.Empty when null is passed to it (this
7744         is the .Net way).
7745
7746 2006-07-17  Mike Kestner  <mkestner@novell.com>
7747
7748         * ListViewItem.cs: restructure Font and subitem Font handling 
7749         to hold a specific font and refer back to owner on null.
7750         Fixes #78761.
7751
7752 2006-07-17  Mike Kestner  <mkestner@novell.com>
7753
7754         * ToolBar.cs: bandaid for side-effect of previous patch which was
7755         discarding explicit heights for non-AutoSize toolbars.  Need to
7756         extend my format tester to deal with AutoSize=false. Fixes #78864.
7757
7758 2006-07-15  Jackson Harper  <jackson@ximian.com>
7759
7760         * LabelEditTextBox.cs:
7761         * TreeView.cs: Use a new LabelEdit class for node editing, this
7762         class automatically 'closes' itself when it gets the enter key or
7763         loses focus.
7764         - Use the client rectangle when setting the trees scrollbars, so
7765         border style is taken into account.
7766         
7767 2006-07-14  Jackson Harper  <jackson@ximian.com>
7768
7769         * TreeNode.cs:
7770         * TreeView.cs: Make the editing work similar to MSs, firing the
7771         events correctly and ending edits correctly.
7772
7773 2006-07-14  Mike Kestner  <mkestner@novell.com>
7774
7775         * ToolBarButton.cs:
7776         * ToolBar.cs: layout restructuring and redraw enhancements to support
7777         formatting changes gracefully, like setting TextAlign, ImageList, 
7778         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7779         of the MS controls.  Things like flat toolbars ignoring button size
7780         but becoming constant sized at the largest button's size.  Normal
7781         toolbars with an image set cannot be shrunk smaller than the image,
7782         but text can be clipped/ignored.
7783         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7784         is zero.  Seems like DrawString should be smart enough to not put
7785         anything on screen though. Also trim labels and ellipsize at the char
7786         boundary, not word.
7787         Fixes #78711 and #78483.
7788
7789 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7790
7791         * FolderBrowserDialog.cs: Disable "New Folder" button and
7792           "New Folder" contextmenu menuitem if a folder like "My Computer"
7793           is selected.
7794
7795 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7796
7797         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7798         * FolderBrowserDialog.cs:
7799           - Use MWFConfig to store and read size and position settings
7800           - Added code to create a new folder (button or context menu).
7801             Use TreeView labeledit to change the name of the new folder.
7802
7803 2006-07-14  Jackson Harper  <jackson@ximian.com>
7804
7805         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7806         when the tree is scrolled we end editing.
7807
7808 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7809
7810         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7811           Down arrows
7812
7813 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7814
7815         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7816         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7817         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7818         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7819         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7820         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7821         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7822         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7823         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7824         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7825         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7826         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7827         ListViewItemSelectionChangedEventHandler.cs,
7828         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7829         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7830         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7831         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7832         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7833         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7834         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7835         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7836         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7837         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7838         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7839         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7840         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7841         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7842         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7843         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7844         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7845         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7846         WebBrowserNavigatingEventHandler.cs, 
7847         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7848
7849 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7850
7851         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7852         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7853         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7854         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7855         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7856         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7857         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7858         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
7859         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
7860         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
7861         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
7862         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
7863         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
7864         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
7865         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
7866         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
7867         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
7868         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
7869         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
7870         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
7871         ListViewItemStates.cs, MaskFormat.cs: Added
7872
7873 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
7874
7875         * PropertyGridView.cs: Fix keyboard navigation of drop down.
7876         Patch from eno for bug 78558.
7877         
7878 2006-07-13  Jackson Harper  <jackson@ximian.com>
7879
7880         * TreeView.cs: When an edit is finished make sure that the
7881         selected node is visible.
7882         - When setting the top/bottom use the scrollbars is_visible, so
7883         everything will be set correctly even if the tree isn't visible
7884         yet.
7885
7886 2006-07-13  Jackson Harper  <jackson@ximian.com>
7887
7888         * ComboBox.cs: Revert the item->index part of my previous patch.
7889         * TreeView.cs: Use LostFocus instead of Leave for detecting when
7890         the edit box has lost focus (duh).
7891         - Just make the edit box not visible when we get return, that will
7892         take the focus, which will call EndEdit
7893         * TreeNode.cs When we start editing, notify the treeview.
7894
7895 2006-07-12  Jackson Harper  <jackson@ximian.com>
7896
7897         * ComboBox.cs: Clear out old items before setting the item list.
7898         This prevents databound controls from having their items added
7899         twice.
7900         - Switch the combobox to use indices whereever possible instead of
7901         using Item's.  This allows usto navigate through lists that have
7902         more then one item with the same string value (ie a, b, b, a).
7903         - Scroll the listboxes scrollbar when a non visible item is
7904         highlighted
7905         - Allow keypress to cycle through all the possible values. For
7906         example if you have b1, b2, b3 and hold down the B key all the
7907         values will be cycled through.
7908         
7909 2006-07-12  Jackson Harper  <jackson@ximian.com>
7910
7911         * TextBoxBase.cs:
7912         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
7913         this using the internal methods.
7914         * Control.cs: Add OnGotFocusInternal.  A new method that allows
7915         controls to "override" OnGotFocus and change focus behavior if
7916         needed.
7917         - Same thing for LostFocus
7918         * ComboBox.cs: Pass off focus to the text control properly.
7919
7920 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
7921
7922         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
7923         * FolderBrowserDialog.cs: Almost a complete rewrite.
7924           - Better support for Environment.Specialfolders
7925           - Added support for MWFVFS
7926           - Made setting SelectedPath work
7927
7928 2006-07-12  Jackson Harper  <jackson@ximian.com>
7929
7930         * Control.cs: Optimze getting all the controls.
7931
7932 2006-07-11  Jackson Harper  <jackson@ximian.com>
7933
7934         * ContainerControl.cs: Override SETFOCUS in the container control,
7935         so that it is not selected on mouse click.
7936
7937 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
7938
7939         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
7940           Hopefully we will have a better way once all of focus is complete.
7941
7942 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
7943
7944         * ThemeWin32Classic.cs: Commented out some debug code and fixed
7945           a compile error with csc.
7946
7947 2006-07-11  Jackson Harper  <jackson@ximian.com>
7948
7949         * Control.cs: When hiding a control only select the next control
7950         if the current control was focused.
7951         - Don't handle enter/leave when setting/killing focus, this is
7952         done by the container control.
7953         - Remove is_selected, it's not needed anymore.
7954         - Add utility methods for selecting a child control, and for
7955         firing the Enter/Leave events.
7956         * ContainerControl.cs: When a control is activated fire the
7957         enter/leave events.
7958         - Don't wrap when processing the tab key, so that focus can be
7959         moved outside of the container.
7960         - Use the correct active control
7961
7962 2006-07-11  Jackson Harper  <jackson@ximian.com>
7963
7964         * ComboBox.cs: Remove some debug code that was blinding me.
7965         * UpDownBase.cs: These controls actually aren't implicit, they are
7966         visible to the user.
7967
7968 2006-07-10  Chris Toshok  <toshok@ximian.com>
7969
7970         * DataGrid.cs: move back to the is_adding boolean field.  god i
7971         hate this is_editing/is_adding/is_changing stuff.
7972
7973 2006-07-10  Chris Toshok  <toshok@ximian.com>
7974
7975         * DataGridTableStyle.cs: just check if the property type is bool.
7976         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
7977         Don't use CanRenderType.
7978
7979         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
7980         if our text == NullText.  Remove CanRenderType.
7981
7982         * DataGridBoolColumn.cs: nuke CanRenderType.
7983
7984         * DataGrid.cs: reenable some code to end the current edit inside
7985         of set_CurrentCell.  This fixes the other 1.1.16 regression.
7986         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
7987         Also, remove the visible_row_count arg from CalcRowHeaders, since
7988         we don't need to worry about the actual height of the area.
7989
7990 2006-07-10  Chris Toshok  <toshok@ximian.com>
7991
7992         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
7993         mode, just return.
7994
7995         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
7996         the real sense of the IsInEditOrNavigateMode property (true =
7997         navigate, false = edit).  Also, update OnKeyPress to reflect this.
7998
7999         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8000         column style exists, we still need to set its property descriptor
8001         to match up with our list manager.
8002
8003 2006-07-10  Chris Toshok  <toshok@ximian.com>
8004
8005         * ThemeWin32Classic.cs: implement the new row/header painting
8006         approach.  The parent row painting will likely go away and
8007         replaced with label controls, but the rest seems to work ok (and
8008         efficiently).
8009
8010         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8011         the row headers as a block now.  Instead we draw them in the
8012         normal draw-row loop.  Add some calls for drawing parent rows and
8013         relation rows.
8014
8015         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8016         a default table style.  Set the defaults from ThemeEngine.Current,
8017         not SystemColors.  Fix lots of misc issues with property setters.
8018
8019         * DataGrid.cs: move loads of style information out of this class
8020         as it's being duplicated with DataGridTableStyle.  keep track of a
8021         special DataGridTableStyle for the properties we used to mirror
8022         here.  Switch all the style properties to access this table style
8023         instead of instance fields of this class.  Also add a internal
8024         class to represent parent rows (more needs to be stored here, like
8025         the selection state from the parent table, as well as the
8026         expansion state.)  Also, for datasources with relations, do the
8027         right thing for collapse/expand, and add support for the
8028         navigation/parent row buttons.
8029
8030         Lastly, fix the crash in the 1.1.16 build.
8031
8032         * GridTableStylesCollection.cs: make the explicit interface
8033         implementations call the class's methods as opposed to duplicating
8034         them.
8035
8036         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8037         0 so the text doesn't jump around when we move the cursor.
8038
8039 2006-07-10  Jackson Harper  <jackson@ximian.com>
8040
8041         * TextBoxBase.cs:
8042         * ListBox.cs: Match MS's ToString (this makes debugging focus
8043         stuff infinitely easier).
8044
8045 2006-07-10  Jackson Harper  <jackson@ximian.com>
8046
8047         * Control.cs (SelectNextControl): When checking the control's
8048         parent use this instead of ctrl.parent so that null can be passed
8049         to SelectNextControl. (I have unit tests for this).
8050         - Remove unused var.
8051
8052 2006-07-10  Chris Toshok  <toshok@ximian.com>
8053
8054         * CurrencyManager.cs: correct one regression, the removal of the
8055         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8056         Refresh() correctly, and fix some event emission in
8057         ListChangedHandler.
8058
8059 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8060
8061         * FileDialog.cs: Don't use brackets for new folders if they exist
8062           under *nix. Instead use -(number of existing folders +1).
8063
8064 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8065
8066         * FileDialog.cs:
8067           - Fixed really nasty bug #78771
8068           - Don't block the whole GUI when reading directories with a lot of
8069             entries. Use an other thread instead and call BeginInvoke to
8070             update the ListView in MWFFileView
8071
8072 2006-07-07  Chris Toshok  <toshok@ximian.com>
8073
8074         * Control.cs (Dispose): release any Capture when disposing.
8075
8076 2006-07-07  Chris Toshok  <toshok@ximian.com>
8077
8078         * LinkLabel.cs (Select): if we chain up to the parent, set
8079         focused_index to -1 so we'll search for the first available link
8080         the next time the user tabs into us.  Also, if the direction is
8081         backward and focused_index == -1, start the search from the last
8082         element.
8083
8084 2006-07-07  Chris Toshok  <toshok@ximian.com>
8085
8086         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8087         is beyond the end of the text, don't do anything.
8088         (CreateLinkPieces): set our ControlStyles.Selectable based on
8089         whether or not we have any links.
8090         (Link.Invalidate): use a loop instead of foreach.
8091         (Link.set_Start): null out owner.sorted_links so it'll be
8092         recreated by CreateLinkPieces.
8093
8094 2006-07-06  Chris Toshok  <toshok@ximian.com>
8095
8096         * LinkLabel.cs: revert the SetStyle change.
8097
8098 2006-07-06  Chris Toshok  <toshok@ximian.com>
8099
8100         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8101         (OnEnableChanged): s/Refresh/Invalidate
8102         (OnGotFocus): if we have a focused index already, refocus it (so
8103         if we mouse out/in to the window it'll focus the right link).
8104         (OnKeyDown): move the tab handling out of here.
8105         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8106         when we lose focus.
8107         (OnMouseDown): don't Capture here - Control handles it.  Also,
8108         focus the active link.
8109         (OnMouseUp): don't deal with Capture.
8110         (OnPaintBackgroundInternal): remove.
8111         (OnTextAlignChanged): CreateLinkPieces before calling the
8112         superclass's method.
8113         (OnTextChanged): call CreateLinkPieces before calling superclass's
8114         method.
8115         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8116         move around.
8117         (Select): implement this, moving the selection between different
8118         links, and call parent.SelectNextControl if we don't have another
8119         link to focus in the given direction.
8120         (CreateLinkPieces): call Invalidate instead of Refresh.
8121         
8122 2006-07-06  Chris Toshok  <toshok@ximian.com>
8123
8124         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8125         new LinkLabel internals.
8126
8127         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8128         over pieces looking for active/focused/etc links.  also, deal with
8129         runs of text (and links) with embedded \n's in them, and use
8130         MeasureCharacterRanges instead of MeasureString to figure out the
8131         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8132         two-step.
8133
8134 2006-07-04  Jackson Harper  <jackson@ximian.com>
8135
8136         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8137         XKB or key auto repeat, do it manually.  Without key auto repeat,
8138         when a key is held down we get key press, key release, key press,
8139         key release, ... with auto repeat we get key press, key press, key
8140         press ..., and then a release when the key is actually released.
8141
8142 2006-07-03  Jackson Harper  <jackson@ximian.com>
8143
8144         * TabControl.cs:
8145         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8146         rules, they are always control color regardless of the background
8147         color.
8148
8149 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8150
8151         * FileDialog.cs: Added internal class MWFConfig.
8152           Removed Registry support and replaced it with support for the new
8153           MWFConfig class. See MWFConfig comments for more information.
8154
8155 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8156
8157         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8158           rectangle. Added some patches from eno from bug #78490 and fixed
8159           the arrow position for small up and down CPDrawScrollButtons.
8160
8161 2006-06-30  Jackson Harper  <jackson@ximian.com>
8162
8163         * InternalWindowManager.cs: Remove some debug code.
8164         * Form.cs: When an MdiParent is set to null, the window is
8165         "detatched" and becomes a normal window.
8166         * MdiClient.cs: Don't bring the new child form to the front until
8167         it is activated (setting it as active does this), this makes the
8168         previously active forms titlebar get redrawn as inactive.
8169
8170 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8171
8172         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8173           with later controls
8174
8175 2006-06-29  Mike Kestner  <mkestner@novell.com>
8176
8177         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8178         arrow in keynav state.  Fixes #78682.
8179
8180 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8181
8182         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8183           order (fixes #78393)
8184
8185 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8186
8187         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8188           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8189           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8190           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8191           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8192           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8193           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8194           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8195           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8196           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8197           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8198           values)
8199
8200 2006-06-28  Mike Kestner  <mkestner@novell.com>
8201
8202         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8203
8204 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8205
8206         * PropertyGrid.cs,
8207           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8208           item lines from other area (It also makes BackColor consistent and
8209           compatible with .NET). Fixed bug #78564.
8210
8211 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8212
8213         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8214         Patch from Eno for #78555.
8215
8216 2006-06-27  Chris Toshok  <toshok@ximian.com>
8217
8218         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8219
8220         * DataGridColumnStyle.cs: same.
8221
8222         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8223         
8224         * DataGridDrawingLogic.cs: nuke.
8225
8226 2006-06-27  Chris Toshok  <toshok@ximian.com>
8227
8228         * DataGridTableStyle.cs: clean up the constructors, and build the
8229         list of child relations for this table.  I have no idea if this is
8230         where we should be doing it (it probably isn't), but since we're
8231         already iterating over the properties..
8232
8233         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8234         struct and array for keeping track of row information, similar to
8235         what's shown in a hack on
8236         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8237
8238         * Theme.cs: be consistent about the naming of DataGrid methods,
8239         prefering ColumnWidths and RowHeights over columnsWidths and
8240         RowsHeights.
8241
8242         * ThemeWin32Classic.cs: same, and also add support for variable
8243         sized rows (and the +/- expansion icons for related rows).
8244
8245 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8246
8247         * TextBoxBase.cs: Applied Eno's patch from #78660
8248
8249 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8250
8251         * Form.cs (ScaleCore): We don't want to scale our form if it's
8252           state is minimized or maximized, but we still need to scale our
8253           child windows. Also, added try/finally block to ensure layout
8254           gets reset (Fixes #78697)
8255
8256 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8257
8258         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8259
8260 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8261
8262         * Form.cs: Fixed c+p error and added check to resize form if minimum
8263           size is bigger than current size (Fixes #78709)
8264
8265 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8266
8267         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8268
8269 2006-06-26  Mike Kestner  <mkestner@novell.com>
8270
8271         * ComboBox.cs: only do Keypress handling in the combo when there  
8272         are items in the collection. Fixes #78710.
8273
8274 2006-06-26  Chris Toshok  <toshok@ximian.com>
8275
8276         * Binding.cs: make this work bi-directionally.  also, clear up
8277         other mixups between Push/Pull Data (e.g. we're supposed to pull
8278         data when validating).
8279
8280         * BindingManagerBase.cs: trim some fully qualified collection
8281         types.
8282
8283         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8284
8285 2006-06-23  Chris Toshok  <toshok@ximian.com>
8286
8287         * PropertyManager.cs: It appears (according to the unit tests)
8288         that PropertyManager doesn't use
8289         PropertyDescriptor.AddValueChanged to track propery value changes
8290         in its datasource, but uses the same scheme as Binding, where it
8291         looks for a <Property>Changed event and binds to it.
8292
8293         Also, according to the docs, IsSuspended always returns false for
8294         a property manager with a non-null datasource.
8295
8296 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8297
8298         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8299           need to update the actual DialogResult. (Fixes #78613)
8300
8301 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8302
8303         * Form.cs (ShowDialog): Release any captures before running the
8304           new message pump (fixes #78680)
8305
8306 2006-06-22  Mike Kestner  <mkestner@novell.com>
8307
8308         * ListView.cs: Layout column widths properly in details mode even 
8309         if HeaderStyle.None is set.  Fixes #78691.
8310
8311 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8312
8313         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8314
8315 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8316
8317         * Control.cs (ContainsFocus): Using new driver method to get focused
8318           window, instead of trying to use internal tracking var, which can
8319           recursion issues (Fixes #78685)
8320         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8321           XplatUIWin32.cs: Added GetFocus method to return focused window
8322
8323 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8324
8325         * ColorDialog.cs: when the mouse button is pressed inside the color
8326         matrix, don't let the cursor move out of it until the button is
8327         released, which is the behavior on windows. Changed 'colours' by
8328         'colors' to use the same word consistently.
8329
8330 2006-06-21  Chris Toshok  <toshok@ximian.com>
8331
8332         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8333         child relation and back, using a stack).  Also, remove
8334         GetDataSource and the code that calls it - it's not needed.  Also,
8335         track CurrencyManager.ListName's removal.
8336
8337 2006-06-21  Chris Toshok  <toshok@ximian.com>
8338
8339         * CurrencyManager.cs: push some of the original type checking from
8340         BindingContext.CreateBindingManager to here, and remove some of
8341         the finalType stuff.  Need more tests to make sure I've got the
8342         ListName part right, and we might need more in SetDataSource.
8343
8344         * PropertyManager.cs: add a ctor that takes just the datasource,
8345         and no property name.  Make SetDataSource work with a null
8346         property_name, and make Current return the data_source if the
8347         property descriptor is null.  this makes 'string foo = "hi";
8348         BindingContext[foo].Current' return "hi" as it should.
8349
8350         * RelatedCurrencyManager.cs: make this code more generic - there's
8351         no reason the parent manager has to be CurrencyManager, and
8352         there's no reason to pass the DataRelation.  It suffices to use a
8353         BindingManagerBase and PropetyDescriptor.
8354
8355         * RelatedPropertyManager.cs: make a similar change here.
8356         
8357         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8358         flower I knew it could be.
8359
8360 2006-06-20  Chris Toshok  <toshok@ximian.com>
8361
8362         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8363         data in the source has changed and we need to update the control,
8364         so s/PullData/PushData.
8365
8366         * CurrencyManager.cs: Refresh is meant to update the control from
8367         data in the datasource.  So, s/PullData/PushData.
8368
8369         * BindingContext.cs: add more ugliness (we weren't handling the
8370         case where data_source = DataTable and data_member = column_name).
8371
8372         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8373         from the perspective of the datasource.  PullData pulls from the
8374         control, PushData pushes to the control.
8375
8376 2006-06-20  Chris Toshok  <toshok@ximian.com>
8377
8378         * BindingContext.cs: rewrite the CreateBindingManager code to
8379         handle navigation paths more or less properly.  This could
8380         definitely stand some more work, in particular to push the
8381         recursion up to the toplevel.  But that relies on fixes in other
8382         places (System.Data comes to mind).
8383
8384         Also, move to a flat hashtable (and encode the twolevel nature of
8385         the dictionary into the hash key).  This lets us implement the
8386         IEnumerable.GetEnumerator method.
8387
8388         * RelatedCurrencyManager.cs: new class.  Update our view based on
8389         our relation and our parent CurrencyManager's position.
8390
8391         * CurrencyManager.cs: split out some logic from the ctor into
8392         SetView, so it can be called from the new RelatedCurrencyManager
8393         subclass.
8394
8395         * RelatedPropertyManager.cs: new class.  Update our datasource
8396         based on the position of our parent CurrencyManager.
8397
8398         * PropertyManager.cs: split out some logic from the ctor into
8399         SetDataSource, so it can be called from the new RelatedDataSource
8400         subclass.  Also, make the Current getter return the value
8401         of the PropertyDescriptor, not the data_source.
8402
8403         * Binding.cs: no need to duplicate the string splitting code here.
8404
8405 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8406
8407         * Control.cs:
8408           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8409             of the control is not altered, even though  we might be changing the
8410             internal state of the control (#78458)
8411           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8412             OnEnabledChanged, to allow easy altering of any child window state
8413           - OnEnabledChanged: Added code to enable/disable driver window state
8414           - OnParentEnabledChanged: Instead of firing the event, call 
8415             OnEnabledChanged, which will fire the event and also a) set driver
8416             window state and pass the enabled state to any grandchildren (#78458)
8417
8418 2006-06-19  Jackson Harper  <jackson@ximian.com>
8419
8420         * InternalWindowManager.cs: We don't set the cursor explicitly
8421         thats done via the response to NCHITTESTs.
8422         - Don't need to adjust for titlebar heights anymore, the
8423         coordinates are coming in the correct coordinates now (see peters
8424         last patch).
8425
8426
8427 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8428
8429         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8430           being translated relative to whole window, instead of client window.
8431           That caused broken offsets on mouseclick (and caused gas for our
8432           InternalWindowManager)
8433
8434 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8435
8436         * TextControl.cs:
8437           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8438           - Undo(): Added replay of cursor move on DeleteChars action; added
8439             calling Undo() again if a recorded cursor move is invalid (to
8440             ensure that some action is performed on Undo)
8441         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8442
8443 2006-06-16  Jackson Harper  <jackson@ximian.com>
8444
8445         * MdiClient.cs: Instead of just sizing maximized windows when
8446         there is a resize we also have to adjust the Y of minimized
8447         windows, so they stay pinned to the bottom of the mdi container.
8448         - Eliminate separate tracking of the active control, we can just
8449         get this from the controls collection.
8450         - Paint the decorations for the newly activated titlebar so we get
8451         a pretty blue bar.
8452         * InternalWindowManager.cs:
8453         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8454         even if they are a tool window.
8455         
8456 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8457
8458         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8459           undo buffer, these can happen when text was deleted and the cursor
8460           was recorded first. Since we will also have a recorded cursor
8461           after the delete this is not an issue. (Fixes #78651)
8462
8463 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8464
8465         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8466           instead properly track control states internally (allows us to
8467           remove is_selected from Control)
8468
8469 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470
8471         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8472         whose width is not a multiple of 8.
8473
8474 2006-06-13  Jackson Harper  <jackson@ximian.com>
8475
8476         * MdiClient.cs:  Only maximize the next child if the current one
8477         is maximized.
8478
8479 2006-06-13  Chris Toshok  <toshok@ximian.com>
8480
8481         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8482         modified.  Also, guard against grid or grid_drawing being null in
8483         Invalidate.
8484
8485         * DataGrid.cs: Reformat tons of getters/setters.  In the
8486         DataMember setter, just call SetNewDataSource instead of
8487         duplicating some of its functionality.  In SetNewDataSource, don't
8488         check ListManager for null, since the property getter creates the
8489         object if needed.
8490
8491         * DataGridTableStyle.cs: don't set TableStyle or call
8492         SetDataGridInternal on the column here, it's done in
8493         GridColumnStylesCollection.Add.
8494
8495         * GridColumnStylesCollection.cs: fix all the explicit interface
8496         implementations to just call our methods.  Nuke AddInternal() and
8497         move the body of it to Add().  Also, add a call to
8498         column.SetDataGridInternal to Add().
8499
8500         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8501         base()+duplicate code.  Also, use the Format property instead of
8502         format to generate an Invalidate ala MS.  Lastly, create the
8503         textbox here, unconditionally.
8504         (set_Format): call Invalidate.
8505         (get_TextBox): no need to call EnsureTextBox.
8506         (Commit): remove the message box.
8507         (Edit) remove the call to EnsureTextBox.
8508         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8509         (EnterNullValue): no need to check textbox for null.
8510         (HideEditBox): no need to check textbox for null.
8511         (SetDataGridInColumn): add the textbox to the grid's controls.
8512         (EnsureTextBox): nuke.
8513         
8514 2006-06-13  Jackson Harper  <jackson@ximian.com>
8515
8516         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8517         and redraw the buttons when needed. Unhook when the window is
8518         unmaximized.
8519         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8520         needs this so that it can redraw its buttons when the menu is
8521         repainted.
8522         * InternalWindowManager.cs:
8523         * Form.cs: The method order has changed for DrawMaximizedButtons,
8524         so that it can be a PaintEventHandler.
8525         
8526 2006-06-13  Jackson Harper  <jackson@ximian.com>
8527
8528         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8529         window is activated and maximized, even if it wasn't before.
8530         - When  a new window is activated repaint the decorations of the
8531         old one, so that it no longer has the Active "look" (the blue
8532         titlebar).
8533         * InternalWindowManager.cs: Open up CreateButtons to base classes
8534         so they can recreate the buttons on state changes.
8535         - If a window is maximized give it all three buttons
8536         * MdiWindowManager.cs: Create the titlebar buttons when the state
8537         is changed, this is needed because a toolwindow will not have all
8538         three buttons until it is maximized.
8539
8540 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8541
8542         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8543           Fixed bug #78609.
8544
8545 2006-06-12  Jackson Harper  <jackson@ximian.com>
8546
8547         * KeysConverter.cs: Make sure we handle the Ctrl special case
8548         if its the only key.
8549         
8550 2006-06-12  Jackson Harper  <jackson@ximian.com>
8551
8552         * Theme.cs: Add a method to get the size of a managed window
8553         toolbar button.
8554         * InternalWindowManager.cs: Remove the ButtonSize property, this
8555         should be retrieved from the theme.
8556         * MdiWindowManager.cs: Get the button size from the theme
8557         * ThemeWin32Classic.cs: Make the method to get the managed window
8558         titlebar button size public.
8559         - Handle the different button sizes of maximized toolwindows
8560         (should match any maximized window).
8561         - Get the titlebar height from the theme, not the WM (which gets
8562         it from the theme).
8563
8564 2006-06-12  Jackson Harper  <jackson@ximian.com>
8565
8566         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8567         event down to the mdi window manager.
8568         - Expose some extra stuff to base classes
8569         - Make sure to end the Capture on an NC Mouse up, so that we can
8570         get double clicks properly, and the sizing doens't stick.
8571         - When doing PointToClient contain it in the workable desktop
8572         area, this prevents windows from changing size when the cursor is
8573         pulled outside of the working area while sizing.
8574         * MdiWindowManager.cs: When we get a double click maximize the
8575         window.
8576         - Reset the cursor after handling mode changes.
8577
8578 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8579
8580         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8581           current desktop, instead of just assuming a 0, 0 origin. This
8582           is needed for our internal window manager, to know the top
8583           margin of the desktop
8584
8585 2006-06-12  Chris Toshok  <toshok@ximian.com>
8586
8587         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8588         we need this to get rid of the selected background in the bool
8589         column.
8590         (CancelEditing): move the ConcedeFocus call to above the Abort
8591         call.  Also, set is_changing to false and invalidate the row
8592         header if we were changing before.
8593         (ProcessKeyPreviewInternal): remove, since noone outside this
8594         class calls it anymore.  Roll the code into ProcessKeyPreview.
8595         (EndEdit): remove the internal version.
8596         (InvalidateCurrentRowHeader): make private.
8597
8598         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8599         Keys.Escape handling (and with it the last call to
8600         DataGrid.EndEdit from outside the class.)
8601
8602
8603 2006-06-12  Chris Toshok  <toshok@ximian.com>
8604
8605         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8606         (OnKeyPress): set isedit to true.
8607         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8608         already handled by the grid.
8609
8610         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8611         right.  ugh.
8612         (set_DataSource): SetDataSource always returns true, so stop
8613         putting it in an if statement.
8614         (EndEdit): get rid of some {}'s
8615         (ProcessGridKey): return true in case Keys.Escape.
8616         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8617         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8618         PositionChanged, stopped connecting to CurrentChanged.
8619         (GetDataSource): simplify this a bunch.
8620         (SetDataSource): change return type from bool to void.
8621         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8622         to this, and make sure we don't set ListManager.Position inside
8623         set_CurrentCell.
8624         (OnListManagerItemChanged): if we're passed an actual index,
8625         redraw that row.
8626
8627         * CurrencyManager.cs (set_Position): don't call PullData here.
8628
8629 2006-06-09  Jackson Harper  <jackson@ximian.com>
8630
8631         * TreeNode.cs:  Recalculate the visible order before doing the
8632         Expand/Collapse Below calls, because those calls generate an
8633         expose.
8634         - Reduce calls to the TreeView property, which is mildly expensive
8635         by using a local var.
8636         * Form.cs: Layout the MDI child windows when creating the parent
8637         form.
8638         - Don't use the internal constructor anymore
8639         * MdiClient.cs: use the parent form width/height (if available)
8640         when laying out the child windows, we do this because the
8641         mdiclient isn't docked yet when the initial layout is done.
8642         - Don't need an internal constructor anymore.
8643
8644 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8645
8646         * FileDialog.cs: handle access errors when trying to create a folder
8647         or changing to a directory. No need to initialize out parameters.
8648
8649 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8650
8651         * FileDialog.cs: Append a number when creating a new folder if the
8652           folder already exists (use parenthesis instead of square brackets)
8653
8654 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8655
8656         * FileDialog.cs:
8657           - Disabled registry support for windows and added better registry
8658             error checking for other systems (need to investigate why it
8659             works perfectly on my system)
8660           - If a folder already exist show an error MessageBox instead of
8661             trying to create an indexed name.
8662           - Fixed a non intentional typo.
8663
8664 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8665
8666         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8667
8668 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8669
8670         * FileDialog.cs: When creating a new folder don't crash if the
8671           folder already exists.
8672
8673 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8674
8675         * FileDialog.cs: Allmost a complete rewrite.
8676           - added a "virtual" file system that handles the differences
8677             between unix and windows file systems (especially the directory
8678             structure). Moved most of the directory and file handling code
8679             into the vfs.
8680             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8681             UnixFileSystem and FSEntry.
8682           - Recently used folder/directory, size, location and used file names
8683             (file name ComboBox) are now stored in the registry and get read
8684             before the dialog shows up (fixes part 6 of bug #78446).
8685           - Creation of new folders/directories is now possible (context menu
8686             or ToolBar). Added TextEntryDialog for this that fills in the gap
8687             until ListView.LabelEdit works.
8688           - Fixed cursor handling (bug #78527) and focus handling for
8689             PopupButtonPanel
8690           - Various "Search in" ComboBox enhancements. The content of the
8691             dropdown listbox now almost matches ms.
8692           - Changed the behaviour when the user switches to SpecialFolder
8693             Recent to show the ListView in View.Details.
8694           - Beside using the ToolBar to change the View property of the
8695             file ListView it is now possible to use the context menu too.
8696
8697 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8698
8699         * ComboBox.cs: Don't create a new ObjectCollection when an item
8700           gets inserted. Just insert the item in the existing object_items
8701           ArrayList.
8702
8703 2006-06-08  Jackson Harper  <jackson@ximian.com>
8704
8705         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8706         that the treeview and root node checks are done also, this fixes a
8707         regression i caused in the unit tests.
8708
8709 2006-06-07  Wade Berrier <wberrier@novell.com> 
8710
8711         * RichTextBox.cs: More ISO8859-1 -> unicode
8712
8713 2006-06-07  Mike Kestner  <mkestner@novell.com>
8714
8715         * ComboBox.cs : use items to hold highlight/selection so that
8716         collection insertions don't require synchronization.
8717
8718 2006-06-07  Jackson Harper  <jackson@ximian.com>
8719
8720         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8721         routine.  We now always keep the sized edge at the cursor instead
8722         of computing movement and adjusting rects.  There is one buglet
8723         with this method though when the cursor is moved over area that
8724         the window can not expand too (such as the toolbars on the desktop).
8725
8726 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8727
8728         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8729         here. Fixes crash on startup in AlbumSurfer.
8730
8731 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8732
8733         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8734           values
8735
8736 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8737
8738         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8739         statement to avoid calling XNextEvent which will block if another thread
8740         took the event that we were expecting. Fixes bug #78605.
8741
8742 2006-06-07  Mike Kestner  <mkestner@novell.com>
8743
8744         * ListView.cs : isolated checkbox clicking from the selection logic.
8745         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8746
8747 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8748
8749         * Form.cs: Check that the value passed to Form.DialogResult
8750         is a valid enum value.
8751
8752 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8753
8754         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8755         Computer'. Clicking it in the network view goes to 'My Computer'.
8756         Added CIFS filesystem type. Display the mount point of filesystems.
8757         Avoid duplicate mount points (happens for me with CIFS);
8758
8759 2006-06-06  Jackson Harper  <jackson@ximian.com>
8760
8761         * InternalWindowManager.cs: Draw the maximized windows buttons
8762         when resizing.
8763
8764 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8765
8766         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8767         all other dialogs. Fixes bug #78585.
8768
8769 2006-06-06  Mike Kestner  <mkestner@novell.com>
8770
8771         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8772         Only invalidate checkbox on checkstate changes to avoid flicker.
8773         * ListBox.cs : avoid unselect/select when clicking selected item.
8774         avoid reselection flicker for already multiselected items.
8775         Fixes #78382.
8776
8777 2006-06-06  Jackson Harper  <jackson@ximian.com>
8778
8779         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8780         the parent form so that the menu is removed if needed.
8781
8782 2006-06-06  Mike Kestner  <mkestner@novell.com>
8783
8784         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8785         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8786
8787 2006-06-06  Mike Kestner  <mkestner@novell.com>
8788
8789         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8790
8791
8792 2006-06-06  Jackson Harper  <jackson@ximian.com>
8793
8794         * Control.cs: Use the property (instead of the field) to get the
8795         default cursor so it is instantiated correctly.
8796         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8797         resizes so we need to manually repaint the window decorations here.
8798         - Set the titlebar button locations as soon as they are created,
8799         otherwise they are not set correctly on win32.
8800         
8801 2006-06-06  Chris Toshok  <toshok@ximian.com>
8802
8803         * CurrencyManager.cs (set_Position): call PullData before
8804         OnCurrentChanged.
8805         (AddNew): after calling IBindingList.AddNew, update our
8806         listposition, and call OnCurrentChanged/OnPositionChanged (without
8807         calling PullData).
8808         (OnCurrentChanged): remove the call to PullData from here.
8809         (OnItemChanged): remove the call to PushData from here.
8810         (OnPositionChanged): change the test from == null to != null to
8811         match the other methods.
8812         (ListChangedHandler): the grossest part of the patch.  Implement
8813         this such that it passes the unit tests in CurrencyManagerTest and
8814         the output more or less matches that of MS's implementation.
8815  
8816 2006-06-06  Mike Kestner  <mkestner@novell.com>
8817
8818         * ListView.cs : only update check state on single click.
8819         * ThemeWin32Classic.cs : fix focus drawing for details view without
8820         fullrowselect.  Fixes #78454.
8821         * XplatUIX11.cs : fix for double click emission.
8822
8823 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8824
8825         * PropertyGridView.cs : Applied Atsushi's patch to fix
8826         font dialog bug  (#78197).
8827
8828 2006-06-05  Jackson Harper  <jackson@ximian.com>
8829
8830         * TreeNode.cs: Compute the next node for expanding/collapsing
8831         correctly. We now factor in nodes without a NextNode
8832         correctly. (Fixes somes cases in nunit-gui).
8833         * InternalWindowManager.cs: Set the bounds when updating the
8834         virtual position of a tool window.
8835         
8836 2006-06-05  Chris Toshok  <toshok@ximian.com>
8837
8838         * DataGrid.cs: rename cached_currencymgr to list_manager.
8839         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8840         some.
8841         (CurrentRow, CurrentColumn): single accessors so we can make the
8842         cursor movement code a lot easier to understand.
8843         (CurrentRowIndex): implement this in terms of CurrentRow.
8844         (BeginEdit): clean this up a bit.
8845         (CancelEditing): sort out the is_editing/is_changing/is_adding
8846         stuff a little.
8847         (EndEdit): minor changes.
8848         (OnKeyDown): add a comment about a (most likely) unnecessary
8849         check.
8850         (OnMouseDown): cancel editing when we click on a row header.  And
8851         use the CurrentRow setter, not CurrentCell.
8852         (ProcessDialogKey): directly call ProcessGridKey.
8853         (UpdateSelectionAfterCursorMove): factor out this common block of
8854         code (it's used everywhere that we move the cursor by updating row
8855         or column).
8856         (ProcessGridKey): pretty substantial overhaul.  Use the
8857         CurrentRow/CurrentColumn properties to make the code a lot more
8858         readable.  Only use the CurrentCell property when we have to
8859         modify both row and column at once.  Tab behavior is still broken,
8860         and Delete is untested.
8861         (Select): if we have no selected rows, set selection_start to
8862         @row.
8863         (EditCurrentCell): rename EditCell this.  It was only ever invoked
8864         with CurrentCell as the arg, so drop the arg and rename it.
8865
8866         * DataGridColumnStyle.cs: clean up the constructors a little, and
8867         drop CommonConstructor().
8868
8869         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
8870         actually get notified when the user hits it.
8871         (ProcessKeyMessage): *substantially* simplify this method.
8872         There's no reason (that I can see) for the textbox to be making
8873         calls into the datagrid at all.  Remove all of them but the ones
8874         for Enter handling.  those will take some more work.
8875
8876         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
8877         calling HideEditBox.
8878         (HideEditBox): if we have an active textbox, render it invisible
8879         without causing a re-layout of the datagrid.
8880
8881 2006-06-05  Mike Kestner  <mkestner@novell.com>
8882
8883         * ListView.cs : fix NRE crasher when focuseditem is cleared by
8884         collection changes by resetting it to Items[0].  Fixes #78587.
8885
8886 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8887
8888         * MessageBox.cs: if the height of the text is larger than the icon_size,
8889         use that. Fixes bug #78575.
8890
8891 2006-06-05  Jackson Harper  <jackson@ximian.com>
8892
8893         * TreeView.cs: Fix line drawing when scrolling.  To do this each
8894         node is basically responsible for drawing its entire horizontal
8895         area.  When drawing a node it draws its parent node lines if
8896         needed.
8897         - Adjust the clip area to the viewport rectangle
8898         - Fix Left/Right key handling to match MS. (It expand/collapses
8899         and moves to parents/first child but does not move selection to
8900         sibling nodes).
8901         - Fix SetTop to work with new bound calculation code
8902         - When scrollbars are no longer needed we need to reset scrolling
8903         vars and recalculate the visible order so the redraw is correct
8904         * TreeNode.cs: We can't expand/collapse nodes with no children.
8905
8906 2006-06-03  John Luke  <john.luke@gmail.com> 
8907
8908         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
8909         so the colors work without dev packages
8910         
8911 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
8912
8913         * Control.cs 
8914           - Select: Implemented to just use activate. Seems to match MS 
8915             behaviour closest. Documented to only do actual control walking 
8916             based on it's parameters if in a container control so I moved 
8917             the code there.
8918           - Removed selection check logic from our internal Select() method
8919         * ContainerControl.cs:
8920           - Select: Moved selection logic from Control here, since MS documents
8921             that containers obey the bool arguments. No longer calling base
8922
8923 2006-06-02  Jackson Harper  <jackson@ximian.com>
8924
8925         * TreeView.cs: If the selected node isn't changed when we get
8926         focus update the previously selected node so that we see the
8927         selection box.
8928
8929 2006-06-02  Mike Kestner  <mkestner@novell.com>
8930
8931         * ComboBox.cs: restructure grab and general mouse event handling.
8932         Make the composite control raise mouse events like it was a single
8933         control for leaves/enters/motion/up/down events.  fix dropdown list
8934         coordinate mangling and refactor it into the scrollbar subclass to
8935         reduce code duplication.  Fixes #78282 #78361 and #78457.
8936
8937 2006-06-02  Mike Kestner  <mkestner@novell.com>
8938
8939         * ScrollBar.cs: remove Capture setting/clearing, as it happens
8940         automatically in the Control.WndProc.
8941
8942 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8943
8944         * FileDialog.cs: fix crash when running SharpChess, which sets the
8945         FilterIndex to 2 with only one Filter.
8946
8947 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8948
8949         * ToolBar.cs: add SizeSpecified property.
8950         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
8951         try to figure out our real size, otherwise fallback to what the
8952         container says.
8953
8954 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
8955
8956         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
8957         * Control.cs (WndProc): MS always calls the DefWndProc to pass
8958           up the event
8959
8960 2006-06-01  Mike Kestner  <mkestner@novell.com>
8961
8962         * ListView.cs: revamp the focus management in ListView.  It still
8963         causes churn of LostFocus/GotFocus emissions on clicks, but it's
8964         better than not handling focus at all.  Will revisit when pdb feels
8965         the general focus handling is solid.  Fixes #78526.
8966
8967 2006-06-01  Jackson Harper  <jackson@ximian.com>
8968
8969         * TreeView.cs: Set the default border style in the constructor.
8970         - Move painting to use OnPaintInternal instead of capturing
8971         WM_PAINT, this is the correct way of doing things
8972         - UpdateBelow shouldn't invalidate the scrollbar area
8973         - Cap the top on update below in case the node was above the top
8974         of the viewport rectangle.
8975         - ExpandBelow and Collapse below need to obey Begin/End Update.
8976         * TreeNode.cs: Make is_expanded internal so the treenode
8977         collection can change it without firing the whole event chain.
8978         * TreeNodeCollection.cs: When clearing all the child nodes make
8979         sure to recalc the visible order.
8980         - Improve algo for remove the top node
8981
8982 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
8983
8984         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
8985           SendMessage directly calling window procedures, which in turn might
8986           call SetFocus()
8987
8988 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
8989
8990         * Control.cs: Don't handle WM_SETFOCUS if the same window already
8991           has focus (works around X11 sending a FocusIn after our SetFocus)
8992         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
8993
8994 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
8995
8996         * Mime.cs: Fix for the NET_2_0 build.
8997           NameValueCollection needs StringComparer now.
8998
8999 2006-05-31  Chris Toshok  <toshok@ximian.com>
9000
9001         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9002         return (via an out parameter) the starting X of the column.
9003         (UpdateVisibleColumn): track change to FromPixelToColumn.
9004         (HitTest): add a ColumnResize case here.
9005         (DrawResizeLine): new function, probably poorly named.
9006
9007         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9008         only need to keep one reference.
9009         (set_ListManager): same.
9010         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9011         Also, add support for HitTestType.ColumnResize.
9012         (OnMouseMove): add column resize behavior here, and change the
9013         cursor to the correct one as we move around the datagrid.
9014         (OnMouseUp): terminate the column resize if we're resizing.
9015         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9016         for the current cell.
9017         (ConnectListManagerEvents): use cached_currencymgr.
9018         (DisconnectListManagerEvents): fill this in, using
9019         cached_currencymgr.
9020         (SetCurrentCell): remove cached_currencymgr_events handling.
9021         (SetDataMember): only call DisconnectListManagerEvents if
9022         cached_currencymgr is != null.
9023         (SetDataSource): same.
9024         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9025         cached_currencymgr.
9026
9027 2006-05-31  Jackson Harper  <jackson@ximian.com>
9028
9029         * BindingManagerBase.cs: Remove somedebug code that creeped into
9030         SVN.
9031         * TreeNode.cs: We get the indent level dynamically right now, so
9032         don't track it as a member.
9033         * TreeNodeCollection.cs: Make sure all nodes added to the list
9034         have parents, treeviews/topnodes setup properly.
9035         - Don't attempt to track indent level.
9036
9037 2006-05-30  Jackson Harper  <jackson@ximian.com>
9038
9039         * BindingContext.cs: Create the currency manager tables here.
9040         This allows us to more easily create null tables (when bad data
9041         members are used), and more easily create related currency
9042         managers.
9043         * CurrencyManager.cs: All the table creation stuff is done by the
9044         binding context now.
9045         - Current should throw an exception if listposition is -1.
9046         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9047         been bound yet.
9048
9049 2006-05-30  Mike Kestner  <mkestner@novell.com>
9050
9051         * ListView.cs: allow reexpansion of zero-width column headers.
9052         Fixes #78528.
9053
9054 2006-05-28  Chris Toshok  <toshok@ximian.com>
9055
9056         * CurrencyManager.cs (get_Current): after the late binding
9057         listposition = -1 fix, we need to guard against it here and return
9058         null, otherwise we raise an exception (which is swallowed
9059         elsewhere, and breaks datagrid databinding.)
9060
9061 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9062
9063         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9064           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9065
9066 2006-05-26  Jackson Harper  <jackson@ximian.com>
9067
9068         * ControlPaint.cs:
9069         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9070         values, it's faster and it's all we care about (we don't care if
9071         the names aren't equal).
9072         * KeyboardLayouts.cs: Eliminate some dead code.
9073         - Lazy init things
9074         * X11Keyboard.cs: Lazy init keyboard detection.
9075         - Cleanup access modifiers a little.
9076
9077 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9078
9079         * XplatUIX11.cs: Once again, attempting to get layout just right.
9080
9081 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9082
9083         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9084           the sizes of each link section, that will result in sizes that
9085           match DrawString's layout (Fixes #78391)
9086
9087 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9088
9089         * FileDialog.cs: If AddExtension property is true autocomplete the
9090           extensions in SaveFileDialog correctly. Fixes bug #78453.
9091           Set MyNetwork and MyComputer to "C:\" for windows. This should
9092           fix part 8 of bug #78446 for now.
9093
9094 2006-05-26  Chris Toshok  <toshok@ximian.com>
9095
9096         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9097         invalidate the current row header if we need to, but presumably
9098         we'll invalidate the row corrsponding to the bounds or
9099         editingControl.
9100         (GridHScrolled): switch back to this method, as it's part of the
9101         public api.  *sigh*.
9102         (GridVScrolled): same.
9103         (OnMouseWheel): hack up something that more or less works.  Call
9104         GridHScrolled/GridVScrolled directly, instead of duplicating much
9105         of their code here.
9106         (EnsureCellVisibility): reinstate a bunch of this code, since we
9107         can't just set the scrollbar Value and expect to do all the work
9108         in the ValueChanged handler.  Also, Call Update() after scrolling
9109         in one direction so the other XplatX11.ScrollWindow call has the
9110         proper stuff in the proper places.
9111         (EditCell): set is_editing to true before calling .Edit.
9112
9113         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9114         don't bother comparing first.
9115         (OnKeyPress): call grid.ColumnStartedEditing before calling
9116         base.OnKeyPress.  this will set is_changing and invalidate the row
9117         header if necessary.
9118         (ProcessKeyMessage): for WM_CHAR messages, call
9119         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9120         and WM_KEYDOWN.
9121         
9122         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9123         it's done in the DataGrid.
9124         (NextState): call grid.ColumnStartedEditing, which takes care of
9125         invalidating the row header (and setting is_changing).
9126
9127         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9128         here.  it's done in the DataGrid.
9129
9130 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9131
9132         * Control.cs: allow changing the cursor when the mouse position is
9133         out of bounds but Capture is set.
9134         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9135         linklabel but released somewhere else.
9136
9137 2006-05-25  Jackson Harper  <jackson@ximian.com>
9138
9139         * TreeView.cs: When we get focus if there is no selected node make
9140         it the top node
9141         - Remove some uneeded setup code from Draw.
9142         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9143         a new node is inserted make the new node the top.
9144         * XplatUIX11.cs:
9145         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9146         be used (should be faster).
9147         
9148 2006-05-25  Chris Toshok  <toshok@ximian.com>
9149
9150         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9151         problem with the last commit.
9152
9153 2006-05-25  Chris Toshok  <toshok@ximian.com>
9154
9155         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9156         need the invalidate call here, while scrolling right-to-left via
9157         the left arrow key (i.e. moving the editing cell while scrolling).
9158
9159         * DataGrid.cs (.ctor): remove the initialization of
9160         ctrl_pressed/shift_pressed.  We no longer track them using key
9161         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9162         to using ValueChanged handlers on the scrollbars instead of
9163         Scrolled event handlers.  This simplifies a bunch of the scrolling
9164         code.
9165         (GridHValueChanged): rename from GridHScrolled, and change it to
9166         work with the new event args.
9167         (GridVValueChanged): same.
9168         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9169         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9170         selected cell.
9171         (ProcessGridKey): correct all the keyboard navigation stuff I
9172         could find.  Ctrl up/down/left/right/home/end work now.
9173         (EnsureCellVisibility): correct method name spelling.  Also,
9174         simplify this a touch by not explicitly calling the
9175         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9176         scrollbar value.
9177         (OnKeyUpDG): no need for this method now.
9178         
9179 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9180
9181         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9182         Fixes bug #78392.
9183
9184 2006-05-25  Chris Toshok  <toshok@ximian.com>
9185
9186         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9187         r61019.
9188
9189 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9190
9191         * Application.cs: Moved setting of is_modal and closing to before
9192           we create the control, to allow the event handlers called as a
9193           result of creation affect closing. Also removed Gonzalo's previous
9194           change to setting DialogResult, the behaviour has been moved to 
9195           Form.ShowDialog()
9196         * Form.cs: 
9197           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9198             handle it instead
9199           - ShowDialog(): If no dialog result is set, we need to return Cancel
9200           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9201             the close is cancelled
9202
9203 2006-05-25  Jackson Harper  <jackson@ximian.com>
9204
9205         * StatusBar.cs: We only need to update the sizes of the other
9206         panels when we have auto size contents.  Also we are only updating
9207         the contents of the panel, not the borders, so compensate for the
9208         border width (TODO: get this width from the theme somehow).
9209         * TreeView.cs: Scrollable is true by default
9210         - Use invalidate instead of refresh where needed
9211         - Factor the scrollable value into scrollbar updating
9212         - Update the scrollbars if the Scrollable property is altered
9213         - Update the selected node if its ImageIndex is changed
9214         - Handle null nodes in UpdateNode (mainly so we don't have to
9215         check if selected is null when updating it
9216         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9217         are factored into the visible count
9218         - Use VisibleCount for clarity in the code
9219         - When the font is changed we need to recurse through all the
9220         nodes and invalidate their sizes
9221         
9222 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9223
9224         * Application.cs: set the DialogResult to fixed when the main form is
9225         hidden or destroyed while being modal.
9226
9227 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9228
9229         * Theme.cs: Use Tangoified messagebox icons. 
9230
9231         (GetSizedResourceImage): Also cope with width = 0 and do not
9232         trigger a warning in that case (0 means "give me your icon from
9233         the resouce, no special size needed).
9234
9235 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9236
9237         * Application.cs: Leave runloop if the the main modal form is 
9238           hidden (fixes #78484)
9239
9240 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9241
9242         * BindingContext.cs : reject null datasource in Contains() and
9243           Item[].
9244         * CurrencyManager.cs : check data_member validity when data_source
9245           is dataset. When it is late binding, the initial position is -1.
9246
9247 2006-05-24  Jackson Harper  <jackson@ximian.com>
9248
9249         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9250         inserted nodes that aren't visible.  This changes the
9251         max_visible_order which confuses scrollbar settings.
9252         - Use the enumerator to get the prev node instead of duplicating
9253         code.
9254         * TreeView.cs: Use new method for setting scrollbar values
9255         - Don't set the bounds every time the scrollbar is updated
9256         - When updating below the root node use an invalidate instead of a
9257         refresh to prevent the child controls (scrollbars) from being
9258         refreshed. (UpdateBelow still needs to be reworked anyways).
9259         - Reenable SetBottom now that visible orders are set correctly,
9260         added some debug code incase we ever get bad values there again.
9261         - Set the scrollbar max to 2 less then the max value, this
9262         compensates for the max value being one above the node count, and
9263         for scrollbars adding one extra "notch".
9264         - When drawing image nodes if there is an imagelist we draw the
9265         first image in the list if the supplied image index is out of the
9266         image list's bounds.
9267         
9268 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9269
9270         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9271           we receive a size change from the WM (Fixes #78503)
9272
9273 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9274
9275         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9276           rectangle (Fixes #78501)
9277
9278 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9279
9280         * ButtonBase.cs: 
9281           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9282             as a bitfield.
9283           - Fixed MouseMove to no longer switch pressed state unless the left
9284             mouse button is pressed. Atsushi provided the original patch (#78485)
9285           
9286 2006-05-24  Jackson Harper  <jackson@ximian.com>
9287
9288         * ScrollBar.cs: New internal methods that allow us to change a
9289         couple values on the scrollbar (the most common case is maximum
9290         and large change) without getting multiple invalidates.
9291
9292 2006-05-24  Chris Toshok  <toshok@ximian.com>
9293
9294         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9295         (Edit): save off the original state in oldState, and set
9296         grid.is_editing to true.
9297         (OnKeyDown): abort editing if escape is pressed.  also, call
9298         NextState if space is pressed.
9299         (OnMouseDown): call NextState.
9300         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9301         here.  Also, only invalidate the row header once (on the initial
9302         is_changing switch) to save on redraws.
9303
9304 2006-05-24  Chris Toshok  <toshok@ximian.com>
9305
9306         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9307         if the value in the cell is different than it was before.  This
9308         keeps us from triggering a layout when we move around a datarid
9309         with a highlighted cell.
9310         (Edit): suspend layout when creating/positining the text box, and
9311         resume passing false so we don't ever actually re-layout.
9312         (ReleaseHostedControl): same.
9313         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9314
9315         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9316         control-key sequences should go to the datagrid - remove that
9317         lock.  Also, modify the conditions under which we move between
9318         cells when moving the cursor within a cell, and remove the "this"
9319         and "base" from field accesses.  We weren't even consistent, given
9320         they all were in the base class.
9321
9322 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9323
9324         * Binding.cs : (.ctor)
9325           An obvious NRE fix for BindingTest.CtorNullTest().
9326
9327 2006-05-23  Chris Toshok  <toshok@ximian.com>
9328
9329         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9330         them between lines.  This fixes some quirks editing cells in the
9331         datagrid.
9332
9333 2006-05-23  Jackson Harper  <jackson@ximian.com>
9334
9335         * TreeView.cs: Use begin/end update when doing expand/collapse all
9336         so that we don't get flicker on the scrollbar.
9337
9338 2006-05-23  Jackson Harper  <jackson@ximian.com>
9339
9340         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9341         treenode calculations to be independant of the painting code. To
9342         do this nodes track a visible order which is calculated by the
9343         treeview.
9344         - Call new methods for expanding/collapsing nodes.  These methods
9345         use scrollwindow so we don't have to update everything below the
9346         node.
9347         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9348         need to update nodes when drawing anymore or calculate scrollbar
9349         stuff.
9350         - Added new methods for expanding/collapsing nodes. These methods
9351         use ScrollWindow so as to not have to redraw all the nodes below.
9352         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9353         we add/remove nodes or sort.
9354         - Handle removing the selected and the top node properly.
9355
9356 2006-05-23  Chris Toshok  <toshok@ximian.com>
9357
9358         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9359         maybe this should actually happen in the datagrid code?
9360         (EndEdit): no need to invalidate anything, given that
9361         ReleaseHostedControl causes the datagrid to relayout, which
9362         invalidates everything anyway.
9363
9364         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9365         in SetCurrentCell).
9366         (set_SelectionBackColor): call InvalidateSelection instead of
9367         Refresh.
9368         (set_SelectionForeColor): same.
9369         (BeginEdit): Flesh this out a bit.
9370         (CancelEditing): only do any of this if we're editing/adding.
9371         (EndEdit): same.
9372         (OnMouseDown): there's no need to cancel editing here, it's done
9373         in SetCurrentCell.
9374         (SetCurrentCell): only invalidate the current row header if it's a
9375         different row than the new one.
9376         (ShiftSelection): fix this to work like MS does.
9377         (ResetSelection): factor out the invalidation of selected_rows to
9378         InvalidateSelection.
9379         (SetDataSource): cancel any editing that's going on.
9380
9381         * DataGridColumnStyle.cs
9382         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9383         call the non-interface version.
9384
9385         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9386         header rectangle with the clip rectangle so we don't redraw the
9387         entire header for just a small area.  Gets rid of the last flicker
9388         when horizontally scrolling.
9389         (DataGridPaintRow): same.
9390
9391 2006-05-23  Mike Kestner  <mkestner@novell.com>
9392
9393         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9394         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9395         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9396         Critical bug report.
9397
9398 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9399
9400         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9401           and this fixes #78493
9402
9403 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9404
9405         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9406         size is not found.  
9407         
9408         * FileDialog.cs: Do not change the background for the side bar as
9409         it wont work nicely with the theme, and also reduces the artifacts
9410         in rendering the icons (which I want to fix too).
9411
9412         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9413         resources, not resgen resources. 
9414
9415         (PlatformDefaultHandler): Pull images using the new API.
9416
9417 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9418
9419         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9420           a reference to the hwnd and will not remove it unless there are
9421           no pending exposures (fixes #78341)
9422         * XplatUI.cs: Improved debug
9423
9424 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9425
9426         * MenuAPI.cs : don't handle OnClick event when it was not the left
9427           button. Fixed bug #78487.
9428
9429 2006-05-23  Mike Kestner  <mkestner@novell.com>
9430
9431         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9432         prefer submenus to the top menu for item lookup, to avoid popping down
9433         top-row items.
9434
9435 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9436
9437         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9438           Graphics.FillRectangle as the visual results are really bad (even
9439           on win). We now draw perfect arrows (and perfect shadows when the
9440           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9441           Pen.DashPattern to draw the dots of each line.
9442
9443 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9444
9445         * FileDialog.cs: Update the filename combobox when navigating through
9446           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9447
9448 2006-05-22  Mike Kestner  <mkestner@novell.com>
9449
9450         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9451         Fixes #78463.
9452
9453 2006-05-22  Mike Kestner  <mkestner@novell.com>
9454
9455         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9456         requests. Fix a misspelled parameter and a copy paste exception error
9457         in Select.
9458
9459 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9460
9461         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9462           to get the same width/height (5/13) on X11 as the default font has on
9463           win32. This means that our DefaultFont emSize is smaller than the 
9464           the MS SWF equivalent (even thought the width/height stays the same)
9465
9466 2006-05-20  Jackson Harper  <jackson@ximian.com>
9467
9468         * MdiClient.cs:
9469         * MdiWindowManager.cs:
9470         * InternalWindowManager.cs: Make sure to use the border width from
9471         the theme.
9472
9473 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9474
9475         * PrintDialog.cs: Implements printer details
9476
9477 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9478
9479         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9480           Fixes part 1 and 2 of bug #78446
9481
9482 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9483
9484         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9485           instead of sticking to the first ever calculated value
9486
9487 2006-05-19  Mike Kestner  <mkestner@novell.com>
9488
9489         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9490         PointToClient, since Capture is set. Fixes #78344.
9491
9492 2006-05-19  Mike Kestner  <mkestner@novell.com>
9493
9494         * ListView.cs: match MS behavior in Details view where items are not
9495         drawn if Columns.Count == 0. 
9496         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9497         Use a separate pen to draw the check, since changing the width affects
9498         the box as well.  Fixes #78454.
9499
9500 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9501
9502         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9503         exception should throw the name of the invalid argument.
9504
9505         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9506         there are no files listed. 
9507
9508 2006-05-18  Jackson Harper  <jackson@ximian.com>
9509
9510         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9511         up.
9512
9513 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9514
9515         * Control.cs: Brought back our old UpdateZOrder method as a private
9516           function and switched our calls from UpdateZOrder to the new one.
9517           This fixes the Paint.Net canvas disappearing bug.
9518
9519 2006-05-18  Jackson Harper  <jackson@ximian.com>
9520
9521         * Theme.cs:
9522         * ThemeWin32Classic.cs:
9523         * InternalWindowManager.cs: Move the drawing into the theme,
9524         expose everything the theme should need from the window manager.
9525
9526 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9527
9528         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9529           from the call to NativeWindow to avoid walking up the parent chain
9530           further than needed (speeds up setting cursors and avoids setting
9531           the wrong cursor if a parent has another cursor defined)
9532         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9533           the icon as hotspot, not what's contained as hotspot in the icon
9534           file. This fixes the perceived drawing offset seen with Paint.Net
9535         
9536 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9537
9538         * XplatUIX11.cs: 
9539           - Store the calculated rectangle in Hwnd object and use it when 
9540             setting the client size
9541           - Force Toolwindows to always be type Dock, to ensure they're on top
9542
9543 2006-05-18  Mike Kestner  <mkestner@novell.com>
9544
9545         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9546         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9547         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9548         Substantial refactoring to remove confusing nested classes. Coding
9549         standard and Get+Set->property refactorings.  Shift to index based
9550         highlighting in ComboListBox instead of constantly using IndexOf and
9551         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9552         in FileDialog growth.  Draw borders manually since Simple mode needs
9553         to look like two independent controls.  Make listbox border
9554         conditional to DropDownStyle.  Improved OwnerDraw support.
9555
9556 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9557
9558         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9559         Don't set the disposed graphics to null, so we can throw the "right"
9560         exception if the graphics is reused later (added a flag to avoid 
9561         double disposing). Some behaviours are different under 2.0 and are
9562         filled under bug #78448.
9563
9564 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9565
9566         * Control.cs: When double-buffering is enabled, we need to reset
9567           our graphics context between paint calls. Otherwise, any 
9568           transformations and other alterations on the context will 
9569           become cumulative (#77734)
9570
9571 2006-05-18  Mike Kestner  <mkestner@novell.com>
9572
9573         * ListView.cs: do focused item selection like MS on clicks. 
9574         Rework focus handling for ItemControl so LostFocus invalidates as
9575         well.
9576         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9577         the ListView ItemControl has focus.
9578
9579 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9580
9581         * XplatUIX11.cs: If client_window ends up being width or height zero
9582           due to border settings, move it off window inside whole_window (#78433)
9583
9584 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9585
9586         * Mime.cs: Shrink the mime file cache correctly.
9587
9588 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9589
9590         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9591
9592 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9593
9594         * XplatUIX11.cs (AddExpose): More sanity checks
9595
9596 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9597
9598         * XplatUIX11.cs:
9599           - AddExpose: Don't add expose ranges outside the size of our
9600             window
9601           - Cast opacity values to Int32 to avoid crashes with certain
9602             values
9603           - Added disabled code paths that protect against illegal cross-
9604             thread painting (Developers.exe)
9605
9606 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9607
9608         * ProgressBar.cs: Invalidate the control when it's resized
9609           since block size is based on control size. (#78388)
9610
9611 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9612
9613         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9614         of setting the incoming argument to the "reset" value, we set the
9615         this.datamember to string.empty (before we were invalidating the
9616         incoming data).   
9617
9618         Fixes 78420
9619
9620 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9621
9622         * Form.cs: Only apply transparency settings after the form
9623           is created. (Fixes #77800)
9624
9625 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9626
9627         * ApplicationContext.cs: Grab the HandleDestroyed event so
9628           we know when to fire OnMainFormClosed 
9629
9630 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9631
9632         * Application.cs: Introduced sub-class to allow tracking of
9633           threads and centralized triggering of the event mess for
9634           ThreadExit, AppExit, etc..  (#76156)
9635
9636 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9637
9638         * MimeIcon.cs:
9639           - Do not return a null icon index value for a mime subclass.
9640             Instead try the main mime type class too.
9641           - Seems that some newer distributions don't have a link to some
9642             gnome default icons anymore. So check the default gnome dir too.
9643           
9644
9645 2006-05-16  Jackson Harper  <jackson@ximian.com>
9646
9647         * MdiClient.cs: Don't paint the parent background image if we have
9648         our own background image.
9649
9650 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9651
9652         * Control.cs:
9653           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9654             controls, all filled controls are supposed to overlap (#78080)
9655           - UpdateZOrder is supposed to update the control's z-order in the
9656             parent's z-order chain. Fixed to behave like that
9657           - BringToFront: Removed obsolete code
9658           - SendToBack: Simplyfied
9659           - SetChildIndex: Trigger layout calculations when Z-order changes
9660             since layout is done by z-order
9661
9662 2006-05-16  Chris Toshok  <toshok@ximian.com>
9663
9664         [ fixes bug #78410 ]
9665         * DataGrid.cs (set_AlternatingBackColor): use
9666         grid_drawing.InvalidateCells instead of Refresh().
9667         (set_BackColor): call grid_drawing.InvalidateCells.
9668         (set_BackgroundColor): use Invalidate instead of Refresh.
9669
9670         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9671         invalidate the cell area.
9672
9673 2006-05-15  Chris Toshok  <toshok@ximian.com>
9674
9675         [ fixes bug #78011 ]
9676         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9677         on to DataGridPaintRow.
9678         (DataGridPaintRow): take a clip argument, and only draw the cells
9679         which intersect it.  same with the not_usedarea.
9680
9681         * Theme.cs (DataGridPaintRow) add @clip parameter.
9682
9683         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9684         XplatUI.ScrollWindow.
9685         (ScrollToRow): same.
9686
9687         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9688         with last column which was causing a gray swath to appear with the
9689         XplatUI.ScrollWindow code.
9690
9691 2006-05-15  Chris Toshok  <toshok@ximian.com>
9692
9693         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9694         use XplatUI.ScrollWindow.
9695         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9696
9697 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9698
9699         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9700
9701 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9702
9703         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9704           file since there are no equivalent X11 cursors
9705
9706 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9707
9708         * MonthCalendar.cs : DateTimePicker should reflect selected date
9709           on mouse*up*, not mouse*down*. Fixed originally reported part of
9710           bug #76474.
9711
9712 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9713
9714         * TabControl.cs : When argument index is equal or more than tab
9715           count, just ignore. Fixed bug #78395.
9716
9717 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9718
9719         * Control.cs: Dispose all child controls when control is diposed (#78394)
9720
9721 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9722
9723         * ColorDialog.cs: Finally it is possible to select the color with
9724           the text boxes
9725
9726 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9727
9728         * PrintDialog.cs: Fix typo
9729
9730 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9731
9732         * PrintDialog.cs: PrintDialog is not resizable
9733         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9734           color. Made some ToolBar drawing methods protected virtual.
9735
9736 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9737
9738         * PrintDialog.cs: Implementation of the PrintDialog
9739
9740 2006-05-12  Chris Toshok  <toshok@ximian.com>
9741
9742         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9743         thumb, instead use MoveThumb.  This has the side effect of making
9744         most of the other thumb moving machinery use MoveThumb as well.
9745         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9746         need to actually invalidate the rectangle where the new thumb will
9747         go.
9748         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9749         We force an Update() after, so it's not as fast as it could be,
9750         but at least there's zero flicker and no droppings.
9751         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9752         (UpdateThumbPos): add another argument (dirty), which says whether
9753         or not to calculate/add dirty regions which we later invalidate.
9754         For cases where we know we're going to use MoveThumb, we pass
9755         false for this.  Otherwise, pass true.
9756
9757 2006-05-12  Jackson Harper  <jackson@ximian.com>
9758
9759         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9760         the status bar.
9761         
9762 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9763
9764         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9765           and GetClipRegion methods and UserClipWontExposeParent property.
9766         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9767           overriding UserClipWontExposeParent property, setting to false, since
9768           Win32 handles the required expose messages to draw our clipped parent
9769           areas internally
9770         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9771           PaintEventStart to set the user clip region if set.
9772         * Control.cs: 
9773           - Now internally tracking the Region for the control since we need to
9774             store it if the handle is not yet created and only set it when it
9775             becomes created. Before setting the region forced handle creation
9776           - Added code to draw the parents underneath a user-clipped region
9777         * Hwnd.cs: Added UserClip property
9778
9779 2006-05-12  Chris Toshok  <toshok@ximian.com>
9780
9781         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9782         (set_Maximum): same.
9783         (set_Minimum): same.
9784         (set_SmallChange): same.
9785         (OnMouseUpSB): remove the call to refresh when releasing the
9786         thumb.  We shouldn't need it.
9787         
9788 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9789
9790         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9791         AutoSize set to None, we do not need to relayout everything, we
9792         just need to invalidate the current region.
9793
9794         (Draw): Do not draw the entire ClientArea, just redraw the
9795         clip area being passed.
9796
9797         * MdiClient.cs: Make MdiClient constructor with the Form argument
9798         internal. 
9799
9800 2006-05-12  Jackson Harper  <jackson@ximian.com>
9801
9802         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9803         parents background image,  but strangely not their own.
9804         - (DrawStatusBarPanel): Take into account horizontal alignment
9805         when drawing the strings and icons.
9806
9807 2006-05-12  Mike Kestner  <mkestner@novell.com>
9808
9809         * ListBox.cs: avoid invalidations for focus when the collection is
9810         empty. 
9811
9812 2006-05-12  Chris Toshok  <toshok@ximian.com>
9813
9814         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9815         invalidate the entire thumb area.  Call InvalidateDirty which
9816         limits the redraw to the thumb itself and surrounding pixels.
9817
9818         * XplatUIX11.cs (ScrollWindow): optimize copying.
9819         
9820 2006-05-12  Chris Toshok  <toshok@ximian.com>
9821
9822         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9823         Figure out the positioning/layout in a single pass instead of
9824         multiple recursive invocations.  Speeds up the initial display of
9825         the data grid.  Also, make many things private that were
9826         originally public but unused outside this class.
9827
9828 2006-05-11  Jackson Harper  <jackson@ximian.com>
9829
9830         * MdiClient.cs: Improved layout code.
9831
9832 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9833
9834         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9835           not SelectedObject.
9836
9837 2006-05-11  Chris Toshok  <toshok@ximian.com>
9838
9839         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9840         union of that will always be {0,0,width,height}.
9841
9842 2006-05-11  Jackson Harper  <jackson@ximian.com>
9843
9844         * Form.cs: Match MS's DefaultSize for forms (they must have
9845         changed the size in sp2).
9846
9847 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9848
9849         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9850
9851 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9852
9853         * TextControl.cs : Fixed bug #78109. This incorrect position
9854           comparison caused crash on automatic line split.
9855         * TextBoxBase.cs : reduce duplicate code.
9856
9857 2006-05-10  Jackson Harper  <jackson@ximian.com>
9858
9859         * MdiClient.cs: Active form is only sent to the back when using
9860         the Next form functionality, when a form is clicked the current
9861         active shouldn't be sent to the back.
9862         - Layout the mdi windows when the container is first made visible.
9863         * Form.cs: Give the MdiClient a ref to the containing form when we
9864         create it.
9865         
9866 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9867
9868         * LinkLabel.cs : link_font could be uninitialized, so populate one
9869           before actual use. Fixed bug #78340.
9870
9871 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9872
9873         * XplatUIX11.cs : clipboard format native value is IntPtr.
9874           Fixed bug #78283.
9875
9876 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9877
9878         * Control.cs: 
9879           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
9880             which is passed up the parent chain by DefWndProc
9881           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
9882             to DefWndProc (#77956)
9883         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
9884
9885 2006-05-10  Jackson Harper  <jackson@ximian.com>
9886
9887         * MdiClient.cs: We need to remove the controls from the mdi
9888         collection, when we close the window.
9889         * MdiWindowManager.cs: Special handling of closing mdi windows.
9890         * InternalWindowManager.cs: Make the close method virtual so the
9891         mdi window manager can handle it specially.
9892
9893 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
9894
9895         * DataGrid.cs:
9896           - Recalculate grid when the data source has changed
9897           - Matches styles provided by user from all data sources types
9898         * DataGridTableStyle.cs: For columns that provided by the user set the
9899         with the preferred value is there was unassigned.
9900         * CurrencyManager.cs: throw OnItemChanged event
9901
9902 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
9903
9904         * PictureBox.cs: Don't animate until handle is created. Start animation
9905           when handle is created.
9906
9907 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9908
9909         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
9910           current codebase.
9911         * XEventQueue.cs: We don't need to provide the extra info
9912
9913 2006-05-10  Jackson Harper  <jackson@ximian.com>
9914
9915         * MdiClient.cs: If the mdi clients parent form has a background
9916         image set, we draw that background image for the mdi area's
9917         background.
9918
9919 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9920
9921         * TextBoxBase.cs: Set IBeam cursor (#78347)
9922
9923 2006-05-10  Mike Kestner  <mkestner@novell.com>
9924
9925         * ToolBar.cs: fix some text padding issues with ButtonSize
9926         calculation. Update the default size to match MS documentation.
9927         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
9928         button size. Fixes #78296.
9929
9930 2006-05-10  Mike Kestner  <mkestner@novell.com>
9931
9932         * ListBox.cs: use is_visible for scrollbar positioning in case the
9933         control isn't on screen yet.  Fix off by one with Right vs Width
9934         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
9935         
9936 2006-05-10  Jackson Harper  <jackson@ximian.com>
9937
9938         * X11Dnd.cs: Drop to a control with another control on top of it.
9939         * ToolBar.cs: Work on a copy of the buttons list, so that it can
9940         be modified in click handlers. TODO: Look for similar problems in
9941         other controls.
9942
9943 2006-05-09  Jackson Harper  <jackson@ximian.com>
9944
9945         * Form.cs: Window managers need the old window state when setting
9946         window state now.
9947         * InternalWindowManager.cs: Allow the base mdi window manager to
9948         handle more of the MDI only stuff (like maximize buttons).
9949         * MdiWindowManager.cs: Fix some snafus in changing the window
9950         state.  Add all the menu functionality, for both popup and
9951         maximized menus.
9952         * MdiClient.cs: When a new form is selected the currently
9953         activated form is sent to the back, this matches MS.
9954         - Implement a new method to activate the next mdi child window.
9955
9956 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
9957
9958         * Control.cs: 
9959           - Added new InternalCapture method to allow controls to prevent
9960             the capture behaviour on the click handlers
9961           - Switched to use InternalCapture
9962         * ComboBox.cs:
9963           - Using InternalCapture to prevent mouse captures from being released
9964             on mouse button release (Fixes #78100)
9965         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
9966           returns Form borders if a caption is present. (Fixes #78310)
9967
9968 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
9969
9970         * TreeNode.cs: Changed serialization .ctor to not require every field
9971           to be present. (#78265)
9972         * OwnerDrawPropertyBag.cs: Added serialization .ctor
9973
9974 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
9975
9976         * MimeIcon.cs: for is faster than foreach for strings.
9977
9978 2006-05-05  Mike Kestner  <mkestner@novell.com>
9979
9980         * CheckedListBox.cs: update check handling code to not use selected.
9981         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
9982         behavior for visual feedback, motion response, shift/ctrl handling,
9983         and properly deal with all 4 selection modes. Updates to bounds
9984         handling logic.  Add scroll wheel support. [Fixes #77842]
9985
9986 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
9987
9988         * ListView.cs:
9989           - Moved adding of Implicit controls into .ctor. That way, subsequent
9990             creation of the controls will not cause them to think they are 
9991             toplevel windows (fixes #78200 header problem)
9992           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
9993           - Switched visibility setting of header control to use internal field
9994             to avoid triggering handle creation
9995           - Now checking if handle is created before causing a refresh when items
9996             are added (This makes us now match handle creation time with MS)
9997         * Splitter.cs: Removed loading of private splitter cursor, switched to
9998           Cursors version now that that is loading the right ones
9999         * Cursors.cs: Load proper splitter cursors from resources
10000         * Cursor.cs: Added second method of loading resource cursors for the 
10001           VS.Net users amongst us
10002
10003 2006-05-05  Mike Kestner  <mkestner@novell.com>
10004
10005         * ListView.cs: give header_control a minimum size based on the
10006         ListView size.
10007
10008 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10009
10010         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10011           window seems to do that with metacity, so set that type. (#78120)
10012
10013 2006-05-05  Mike Kestner  <mkestner@novell.com>
10014
10015         * ListViewItem.cs: fix Details mode checkbox layout bug.
10016         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10017         at the end of the header, if it exists. [Fixes for #78200]
10018
10019 2006-05-04  Jackson Harper  <jackson@ximian.com>
10020
10021         * MdiClient.cs: Add a helper property to get the container form.
10022         * MdiWindowManager.cs: We have to make sure to use the menu origin
10023         when drawing the icons and buttons, this fixes maximized window
10024         icons/buttons on win32.
10025         * InternalWindowManager.cs: Reset the restore captions when a
10026         window goes from Maximized to Minimized and vice versa. Move the
10027         DrawMaximizedButtons into the MdiWindowManager source, tool
10028         windows can't be maximized. NOTE: This could use a little
10029         refactoring if time ever permits.
10030         
10031 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10032
10033         * TextBox.cs: Add MWFCategoryAttributes
10034         * TextBoxBase.cs: Add MWFCategoryAttributes
10035         * Form.cs: Add MWFCategoryAttributes
10036
10037 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10038
10039         * Control.cs: Add MWFCategoryAttributes
10040         * ScrollableControl.cs: Add MWFCategoryAttributes
10041
10042 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10043
10044         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10045           Divider is true. Fix a little glitch in PropertyToolBar
10046           drawing code
10047
10048 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10049
10050         * Control.cs:
10051           - Dispose: Call base.Dispose, this causes the disposed event
10052             to be fired (and probably other, more important stuff)
10053           - SetVisibleCore: Set is_visible to true after creating the
10054             window so that the window still gets created invisible (if
10055             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10056             to generate a WM_ACTIVE message
10057         * Form.cs: Call Dispose when we want to destroy the window, instead of
10058           just destroying the handle (Dispose will do that for us)
10059         * XplatUIX11.cs:
10060           - RootWindow also needs a queue, so we can properly process the
10061             property change events from RootWindow (like Activate)
10062           - Generatic synthetic WM_ACTIVE message when the active window is
10063             being destroyed
10064
10065 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10066
10067         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10068           bounds are changed
10069
10070 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10071
10072         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10073           for determining width and height (image might not be assigned if
10074           we're drawing an imagelist)
10075
10076 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10077
10078         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10079         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10080           height from system
10081         * Theme.cs: No longer returns hardcoded menu height, instead calls
10082           new driver method
10083         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10084           on MS (# 78257)
10085
10086 2006-05-01  Mike Kestner  <mkestner@novell.com>
10087
10088         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10089
10090 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10091
10092         * TextBoxBase.cs: Removed Fixme
10093         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10094
10095 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10096
10097         * XplatUIX11.cs:
10098           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10099             the rectangle relative to the parent, considering borders. We
10100             don't really want that.
10101           - ScrollWindow: Fixed warning to be more understandable
10102         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10103           scrollbars and scroll only the visible area
10104         * RichTextBox.cs: Removed debug output
10105
10106 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10107
10108         * NumericUpDown.cs (Text): Just use base
10109         * UpDownBase.cs: Ensure txtView is created before using it
10110
10111 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10112
10113         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10114           casting to IntPtr to avoid 64bit overflow errors
10115
10116 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10117
10118         * Control.cs:
10119           - AllowDrop: Don't force handle creation.
10120           - CreateHandle: Added call to tell driver if we're allowed to drop
10121
10122 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10123
10124         * FileDialog.cs: Remember the last directory not only for the
10125           current instance but also for new FileDialog instances.
10126
10127 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10128         
10129         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10130           broke sending async messages
10131
10132 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10133
10134         * XplatUIX11.cs:
10135           - ScrollWindow: Fixed method. We finally generate expose events again
10136             for scrolled areas. This was causing 'garbage' when scrolling
10137             textbox and other controls that used ScrollWindow
10138           - Switched from using the regular queue for paint events to the MS 
10139             model of 'generating' paint events when the queue is empty.
10140             We use the new XQueueEvent.Paint subclass to store which windows
10141             need painting.
10142           - AddExpose now takes the x/y/width/height of the exposed area
10143             and inserts the window into the paint queue if not already there
10144           - InvalidateWholeWindow: Switched to use new AddExpose method
10145           - UpdateMessageQueue: Added which queue to monitor for paint events
10146           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10147             the unlikely case nothing above handles it. We reset the expose
10148             pending states to get them off the queue.
10149           - GetMessage: Now pulls a paint event if no other events are in the
10150             queue
10151           - Invalidate: Switched to new AddExpose method
10152           - PeekMessage: Updated to understand pending paint events
10153           - UpdateWindow: Fixed logic bug. We were only updating if the window
10154             didn't need updating. Also switched to sending WM_PAINT directly,
10155             like MS does.
10156         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10157           and random access Remove(). The random access is needed to handle
10158           UpdateWindow() where a WM_PAINT is sent directly without accessing
10159           the queue.
10160         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10161           allow for better feedback when scrolling. Scrollbars are small and
10162           the immediate update should make it 'feel' more responsive without
10163           slowing things down. ScrollBar still needs it's invaliate logic
10164           updated to not always invalidate the whole bar on certain changes.
10165
10166 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10167
10168         * Control.cs:
10169         (BackColor): if the control does not support a transparent background,
10170         return the default backcolor when the parent backcolor is transparent.
10171
10172 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10173
10174         * Application.cs: Updated to new StartLoop/GetMessage API
10175         * RichTextBox.cs: Provide some output on RTF parsing errors
10176         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10177           new queue_id argument to GetMessage and PeekMessage to allow faster
10178           handling of per-thread queues in drivers.
10179         * Hwnd.cs: Added Queue tracking and property
10180         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10181         * XEventQueue.cs: Added thread trackingA
10182         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10183         * XplatUIX11.cs:
10184           - Implemented new per-thread queue
10185           - GetMessage: Fixed return/break behaviour on several cases. We were
10186             returning stale messages in some cases, instead of just processing
10187             the next message
10188
10189 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10190
10191         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10192
10193 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10194
10195         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10196           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10197
10198 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10199
10200         * PropertyGridView.cs: Fix drop down width.
10201
10202 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10203
10204         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10205           a mess in DrawToolBar, so I removed one of them.
10206
10207 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10208
10209         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10210           needed (clip). Otherwise we get artifacts.
10211
10212 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10213
10214         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10215           dimension is fixed
10216         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10217           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10218         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10219           if it matches the scale base font (avoids unneeded scaling)
10220
10221 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10222
10223         * X11DesktopColors.cs: One gtk_init_check should be enough
10224
10225 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10226
10227         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10228           match MS behaviour
10229
10230 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10231
10232         * TextBoxBase.cs: 
10233           - Generate OnTextChanged for Backspace even if we're only deleting
10234             the current selection
10235           - When setting the Text property, only select all text if the
10236             control does not have focus when it is being set. Otherwise
10237             just place the cursor at the beginning of the control
10238
10239 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10240
10241         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10242           Added a little helper to draw PropertyGrid ToolBar with a different
10243           border and a different BackColor.
10244         * PropertyGrid.cs: Some background parts didn't get painted with the
10245           correct background color. Added a class that helps us to draw the
10246           correct border for PropertyGridView and a class that helps us to
10247           draw ToolBars with a different backcolor
10248         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10249
10250 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10251
10252         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10253         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10254
10255 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10256
10257         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10258           into the palette entries. Also, since we're working on a copy
10259           we needed to copy the palette back onto the bitmap.
10260         * Cursor.cs: Same fix as XplatUIWin32.cs.
10261
10262 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10263
10264         * ImageListStreamer.cs: Need to read the var (or we're off)
10265
10266 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10267
10268         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10269           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10270           TextBoxBase.cs: Unused var fixes
10271         * AxHost.cs: Small 2.0 fix
10272         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10273           as it seems that is what at least Metacity expects. This will make
10274           icons show up on 64bit platforms. We still have some 64bit size
10275           issues, though, since the startup app window size still won't match.
10276
10277 2006-04-25  Mike Kestner  <mkestner@novell.com>
10278
10279         * *.cs: cleanup newly reported exception var unused warnings.
10280
10281 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10282
10283         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10284           ms
10285
10286 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10287
10288         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10289           image. The image position is always the same, no matter if the
10290           button is pressed or not.
10291
10292 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10293
10294         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10295           selection and set the correct filename for SaveFileDialog.
10296           Patch by Emery Conrad.
10297
10298 2006-04-24  Mike Kestner  <mkestner@novell.com>
10299
10300         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10301         check for item.X outside the ClientRect instead of item.Y. Fixes
10302         #78151.
10303
10304 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10305
10306         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10307         trust that value blindly and do some sanity check. Fixes bug #77814.
10308
10309 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10310
10311         * ImageListStreamer.cs: save the mask as a 1bpp image.
10312
10313 2006-04-21  Mike Kestner  <mkestner@novell.com>
10314
10315         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10316         pass Checked and Indeterminate to the Theme Engine. Improve
10317         encapsulation with ListBox.
10318         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10319         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10320         nested types.  Move all CheckState functionality to CheckedListBox.
10321         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10322         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10323         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10324         single base list. Fix scrollbar sizing and placement to mirror MS.
10325         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10326         used.
10327         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10328         for CheckedListBox by using new DrawItemState info.  Center the
10329         checkboxes on the items. Use new StringFormat property.
10330
10331 2006-04-18  Jackson Harper  <jackson@ximian.com>
10332
10333         * Form.cs: MdiChildren don't do default locations the same way as
10334         regular forms.  This prevents a crash when trying to position the
10335         mdi windows.
10336
10337 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10338
10339         * PropertyGridTextBox.cs: Formatting, copyright
10340         * PropertiesTab.cs: Formatting
10341         * PropertyGrid.cs: Formatting
10342         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10343           click toggling of values
10344           
10345 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10346
10347         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10348         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10349           every time a control is created
10350         * Application.cs: Removed obsolete EnableRTLMirroring method
10351
10352 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10353
10354         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10355         SelectedIndex to -1. Fixes bug #78121.
10356
10357 2006-04-17  Jackson Harper  <jackson@ximian.com>
10358
10359         * Binding.cs: Handle null values for Current and BindingContext.
10360         This occurs when binding is a little delayed.
10361         * CurrencyManager.cs: return null for Current when there are no
10362         items in the list.
10363         - Hookup to the listchanged event on the DataView and update
10364         bindings when the list is changed.  This fixes late binding of
10365         controls.
10366
10367 2006-04-17  Jackson Harper  <jackson@ximian.com>
10368
10369         * X11Dnd.cs:
10370         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10371         Ringenbach.
10372
10373 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10374
10375         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10376           place
10377         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10378           with the correct ButtonState
10379
10380 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10381
10382         * XplatUIX11.cs: Improved distinguishing between window types to
10383           tell the WM a type closer to what the app wants (Fixes #78107)
10384
10385 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10386
10387         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10388           GrabHandle
10389
10390 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10391
10392         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10393           drawing code to reflect the size grip changes
10394
10395 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10396
10397         * ImageListStreamer.cs: fix handling of the mask that follows the main
10398         bitmap when deserializing and serialize it properly. The generated mask
10399         should better be a 1bpp image, but I'll do that later.
10400
10401 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10402
10403         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10404           path doesn't fit into some of our Current.Places
10405
10406 2006-04-13  Jackson Harper  <jackson@ximian.com>
10407
10408         * ComboBox.cs: Use borders instead of drawing our own decorations,
10409         try to obey correct rules for heights.
10410         * Theme.cs:
10411         * ThemeNice.cs:
10412         * ThemeClearLooks.cs:
10413         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10414         this is now handled by borders.
10415         - Remove unused DrawListBoxDecorationSize method.
10416         
10417 2006-04-13  Mike Kestner  <mkestner@novell.com>
10418
10419         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10420         reported by Alex.
10421
10422 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10423
10424         * ThemeWin32Classic.cs: 
10425           - Fixed CPDrawStringDisabled
10426           - Corrected drawing of disabled menu items
10427           - Fixed drawing of disabled radio buttons (bug #78095)
10428           - Draw check in a disabled CheckBox with color ControlDark 
10429
10430 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10431
10432         * Form.cs: Use the provided width when calculating the menu size;
10433           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10434           and ClientSize.Width won't be updated yet
10435         * Application.cs: Use Visible instead of Show() to make form visible,
10436           this way we create the handle later and menusize is considered
10437
10438 2006-04-12  Mike Kestner  <mkestner@novell.com>
10439
10440         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10441         reporting.
10442
10443 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10444
10445         * TextBox.cs: Implemented context menu
10446
10447 2006-04-12  Mike Kestner  <mkestner@novell.com>
10448
10449         * ListView.cs: implement box selection. fixes #77838.
10450         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10451
10452 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10453
10454         * XplatUIX11.cs: Added setting of window type when transient window
10455           is created (metacity would move it otherwise)
10456         * X11Structs.cs: Added WINDOW_TYPE atoms
10457         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10458           background (the control is Opaque but still wants transparent
10459           backgrounds)
10460
10461 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10462
10463         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10464           that set Opaque but don't mean it (like all ButtonBase-derived
10465           controls) to still draw their background
10466         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10467           the background
10468
10469 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10470
10471         * Control.cs (PaintControlBackground): Set the graphics object
10472           on our PaintEvent to null to prevent it from being disposed
10473           when the PaintEvent gets disposed
10474
10475 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10476
10477         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10478         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10479
10480 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10481
10482         * Control.cs: 
10483           - Added transparency check to BackColor property. Transparent
10484             backgrounds are only allowed if the control styles permit it
10485           - Added recursive painting of parent control background and
10486             foreground if a control with a transparent backcolor is drawn
10487             (Thanks to Tim Ringenback for providing his 'hack' as a base
10488              for this patch) Fixes #77985 and #78026.
10489           - Added Opaque style check before calling OnPaintBackground, no
10490             need to draw the background if the control is opaque
10491           - Removed ControlAccessibleObject owner variable (inherited from
10492             base, no need to define again)
10493           - Added some documentation links explaining the drawing events
10494             and styles
10495
10496 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10497
10498         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10499           that the affected control is the located at the left border of our
10500           parent (Fixes #77936)
10501
10502 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10503
10504         * TextBoxBase.cs: When rendering disabled or readonly controls,
10505           draw the background with 'Control' instead of 'Window' color as
10506           long as the user hasn't specifically set a color
10507
10508 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10509
10510         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10511           since that won't be updated if the user types text (only if it's
10512           programatically set)
10513
10514 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10515
10516         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10517           layout changes do to app-triggered resizes will have the proper
10518           display rectangle for layout
10519
10520 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10521
10522         * ThemeWin32Classic.cs:
10523           - Make use of the SystemBrushes and SystemPens wherever possible
10524           - Corrected some highlight colors
10525           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10526             drawing
10527         * Theme.cs: Added Empty field to CPColor struct
10528
10529 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10530
10531         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10532           is displayed when calculating the display rectangle. Thanks to Mike
10533           for teaching me the err of my ways.
10534
10535 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10536
10537         * ScrollableControl.cs:
10538           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10539             (instead of 0,0) and we now return the real width/height instead of
10540             just the clientrectangle, adjusted for padding. The rectangle is
10541             now cached and created by the new CalculateDisplayRectangle method.
10542           - Created new CalculateDisplayRectange method, which basically does
10543             what get_DisplayRectangle() did originally, but now using the 
10544             right edge instead of DisplayRectangle to determine the size of
10545             our scrollbars
10546           - get_Canvas(): Fixed it to properly calculate canvas for 
10547             right/bottom controls which seem to be placed to the right/bottom
10548             of any controls that have a fixed location
10549           - Removed TODO that's taken care of
10550           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10551             and SetDisplayRectLocation according to new MSDN2 docs
10552           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10553             event when that is called, this is added for compatibility
10554           - ScrollControlIntoView(): Implemented.
10555           - Switched scrollbars to be implicit, they shouldn't be selectable
10556         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10557           call it when the active control is set/changed
10558         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10559         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10560           implicit_control variable (used for native Win32 message generation)
10561         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10562           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10563         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10564         * XplatUIStructs.cs: Added ScrollBarCommands enum
10565
10566 2006-04-10  Jackson Harper  <jackson@ximian.com>
10567
10568         * ButtonBase.cs:
10569         * CheckedListBox.cs:
10570         * ComboBox.cs:
10571         * DataGrid.cs:
10572         * DataGridView.cs:
10573         * Form.cs:
10574         * GroupBox.cs:
10575         * ListBox.cs:
10576         * PrintPreviewControl.cs:
10577         * ProgressBar.cs:
10578         * PropertyGrid.cs:
10579         * Splitter.cs:
10580         * StatusBar.cs:
10581         * TrackBar.cs:
10582         * UpDownBase.cs: Fixup base event overrides.
10583         
10584 2006-04-06  Mike Kestner  <mkestner@novell.com>
10585
10586         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10587         all user-initiated value changes to min <= value <= max-thumbsz+1.
10588         (set_Value): check for vert/horiz when calculating new thumb position.
10589         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10590         like MS does.
10591         (OnMouseMoveSB): refactor the thumb dragging code and refine
10592         invalidation logic to reduce flicker.
10593         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10594         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10595         (UpdateThumbPosition): small code readability cleanup
10596
10597 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10598
10599         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10600           different
10601
10602 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10603
10604         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10605
10606 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10607
10608         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10609         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10610           This dramatically reduces the number of Pen.Dispose calls. 
10611           Where possible call ResPool methods only once instead of calling it
10612           over and over again (for example for the same color).
10613
10614 2006-04-06  Mike Kestner  <mkestner@novell.com>
10615
10616         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10617         Also remove an unused private field on the collection. Fixes #77972.
10618
10619 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10620
10621         * ThemeNice.cs: Added ToolBar drawing code
10622
10623 2006-04-06  Mike Kestner  <mkestner@novell.com>
10624
10625         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10626         I'm assuming that means we need to look up the toplevel for the
10627         provided control. Fixes the crash trace in #77911 but exposes another
10628         crash in some strange reflection usage in NDocGui.
10629
10630 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10631
10632         * ThemeNice.cs: Gave it a little silver touch and added Images
10633           method
10634         * FontDialog.cs: FontDialog is not resizable
10635         * FileDialg.cs: Added SizeGripStyle.Show
10636
10637 2006-04-05  Jackson Harper  <jackson@ximian.com>
10638
10639         * KeyboardLayouts.cs: Remove warning.
10640
10641 2006-04-05  Jackson Harper  <jackson@ximian.com>
10642
10643         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10644         all of our controls instead of Paint +=.
10645         * ListBox.cs:
10646         * ListView.cs:
10647         * MenuAPI.cs:
10648         * MessageBox.cs:
10649         * NotifyIcon.cs:
10650         * ProgressBar.cs:
10651         * ScrollBar.cs:
10652         * Splitter.cs:
10653         * StatusBar.cs:
10654         * TabControl.cs:
10655         * TextBoxBase.cs:
10656         * ToolBar.cs:
10657         * TrackBar.cs:
10658         * UpDownBase.cs:
10659         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10660         use OnPaintInternal. Remove Width/Height and Visible checks in
10661         paint handler, this is done at a higher level now.
10662         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10663         * PaintEventArgs.cs: Add a handled flag so controls that don't
10664         want anymore painting after OnPaintInternal can make sure OnPaint
10665         isn't called.
10666
10667 2006-04-05  Mike Kestner  <mkestner@novell.com>
10668
10669         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10670         state of the form, so that we don't process events when Modal dialogs
10671         are up. Fixes #77922.
10672
10673 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10674
10675         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10676           checking is done.
10677
10678 2006-04-05  Mike Kestner  <mkestner@novell.com>
10679
10680         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10681
10682 2006-04-05  Mike Kestner  <mkestner@novell.com>
10683
10684         * ListView.cs (HeaderMouseMove): null guarding for the over column
10685         when setting up the drag_to_index.  Fixes #78015.
10686
10687 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10688
10689         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10690           in the taskbar. Transient windows seem to accomplish that.
10691
10692 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10693
10694         * Form.cs:
10695           - Re-enabled CreateParams.X/Y code for FormStartPosition
10696           - Added code for manual placement when creating the Control
10697           - Incomplete patch to treat MDI forms differently when
10698             setting the ClientSizeCore. (Still need to figure out handling
10699             x/y coords there)
10700         * XplatUIX11.cs:
10701           - When we're explicitly setting the X/Y position of a non-Child
10702             window, let the WM know. Metacity really wants this.
10703
10704 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10705
10706         * ThemeNice.cs: Added CPDrawButton
10707
10708 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10709
10710         * ThemeNice.cs: Changed the color for focused buttons and activated
10711           the arrows for small scroll buttons.
10712
10713 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10714
10715         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10716           anymore. Changed some method modifiers to protected (virtual)
10717         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10718           changes
10719         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10720           Updated drawing of menus, buttons and progressbars; added
10721           CPDrawBorder3D 
10722
10723 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10724
10725         * ImageListStreamer.cs: implemented serialization/deserialization
10726         of the images.
10727
10728 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10729
10730         * ThemeWin32Classic.cs:
10731           - Removed all the DrawFrameControl stuff; CPDrawButton,
10732             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10733             inside the methods
10734           - Updated and corrected the drawing code of CPDrawButton,
10735             CPDrawCheckBox and CPDrawRadioButton to better match ms
10736           - Updated theme checkbox and radiobutton code to use the CP*
10737             methods
10738
10739 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10740
10741         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10742           bug is fixed
10743
10744 2006-03-31  Jackson Harper  <jackson@ximian.com>
10745
10746         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10747         sometimes.
10748         * UpDownBase.cs: Don't CreateGraphics manually, use a
10749         Refresh. Ideally we would invalidate the correct areas here.
10750
10751 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10752
10753         * XplatUIX11.cs: 
10754           - We now track the mapping state of windows. If a window (or 
10755             one of it's parents) is not mapped we no longer permit
10756             WM_PAINT messages to be generated since we'd otherwise get 
10757             lots of BadMatch X errors. Jackson did all the work figuring
10758             out the problem.
10759           - Destroying the caret if the window it's contained in is 
10760             destroyed. Can't use regular DestroyCaret method since it
10761             might fall into a drawing function (trying to remove the
10762             caret) and with that generate new BadMatch errors. Again,
10763             Jackson tracked this down.
10764           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10765             make sure we send the messages to all windows. (The old code
10766             would send the WM_DESTROY to the window, and then all child
10767             windows would be 'gone' because the WM_DESTROY handle lookup
10768             would no longer find the destroyed window)
10769         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10770         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10771
10772 2006-03-31  Jackson Harper  <jackson@ximian.com>
10773
10774         * ScrollableControl.cs: Dont recalc if we are not visible.
10775
10776 2006-03-31  Mike Kestner  <mkestner@novell.com>
10777
10778         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10779         the visibility branch.
10780
10781 2006-03-31  Jackson Harper  <jackson@ximian.com>
10782
10783         * ScrollBar.cs: Cap values when incrementing/decrementing.
10784
10785 2006-03-31  Mike Kestner  <mkestner@novell.com>
10786
10787         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10788         * ToolTip.cs: guard against timer expirations with no active control.
10789         Not sure why it happened.
10790
10791 2006-03-31  Mike Kestner  <mkestner@novell.com>
10792
10793         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10794         text.
10795         * ToolTip.cs: Position the tooltip based on where the cursor is at
10796         popup time, not at MouseEnter time.  Add a Down state so that we don't
10797         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10798         positioning offset. Lookup DisplaySize at positioning time, since it
10799         can theoretically change during invocation.
10800         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10801         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10802
10803 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10804
10805         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10806           Fixes behaviour when the Text property of the box is String.Empty
10807
10808 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10809
10810         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10811           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10812           a window)
10813
10814 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10815
10816         * FileDialog.cs: Visual enhancement for the popup buttons in 
10817           PopupButtonPanel
10818
10819 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10820
10821         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10822           code
10823
10824 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10825
10826         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10827           highlighted menu items to match ms
10828
10829 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10830
10831         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10832
10833 2006-03-30  Mike Kestner  <mkestner@novell.com>
10834
10835         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10836         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10837         go active to account for HotLight to Selected transition.
10838         * MenuItem.cs: add internal Selected prop. Fill out the Status
10839         property by calculating it from item info. Add HotLight,
10840         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10841
10842 2006-03-30  Mike Kestner  <mkestner@novell.com>
10843
10844         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10845
10846 2006-03-29  Jackson Harper  <jackson@ximian.com>
10847
10848         * Form.cs: Implement TODO.
10849
10850 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10851
10852         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10853           missing proper dialog setup in the constructor
10854
10855 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10856
10857         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10858         * Control.cs:
10859           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
10860           - Fixed ResetBindings and removed TODO
10861           - Added check for cross-thread calls to get_Handle()
10862           - Added Marshaller attribute for set_Font to satisfy class status
10863         * FontDialog.cs: Removed TODOs that seemed implemented
10864         * UpDownBase.cs: Removed unneeded TODO and Fixme
10865         * MessageBox.cs: Implemented support for Default button and removed TODO
10866         * FileDialog.cs: Removed obsolete TODO
10867         * DomainUpDown.cs: Removed obsolete TODO
10868         * ButtonBase.cs: Removed obsolete TODO
10869         * XplatUIWin32.cs: Removed obsolete TODO
10870         * Form.cs:
10871           - Removed obsolete TODO
10872           - Calling CheckAcceptButton when the acceptbutton is changed to allow
10873             internal status updates
10874           - Making sure the active control is selected when the control is created
10875         * CurrencyManager.cs: Removed obsolete TODO
10876
10877 2006-03-29  Mike Kestner  <mkestner@novell.com>
10878
10879         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
10880         of PrintPreviewDialog and RichTextBox.
10881
10882 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10883
10884         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
10885           DarkDark, Light and LightLight colors for a specific color
10886         * ThemeWin32Classic.cs:
10887           - Use Button drawing code to draw RadioButtons and CheckBoxes with
10888             Appearance = Button 
10889           - Make use of the new ResPool helper CPColor
10890           - Draw ProgressBar and StatusBar with correct 3D borders
10891
10892 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10893
10894         * ColorDialog.cs: Return selected color. Fixes bug #77940.
10895
10896 2006-03-28  Mike Kestner  <mkestner@novell.com>
10897
10898         * ListView.cs: fix Icon layout to plan for scrollbar widths when
10899         calculating col/row counts.
10900
10901 2006-03-28  Mike Kestner  <mkestner@novell.com>
10902
10903         * ColumnHeader.cs:
10904         * ListView.cs:
10905         * ListViewItem.cs:
10906         * Menu.cs: 
10907         switch to explicit interface method implementation for some methods
10908         corcompare identifies as inconsistent with MS.
10909
10910 2006-03-28  Mike Kestner  <mkestner@novell.com>
10911
10912         * MainMenu.cs: 
10913         * Menu.cs:
10914         add a few missing methods from the class status output.
10915
10916 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
10917
10918         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
10919           correct.
10920
10921 2006-03-28  Mike Kestner  <mkestner@novell.com>
10922
10923         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
10924
10925 2006-03-27  Mike Kestner  <mkestner@novell.com>
10926
10927         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
10928         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
10929
10930 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
10931
10932         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
10933
10934 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10935
10936         * ThemeWin32Classic.cs:
10937           - GroupBox: Inserted a little gap between the text and the lines
10938             on the right side
10939           - Made the code in CPDrawBorder3D more readable
10940           - Corrected the drawing location of the up and down arrows in 
10941             CPDrawScrollButton
10942
10943 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10944
10945         * ControlPaint.cs: Corrected line widths in DrawBorder for
10946           ButtonBorderStyle Inset and Outset
10947
10948 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10949
10950         * ThemeWin32Classic.cs:
10951           - Rewrote the totally broken CPDrawBorder3D method. That was
10952             one of the main problems for the terrific ThemeWin32Classic
10953             look
10954           - Updated and corrected Button drawing
10955           - Correct the dimensions of the SizeGrip to match ms ones
10956           - Removed a small drawing glitch in DrawComboBoxEditDecorations
10957         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
10958           Border3DStyle.Sunken to match ms.
10959
10960 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10961
10962         * ThemeWin32Classic.cs: First small part of the "de-uglify
10963           ThemeWin32Classic" effort, SizeGrip
10964
10965 2006-03-24  Jackson Harper  <jackson@ximian.com>
10966
10967         * XplatUIX11.cs: Give a max idle time of one second, this matches
10968         MS and forces an Idle event every second when there are no other
10969         events in the queue.
10970
10971 2006-03-24  Mike Kestner  <mkestner@novell.com>
10972
10973         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
10974         * ListView.Item.cs: fix layout issues with null image lists and images
10975         smaller than checkbox size.
10976         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
10977         mode like MS does.  It's weird, but consistent.  ;-)
10978         Fixes #77890.
10979
10980 2006-03-24  Mike Kestner  <mkestner@novell.com>
10981
10982         * ListView.cs: Scroll wheel support for the item control.  Fixes
10983         #77839.
10984
10985 2006-03-23  Jackson Harper  <jackson@ximian.com>
10986
10987         * ScrollableControl.cs: Special case negative sized areas, not
10988         zero.
10989         * MonthCalendar.cs: Save the rect of the clicked date so we can
10990         use it for invalidation.
10991         - Try to cut down on the number of invalidates
10992         - Invalidate the rect the mouse is over and was over when moving
10993         the mouse, so we get the focus box following the cursor.
10994
10995 2006-03-23  Mike Kestner  <mkestner@novell.com>
10996
10997         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
10998         focus rectangle drawing. Fixes #77835.
10999
11000 2006-03-23  Mike Kestner  <mkestner@novell.com>
11001
11002         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11003         the if and else if and reverting back to the original == check on the
11004         None conditional.
11005
11006 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11007
11008         * FontDialog.cs: Update the example panel if the selected index of
11009           the fontListBox changes.
11010
11011 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11012
11013         * FileDialog.cs: Make FileDialog remember which directory it was in
11014           last in the same execution.
11015
11016 2006-03-22  Mike Kestner  <mkestner@novell.com>
11017
11018         * FileDialog.cs: make the DropDownMenu on the toolbar display
11019         RadioChecks since they are mutually exclusive and that's what MS does.
11020
11021 2006-03-22  Mike Kestner  <mkestner@novell.com>
11022
11023         * Theme.cs: add Color param to CPDrawMenuGlyph.
11024         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11025         checks and radio marks and arrows are visible on highlighted items.
11026         * ControlPaint.cs: update to use new Theme signature.
11027
11028 2006-03-22  Mike Kestner  <mkestner@novell.com>
11029
11030         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11031         is active. Fixes #77870.
11032
11033 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11034
11035         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11036           to be focused/selected after startup
11037
11038 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11039
11040         * ColorDialog.cs: 
11041           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11042             CustomColors and ShowHelp properties
11043           - Some internal rewrites to get better results when using the
11044             ColorMatrix
11045
11046 2006-03-22  Mike Kestner  <mkestner@novell.com>
11047
11048         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11049         HoverSelection.  Fixes #77836.
11050
11051 2006-03-22  Mike Kestner  <mkestner@novell.com>
11052
11053         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11054         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11055         1, not 0.  Update ButtonSize based on a pixel count of the win32
11056         control.  Adjust the toolbar size/location for new button size.
11057
11058 2006-03-22  Jackson Harper  <jackson@ximian.com>
11059
11060         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11061         true.
11062         * ScrollBar.cs: When doing increments and decrements we need to
11063         set the Value property so that ValueChanged gets raised. A
11064         possible optimization here would be to make an internal SetValue
11065         that doesn't invalidate immediately.
11066         * ToolTip.cs: Tooltips get added to their container (when
11067         supplied) so they get disposed when the container is disposed.
11068         - Don't create tooltips for String.Empty. This prevents all these
11069         little 2-3 pixel windows from showing up when running nunit-gui
11070         and driving me mad.
11071         * Form.cs: Don't set topmost when setting the owner if the handles
11072         haven't been created yet.  The topmost set will happen when the
11073         handles are created.
11074
11075 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11076
11077         * XplatUIX11.cs:
11078           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11079           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11080             visible (to allow them to recalculate their sizes)
11081
11082 2006-03-21  Mike Kestner  <mkestner@novell.com>
11083
11084         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11085         methods. Removed a ton of redundant code.  Still not really happy with
11086         the border rendering, but I think that's mainly because of the
11087         ControlDarkDark being black instead of a dark grey. Depending on how 
11088         close we want to be, we might want to revisit those color choices.
11089         Among the new features added during the refactor were DropDownArrow
11090         pressed rendering, Disabled image rendering.  Proper flat appearance
11091         boundary rendering.  Removed the Divider and Wrapping dividers since I
11092         can't figure out any combination of themes and conditions to make the
11093         MS control draw a horizontal line on a toolbar despite what the
11094         Divider property docs indicate.
11095         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11096         conditions and incorrect layout.  Updated to coding standard.
11097         * ToolBarButton.cs: refactored layout and positioning code from
11098         ToolBar to here.  Invalidate wherever possible instead of forcing
11099         redraws of the whole toolbar. 
11100         (Known remaining issues: explicit ButtonSize smaller than provided
11101         images.)
11102
11103 2006-03-21  Mike Kestner  <mkestner@novell.com>
11104
11105         * ContextMenu.cs (Show): use the position parameter instead of just
11106         showing at the MousePosition.
11107
11108 2006-03-21  Jackson Harper  <jackson@ximian.com>
11109
11110         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11111         control handle this.
11112         * TreeNodeCollection.cs: If we are clearing the root node we need
11113         to reset top_node so calcs can still happen.
11114         * ThemeWin32Classic.cs: This is a Flags so we need to check
11115         properly.
11116         
11117 2006-03-21  Jackson Harper  <jackson@ximian.com>
11118
11119         * DataGrid.cs: Create columns when the binding context has been
11120         changed.
11121         * X11Structs.cs: Keysyms are uints.
11122         - Add size to fix build.
11123
11124 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11125
11126         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11127           XplatUIOSX.cs: 
11128           - Added ResetMouseHover method to allow controls to retrigger
11129             hovering if they need it more than once
11130           - Implemented MouseHoverTime and MouseHoverSize properties
11131         * Timer.cs: Start() must reset the interval
11132         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11133           properties
11134
11135 2006-03-21  Jackson Harper  <jackson@ximian.com>
11136
11137         * X11Keyboard.cs: improved layout detection. Move the nonchar
11138         tables into this file.
11139         * KeyboardLayouts.cs: Move the tables into resource files.
11140
11141 2006-03-21  Mike Kestner  <mkestner@novell.com>
11142
11143         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11144
11145 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11146
11147         * Mime.cs: Various speed optimizations. Looking up mime types
11148           is now 2 times faster than before
11149
11150 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11151
11152         * CreateParams.cs: Added internal menu field
11153         * Control.cs: 
11154           - Switched call order for UpdateBounds; now we always call
11155             the one that also takes ClientSize, and we're calculating the 
11156             client size via driver method in the others. The previous
11157             method of tracking client size by difference wasn't working
11158             for forms where even the starting client size wouldn't match
11159             the overall form size (due to borders) (Part of fix for #77729)
11160           - CreateParams(): Do not use parent.Handle unless the handle is
11161             already created. Causes havoc with Nexxia and throws off our
11162             creation of controls
11163         * XplatUIX11.cs:
11164           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11165           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11166             method (consolidates code)
11167           - Changed RequestNCRecalc to use new PerformNCCalc method
11168           - Added calls to RequestNCRecalc when menus and borders are changed
11169             to allow app to set NC size. (Part of fix for #77729) This matches
11170             when MS send a WM_NCRECALC on Win32 windows.
11171           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11172             (Part of fix for #77729). This matches what MS does, they also
11173             send that message when the form is made visible.
11174           - XException.GetMessage: Improved usability of X errors by including
11175             a translation of the window into Hwnd and Control class
11176           - Improved debug info for window creation, reparenting and destruction
11177           - Created helper method WindowIsMapped() [Currently not used]
11178         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11179         * Form.cs:
11180           - CreateParams: Now setting our menu on the new internal menu field
11181           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11182             avoid calculating the same property twice
11183         * Hwnd.cs:
11184           - Improved usability of ToString() for debugging purposes
11185           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11186             determine the height of the menu, instead of just the font. This
11187             required to also create a graphics context and to keep a bmp 
11188             around (for performance reasons)
11189
11190 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11191
11192         * MenuAPI.cs: Added OnMouseUp method
11193         * Form.cs:
11194           - Now remembering the requested client size, avoids size errors
11195           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11196             instead of base if the menu is active. This is required due to
11197             control now capturing and releasing on down/up and it would
11198             prematurely release our menu capture
11199
11200 2006-03-17  Jackson Harper  <jackson@ximian.com>
11201
11202         * KeyboardLayouts.cs: Add the czech layouts.
11203
11204 2006-03-16  Jackson Harper  <jackson@ximian.com>
11205
11206         * Control.cs: Use the viewport space when sizing not the controls
11207         client size, so things like ScrollableControl that effect the
11208         viewport size (when scrollbars are added) are computed correctly.
11209         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11210         of ManagerEntrys.
11211         - Handle creating BindingManagers for null data sources.
11212         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11213         source, otherwise when rows are added they are added to the 'fake'
11214         datasource and we will crash when trying to set the position in
11215         those rows.
11216         - Use Implicit scrollbars on the datagrid so they arent
11217         selectable.
11218         
11219 2006-03-16  Jackson Harper  <jackson@ximian.com>
11220
11221         * Binding.cs:
11222         * InternalWindowManager.cs:
11223         * MdiWindowManager.cs:
11224         * X11Keyboard.cs: I really want Mike to love me again (fix
11225         compiler warnings).
11226
11227 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11228
11229         * DataGrid.cs:
11230           - OnMouseDown: Switch to editing mode when clicking on the cell
11231                          even if we're clicking on the cell that's currently 
11232                          selected
11233           - ProcessGridKey: Left/Right now wrap like MS.Net does
11234           - ProcessGridKey: Tab now knows to add a new row when tab is
11235                             pressed in the cell of the last column of the 
11236                             last row
11237           - ProcessGridKey: Enter now adds another row  if pressed in the last
11238                             row and selectes the new row, same column cell
11239           - ProcessGridKey: Home/End navigate columns, not rows, like 
11240                             originally implemented
11241           - Broke ProcessKeyPreview code out into an extra Internal method
11242             so it can be called from the edit code
11243         * DataGridTextBox.cs (ProcessKeyMessage):
11244           - Switched to accept Tab keypresses
11245           - Added F2 handling to allow jumping to the end of the edited cell
11246           - Added logic to allow moving caret left/right inside edited cell
11247             and making the edited cell jump when the caret hits cell borders
11248           - Tab and Enter are now passed to the datagrid after being handled
11249         * TextBoxBase.cs:
11250           - Removed capture code now that Control handles it
11251           - set_SelectionStart now ensures caret is visible
11252
11253 2006-03-16  Jackson Harper  <jackson@ximian.com>
11254
11255         * TrackBar.cs: Debackwards the increment/decrement for handling
11256         mouse clicks on the bar with vertical trackbars.
11257         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11258         bottom to match MS.
11259
11260 2006-03-16  Mike Kestner  <mkestner@novell.com>
11261
11262         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11263         consistent with the MS control. Fix a bug in
11264         SelectedListViewItemCollection.Clear that was pissing me off for the
11265         better part of a day because the collection was being altered
11266         underneath us as we walked the list.
11267
11268 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11269
11270         * Control.cs: Not sure how we could miss this so long, but it seems
11271           that MS.Net has Capture set all the way from before calling 
11272           OnMouseDown through sending the mouse events until after
11273           OnMouseUp. This will fix DataGrid's selection being set to end
11274           at the location of the MouseUp.
11275
11276 2006-03-15  Jackson Harper  <jackson@ximian.com>
11277
11278         * BindingContext.cs: Check the binding after its added so that it
11279           can initialize the binding managers and hookup to events.
11280         * Binding.cs: Data members seem to sometimes include rows/cols in
11281           the format Row.Column we now take this into account.
11282           - Hookup to the position changed event so we can update the
11283           control when the position has changed in the data set.
11284         * CurrencyManager.cs: Take into account the row/col naming
11285           convention when creating dataset tables.
11286         * BindingContext.cs: Using a newer better way of storing
11287           datasource/datamember pairs.  Hopefully this better matches MS for
11288           looking up binding managers.
11289
11290
11291 2006-03-15  Jackson Harper  <jackson@ximian.com>
11292
11293         * BindingContext.cs: The currency manager needs the data member
11294         name, if the member is a data set we use the name to find the
11295         correct table.
11296         * CurrencyManager.cs: When creating the list prefer an IList over
11297         an IListSource.
11298         - Attempt to create a DataTable from a DataSet (TODO: might need
11299         some better error checking here, although MS doesn't seem to have much)
11300         - If we have a DataTable create a view and use it as our list.
11301
11302 2006-03-15  Mike Kestner  <mkestner@novell.com>
11303
11304         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11305         keyboard navigation. Support Up/Down/Left/Right selection correctly
11306         for all 4 View modes.
11307         * ListViewItem.cs: add internal row/col fields for icon layouts.
11308
11309 2006-03-15  Jackson Harper  <jackson@ximian.com>
11310
11311         * TabControl.cs: Redraw the tabs when we resize so their newly
11312         calculated sizes are drawn on screen.
11313         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11314         composite characters.
11315         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11316         - filter events so that composite characters can be created
11317         patches by peter
11318         * X11Structs.cs: Add XIMProperties enum.
11319
11320 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11321
11322         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11323           unless it's created
11324
11325 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11326
11327         * Control.cs (PerformLayout): We don't need to consider visiblity
11328           for anchoring, only for docking. This fixes 'whacky' alignment
11329           in listbox and other controls that use implicit scrollbars after
11330           the previous PerformLayout patch
11331         * ListBox.cs: Switched to use implicit scrollbars
11332           
11333 2006-03-14  Mike Kestner  <mkestner@novell.com>
11334
11335         * ToolBar.cs: 
11336         * VScrollBar.cs:
11337         - chain up the "new event" overrides to base and use
11338         OnEvent to raise them.  Part of fix for bug #76509.
11339
11340 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11341
11342         * FileDialog.cs: Do not select an item in the parent directory
11343           on backspace
11344
11345 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11346
11347         * Control.cs (PerformLayout): It would seem that we considered
11348           invisible windows for our layout. Not quite the right thing
11349           to do. Now we don't any longer, thereby fixing bug #76889.
11350
11351 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11352
11353         * Control.cs (CanFocus): I goofed. A control can have focus 
11354           even though it's not selectable. Made it match MS docs.
11355
11356 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11357
11358         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11359           center by default (fixes #76895)
11360         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11361           all uses of Border3DSides.All with the explicit ORd together
11362           Left|Right|Top|Bottom because I assume that nobody was aware 
11363           that All also implies a center fill. Most places I checked had
11364           a fill right above.
11365         * ProgressBarStyle.cs: Added
11366
11367 2006-03-13  Mike Kestner  <mkestner@novell.com>
11368
11369         * ListView.cs: fix breakage in drag shadow header positioning 
11370         from Peter's csc compilation fix.
11371
11372 2006-03-13  Mike Kestner  <mkestner@novell.com>
11373
11374         * ListView.cs: fix NRE produced by backspacing twice in a focused
11375         FileDialog.
11376
11377 2006-03-13  Mike Kestner  <mkestner@novell.com>
11378
11379         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11380
11381 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11382
11383         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11384           be changed
11385         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11386           the allowed size before making programmatic size changes
11387
11388 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11389
11390         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11391           set, metacity is broken and will still use the emty sizes in 
11392           the struct. (Fix for #77089)
11393
11394 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11395
11396         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11397           WindowExStyles and marked both enums as Flags
11398         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11399           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11400           to match WindowStyles split
11401         * XplatUIX11.cs:
11402           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11403           - Updated to match WindowStyles split
11404         * XplatUIWin32.cs:
11405           - Fixed FosterParent creation, was using ExStyle on the Style field
11406             (This should help with Popup focus issues)
11407           - Updated to match WindowStyles split
11408
11409 2006-03-13  Jackson Harper  <jackson@ximian.com>
11410
11411         * MdiWindowManager.cs: Use the system menu height. Fixes some
11412         strange sizing issues.
11413
11414 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11415
11416         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11417         * TextBoxBase.cs:
11418           - Scroll to caret after inserting text (#77672)
11419           - Make scroll range one pixel higher, fixes off-by-one error (and
11420             makes underlines visible on the last line)
11421
11422 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11423
11424         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11425           the keyboard state from being stuck with keys in 'pressed' state when
11426           focus is switched away via keyboard
11427         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11428           reset the keyboard if no X11 KeyUp events are expected to come
11429         * X11Structs.cs: Switched type of Visible to bool to match driver
11430
11431 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11432
11433         * TextControl.cs:
11434           - Switched caret to be just 1 pixel wide, matches MS and looks less
11435             clunky
11436           - Moved caret display 1 pixel down from the top of the control
11437             to improve view
11438           - InsertCharAtCharet: Update the selection start if moving the caret
11439             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11440           - No longer always creating the caret when the caret methods are
11441             called. Only the actual ShowCaret/HideCaret will do that now
11442           - Only setting caret visible if the owner control has focus
11443           - UpdateView: Added invalidation-shortcut logic for center and right 
11444             aligned text. Previously we'd update all according to the left
11445             logic which caused drawing errors. Also fixed height of invalidated
11446             areas, now properly invalidating the whole area (was off-by-one)
11447           - owner_HandleCreated: Always generate the document when the
11448             handle is created; this ensures that 
11449         * TextBoxBase.cs:
11450           - Fixed situation where caret would disappear under the right
11451             window border, also improved scrolling behaviour on left-
11452             aligned textboxes
11453           - Fixed right-aligned textboxes to have a border to the
11454             right instead of the caret being under the right border
11455         * XplatUIX11.cs:
11456           - Switched from 'nested' to simple visible/not visible tracking 
11457             for caret (part of fix for #77671)
11458           - No longer passing through translated FocusIn/FocusOut messages
11459             since we were notifying too often and the wrong windows. Instead
11460             we just notify our focussed window of receiving or loosing focus
11461         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11462           counting for caret to simple visible yes/no behaviour (part of 
11463           fix for #77671)
11464
11465 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11466
11467         * Mime.cs: Remove debug code...
11468
11469 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11470
11471         * MimeGenerated.cs: Removed
11472         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11473           and subclasses) from /usr/(local/)share/mime and
11474           $HOME/.local/share/mime.
11475
11476 2006-03-10  Jackson Harper  <jackson@ximian.com>
11477
11478         * MdiWindowManager.cs: Recalc the NC area when a window is
11479         maximized/restored so that the menu area is drawn on forms that
11480         don't have a menu.
11481
11482 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11483
11484         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11485           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11486           us to force a WM_NCCALCRESIZE message being sent. This is needed
11487           for MDI maximizing.
11488
11489 2006-03-10  Jackson Harper  <jackson@ximian.com>
11490
11491         * Form.cs: We need to use the ActiveMenu when calculating menu
11492         height.
11493         - Fix nullref when the window manager hasn't been created yet.
11494         * Control.cs: Fix nullref when we try to bring a control to the
11495         front that has no parent.
11496         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11497         height.
11498         - Add a dummy item to the maximized menu so it always has the
11499         correct height. Otherwise when there are no menus we don't get our
11500         icon and buttons.
11501         
11502
11503 2006-03-10  Jackson Harper  <jackson@ximian.com>
11504
11505         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11506         stuff.
11507         * Form.cs: Make the window_state internal so the window managers
11508         can track it.
11509         - When an MDI child is maximized let its window manager create the
11510         main menu (so it can add its icon).
11511         - Notify the window managers of state changes
11512         - Let the window manager paint its buttons and handle button
11513         clicks on the menu when it is maximized.
11514         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11515         window manager, since tool windows don't use it, only mdi windows.
11516         - Tell the main form that we don't want it to handle NCPAINT
11517         itself to avoid extra painting.
11518         - Handle clicks on a maximized windows menu.
11519         - Handle window state changes
11520         - Handle minimize/maximize clicks correctly by setting the window state.
11521         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11522         when clicking on the forms icon).
11523         - New method to create a forms maximized menu. This is its normal
11524         menu + an icon.
11525         - Handle window state changes.
11526         - Handle sizing of maximized windows.  Maximized windows are just
11527         drawn bigger then the parent visible area. All controls are still
11528         there, they are just outside the visible area (this matches windows).
11529         * MdiClient.cs: No scrollbars when a child window is maximized.
11530         - Let the children windows figure out how big they should be when
11531         sizing maximized windows.
11532         - Implement a version of ArrangeIconicWindows somewhat similar to
11533         Windows version.  There are some little differences, but I don't
11534         think any app will rely on the layout of minimized mdi windows.
11535
11536 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11537
11538         * Padding.cs: Several fixes to allow compiling with csc 2.0
11539
11540 2006-03-09  Jackson Harper  <jackson@ximian.com>
11541
11542         * Menu.cs:
11543         * MenuItem.cs: Cheap hack so we can add items to the list without
11544         the events being raised.  This allows adding mdi items during
11545         drawing. TODO: Should probably find a better time to add the items.
11546
11547 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11548
11549         * ThemeWin32Classic.cs:
11550           - CheckBox_DrawText: Added logic to not wrap if not enough space
11551             is available (Fix for bug #77727)
11552           - RadioButton_DrawText: Added logic not to wrap if not enough
11553             space is available (Fix for bug #77727). Also removed some
11554             duplicate code, DrawString always drawing the regular text
11555             before hitting the if statement.
11556
11557 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11558
11559         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11560
11561 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11562
11563         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11564         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11565           methods. Moved the new 2.0 properties into alphabetical order with
11566           other properties and added MonoTODO tags
11567
11568 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11569
11570         * AutoScaleMode.cs: Added. Fix build.
11571
11572 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11573
11574         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11575           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11576           and was requiring premature handle creation for calls from above
11577         * Form.cs, Control.cs: Removed handle arguments from calls to
11578           CalculateClientRect()
11579
11580 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11581
11582         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11583           drag_column.column_rect is MarshalByRef and can't be used that way
11584
11585 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11586
11587         * AxHost.cs: Added deserialization constructor for 
11588           AxHost+State (fixes 77743)
11589
11590 2006-03-09  Mike Kestner  <mkestner@novell.com>
11591
11592         * ListView.cs: 
11593         - Added column drag reordering for details view.
11594         - fixed behavior when mouse is dragged off column and
11595         AllowColumnReorder is false.
11596         * ColumnHeader.cs: clone the format too in Clone.
11597         * Theme.cs: add DrawListViewHeaderDragDetails method.
11598         * ThemeWin32Classic.cs:
11599         - impl new method for drawing drag column shadows and targets.
11600         - support column offset for details mode in DrawListViewItem.
11601
11602 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11603
11604         * TextControl.cs: Reset the char_count when the document is cleared
11605           (Fixes bug reported on mono-winforms mailing list)
11606
11607 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11608
11609         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11610           of calling base we simply process the key ourselves, since both
11611           DefWindowProc and the handled method would set m.Result. 
11612           (Fixes #77732)
11613
11614 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11615
11616         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11617           method also moves the window; instead implemented a copy of
11618           Control.ScaleCore (Part of fix for #77456)
11619         * TextBoxBase.cs: 
11620           - Created new CreateGraphicsInternal method to allow providing
11621             a graphics context when no handle is created without triggering
11622             handle creation. (Part of fix for #77456)
11623           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11624         * TextControl.cs: 
11625           - Switched Constructor to require TextBoxBase instead of Control (to
11626             allow uncast access to CreateGraphicsInternal)
11627           - Safeguarded use of owner.Handle property. No longer accessing it
11628             unless the handle is already created.
11629           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11630           - Now triggering a recalc when owning control becomes visible
11631         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11632           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11633           premature handle creation (Part of fix for #77456)
11634         * Control.cs:
11635           - We now only destroy our double-buffering buffers when the
11636             control is resized or disposed, but not when visibility
11637             changes. (The code even re-created them twice every time)
11638           - Now requiring a redraw of the buffer on visibility changes
11639             (fixes bug 77654 part 2)
11640           - Not passing OnParentVisibleChanged up unless the control
11641             is visible
11642           - CanFocus: Fixed to match MS documentation
11643           - Focus: Fixed to return actual focus state and to check if
11644             setting focus is legal before setting it
11645
11646 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11647
11648         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11649           when to draw focus rectangle by looking at parent focus and
11650           selected state instead. This fixes TabPages on Linux sometimes
11651           having none or multiple focus rectangles.
11652         * XplatUIX11.cs (SetFocus): 
11653           - Don't set the focus if the same window already has focus
11654           - Use SendMessage instead of PostMessage (like it's Win32
11655             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11656             to match MS behaviour
11657         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11658           are not selectable.
11659
11660 2006-03-07  Jackson Harper  <jackson@ximian.com>
11661
11662         * PictureBox.cs: Revert line I accidently committed last week.
11663
11664 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11665
11666         * Control.cs: 
11667           - Added new IsRecreating and ParentIsRecreating properties to
11668             allow testing if RecreateHandle has been called on ourselves
11669             or one of our parents
11670           - WndProc(WM_DESTROY): If our control handle is being recreated
11671             we immediately need to create the handle when receiving the
11672             destroy, that way our child windows find a valid parent handle
11673             when they themselves are being recreated upon WM_DESTROY receipt
11674             (fix for bug #77654 part 1)
11675         * XplatUIX11.cs:
11676           - DestroyWindow: WM_DESTROY must be sent to our own window before
11677             notifying any child windows. MS documents that child windows
11678             are still valid when WM_DESTROY is received. (Control now relies on
11679             this behaviour)
11680           - Added some fine-grain debug options
11681
11682 2006-03-06  Jackson Harper  <jackson@ximian.com>
11683
11684         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11685         box and base calculations off this.
11686         * MdiChildContext.cs:
11687         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11688         anymore.
11689         
11690 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11691
11692         * Splitter.cs: In situations where the affected control is added
11693           to the parent's control list after the splitter, we would not
11694           populate affected. Now we try populating it on mousedown, if
11695           it's not already set, and force it to be re-set whenever our
11696           parent changes.
11697
11698 2006-03-03  Matt Hargett  <matt@use.net>
11699
11700         * Control.cs: implement Control.Padding
11701         * Padding.cs: -Padding.All returns -1 when constructing with the
11702         implicit default ctor
11703         -Padding.ToString() matches MS.NET
11704         * ContainerControl.cs: implement
11705         ContainerControl.AutoScaleDimensions
11706         * ListControl.cs: implement ListControl.FormattingEnabled
11707         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11708         * ButtonBase.cs:
11709         * TabPage.cs: Implement UseVisualStyleBackColor.
11710         * PictureBox.cs: Implement PictureBox.InitialImage.
11711
11712 2006-03-03  Mike Kestner  <mkestner@novell.com>
11713
11714         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11715         event declarations to proxy to base event.
11716         * ListViewItem.cs: update to use ItemControl.
11717         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11718         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11719         column header label rendering for 0 width columns.
11720
11721 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11722
11723         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11724           that causes the control to be created. Fixes #77476.
11725
11726 2006-03-02  Jackson Harper  <jackson@ximian.com>
11727
11728         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11729         expose_pending.
11730
11731 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11732
11733         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11734           passed in for the EventArgs (fixes #77690)
11735
11736 2006-03-01  Jackson Harper  <jackson@ximian.com>
11737
11738         * ScrollBar.cs: Refresh afterbeing resized.
11739
11740 2006-02-28  Mike Kestner  <mkestner@novell.com>
11741
11742         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11743         Clean up a tracker compile warning.
11744         * MenuItem.cs: add internal PerformPopup method.
11745         [Fixes #77457]
11746
11747 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11748
11749         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11750           implicit expose) when the text is set to null
11751
11752 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11753
11754         * RichTextBox.cs (FlushText): When newline is true, we always
11755           need to split the line, even if no text is on it and we may
11756           never eat newlines. (Fixes #77669)
11757
11758 2006-02-28  Mike Kestner  <mkestner@novell.com>
11759
11760         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11761         and set Selected instead.
11762         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11763         collections.
11764
11765 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11766
11767         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11768
11769 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11770
11771         * FontDialog.cs:
11772           - Got rid of the panel. All controls are now directly added to
11773             the dialog form
11774           - It is now possible to set a font with the Font property
11775           - MinSize and MaxSize property do now what they should
11776           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11777           - Searching and selecting a font with the font textbox works now,
11778             the same applies to the style and size textbox
11779           - Draw the correct 3D border in the example panel
11780           - Fixed a little mem leak (unused fonts didn't get disposed)
11781           - Many other internal updates/rewrites...
11782           - Fix typo
11783
11784 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11785
11786         * TextControl.cs: 
11787           - InsertRTFFromStream: Added 'number of characters inserted' argument
11788           - set_SelectedRTF: Now using the number of characters to calculate
11789             the new location for the selection and cursor (x/y cannot be used
11790             due to potentially already wrapped text)
11791
11792 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11793
11794         * TextControl.cs: Added property and implemented means to allow 
11795           disabling recalculation of a document (can be used to speed up
11796           multiple inserts and is needed to make RTF inserts predictable, see
11797           bug #77659)
11798         * RichTextBox.cs: Using the new NoRecalc property of Document to
11799           keep x/y insert locations predictable. Also makes it faster inserting
11800           large chunks of RTF
11801
11802 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11803
11804         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11805           it's easier for a child control to handle the other messages without
11806           having to duplicate the special functionality
11807         * TextBoxBase.cs
11808           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11809             code to handle processing the key ourselves, in order to get 
11810             access to the result of KeyEventArgs.Handled. We now only call 
11811             ProcessKey if they key hasn't been handled already. Fixes #77526.
11812           - set_Text: If null or empty string is given, just clear the 
11813             document. Fixes part of #77526
11814
11815 2006-02-27  Jackson Harper  <jackson@ximian.com>
11816
11817         * SizeGrip.cs: Paint the background color before painting the grip
11818         so things look right.
11819         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11820
11821 2006-02-27  Mike Kestner  <mkestner@novell.com>
11822
11823         * ListView.cs:
11824           - Restructure layout and invalidation model to remove a ton of
11825           flicker from the control and speed up performance in general.
11826           - Add manual column resize, flickers like crazy, but I already have
11827           some ideas on how I'll fix that. (#76822)
11828           - Merge the three Icon-based views into a single layout method.
11829           - Move item selection interaction logic from the item since 
11830           interaction with the collections is more appropriate to the view.
11831           - Deselection on non-item clicks.
11832         * ListViewItem.cs:
11833           - Encapsulate most of the layout. Add some internal props to trigger
11834           layout.  Move to a model where Items invalidate themselves instead
11835           of just invalidating the whole control every time something changes.
11836           - Invalidate on Text/Caption changes.
11837           - switch to an offset based layout model to avoid having to absolute
11838           position every element on item moves.
11839           - correct checkbox layout to conform to MS layout.
11840         * ThemeWin32Classic.cs:
11841           - refactor some column header drawing code.
11842           - fix string justification for column headers (#76821)
11843           - make SmallIcon labels top justified for compat with MS impl.
11844         * ThemeClearlooks.cs:
11845           - adjust to new ListViewItem internal checkbox bounds api.
11846
11847 2006-02-27  Jackson Harper  <jackson@ximian.com>
11848
11849         * Control.cs:  Change where implicit controls fall in the zorder.
11850         They are now on top of all children.
11851         - Synced AddImplicit code with Add
11852         - Removed unused enumerator.
11853         * SizeGrip.cs: Remove the TODO as its been TODONE.
11854
11855 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11856
11857         * TextControl.cs(Insert): Combine the last lines unless the insertion
11858           string ends with \n\n, otherwise we leave one line too many (Fixes
11859           something I noticed with the testapp for #77526; the bug itself was
11860           already fixed in the previous checkin)
11861
11862 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
11863
11864         * RichTextBox.cs:
11865           - SelectionColor and SelectionFont methods no longer set absolute
11866             styles. Instead, the keep font or color respectively (This 
11867             resolves a long-standing FIXME in the code)
11868           - When flushing RTF text, the insert code now considers text trailing
11869             behind the insertion point (Fixes the bug where when replacing
11870             the selected text via SelectedRTF the remainder of the line behind 
11871             the selection would stay on the first insertion line)
11872         * TextBoxBase.cs:
11873           - AppendText now updates the selection points after inserting text
11874           - AppendText now ensures that the last tag (sometimes 0-length) of
11875             the document is used for the style information (Fixes part of 
11876             bug #77220)
11877         * TextControl.cs:
11878           - Created new FontDefiniton class to allow describing partial style
11879             changes
11880           - StreamLine() now takes a lines argument, to allow it to decide
11881             whether an encountered zero-length tag is the last in the document
11882             (which must be kept to not loose the font/color contained in it,
11883             for later appends)
11884           - Created Combine() and Split() methods for Marker structs, to 
11885             support marker updates due to reformatted documents (soft line
11886             wraps)
11887           - Implemented Document.CaretTag setter
11888           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
11889             of the last line (Not the cause, but also exposed by bug #77220)
11890           - Added LineTag argument to InsertString method, to allow callers
11891             to force a certain tag to be used (required to force use of the
11892             trailing zero-length tag of a document)
11893           - Now updating markers in Combine(), to avoid stale tag markers
11894           - Added some method descriptions to aid maintenance
11895           - Implemented new FormatText concept, allowing additive/subtractive
11896             formatting by only specifying the components that are to be 
11897             changed. This was needed for resolving the RTB.SelectedColor/
11898             RTB.SelectedFont fixmes
11899           - Added Break() support method to allow breaking up linetags (used
11900             for partial formatting)
11901           - Added GenerateTextFormat() method. It is used for partial 
11902             formatting and allows to generate a full font/color from given
11903             attributes and an existing tag.
11904
11905 2006-02-26  Jackson Harper  <jackson@ximian.com>
11906
11907         * XplatUIX11.cs:  Use the correct caption height.
11908         - Translate hittest coordinates to screen coords to match MS.
11909         * XplatUIWin32.cs: When we create MDI windows we need to reset
11910         some of the style flags, so we get a nice blank window, and can
11911         draw all the decorations ourselves.
11912         - Set a clipping rectangle on the non client paint event, the
11913         window manager drawing code needs one.
11914         * Form.cs: The window manager needs to know when the window state
11915         has been updated.
11916         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
11917         don't need to factor in border and title sizes in these
11918         methods. TODO: Remove the args and fix the call points.
11919         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
11920         properly.
11921         - Let the driver set the cursors.
11922         - Improve active window handling
11923         - Correct sizes for title bars and buttons.
11924         - Match MS drawing better
11925         * MdiWindowManager.cs: We don't need to handle border style
11926         updates specially anymore.
11927         - Check for scrollbars when windows are done moving
11928         - Handle Active properly.
11929         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
11930         correctly. I am spewing the exception though, so we don't hide the
11931         bugs.
11932         
11933 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
11934
11935         * DataGridViewRowPostPaintEventArgs.cs,
11936           DataGridViewCellPaintingEventArgs.cs,
11937           DataGridViewRowCollection.cs,
11938           DataGridViewRowPrePaintEventArgs.cs,
11939           DataGridViewCell.cs: Clear a few warnings and implement a few
11940           exceptions that should be thrown.
11941
11942 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
11943
11944         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
11945           'inheriting' our parent's (non-default) cursor. (Part of
11946            the fix for #77479)
11947
11948 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
11949
11950         * XplatUIX11.cs: Fixed cast to make csc happy
11951
11952 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
11953
11954         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
11955           it's for the client area (part of fix for #77479 and needed
11956           for MDI window cursor handling)
11957         * XplatUIX11.cs
11958           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
11959             the appropriate default cursors and also passing the message
11960             up the parent chain 
11961           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
11962             for non-client areas
11963
11964 2006-02-15  Jackson Harper  <jackson@ximian.com>
11965
11966         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
11967         is a real MDI window
11968
11969 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
11970
11971         * X11DesktopColors.cs: Instead of checking the desktop session
11972           string for "KDE" check if it starts with "KDE"
11973
11974 2006-02-10  Jackson Harper  <jackson@ximian.com>
11975
11976         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
11977         systems).
11978
11979 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
11980
11981         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
11982           errors
11983         * ColorDialog.cs:
11984           - Got rid of the panel. All controls are now directly added to
11985             the dialog form
11986           - Changed to mono coding style
11987
11988 2006-02-10  Jackson Harper  <jackson@ximian.com>
11989
11990         * InternalWindowManager.cs: We don't need the set visibility to
11991         false hack anymore now that peter has written beautiful shutdown
11992         code.
11993
11994 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
11995
11996         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
11997           where already explicitly destroyed
11998
11999 2006-02-10  Jackson Harper  <jackson@ximian.com>
12000
12001         * MdiClient.cs: Handle the case where windows are too high or to
12002         the left and we need scrollbars.
12003
12004 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12005
12006         * MimeIcon.cs: Added some icons
12007         * FileDialog.cs:
12008           - Fixed bug #77477
12009           - Got rid of the panel. All controls are now directly added to
12010             the dialog form
12011           - Changed to mono coding style
12012           - On Linux "My Computer" and "My Network" will now show some
12013             more usefull information. A new class, MasterMount, gathers
12014             this information from /proc/mount. Updated MWFFileView to make
12015             use of this information
12016           - Fixed a bug that caused FileDialog to crash when
12017             ".recently_used" file had a zero size
12018           - FilterIndex does now what it should
12019           - Some Refactoring
12020         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12021             FileDialog changes
12022
12023 2006-02-09  Jackson Harper  <jackson@ximian.com>
12024
12025         * ComboBox.cs: Don't touch if null.
12026
12027 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12028
12029         * Cursor.cs: 64bit safeness fix
12030         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12031
12032 2006-02-09  Jackson Harper  <jackson@ximian.com>
12033
12034         * Form.cs: If a form is made into an MDI form update the styles so
12035         all the props can get set correctly.
12036         - Kill the mdi_container when we dont need it anymore.
12037         * InternalWindowManager.cs: Add missing NOT
12038
12039 2006-02-08  Jackson Harper  <jackson@ximian.com>
12040
12041         * InternalWindowManager.cs: Respek clipping when drawing MDi
12042         decorations.
12043
12044 2006-02-08  Jackson Harper  <jackson@ximian.com>
12045
12046         * Hwnd.cs: Add bits to track non client expose events.
12047         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12048         gives us a proper invalid rect and will allow for some nice
12049         optimizations with NC client drawing
12050         - MDI windows are children windows, so move their style handling
12051         into the child window block.
12052         * InternalWindowManager.cs: Remove a state reset that was
12053         getting invoked at the wrong time. Fixes managed windows getting
12054         into a 'stuck' captured state.
12055
12056 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12057
12058         * TextControl.cs (Document.ctor): Now initializing 
12059           selection_anchor. Fixes #77493
12060
12061 2006-02-07  Jackson Harper  <jackson@ximian.com>
12062
12063         * TrackBar.cs: The increment/decrements were backwards.
12064
12065 2006-02-07  Mike Kestner  <mkestner@novell.com>
12066
12067         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12068         to the instance itself.
12069
12070 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12071
12072         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12073           on ulongs and pointers, the size differs between 32bit and 64bit
12074           systems. 
12075
12076 2006-02-07  Mike Kestner  <mkestner@novell.com>
12077
12078         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12079         for 64 bit platforms to work around a metacity bug. 
12080
12081 2006-02-07  Jackson Harper  <jackson@ximian.com>
12082
12083         * TrackBar.cs: Process the input keys we need, and hookup to
12084         KeyDown instead of using WndProc, so we get key messages.
12085
12086 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12087
12088         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12089           machine we're on. 
12090         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12091           we need to translate the XdndVersion atoms array before sending it
12092
12093 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12094
12095         * XplatUIX11.cs: 
12096           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12097             number of bits for the property, not the number of bytes. The
12098             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12099             but would not crash since it specified 8 bits instead of 4 bits)
12100           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12101             defined as XID -> long in the C headers)
12102           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12103             references since those are now IntPtr to begin with
12104           - Switched all Atom.XXX 'int' casts to IntPtr casts
12105           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12106           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12107           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12108         * X11Structs.cs:
12109           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12110           - Changed atom in HoverStruct to be IntPtr
12111         * X11DnD.cs:
12112           - Removed local DllImports, switched code to use those from XplatUIX11
12113           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12114
12115 2006-02-06  Mike Kestner  <mkestner@novell.com>
12116
12117         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12118         method signatures in the import region.  There may still be some
12119         lingering struct marshaling issues, as I didn't drill down into those.
12120         Yet.
12121
12122 2006-02-06  Jackson Harper  <jackson@ximian.com>
12123
12124         * ComboBox.cs: Dont manually set the top_item, this is computed
12125         when the scrollbar position is set.
12126
12127 2006-02-06  Mike Kestner  <mkestner@novell.com>
12128
12129         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12130         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12131         usage of Atom needs to be mapped to IntPtr for example.  And there are
12132         likely other int/long issues to be addressed.
12133
12134 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12135
12136         * FileDialog.cs: One more...
12137
12138 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12139
12140         * FileDialog.cs: Next try
12141
12142 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12143
12144         * FileDialog.cs: First part of fix for #77464
12145
12146 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12147
12148         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12149           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12150           AcceptButton border drawing.
12151
12152 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12153
12154         * Form.cs: Moved positioning of form after auto scaling is applied,
12155           otherwise it would possibly use wrong form size.
12156
12157 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12158
12159         * Control.cs (RecreateHandle): No need to re-create any child
12160           controls, the child windows will get destroyed automatically by
12161           the windowing system or driver, and re-created when the handle
12162           is being accessed the first time. Fixes #77456
12163         * Form.cs: No longer setting the form to closing if the handle is 
12164           being recreated. This seems like the right thing to do, don't
12165           have a bug or testcase for this, though.
12166
12167 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12168
12169         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12170           controls to avoid unwanted side effects
12171
12172 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12173
12174         * Control.cs: 
12175           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12176             control. Fixes #77416.
12177           - DefaultSize is 0,0 for control
12178         * TextBoxBase.cs: 
12179           - DefaultSize is 100, 20
12180           - SetBoundsCore: Now enforcing the height, no matter if the provided
12181             height is more or less than the preferred one, as long as AutoSize
12182             is on
12183         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12184
12185 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12186
12187         * Control.cs:
12188           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12189             call unless both performLayout is true *and* we have a pending
12190             layout change
12191           - ResumeLayout: MS does not completely nest Suspend and Resume,
12192             they bottom out at 0, fixed our code to match that.
12193           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12194             SetBoundsCore, we were updating even when we shouldn't. This fixes
12195             swf-anchors mis-anchoring when resizing the app fast and lots.
12196           - UpdateDistances: Now only setting the left and top distance if 
12197             we have a parent and are not suspended, this is based on
12198             a suggestion by Don Edvaldson in bug #77355.
12199           - OnVisibleChanged: Fixed logic when to create the control. We may
12200             not create the control if we have no parent or if it's not visible;
12201             switched to using Visible property instead of is_visible field 
12202             since the property also considers parent states. This fixes a bug
12203             when starting Paint.Net
12204
12205 2006-02-02  Jackson Harper  <jackson@ximian.com>
12206
12207         * Form.cs: If the forms handle hasn't been created yet don't call
12208         into xplatui to make it top most, just set the topmost flag on the
12209         form in CreateParams
12210         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12211
12212 2006-02-01  Jackson Harper  <jackson@ximian.com>
12213
12214         * ScrollableControl.cs: Refactored the Recalculate method a
12215         little, this wasn't handling all the variants of bottom and right
12216         bars needed to be added and added/removed based on their
12217         counterparts being added/removed (which changes the drawable
12218         size). Also we special case client widths and heights of 0 and
12219         don't add the scrollbar for those.
12220
12221 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12222
12223         * XplatUIX11.cs: 
12224           - Added method to get AbsoluteGeometry(); currently unused, but might
12225             be used in the future, if we try again to figure out toplevel
12226             coordinates with some more crappy window managers
12227           - Added FrameExtents() method to retrieve the WM set decoration size
12228           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12229             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12230         * Hwnd.cs: 
12231           - Added whacky_wm tracking var for metacity
12232           - Added logic to have default menu height if the actual menu height
12233             has not yet been calculated (part of fix for #77426)
12234         * Form.cs: Keep track whether client size has been set and re-set 
12235           it if a menu is added/removed afterwards (Fixes #77426)
12236
12237 2006-01-31  Jackson Harper  <jackson@ximian.com>
12238
12239         * Control.cs: When a new Site is set on the component attempt to
12240         pull the AmbientProperties from it.
12241
12242 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12243
12244         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12245           in the background of the owning form. Fixes #77332
12246
12247 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12248
12249         * MimeIcon.cs: Fix for #77409
12250
12251 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12252
12253         * XplatUIX11GTK.cs: Initial import
12254
12255 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12256
12257         * FixedSizeTextBox: fixes class signature
12258
12259 2006-01-30  Jackson Harper  <jackson@ximian.com>
12260
12261         * FixedSizeTextBox.cs: New internal class that represents a
12262         textBox that will not be scaled.
12263         * TreeView.cs:
12264         * ComboBox.cs:
12265         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12266         standard TextBox.
12267                 
12268 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12269
12270         * XplatUIX11.cs: Retrieve default screen number instead of
12271           assuming 0. Attempted fix for #77318
12272
12273 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12274
12275         * XplatUIWin32.cs: 
12276           - GetWindowPos: When a window is parented by FosterParent, use 
12277             the desktop instead of FosterParent as the base to get coordinates
12278           - CreateWindow: Don't make FosterParent the parent window for Popups
12279             if we don't want a taskbar entry, Popups automatically don't get one
12280         * Hwnd.cs: Need to call remove to actually remove the key from the
12281           hash table
12282
12283 2006-01-30  Mike Kestner  <mkestner@novell.com>
12284
12285         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12286
12287 2006-01-30  Jackson Harper  <jackson@ximian.com>
12288
12289         * TreeView.cs:
12290         * TreeNode.cs: Raise events no matter how the treenode is
12291         checked. Patch by Don Edvalson.
12292
12293 2006-01-30  Jackson Harper  <jackson@ximian.com>
12294
12295         * TreeNode.cs: Signature fix.
12296
12297 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12298
12299         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12300
12301 2006-01-20  Mike Kestner  <mkestner@novell.com>
12302
12303         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12304         event forwarding when menus are active.
12305         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12306         Most of the patch is pdb's with a little rework.
12307
12308 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12309
12310         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12311           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12312           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12313         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12314         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12315           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12316           the PaintWindowDecorations method
12317         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12318         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12319         * MenuAPI.cs: Made tracker window invisible
12320         * XplatUIWin32.cs:
12321           - Removed GetMenuDC and ReleaseMenuDC methods
12322           - Implemented the client=false path for PaintEventStart and
12323             PaintEventEnd
12324
12325 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12326
12327         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12328         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12329           styles
12330         * Form.cs: 
12331           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12332             the style
12333           - CreateParams: Reworked the styles to match MS look'n'feel,
12334             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12335             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12336
12337 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12338
12339         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12340           window is not mapped, since otherwise every form that's being 
12341           created is considered minimized, which is wrong.
12342         * Form.cs: Catching the exception and returning our internal value
12343           instead
12344
12345 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12346
12347         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12348           SetWindowMinMax() to have means to tell the driver about the minimum,
12349           maximum and maximized state window sizes. (Part of the fix for #76485)
12350         * Form.cs:
12351           - Implemented tracking of minimum and maximum window size, now calling
12352             new SetWindowMinMax() driver method to tell the driver (Part of the
12353             fix for #76485)
12354           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12355             (Completes fix for #76485)
12356           - Calling new SetWindowMinMax driver method when the handle for a 
12357             form is created, to make sure the driver knows about it even if
12358             the values have been set before the window was created
12359           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12360             to avoid messing up our anchoring calculations (partial fix
12361             for #77355)
12362         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12363         * XplatUIX11.cs:
12364           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12365           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12366             (and presumably other freedesktop.org compliant WMs). Left the
12367             assumption unmapped=minimized, needed for SetVisible to work.
12368           - Now setting the window state when creating windows
12369           - Fixed SetVisible to consider/set the window state when mapping
12370             a Form. We cannot set the state before it's mapped, and we cannot
12371             use Form.WindowState once it's mapped (since it would ask the
12372             driver and get 'normal'. Therefore, we grab the state before
12373             mapping, map, and then set state.
12374           - Implmemented SetWindowMinMax method; Metacity does not seem to
12375             honor the ZoomHints, though.
12376         * XplatUIWin32.cs:
12377           - Removed MINMAXINFO (moved to XplatUIStructs)
12378           - Added SetWindowMinMax stub (on Win32 the only way to set that
12379             information is in response to the WM_GETMINMAXINFO message, which
12380             is handled in Form.cs)
12381           - Added logic to SetVisible to set the proper window state when a 
12382             form is made visible (fixes #75720)
12383
12384 2006-01-26  Jackson Harper  <jackson@ximian.com>
12385
12386         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12387         same way we handle them with Invoke.
12388
12389 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12390
12391         * Form.cs:
12392           - Added tracking of window state so CreateParams can return
12393             the appropriate style
12394           - Moved setting of WS_CAPTION style in CreateParams to allow
12395             styles without caption
12396         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12397           control if the TextBox property is accessed. Fixes #77345
12398         * Control.cs:
12399           - get_Created: now uses is_disposed and is_created to determine
12400             return value (suggested by Jackson)
12401           - CreateHandle: No longer exits if the handle is being recreated
12402           - RecreateHandle: If the handle is not yet created call the 
12403             appropriate method to create either control or handle. If the
12404             control is already created CreateHandle will simply exit instead
12405             of just creating the handle
12406         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12407           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12408           is called.
12409         * XplatUIX11.cs: 
12410           - When DestroyWindow is called, instead of waiting for the 
12411             DestroyNotification from X11, we directly post it to the WndProc
12412             and immediately dispose the hwnd object.
12413             Same applies to DestroyChildWindows, and this obsoletes the
12414             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12415             child windows before our own, to avoid X11 errors.
12416           - Removed the direct sending of WM_PAINT on UpdateWindow
12417         * XplatUIWin32.cs:
12418           - Reworked DoEvents and GetMessage to allow access to internal queue
12419             even when trying non-blocking access to the queue.  Fixes #77335. 
12420             Based on a patch suggestion by Don Edvalson. The new private
12421             GetMessage can now also be used as a backend for a PeekMessage
12422             frontend version.
12423         * XplatUI.cs: Improved debug output for CreateWindow
12424
12425 2006-01-25  Jackson Harper  <jackson@ximian.com>
12426
12427         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12428
12429 2006-01-24  Jackson Harper  <jackson@ximian.com>
12430
12431         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12432         when we have a MaxDropItems lower then the selected index.
12433
12434 2006-01-24  Jackson Harper  <jackson@ximian.com>
12435
12436         * Control.cs: Don't allow selection of non visible controls, allow
12437         selection of controls without parents.
12438
12439 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12440
12441         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12442         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12443
12444 2006-01-23  Jackson Harper  <jackson@ximian.com>
12445
12446         * UpDownBase.cs: Make the textbox handle all the selection and
12447         tabbing. This fixes tabing to updown controls.
12448
12449 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12450
12451         * TextBoxBase.cs: fixes exception thown the object was null
12452
12453 2006-01-23  Jackson Harper  <jackson@ximian.com>
12454
12455         * ButtonBase.cs: Just use the base CreateParams. They set
12456         visibility and enabled correctly.
12457         * ComboBox.cs:
12458         * TrackBar.cs:
12459         * MonthCalendar.cs: Lets let the base set as much of the
12460         createparams as possible so we don't have duplicate code all over
12461         the place.
12462
12463 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12464
12465         * ThemeGtk.cs: Added TrackBar and some experimental code to
12466           get double buffering back
12467
12468 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12469
12470         * DataGrid.cs: Allows row number set internally higher than the last
12471         when creating a new row. Restores the editing functionality.
12472
12473 2006-01-20  Mike Kestner  <mkestner@novell.com>
12474
12475         * MimeIcon.cs: delay Image creation until the icons are accessed
12476         instead of creating 190 scaled images on GnomeHandler startup.
12477
12478 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12479
12480         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12481           first call base before processing the event. Fixes #77279
12482
12483 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12484
12485         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12486           that the stride for the GDI bitmap would match the stride of
12487           a DIB or a Cursor.
12488
12489 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12490
12491         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12492
12493 2006-01-19  Jackson Harper  <jackson@ximian.com>
12494
12495         * ComboBox.cs: Hookup the text controls keydown event so we get
12496         those when the text control has the focus.
12497
12498 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12499
12500         * Label.cs: Now using the base events instead of defining new ones;
12501           this allows us to just call the base properties without having to
12502           duplicate all base property logic 
12503
12504 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12505
12506         * Label.cs: A label by default is not a tabstop (Fixes one of our
12507           failing nunit tests)
12508
12509 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12510
12511         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12512         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12513
12514 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12515
12516         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12517           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12518           This fixes #77218
12519         * XplatUIWin32.cs: 
12520           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12521             constructor creates images that can't be saved. Part of the fix
12522             for #76103
12523           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12524           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12525             bug fix for handling window state in forms properly)
12526
12527 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12528
12529         * ThemeGtk.cs: Simplify ScrollBar drawing
12530
12531 2006-01-18  Jackson Harper  <jackson@ximian.com>
12532
12533         * Splitter.cs: Set the default dock style for the splitter control
12534         in the constructor.
12535
12536 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12537
12538         * ThemeGtk.cs: Corrected StateType and ShadowType for
12539           gtk_paint_box
12540
12541 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12542
12543         * Control.cs: Make use of Theme.DoubleBufferingSupported
12544         * ThemeGtk.cs:
12545           - Added drawing for flat style buttons
12546           - Added ScrollBar drawing
12547
12548 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12549
12550         * ThemeClearlooks.cs: Removed some unneeded code.
12551         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12552
12553 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12554
12555         * LinkLabel.cs: We need to update the hover drawing when
12556           leaving the control as well.
12557
12558 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12559
12560         * DataGrid.cs: Clicking on non empty areas in the columns
12561            area was giving an exception
12562
12563 2006-01-17  Jackson Harper  <jackson@ximian.com>
12564
12565         * ThemeWin32Classic.cs:
12566         * ListView.cs: Do not draw/clip the headers when the header style
12567         is None.
12568
12569 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12570
12571         * DataGrid.cs: Fixes 77260
12572         
12573 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12574
12575         * DataGrid.cs: Clicking on a column on a empty grid was giving
12576           an exception
12577
12578 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12579
12580         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12581           or any keypress will crash the grid.
12582
12583 2006-01-17  Mike Kestner  <mkestner@novell.com>
12584
12585         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12586         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12587         invisible/previously-visible items.
12588         [Fixes #76909]
12589
12590 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12591
12592         * ThemeClearlooks.cs:
12593         - Added CL_Draw_Button method; now other theme controls that are 
12594           not derived from button or do not have a button can draw buttons
12595           too
12596         - Updated ComboBox drawing
12597         - Beautified RadioButton drawing
12598         - Corrected drawing of bottom and left tabs
12599         - Beautified DateTimePicker and MonthCalendar
12600         - Added CPDrawButton and CPDrawRadioButton
12601
12602 2006-01-16  Jackson Harper  <jackson@ximian.com>
12603
12604         * ComboBox.cs: Set the initial value of the scrollbar to the
12605         current index. Reduce the numbers of refreshs and IndexOfs called.
12606
12607 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12608
12609         * FileDialog.cs: When the file listview is focused hitting the
12610           backspace key moves the fileview to the parent directory
12611
12612 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12613
12614         * Form.cs: 
12615           - Added RecreateHandle call when changing taskbar visibility to 
12616             trigger reparenting in Win32 driver (Fixes #75719)
12617           - If a window has minimize or maximize buttons, it cannot have
12618             a help button
12619         * XplatUIWin32.cs:
12620           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12621             the toplevel form with FosterParent (A toolwindow not on the
12622             taskbar) (Fixes #75719)
12623           - Made FosterParent a toolwindow
12624
12625 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12626
12627         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12628
12629 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12630
12631         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12632           is currently over that control, make sure that tooltip_window.Text
12633           gets updated
12634
12635 2006-01-13  Mike Kestner  <mkestner@novell.com>
12636
12637         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12638
12639 2006-01-13  Jackson Harper  <jackson@ximian.com>
12640
12641         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12642         value passed.  Also redraw the selected node when we recieve
12643         focus, so tabbing between trees works correctly.
12644
12645 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12646
12647         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12648           ~/.gconf/%gconf-tree.xml, so use
12649           .gconf/desktop/gnome/interface/%gconf.xml
12650
12651 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12652
12653         * TextControl.cs: Draw text in gray if control is disabled
12654
12655 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12656
12657         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12658           make sure it's always visible. Fixes #76680.
12659
12660 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12661
12662         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12663
12664 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12665
12666         * PageSetupDialog.cs: Added.
12667         * PrintDialog.cs: Attributes.
12668         * PrintPreviewControl.cs: Updates.
12669         * PrintPreviewDialog.cs: Updates.
12670         
12671 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12672
12673         * Control.cs: Undid my selection check fix, since it's not needed
12674         * TextBoxBase.cs:
12675           - Now considering the presence of hscroll/vscroll when sizing
12676             vscroll/hscroll respectively. Fixed bug #77077
12677           - Added Left/Up/Down/Right to IsInputKey list to prevent
12678             ContainerControl from stealing them. This fixes what I broke
12679             with my last checkin.
12680
12681 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12682
12683         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12684           I finally understand how the property can be set without a setter :-)
12685
12686 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12687
12688         * Application.cs:
12689           - Switched RunLoop to use static Message.Create to create a 
12690             Message object
12691           - Added PreProcessMessage call in runloop for keyboard events; this
12692             is part of the fix for #77219, I overlooked this originally in the
12693             MSDN doc for PreProcessMessage
12694         * Control.cs:
12695           - Removed call to PreProcessMessage from handling of keyboard 
12696             messages; it's supposed to be done in the message pump
12697           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12698             per MSDN documentation.
12699           - IsInputChar: All chars are input chars by default; removed the 
12700             parent calling chain, MS does not document that
12701           - PreProcessMessage: If IsInputChar is true, we want to return false
12702             to allow dispatching of the message
12703           - When selecting the next control, now also check that we're not
12704             selecting ourselves again and therefore return a false positive.
12705         * TextBoxBase.cs:
12706           - Tried to match return values for IsInputKey and ProcessDialogKey
12707             to what MS returns; moved processing of our special keys outside
12708             ProcessDialogKey since MS does not seem to return true on those.
12709           - Moved code that previously was in ProcessDialogKey into new private
12710             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12711           - Reworked handling of WM_CHAR to not have to duplicate code from
12712             Control.cs anymore, instead we simply call down to base.
12713            
12714 2006-01-12  Jackson Harper  <jackson@ximian.com>
12715
12716         * ComboBox.cs: We always need to refresh the text area when
12717         EndUpdate is called. Fixes the combobox in the file dialog.
12718         * Control.cs: Don't create the creator_thread until the controls
12719         handle is created.  Also in InvokeRequired we check if the
12720         creator_thread is null. This gives the effect of InvokeRequired
12721         returning true if the controls handle is not created yet, and
12722         matches MS.
12723
12724 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12725
12726         * XplatUI.cs:
12727           - Added StartLoop() driver method. This is used to allow drivers to
12728             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12729             loop for a particular thread
12730           - Added EndLoop() driver method. This is called once the message
12731             pump for the thread is shut down
12732           - Added SupportsTransparency method to allow the driver to indicate
12733             opacity support for windows
12734         * Form.cs:
12735           - Removed TODO attribute, completed AllowTransparency property
12736           - Added documented logic to Opacity
12737         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12738           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12739           versions of CompatibleTextRendering
12740         * X11Structs.cs: Added opacity atom to our atom enumeration
12741         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12742           of a form might be set before it's reparented by the WM, and we need
12743           the opacity value without calling up to Form)
12744         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12745           SupportsTransparency() driver methods
12746         * Application.cs: Now calling StartLoop and EndLoop driver methods
12747         * XplatUIX11.cs:
12748           - Added opacity atom registration
12749           - Added StartLoop()/EndLoop() methods. They're empty right now but
12750             will need to get implemented when we switch to a per-thread queue
12751           - Implemented SupportsTransparency() method
12752           - Implemented SetWindowTransparency() method
12753           - Added support for setting the opacity value when a window is
12754             reparented (since the opacity needs to be set on the WM frame)
12755         * XplatUIOSX.cs, XplatUIWin32.cs:
12756           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12757
12758 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12759
12760         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12761
12762 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12763
12764         * FileDialog.cs: Added ToolTip for MWFFileView
12765         * MimeIcon.cs: Rewrote GnomeHandler.
12766           - Get currently used gnome icon theme from
12767             ($HOME)/.gconf/%gconf-tree.xml
12768           - Make use of inherited icon themes
12769           - Support SVG icon themes like Tango via librsvg
12770
12771 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12772
12773         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12774         builds. 
12775         
12776         * Application.cs: Move the use_compatible_text_rendering outside
12777         the NET_2_0 define.  If we ever need to use the
12778         use_compatible_text_rendering on the individual controls they will
12779         access the variable from the common shared code paths.
12780
12781 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12782
12783         * XplatUI.cs:
12784           - Added more granular debug options
12785           - Added method to print both window text and id
12786           - Switched debug output to use new Window() debug method
12787           - Added IsEnabled() driver method
12788           - Added EnableWindow() driver method
12789         * Form.cs:
12790           - Removed end_modal; no longer needed, new loop handles termination
12791             via 'closing' variable
12792           - If form is modal, setting DialogResult will now initiate loop
12793             termination via 'closing' variable
12794           - Added support for is_enabled/WS_DISABLED to CreateParams
12795           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12796             does all the work
12797           - Removed code that's now in RunLoop from ShowDialog()
12798           - Added various documented sanity checks to ShowDialog()
12799           - Added handling of WM_DESTROY message; we set 'closing' on getting
12800             the message to indicate the message pump to terminate
12801           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12802             send by the Application.ExitThread method. (We send the message
12803             to destroy the window after all other events have been
12804             processed through the queue, instead of destroying the handle 
12805             directly)
12806           - Moved code from Close() method to WM_CLOSE handler; added logic
12807             to only send close-related events if the form is not displayed
12808             modal
12809         * Splitter.cs (..ctor): Fixed typo in resource name
12810         * Control.cs:
12811           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12812             brush now
12813           - set_Cursor: Now only setting calling into XplatUI if the handle for
12814             the control is already created; this avoids implict handle creation
12815             or crashes if it's not created
12816           - set_Enabled: Now setting the enabled state via the new driver method
12817             instead of just tracking it
12818           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12819           - CreateControl: Reordered event firing and method calls to more
12820             closely fire events in the order MS does. Now setting the
12821             enabled state in the driver when creating the control.
12822           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12823             match MS order
12824         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12825           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12826         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12827         * Hwnd.cs:
12828           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12829           - Added EnabledHwnd property to easily allow a driver to find the
12830             handle of the first enabled window in the parent chain (this is
12831             used by drivers to pass up input events of disabled windows)
12832         * XplatUIDriver.cs: Added IsEnabled() method
12833         * Application.cs:
12834           - Removed crude and obsolete exiting tracking variable
12835           - Removed internal ModalRun(); replaced by RunLoop()
12836           - Implemented private CloseForms() method to allow closing all 
12837             windows owned by a particular (or all) threads
12838           - Exit() now properly closes all windows without forcing the message
12839             pump to quit
12840           - Removed obsolete InternalExit() method
12841           - Changed Run() methods to use new RunLoop() message pump
12842           - Implemented new RunLoop() method for both modal and non-modal forms
12843         * CommonDialog.cs:
12844           - get_CreateParams: Added setting of WS_DISABLED
12845           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12846             invoked via Form.ShowDialog()
12847         * NativeWindow.cs: We don't remove the window from the collection when
12848           the handle is destroyed; there might still be messages for it in the
12849           queue (mainly the resulting WM_DESTROY); instead it will be removed
12850           when Control calls InvalidateHandle in the WM_DESTROY handler
12851         * XplatUIX11.cs:
12852           - CreateWindow: Added logic to handle the WS_DISABLED window style
12853           - EnableWindow: Implemented based on Hwnd.Enabled
12854           - GetMessage: Reset PostQuitState so the method can be called again
12855           - Implemented support for disabled windows (passing messages to the
12856             first enabled parent) in handling all input messages
12857           - Added optimizations for handling Expose events
12858           - Implemeted new driver method IsEnabled()
12859           - Now always resetting paint pending tracking vars when we start paint
12860           - Re-implemented UpdateWindow via just sending a WM_PAINT message
12861         * XplatUIOSX.cs: Added IsEnabled method stub
12862         * XplatUIWin32.cs: Implemented new IsEnabled() method
12863
12864 2006-01-11  Jackson Harper  <jackson@ximian.com>
12865
12866         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12867         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
12868         variables a little.
12869         * ColorDialog.cs: Clear out the old form before adding the new
12870         panel.  
12871
12872 2006-01-11  Jackson Harper  <jackson@ximian.com>
12873
12874         * X11Dnd.cs: Make sure to add all the text formats when adding
12875         strings to the data object.
12876         * TreeNodeCollection.cs: When adding to a sorted tree we need to
12877         do some redrawing too.  Also change the UpdateNode to an
12878         UpdateBelow so the newly added node gets painted.
12879         
12880 2006-01-11  Miguel de Icaza  <miguel@novell.com>
12881
12882         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12883         LinkLabel.cs, PropertyGrid.cs: Implement the
12884         UseCompatibleTextRendering property for 2.x
12885
12886         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
12887
12888 2006-01-11  Jackson Harper  <jackson@ximian.com>
12889
12890         * TreeView.cs: Use the property for setting the selected node so
12891         the correct events get raised.
12892         * TreeNode.cs: Update the tree when the fore/back colours of a
12893         node are set.
12894
12895 2006-01-10  Jackson Harper  <jackson@ximian.com>
12896
12897         * TreeView.cs: Allow setting SelectedNode to null.
12898
12899 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12900
12901         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
12902
12903 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12904
12905         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
12906
12907 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12908
12909         * PrintDialog.cs: Added attributes and set default property values.
12910
12911 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12912
12913         * PrintControllerWithStatusDialog.cs: 
12914         Added PrintControllerWithStatusDialog.
12915
12916 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12917
12918         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12919         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
12920
12921 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12922
12923         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
12924
12925 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
12926
12927         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
12928         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
12929
12930 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12931
12932         * MimeIcon.cs: Added internal class SVGUtil.
12933
12934 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12935
12936         * FileDialog.cs: Don't crash if there are two files with the
12937           same name but different locations.
12938
12939 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
12940
12941         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
12942         dates across multiple month grids. Used to not highlight entire 
12943         month, but does now.
12944         
12945 2006-01-06  Jackson Harper  <jackson@ximian.com>
12946
12947         * MonthCalendar.cs: Removed DoEvents call to prevent a running
12948         message loop. Change timer intervals to numbers that seem more
12949         natural.
12950
12951 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
12952
12953         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
12954           object for location info since screen object is now implemented.
12955
12956 2006-01-05  Jackson Harper  <jackson@ximian.com>
12957
12958         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
12959         * AsyncMethodResult.cs: We no longer use a WeakReference for the
12960         AsyncMethodResult, this is because we ALWAYS want the
12961         ManualResetEvent to get set.
12962         * Control.cs: When disposing use an async invoke to call shutdown
12963         code, so that thigns don't block on the finalizer thread.  Also
12964         check if we even have a message loop before trying to send
12965         messages, if we don't then don't bother sending messages.
12966         - No more weak references for async methods
12967         * XplatUIDriver.cs: No more weak references for async methods.
12968
12969 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12970
12971         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
12972           returns two FontFamily with the same name
12973
12974 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
12975
12976         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
12977           drawing disabled text. Instead using the ColorGrayText color
12978
12979 2006-01-04  Jackson Harper  <jackson@ximian.com>
12980
12981         * TreeNode.cs: redraw the node when its image index is changed.
12982
12983 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
12984
12985         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
12986           time I checked there are no others like it.
12987
12988 2006-01-04  Jackson Harper  <jackson@ximian.com>
12989
12990         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
12991         this gives the behavoir I was looking for.
12992         * Control.cs: Special case Invoking EventHandlers, this matches MS
12993         and fixes part of bug #76326.
12994
12995 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12996
12997         * ThemeClearlooks.cs, FileDialog.cs:
12998           - Reflect the latest Theme class changes
12999           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13000             with DateTime
13001             
13002 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13003
13004         * Theme.cs: Cache UI resource images and resize them if needed
13005
13006 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13007
13008         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13009           is called. This fixes the crash in Nexxia when setting the font
13010           attributes in the chat. [However, RTF needs a look-over to make sure
13011           that all SelectionXXX methods handle the special case that selection
13012           is empty and therefore the change must be applied to all text starting
13013           at the cursor/selection start]
13014
13015 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13016
13017         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13018           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13019         * X11Keyboard.cs: Switched to new way of calling PostMessage
13020
13021 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13022
13023         * Theme.cs: Added theme interface for images to allow the theme to
13024           control what images are used for things like FileDialog, MessageBox
13025           icons, etc.
13026         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13027
13028 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13029
13030         * FileDialog.cs:
13031           - Removed some dead code
13032           - Opening a recently used file does work now
13033           - Small UI enhancements
13034           - Refactoring
13035
13036 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13037
13038         * FileDialog.cs: Forgot too add __MonoCS__
13039
13040 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13041
13042         * FileDialog.cs: We are able to read recently used files now let's
13043           go on and write them.
13044
13045 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13046
13047         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13048           button
13049         * MimeIcon.cs: Do a check for the top level media type also
13050
13051 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13052
13053         * ThemeClearlooks.cs:
13054           - Added CPDrawStringDisabled
13055           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13056             some chars if the text doesn't fit into text_rect
13057           - DrawListViewItem: If View = View.LargeIcon center the image;
13058             rewrote the drawing of ListViewItem.Text if View = 
13059             View.LargeIcon
13060
13061 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13062
13063         * MimeIcon.cs: Use default KDE icon theme if there is no
13064           "48x48" directory for the current icon theme, fixes #77114
13065         * Mime.cs: Disable not working and actually not used code. 
13066         * ThemeWin32Classic.cs:
13067           - Replace "new SolidBrush" in GetControlBackBrush and
13068             GetControlForeBrush with ResPool.GetSolidBrush
13069           - Changed DrawListViewItem from private to protected virtual
13070         * FileDialog.cs:
13071           - Added form.MaximizeBox = true
13072           - Don't throw an exception if there is a broken symbolic link
13073
13074 2005-12-23  Jackson Harper  <jackson@ximian.com>
13075
13076         * TabControl.cs: Give the panels focus, keyboard navigation is
13077         fixed so this works correctly now.
13078         - We need these key events also.
13079         * ToolBar.cs: Remove some of the poor mans double buffering.
13080         
13081 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13082
13083         * ComboBox.cs: The internal TextBox now returns the focus.
13084
13085 2005-12-23  Jackson Harper  <jackson@ximian.com>
13086
13087         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13088
13089 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13090
13091         * Control.cs: Removed debug code
13092         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13093           implicit children
13094
13095 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13096
13097         * Control.cs: When creating the control, update the Z-order after
13098           all it's children are created, too. (Fixes nexxia not showing
13099           picturebox bug)
13100
13101 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13102
13103         * Control.cs: Do not update the anchoring distances if layout is
13104           suspended, instead do it once layout is resumed
13105
13106 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13107
13108         * Control.cs: 
13109           - After many hours of debugging, for both Jackson and
13110             myself, it turns out that it helps to set the parent of a control
13111             if you want to actually see it onscreen. In the spirit of that
13112             discovery, we're now setting the parent of the control and
13113             it's children when the control's handle is created. This fix
13114             will make Lutz Roeder's Reflector run happily. 
13115           - now just creating the handle instead of the whole control when
13116             getting a graphics context for the control.
13117
13118 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13119
13120         * ScrollableControl.cs: When calculating the canvas, don't consider
13121           the scrollbar widths. Instead, predict if horizontal scrollbar
13122           will affect canvas when deciding on vertical display and vice versa.
13123
13124 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13125
13126         * RichTextBox.cs: Set default RTF font for documents that don't
13127           have a font table (Fixes #77076)
13128
13129 2005-12-22  Jackson Harper  <jackson@ximian.com>
13130
13131         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13132         clipboard. This prevents a NullRef in that case.
13133         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13134         clipboard. PRIMARY is for the currently selected text only. (We
13135         should implement PRIMARY at some point.
13136
13137 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13138
13139         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13140           a Unicode function with a structure that was defined in Ansi way.
13141           This fixes #76942.
13142
13143 2005-12-21  Jackson Harper  <jackson@ximian.com>
13144
13145         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13146         on. Because thats how it rolls. (and this avoids it using ambient
13147         colours).
13148         * ThemeWin32Classic.cs: Use the proper back color for filling.
13149         * Menu.cs: Use the system menu bar color for drawing menu
13150         bars. Using the window back color will bring ambient colours into
13151         the picture.
13152
13153 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13154
13155         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13156           Bitmaps were created and not disposed.
13157
13158 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13159
13160         * Control.cs (CreateControl): Don't do anything if the control is
13161           already created, otherwise we'd fire the OnCreated event more than
13162           once
13163
13164 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13165
13166         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13167           will always match. Instead return -1. Fixes #76464.
13168
13169 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13170
13171         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13172           neither the beginning nor the end of the line (Fixes bug #76479)
13173
13174 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13175
13176         * Control.cs:
13177           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13178             where handle is invalid
13179           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13180             instead of slower linear search
13181         * NativeWindow.cs: Don't remove the window from the hashtable until
13182           after the driver has destroyed it (since the driver might use
13183           Control.FromHandle to lookup the control object
13184         * Hwnd.cs: Added DestroyPending property to track if a window is 
13185           already destroyed as far as the driver is concerned and only hasn't
13186           yet notified the control
13187         * XplatUIX11.cs:
13188           - Activate(): Check if the window is still valid before using the 
13189             handle
13190           - Implemented DestroyChildWindow() method to mark child windows as
13191             destroyed when a window is destroyed. This prevents situations 
13192             where we might call an X method based on queued events for a
13193             window that already has been destroyed but we haven't yet pulled
13194             the destroy method from the queue.
13195           - Added a call to the new DestroyChildWindow() method to the drivers
13196             DestroyWindow code. Also now marking the destroyed window itself
13197             as pending
13198
13199 2005-12-20  Jackson Harper  <jackson@ximian.com>
13200
13201         * StatusBar.cs:
13202         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13203         anymore. Just do them when needed, also track the rects of panels
13204         so that we can optimize refreshing more in the future.
13205
13206 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13207
13208         * ColorDialog.cs: Fixed focus drawing in small color controls
13209
13210 2005-12-19  Jackson Harper  <jackson@ximian.com>
13211
13212         * InternalWindowManager.cs:
13213         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13214         moving windows works properly.
13215
13216 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13217
13218         * Control.cs: 
13219           - Removed call to InitLayout() from SetBoundsCore(); doc says
13220             it's only called when a control is added to a container
13221           - Split InitLayout logic, moved to separate UpdateDistances() method
13222             since we need to perform those calculations more often than just
13223             when adding the control to a container. (Needed to fix #77022)
13224           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13225           - Reduced the OnBindingContextChanged events count, don't send them
13226             unless the control is created, we still aren't totally matching
13227             MS, but I can't quite figure out some of their rules
13228
13229 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13230
13231         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13232           stripes
13233
13234 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13235
13236         * ThemeClearlooks.cs:
13237           - Updated ProgressBar drawing
13238           - Corrected drawing of ScrollBars and scroll buttons
13239           - Some temporary fixes for minor pixel artefacts
13240
13241 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13242
13243         * Control.cs:
13244           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13245             cause events to be sent in the same order as MS does.
13246           - Added ChangeParent() method to trigger various OnXXXChanged events
13247             that need to be fired when a parent changes (This is a reworking
13248             of the patch from r54254, with the X11 errors fixed)
13249           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13250             since on MS we get OnLayoutChanged events when calling Clear()
13251           - Changed Enabled property to consider parent state as well, if a
13252             parent is not enabled, the control will not be either
13253           - Changed Parent property to simply call Controls.Add() since that
13254             now does all the work required, this way we avoid code duplication
13255           - Threw in a few OnBindingsContextChanged calls to try and match
13256             when MS sends them. We seem to send a few too many, though.
13257           - Added call to CreateControl when adding the control to a parent.
13258             We were never calling CreateControl. Still needs some work, in
13259             some places we treat HandleCreated and ControlCreated as equal, 
13260             which is wrong
13261           - Removed obsolete commented out code from UpdateZOrder()
13262
13263 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13264
13265         * ThemeClearlooks.cs: Updated TrackBar drawing.
13266
13267 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13268
13269         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13270
13271 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13272
13273         * FileDialog.cs: Add the Help button and the open readonly
13274           checkbox only if needed
13275
13276 2005-12-16  Jackson Harper  <jackson@ximian.com>
13277
13278         * Control.cs: Make sure we have an active menu before trying to
13279         process commands on it. Prevents menu-less forms from crashing
13280         when Alt is pressed.
13281         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13282         Dieter Bremes.
13283         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13284         2.0 build.
13285
13286 2005-12-16  Jackson Harper  <jackson@ximian.com>
13287
13288         * InternalWindowManager.cs: Don't translate tool windows screen
13289         coordinates. This fixes windows 'bouncing' around when being moved.
13290
13291 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13292
13293         * TextBoxBase.cs:
13294           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13295             not quite MS compatible, MS uses that number only for single line
13296             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13297             the limit at 2GB)
13298           - Now enforcing the MaxLength limit when entering characters
13299           - Added argument to internal Paste() method to track if it's called
13300             from programatically or via keyboard, since keyboard driven pastes
13301             need to enforce max-length
13302           - Added logic to Paste to only paste as many chars as MaxLength 
13303             allows
13304         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13305         * TextControl.cs:
13306           - Added Length property to return number of characters in document
13307           - Added private CharCount property which only tracks actual chars
13308             in the document (no linefeeds) and fires event when CharCount
13309             changes
13310           - Added tracking of character count to all methods that alter it
13311           - Added LengthChanged event to allow applications to subscribe
13312             to any changes to the document
13313
13314 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13315
13316         * TextBox.cs: 
13317           - Removed local password_char field (moved to TextBoxBase)
13318           - Now setting the document's password var when password is
13319             set
13320         * TextBoxBase.cs:
13321           - Added password_char field (needed here so MultiLine can
13322             access it)
13323           - Added logic to MultiLine property setter to set the document's
13324             variable when password display is allowed
13325           - Removed debug code and made some debug code conditional
13326         * TextControl.cs:
13327           - Added RecalculatePasswordLine() method to handle special password
13328             char only lines
13329           - Added PasswordChar property, also added related tracking vars
13330           - Draw() method now uses local text var for grabbing text to draw,
13331             this var is set to line.text unless we're doing password display,
13332             then it is set to the pre-generated all-password-chars line
13333           - Added calling RecalculatePasswordLine() method for password lines
13334
13335 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13336
13337         * Hwnd.cs: 
13338           - Added Reparented property to allow tracking of Window Manager
13339             reparenting actions (which affect X/Y calculations of toplevel 
13340             windows)
13341           - Made ToString() print window handles in hex
13342         * XplatUIX11.cs:
13343           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13344             determine if X/Y needs offsetting
13345           - AddConfigureNotify(): Fixed offset calculations
13346           - Now adds ReparentNotify messages into the queue
13347           - Now processes ReparentNotify messages and causes a 
13348             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13349             is reparented (as most likely it's X/Y coordinates are changed
13350             due to that)
13351
13352 2005-12-14  Jackson Harper  <jackson@ximian.com>
13353
13354         * XplatUIX11.cs: Tool windows still need to respek focus.
13355
13356 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13357
13358         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13359           have a working release
13360
13361 2005-12-13  Jackson Harper  <jackson@ximian.com>
13362
13363         * Form.cs: Update styles after setting the border style regardless
13364         of whether or not the window is using a window manager.
13365
13366 2005-12-13  Jackson Harper  <jackson@ximian.com>
13367
13368         * Form.cs: We now hook into an internal window manager instead of just an
13369         MDI subsystem, this is so we can have properly behaving tool windows.
13370         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13371         * InternalWindowManager.cs: New internal class that acts as a
13372         window manager for tool windows and as a base for mdi windows.
13373         * MdiWindowManager.cs: New class that acts as a window manager for
13374         mdi windows.
13375
13376 2005-12-12  Jackson Harper  <jackson@ximian.com>
13377
13378         * Control.cs: Updates so we match behavoir for for implicit
13379         controls. Fixes explosions in MDI.
13380
13381 2005-12-12  Jackson Harper  <jackson@ximian.com>
13382
13383         * Control.cs: Implement Invalidate (Region).
13384
13385 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13386
13387         * Control.cs: 
13388           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13389             the same events as MS does. MS fires events for each property 
13390             except, for unknown reasons, Cursor, when the control is reparented. 
13391             I can't seem to totally match add/remove since MS also fires some 
13392             VisibleChanged events, which makes no sense. Consolidated the
13393             parenting code into a separate method so it can be called from
13394             both Add and Remove. set_Parent no longer needs any special logic
13395             as it calls the parent's add method which implicitly fires
13396             all events
13397           - Removed some obsolete code and debug output
13398           - Enabled state is inherited from parents, if this is enabled
13399
13400 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13401
13402         * Form.cs: Removed commented out code
13403
13404 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13405
13406         * Control.cs:
13407           - Added internal version of Invoke, with additional argument 
13408             indicating if we're calling it from a Dispose() handler. That
13409             way we can avoid BeginInvoke throwing an exception if we're
13410             calling for an already destroyed window.
13411           - Added a dispose argument to BeginInvokeInternal, and made the
13412             check if a valid window handle chain exists conditional on
13413             it not being a dispose call
13414           - Removed code in DestroyHandle to destroy our children. Since we
13415             now handle the WM_DESTROY message we will catch all our children
13416             being destroyed.
13417           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13418         * Form.cs:
13419           - Added a field to track the application context of the form.
13420           - No need to set closing variable as response to WM_CLOSE, instead
13421             we destroy the window. We also call PostQuitMessage if the form
13422             has an application context (which makes it the main app form,
13423             which, when closed terminates the app)
13424         * XplatUI.cs:
13425           - Dropped Exit() method, it's naming was confusing
13426           - Added PostQuitMessage() which causes GetMessage to return false
13427             once the message queue is empty
13428         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13429           PostQuitMessage()
13430         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13431           no longer a valid XplatUI method, but left it in since it's used
13432           internally. Added empty PostQuitMessage() method.
13433         * MenuAPI.cs: Replaced call to Exit() with call to
13434           PostQuitMessage, even though this is probably no longer needed.
13435         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13436         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13437         * Application.cs:
13438           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13439           - Removed old debug code that would call XplatUI for exception
13440             display, enabled standard exception handling (Still not enabled
13441             though, until NativeWindow's ExternalExceptionHandler define
13442             is removed
13443         * NativeWindow.cs:
13444           - Added internal method to allow control to update NativeWindow
13445             after a window has been destroyed
13446           - Added handling of already destroyed windows when calling i
13447             DestroyWindow
13448           - Added removal of handle from list on ReleaseHandle
13449         * XplatUIX11.cs:
13450           - Dropped GetMessageResult var and related code
13451           - Added PostQuitState to field to track if PostQuitMessage has been
13452             called
13453           - Dropped Exit() method
13454           - Added PostQuitMessage() method
13455           - GetMessage now will return false if PostQuitState is set and no
13456             more messages are in the queue.
13457           - Expose handler will no longer generate WM_PAINT messages if we are
13458             in PostQuitState since it's very likely any windows have already
13459             been destroyed, and since Hwnd won't get updated until we have
13460             processed the DestroyNotify we'd be causing X errors.
13461         
13462 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13463
13464         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13465           Thanks to Mike for pointing out the err of my ways.
13466
13467 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13468
13469         * Control.cs(PreProcessMessage): Moved menu handling back, but
13470           after all other key handling, to match MS (who handles Menu in
13471           DefWndProc)
13472         * Menu.cs (WndProc): Removed my brainfart
13473
13474 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13475
13476         * Control.cs(PreProcessMessage): Removed special menu handling 
13477         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13478
13479 2005-12-07  Mike Kestner  <mkestner@novell.com>
13480
13481         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13482         state according in tracker.
13483         * Menu.cs : promote tracker field to base class and provide a tracker
13484         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13485         has a tracker. Unparent items that are removed from the collection.
13486         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13487         * Theme*.cs: add always_show_hotkeys field to support configurability
13488         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13489         pressed.
13490
13491 2005-12-07  Jackson Harper  <jackson@ximian.com>
13492
13493         * MdiChildContext.cs: Use Control.ResetCursor.
13494         * Control.cs: ResetCursor needs to set the property so that the
13495         correct XplatUI call gets made.
13496
13497 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13498
13499         * Control.cs: More fixes to make our key events match MS. We
13500           were not setting the modifier state on KeyData, and we were
13501           not generating any events when Alt was pressed with a key
13502           since handling of WM_SYSxxx was missing for the OnKey methods.
13503
13504 2005-12-07  Jackson Harper  <jackson@ximian.com>
13505
13506         * MdiChildContext.cs: reenable the sizing code.
13507         - When the mouse leaves a window reset its cursor.
13508
13509 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13510
13511         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13512
13513 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13514
13515         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13516           widths of Fixed3D borders
13517
13518 2005-12-07  Jackson Harper  <jackson@ximian.com>
13519
13520         * MdiClient.cs: Fix warnings. Earn Mike's love.
13521
13522 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13523
13524         * ThemeClearlooks.cs:
13525           - Adjusted mouse over button color
13526           - Added first parts of CheckBox drawing
13527           - Added correct color for selected text background
13528           - Fixed ComboBox drawing
13529           - Added CPDrawBorder3D and CPDrawBorder
13530
13531 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13532
13533         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13534
13535 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13536
13537         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13538           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13539           alert users via sound. We could add an enum arg with different
13540           types of alerts in the future
13541
13542 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13543
13544         * Control.cs: Fix behaviour problems pointed out by Mike
13545
13546 2005-12-05  Mike Kestner  <mkestner@novell.com>
13547
13548         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13549         prop setters.  Calls parent.Refresh for now, but could be maybe be
13550         optimized with an internal method on StatusBar at some point.
13551         [Fixes #76513]
13552
13553 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13554
13555         * RichTextBox.cs: Implemented get_SelectionColor
13556
13557 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13558
13559         * ThemeClearlooks.cs:
13560           - Removed dead code
13561           - Draw black button border only if button is Form.AcceptButton
13562           - Draw correct button color for pressed RadioButton if the mouse 
13563             has entered the button
13564           - Updated ProgressBar drawing!
13565           - Updated CPDrawSizeGrip drawing
13566           - Updated StatusBarPanel drawing
13567
13568 2005-12-05  Mike Kestner  <mkestner@novell.com>
13569
13570         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13571         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13572
13573 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13574
13575         * ThemeClearlooks.cs: Initial check-in, activate with
13576           export MONO_THEME=clearlooks
13577         * ThemeEngine.cs: Added ThemeClearlooks
13578
13579 2005-12-03  Mike Kestner  <mkestner@novell.com>
13580
13581         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13582         [Fixes #76897]
13583
13584 2005-12-02  Jackson Harper  <jackson@ximian.com>
13585
13586         * Form.cs: If the child form has no menu the default main menu is
13587         used as the active menu.
13588
13589 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13590
13591         * ListBox.cs: Check if any items exist before trying to resolve 
13592           coordinates into items
13593
13594 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13595
13596         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13597           as the second color for the background hatch
13598
13599 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13600
13601         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13602         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13603           sure that what we pass to FormatText is always 1-based. Fixes #76885
13604
13605 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13606
13607         * NumericUpDown.cs (EndInit): When we are done initializing,
13608         reflect any updates on the UI.
13609
13610 2005-12-02  Jackson Harper  <jackson@ximian.com>
13611
13612         * ImplicitHScrollBar.cs:
13613         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13614         their container controls.
13615         * TreeView.cs: Use the new implicit scrollbars.
13616
13617 2005-12-02  Jackson Harper  <jackson@ximian.com>
13618
13619         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13620         can play with it.
13621         * TreeNodeCollection.cs: If we remove the topnode we need to
13622         update topnode to the next node in line.
13623         - When clearing nodes go through the same process as removing
13624         them, so they get depareneted and checked if they are top node.
13625
13626 2005-12-01  Jackson Harper  <jackson@ximian.com>
13627
13628         * TreeView.cs: When imagelists are used the image area is
13629         selectable as well as the text.
13630         - If there are no selected nodes select the first one.
13631         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13632         so don't do it more then we need to.
13633
13634 2005-12-01  Jackson Harper  <jackson@ximian.com>
13635
13636         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13637         that arrows can be scaled.
13638
13639 2005-12-01  Jackson Harper  <jackson@ximian.com>
13640
13641         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13642         fail. Patch by Dieter Bremes
13643
13644 2005-11-30  Jackson Harper  <jackson@ximian.com>
13645
13646         * Form.cs: Property is 2.0 only
13647         * PrintDialog.cs: Signature fix.
13648
13649 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13650
13651         * TextControl.cs: 
13652           - No longer artificially moves text 2 pixels down (now that we have
13653             borders this is no longer needed)
13654           - Added calcs for left, hanging and right indent
13655
13656 2005-11-23  Mike Kestner  <mkestner@novell.com>
13657
13658         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13659
13660 2005-11-30  Jackson Harper  <jackson@ximian.com>
13661
13662         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13663         get cloned as part of CloneMenu ().
13664         * Menu.cs: Make sure the parent of the items get set correctly
13665         when they are added.  And the owners are notified of the changes.
13666         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13667         we can change the menu being displayed/handled by the form without
13668         changing the menu assosciated with the form.
13669         - Don't let Mdi children draw/handle menus.
13670         
13671 2005-11-30  Jackson Harper  <jackson@ximian.com>
13672
13673         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13674         a MenuChanged event. Just to make the API a little more
13675         consistent.
13676         * MainMenu.cs:
13677         * MenuItem.cs: Use the new OnMenuChanged
13678         * MdiChildContext.cs: Handle menu merging.
13679         * Form.cs: Implement MergedMenu.
13680         
13681 2005-11-30  Jackson Harper  <jackson@ximian.com>
13682
13683         * Menu.cs: We were misusing Add. Add goes behind the specified
13684         index according to the docs, and does not replace the specified
13685         index. So I added an Insert method.
13686
13687 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13688
13689         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13690           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13691           is for Jackson
13692         * RichTextBox.cs: Added calls to base for DnD events
13693
13694 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13695
13696         * TextControl.cs:
13697           - Fixed drag-selection related crash; style fixes
13698           - Implemented undo class
13699             o Implemented method to capture document state for specified
13700               range in document tree
13701             o Implemented method to restore captured document state
13702             o Implemented cursor tracking
13703             o Implemented basic undo stack
13704           - Added undo cursor tracking to methods altering cursor location
13705           - Added undo tracking to selection deletion (still missing
13706             other text-altering hookups)
13707         * RichTextBox.cs:
13708           - Added SelectionLength property
13709           - Implemented CanPaste()
13710           - Implemented Paste()
13711           - Added missing protected methods
13712           - Fixed RTF->Document conversion; now uses font index 0 and color 
13713             index 0 as the default font for the parsed text
13714           - Fixed RTF<->Document font size translation
13715           - Fixed RTF generation, now properly handles cross-tag boundaries
13716             for single line selection
13717           - No longer always appends blank line to generated RTF
13718           - Removed TODOs
13719           - Added missing attributes
13720           - Hooked up undo-related methods
13721         * TextBoxBase.cs:
13722           - Implemented Copy()
13723           - Implemented Paste()
13724           - Implemented Cut()
13725           - Fixed caret mis-behaviour on backspace across line-boundaries
13726
13727 2005-11-29  Jackson Harper  <jackson@ximian.com>
13728
13729         * MdiClient.cs: Add a method for activating mdi children. Very
13730         basic right now. I imagine someday it might need more girth.
13731         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13732         children windows names are added to the menu item.
13733         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13734         mdilist. This happens regardless of whether or not there are any
13735         mdi windows to see in the list, and according to my tests happens
13736         before the items are even added. Also happens if there isn't even
13737         an mdi client to get windows from.
13738
13739 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13740
13741         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13742         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13743
13744 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13745
13746         * DataGridTableStyle.cs:
13747           - Create always the styles for the missing columns even if they are
13748             provided by the user (not default table style)
13749         * DataGrid.cs:
13750           - Fixes bug 76770
13751           - Fixes SetDataBinding (always re-attach source)
13752           - Fixes SetNewDataSource (only clear styles if they are not for 
13753             this source)
13754          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13755             and remove properly
13756
13757 2005-11-29  Jackson Harper  <jackson@ximian.com>
13758
13759         * FileDialog.cs: Implement missing bits, remove some dead
13760         code.
13761         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13762         creation of the panel so that the options set on the dialog are
13763         seen when the panel is created.
13764         * TreeView.cs: raise a click when items are clicked.
13765         
13766 2005-11-29  Jackson Harper  <jackson@ximian.com>
13767
13768         * MdiClient.cs: Pass some signature methods through to base.
13769
13770 2005-11-28  Jackson Harper  <jackson@ximian.com>
13771
13772         * ListView.cs: Raise the click event when items are clicked.
13773
13774 2005-11-28  Jackson Harper  <jackson@ximian.com>
13775
13776         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13777         a nullref.
13778
13779 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13780
13781         * ThemeNice.cs: - Removed 1 pixel bitmaps
13782           - Use SmoothingMode.AntiAlias where it makes sense
13783             (ScrollButton arrow for example)
13784           - Enhanced Button focus drawing
13785           - Fixed ComboBox drawing (no artefacts anymore, focus
13786             rectangle is back again, reduced size of ComboButton, etc.)
13787           - Fixed RadioButton focus drawing for Appearence.Button
13788           - Slight ScrollButton redesign
13789           - Some LinearGradientBrush size fixes
13790           - GroupBoxes have now rounded edges
13791           - Fixed StatusBar drawing
13792
13793 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13794
13795         * ThemeNice.cs: - Remove dead code
13796           - use correct background colors for menus, etc.
13797           - Fake pixel drawing with 1 pixel bitmaps
13798
13799 2005-11-24  Jackson Harper  <jackson@ximian.com>
13800
13801         * MdiClient.cs: Size the scrollbars when resizing the window.
13802         - Resize the maximized windows when the client is resized
13803         * Form.cs: Make the child context available
13804         
13805 2005-11-23  Jackson Harper  <jackson@ximian.com>
13806
13807         * MdiChildContext.cs: Don't size windows if they are maximized.
13808
13809 2005-11-23  Mike Kestner  <mkestner@novell.com>
13810
13811         * ContextMenu.cs: use MenuTracker.
13812         * Control.cs: remove menu handle usage.
13813         * Form.cs: remove menu handle usage.
13814         * Hwnd.cs: remove menu handle usage.
13815         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13816         motion and clicks to the new Tracker handlers.
13817         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13818         and handle usage.
13819         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13820         Killed the MENU and MENUITEM data types and associated collections
13821         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13822         MenuTracker class that exposes the leftovers from the old MenuAPI
13823         static methods. Restructured Capture handling so that only one grab is
13824         done for the entire menu hierarchy instead of handing off grabs to
13825         submenus. Tracker now has an invisible control to Capture when active.
13826         * MenuItem.cs: add sizing accessors, kill Create
13827         and handle usage.
13828         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13829         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13830         MENU(ITEM). remove menu handle usage, use Menu directly.
13831         * XplatUIDriver.cs: remove menu handle usage.
13832         * XplatUIOSX.cs: remove menu handle usage.
13833         * XplatUIWin32.cs: remove menu handle usage.
13834         * XplatUIX11.cs: remove menu handle usage.
13835
13836 2005-11-22  Jackson Harper  <jackson@ximian.com>
13837
13838         * Hwnd.cs: Don't compute the menu size for
13839         DefaultClientRectangle.
13840         - Reenable menu sizes being computed for GetClienRectangle.
13841         * Form.cs: Remove comment of trechery
13842         
13843 2005-11-22  Jackson Harper  <jackson@ximian.com>
13844
13845         * Hwnd.cs: The adjustments for the menu bar are made when it is
13846         attached to the form.
13847
13848 2005-11-19  Jackson Harper  <jackson@ximian.com>
13849
13850         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13851         (just like on windows).
13852
13853 2005-11-19  Jackson Harper  <jackson@ximian.com>
13854
13855         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13856         use real buttons anymore because they are in non client area. The
13857         one TODO here is that I need to somehow invalidate a section of
13858         the non client area.
13859
13860 2005-11-18  Jackson Harper  <jackson@ximian.com>
13861
13862         * Control.cs: Put the enum check back in now that MDI doesnt have
13863         to use this to set border styles.
13864         * Form.cs: Only set mdi child windows borders if the handle has
13865         been created.
13866         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
13867         this directly on to the driver.
13868         - Get the move start position before adjusting for the titlebar
13869         height, this fixes the windows "skipping" when they are first
13870         moved.
13871
13872 2005-11-18  Jackson Harper  <jackson@ximian.com>
13873
13874         * XplatUIX11.cs: Just compute the mdi borders separately as they
13875         don't totally match up with normal form borders.
13876
13877 2005-11-18  Jackson Harper  <jackson@ximian.com>
13878
13879         * Control.cs: Set WS_ styles for borders, so that the driver does
13880         not have to retrieve the control instance to figure out what kind
13881         of borders it should have.
13882         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
13883         driver can know its an mdi child easily.
13884         * XplatUIX11.cs: Get the border styles and whether the window is
13885         MDI from the Styles and ExStyles params instead of having to get a
13886         control. This prevents a chicken and egg problem.       
13887
13888 2005-11-18  Jackson Harper  <jackson@ximian.com>
13889
13890         * MdiClient.cs: Fix typo so scrollbars show up correctly.
13891
13892 2005-11-18  Jackson Harper  <jackson@ximian.com>
13893
13894         * MdiClient.cs: Calculate when to add and remove scrollbars
13895         correctly.
13896         * MdiChildContext.cs: Adjust the y position to take the titlebar
13897         into account.
13898         - No height for FormBorderStyle.None
13899
13900 2005-11-18  Jackson Harper  <jackson@ximian.com>
13901
13902         * Control.cs: Allow non enum values to be used for
13903         InternalBorderStyle.  MDI does this to set a special border style.
13904         - New utility methods for converting points to/from client coords
13905         - Add the newly created control to the Controls collection before
13906         updating its style. This way UpdateStyle can walk the control
13907         heirarchy to find the control if needed.
13908         so I don't need to create a new Point object all the time.
13909         * Form.cs: Let MDI windows handle their border styles.
13910         - Set styles on MDI windows so the correct title style is derived.
13911         * MdiChildContext.cs: Move all the painting and window handling
13912         into the non client area.
13913         - Use correct sizing and put correct buttons on frames based on
13914         the FormBorderStyle.
13915         - Notify the mdi client about scrolling
13916         - Need to handle the buttons ourselves now, because they are all
13917         in non client areas and we can't add controls there.
13918         * MdiClient.cs: Halfway to scrolling, this implementation is
13919         somewhat broken though, we need to check to make sure other
13920         windows aren't causing scrolling before removing the bars. Also
13921         the bars need to be drawn on top, maybe I can switch implicit
13922         controls to be on top.
13923         * Hwnd.cs: caption_height and tool_caption_height are now
13924         properties of an hwnd, this way they can be set by the driver
13925         based on the type of window they are.  In X11 the window manager
13926         handles the decorations so caption_height is zero unless its an
13927         MDI window.
13928         - Add 3 pixel borders for MDI windows (0xFFFF).
13929         - Get rid of some code duplication, have DefaultClientRectanle
13930         just call GetClientRectangle.
13931         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
13932         Hwnd now.
13933         - Set border styles differently for mdi windows.
13934         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
13935         Hwnd now.
13936         
13937 2005-11-15  Mike Kestner  <mkestner@novell.com>
13938
13939         * Menu.cs: when adding an item to the collection, if item is already 
13940         parented, remove it from the parent.
13941
13942 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
13943
13944         * X11DesktopColors.cs: Added KDE support
13945
13946 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
13947
13948         * XplatUIWin32.cs: 
13949           - Clipboard methods now can translate Rtf format
13950           - No longer removes clipboard contents whenever a new format is added
13951             to allow placing multiple formats on the clipboard
13952         * Clipboard.cs: Clipboard now supports getting a IDataObject and
13953           will place all formats contained in it onto the clipboard. Also
13954           now cleans the clipboard before placing a new object onto it
13955         * RichTextBox.cs:
13956           - Implemented set_Rtf
13957           - Implemented set_SelectedRtf
13958           - Created InsertRTFFromStream() method to allow single code base
13959             for all properties and methods that insert RTF into document
13960           - Removed debug output
13961         * TextControl.cs:
13962           - Fixed Delete(int) to fix up line numbers
13963           - Fixed ReplaceSelection to combine start and end line
13964           - Fixed serious DeleteChars bug that would leave the document tree
13965             broken
13966           - Improved DumpTree with several logic checks to detect broken
13967             document trees
13968           - Removed debug lines
13969           - Fixed Caret.WordForward/WordBack moving code, now always also 
13970             updates caret.tag (fixes crash when word-selecting across tag
13971             boundaries via keyboard)
13972           - Added Insert() method for inserting multiline text into documents
13973           - Fixed DeleteChars() calculation errors that would cause a broken
13974             tag chain with multiple tag lines
13975           - DeleteChars() no longer crashes on multi-tag lines if not all tags
13976           - Split() no longer moves caret if split is at caret location
13977           - ReplaceSelection() now updates the cursor and re-displays it
13978           - ReplaceSelection() now uses new Insert() method to avoid code
13979             duplication
13980           - FormatText() can now handle formatting partial lines
13981         * TextBoxBase.cs:
13982           - Append now uses new TextControl.Insert() method (this avoids 
13983             duplicate code)
13984           - Implemented Ctrl-X (Cut) (
13985           - Implemented Ctrl-C (Copy)
13986           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
13987             regeneration when pasting text; roundtripping Copy&Paste within
13988             edit control still fails due to some calculation bugs in GenerateRTF)
13989           - The Delete key will now remove the current selection if it is visible
13990         * TextBox.cs: Removed debug lines
13991         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
13992           driver to be initialized and can't therefore be done via a static ctor)
13993
13994 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
13995
13996         * TextControl.cs: Added backend code for finding char arrays and strings
13997         * TextBoxBase.cs:
13998           - Added mouse wheel scroll support
13999           - Added support for VScroll and HScroll events
14000         * RichTextBox.cs:
14001           - Implemented all seven Find() variants
14002           - Implemented GetCharFromPosition()
14003           - Implemented GetCharIndexFromPosition()
14004           - Implemented GetLineFromIndex()
14005           - Implemented GetPositionFromCharIndex();
14006           - Implemented SaveFile for PlainText and UnicodeText
14007           - Fixed set_Font, now setting a new font applies that font to
14008             the whole document
14009           - Implemented generic Document to RTF converter
14010           - Implemented SaveFile for RichText format (still missing unicode
14011             conversion for non-ansi chars)
14012           - Implemented get_Rtf
14013           - Implemented get_SelectedRtf
14014
14015 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14016
14017         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14018           to allow any captures to be released before triggering OnClick. This
14019           way a click handler may capture the mouse without interference.
14020         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14021           This way we send them even though X may not allow a grab (if the window
14022           isn't visible, for example)
14023
14024 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14025
14026         * DataGridViewRowEventArgs.cs: DataGridView implementation
14027         * DataGridViewElement.cs: DataGridView implementation
14028         * DataGridViewComboBoxCell.cs: DataGridView implementation
14029         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14030         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14031         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14032         * ImageLayout.cs: DataGridView implementation
14033         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14034         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14035         * DataGridViewSelectionMode.cs: DataGridView implementation
14036         * IDataGridViewEditingControl.cs: DataGridView implementation
14037         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14038         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14039         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14040         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14041         * DataGridViewColumnSortMode.cs: DataGridView implementation
14042         * DataGridView.cs: DataGridView implementation
14043         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14044         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14045         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14046         * Padding.cs: DataGridView implementation
14047         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14048         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14049         * DataGridViewRowEventHandler.cs: DataGridView implementation
14050         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14051         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14052         * DataGridViewButtonCell.cs: DataGridView implementation
14053         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14054         * DataGridViewEditMode.cs: DataGridView implementation
14055         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14056         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14057         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14058         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14059         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14060         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14061         * DataGridViewCellEventHandler.cs: DataGridView implementation
14062         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14063         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14064         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14065         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14066         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14067         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14068         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14069         * QuestionEventArgs.cs: DataGridView implementation
14070         * IDataGridViewEditingCell.cs: DataGridView implementation
14071         * DataGridViewTriState.cs: DataGridView implementation
14072         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14073         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14074         * DataGridViewColumnCollection.cs: DataGridView implementation
14075         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14076         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14077         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14078         * DataGridViewColumn.cs: DataGridView implementation
14079         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14080         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14081         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14082         * DataGridViewRow.cs: DataGridView implementation
14083         * DataGridViewImageCellLayout.cs: DataGridView implementation
14084         * DataGridViewImageCell.cs: DataGridView implementation
14085         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14086         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14087         * DataGridViewHeaderCell.cs: DataGridView implementation
14088         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14089         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14090         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14091         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14092         * QuestionEventHandler.cs: DataGridView implementation
14093         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14094         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14095         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14096         * DataGridViewCell.cs: DataGridView implementation
14097         * DataGridViewCellEventArgs.cs: DataGridView implementation
14098         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14099         * DataGridViewCellStyle.cs: DataGridView implementation
14100         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14101         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14102         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14103         * TextFormatFlags.cs: DataGridView implementation
14104         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14105         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14106         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14107         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14108         * DataGridViewButtonColumn.cs: DataGridView implementation
14109         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14110         * HandledMouseEventArgs.cs: DataGridView implementation
14111         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14112         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14113         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14114         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14115         * DataGridViewRowCollection.cs: DataGridView implementation
14116         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14117         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14118         * DataGridViewHitTestType.cs: DataGridView implementation
14119         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14120         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14121         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14122         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14123         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14124         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14125         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14126         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14127         * DataGridViewContentAlignment.cs: DataGridView implementation
14128         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14129         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14130         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14131         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14132         * DataGridViewPaintParts.cs: DataGridView implementation
14133         * DataGridViewCellCollection.cs: DataGridView implementation
14134         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14135         * DataGridViewImageColumn.cs: DataGridView implementation
14136         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14137         * DataGridViewElementStates.cs: DataGridView implementation
14138         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14139         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14140         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14141         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14142         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14143         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14144         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14145         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14146         * DataGridViewTextBoxCell.cs: DataGridView implementation
14147         * DataGridViewBand.cs: DataGridView implementation
14148         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14149         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14150         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14151         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14152         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14153         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14154         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14155         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14156         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14157         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14158         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14159
14160 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14161
14162         * ThemeWin32Classic.cs: 
14163           - Draw the outside focus rectangle around buttons
14164           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14165             doesn't use end caps for every dash of a line anymore. This
14166             workaround ignores the forecolor.
14167
14168 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14169
14170         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14171           endian safe.
14172
14173 2005-11-07  Jackson Harper  <jackson@ximian.com>
14174
14175         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14176
14177 2005-11-07  Jackson Harper  <jackson@ximian.com>
14178
14179         * ScrollableControl.cs: Calculate the maximum and change vars
14180         (more) correctly so that scrollbars appear as a sensible size.
14181
14182 2005-11-04  Jackson Harper  <jackson@ximian.com>
14183
14184         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14185         collection.
14186         * TreeView.cs: When the tree is sorted null out the top_node so
14187         that it is recalculated.
14188         - Use dotted lines instead of dashed lines to match MS better.
14189
14190 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14191
14192         * ListView.cs: 
14193           - Implements key search for items. Useful when browsing files with FileDialog
14194           - When changing view mode or when clear the items reset scrollbar positions
14195
14196 2005-11-04  Jackson Harper  <jackson@ximian.com>
14197
14198         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14199         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14200         as to what the method may do as there is no real way of creating a
14201         derived CurrencyManager and calling the method. 
14202
14203 2005-11-03  Jackson Harper  <jackson@ximian.com>
14204
14205         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14206         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14207         method which seems to just be used internally to refresh the tabs.
14208
14209 2005-11-03  Jackson Harper  <jackson@ximian.com>
14210
14211         * TabControl.cs: Implement the remove method. Fix some broken
14212         comments.
14213
14214 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14215
14216         * DateTimePicker.cs:
14217           - Added missing DateTimePickerAccessibleObject class
14218           - Added missing events
14219           - Added OnFontChanged method
14220         * Form.cs: Added missing attributes
14221         * TreeView.cs: Added missing attributes
14222
14223 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14224
14225         * GridItemCollection.cs: Fix signatures
14226
14227 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14228
14229         * XplatUI.cs: Updated build rev/date
14230         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14231           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14232         * Application.cs: Trigger context-specific ExitThread events
14233
14234 2005-11-03  Jackson Harper  <jackson@ximian.com>
14235
14236         * Menu.cs:
14237         * MainMenu.cs:
14238         * GridTableStylesCollection.cs:
14239         * Timer.cs:
14240         * TabPage.cs:
14241         * HelpProvider.cs:
14242         * StatusBar.cs:
14243         * MonthCalendar.cs: Signature fixes
14244
14245 2005-11-03  Jackson Harper  <jackson@ximian.com>
14246
14247         * TreeNodeCollection.cs: Remove should not be virtual.
14248         * TreeView.cs: Implement the last of the missing methods.
14249
14250 2005-11-03  Jackson Harper  <jackson@ximian.com>
14251
14252         * TreeNodeConverter.cs: Implement to get off my class-status back.
14253
14254 2005-11-03  Jackson Harper  <jackson@ximian.com>
14255
14256         * TreeView.cs: Hookup the bits for drag and drop.
14257         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14258         that nodes can be moved from tree to tree easily this just causes
14259         all sorts of problems.
14260         * TreeNodeCollection: Don't need to give treenodes an index and
14261         treeview anymore when they are added, these are computed on the
14262         fly. Also make sure to remove a node before its added.
14263
14264 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14265
14266         * TextControl.cs:
14267           - Added CaretSelection enum
14268           - Added comparison methods to Marker struct, makes selection code
14269             more readable
14270           - Added SelectionStart and SelectionEnd as 'moveable' location for
14271             the CaretDirection enum and handler
14272           - Added selection_prev variable to track optimized invalidation for
14273             word and line selection
14274           - Added SelectionVisible property (returns true if there is a valid 
14275             selection)
14276           - Switched CaretHasFocus to only display the caret if there is no
14277             visible selection
14278           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14279             using the direct character index; should be much faster
14280           - Added various conditional debug statements
14281           - Fixed invalidation calculation for selection ranges
14282           - Added ExpandSelection() method to support word and line selection
14283           - Switched SetSelectionToCaret to use new Marker compare overloads
14284           - Added central IsWordSeparator() method to determine word 
14285             separators/whitespace and FindWordSeparator() to streamline common
14286             usage of IsWordSeparator()
14287         * TextBoxBase.cs:
14288           - Removed unneeded grabbed variable, it was just mirroring
14289             Control.Capture
14290           - No longer firing OnTextChanged event when Text setter is called,
14291             since the base will fire the event for us
14292           - Added handling of Ctrl-Up/Down selection
14293           - Added handling of Shift-Cursorkey selection
14294           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14295             words
14296           - Added handling of Shift and Ctrl-Shift-Home/End selection
14297           - Removed some debug output
14298           - Added handling for single/double/tripple-click to place caret/
14299             select word/select line respectively (Fixes bug #76031)
14300           - Added support for drag expansion of word/line selection
14301         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14302           current selection
14303
14304 2005-11-02  Jackson Harper  <jackson@ximian.com>
14305
14306         * X11Dnd.cs: If the drag is going to and from a MWF window just
14307         copy the data instead of sending it out through the X Selection
14308         mechanism.
14309
14310 2005-11-02  Jackson Harper  <jackson@ximian.com>
14311
14312         * X11Dnd.cs:
14313         * XplatUIX11.cs: When in a drag we don't want motion notify
14314         messages to get passed on to the other controls. This prevents
14315         mouse move messages from showing up in the drag source.
14316
14317 2005-11-02  Jackson Harper  <jackson@ximian.com>
14318
14319         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14320         the correct button is release to end a drag.
14321         * XplatUIX11.cs: Make the button state internal so the drag system
14322         can access it.  Dragging needs to know about all button releases,
14323         not just left button.
14324
14325 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14326
14327         * Form.cs (Icon): If the icon is null, reset the icon to the
14328         default value. 
14329
14330         * Cursor.cs: When writing the AND-mask bitmap do not include the
14331         number of colors, but hardcode those to two (black and white),
14332         fixes the loading of color cursors (Paint Dot Net).
14333
14334         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14335         turn off autoscaling.
14336
14337         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14338
14339 2005-11-02  Jackson Harper  <jackson@ximian.com>
14340
14341         * X11Dnd.cs: Make sure to send a status message if the pointer
14342         enters a control that can not accept a drop, otherwise the cursor
14343         isn't updated correctly. Also tried to compress the lines of code
14344         a bit.
14345
14346 2005-11-02  Jackson Harper  <jackson@ximian.com>
14347
14348         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14349         set actions correctly.  This isn't perfect as XDND and win32 have
14350         some differences on how you allow actions. I'll clear this up by
14351         adding a path for drag from MWF to MWF windows.
14352         * XplatUIX11.cs: Hook into the dnd system.
14353
14354 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14355
14356         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14357         previously shown but they are no longer need it. Very obvious when 
14358         browsing files with FileDialog.
14359
14360 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14361
14362         * Control.cs: We always need to call OnPaintBackground. We pretty much
14363           ignore AllPaintingInWmPaint and always do the painting there, whether 
14364           it's set or not, since we always ignore the WM_ERASEBKGND message 
14365           (which we don't generate on X11). This fixes #76616.
14366         * Panel.cs: Removed unneeded background painting. This happens properly
14367           in Control.cs already
14368
14369 2005-10-31  Mike Kestner  <mkestner@novell.com>
14370
14371         * Menu.cs: Add items to collection before setting their index.
14372         * MenuItem.cs : add range checking with ArgumentException like MS.
14373         [Fixes #76510]
14374
14375 2005-10-31  Jackson Harper  <jackson@ximian.com>
14376
14377         * ListBox.cs: Invalidate if the area is visible at all not just
14378         contained in the visible rect. Fixes unselection of semi visible
14379         items.
14380
14381 2005-10-31  Jackson Harper  <jackson@ximian.com>
14382
14383         * Control.cs: Consistently name the dnd methods. Make them
14384         internal so we can override them to match some MS behavoir
14385         internally.
14386         * Win32DnD.cs: Use the new consistent names.
14387
14388 2005-10-31  Jackson Harper  <jackson@ximian.com>
14389
14390         * TreeView.cs: Don't draw the selected node when we lose focus.
14391
14392 2005-10-31  Jackson Harper  <jackson@ximian.com>
14393
14394         * X11Dnd.cs: We still need to reset the state even though a full
14395         reset isn't being done, otherwise status's still get sent all over
14396         the place.
14397
14398 2005-10-31  Jackson Harper  <jackson@ximian.com>
14399
14400         * Control.cs: Make the dnd_aware flag internal so the dnd
14401         subsystem can check it. Catch exceptions thrown in dnd handlers to
14402         match MS behavoir.
14403         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14404         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14405         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14406         flags to reduce the number of dnd enters/status's sent.
14407
14408 2005-10-31  Jackson Harper  <jackson@ximian.com>
14409
14410         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14411
14412 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14413
14414         * PictureBox.cs: Fixes 76512
14415
14416 2005-10-28  Jackson Harper  <jackson@ximian.com>
14417
14418         * X11Dnd.cs: Early implementation to support winforms being a drag
14419         source for data on X11. Also restructured the converters so they
14420         can go both ways now.
14421         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14422         
14423 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14424
14425         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14426           clipboard requests
14427
14428 2005-10-27  Jackson Harper  <jackson@ximian.com>
14429
14430         * TreeNode.cs: Implement serialization so my DnD examples will work.
14431
14432 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14433
14434         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14435           TreeView.cs: Don't dispose objects that are not owned.
14436           
14437 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14438
14439         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14440           should retrieve the current cursor and report that, but XplatUI
14441           doesn't (yet) have an interface for that (and I'm not sure I even
14442           can, on X11)
14443         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14444           until any message loop processing is done (and the WM_SETCURSOR
14445           replaces the cursor to the proper one)
14446         * XplatUIX11.cs: 
14447           - Fixed override behaviour, we can't set the cursor globally on X11, 
14448             just for our windows.
14449           - Invalidating the System.Drawing X11 display handle when we are
14450             shutting down
14451         * Control.cs: Fix to make csc happy
14452
14453 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14454
14455         * TextBoxBase.cs: 
14456           - get_Text: Add last line (without trailing newline) to returned
14457             value (Fixes 76212)
14458           - get_TextLength: Count last line in returned length
14459           - ToString: Call Text property instead of duplicating code
14460
14461 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14462
14463         * ImageList.cs: Dispose ImageAttributes objects.
14464
14465 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14466
14467         * ImageList.cs: Use attribute constructors with less arguments where
14468           possible.
14469
14470 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14471
14472         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14473           Use typeof instead of strings when assembly is referenced. Added
14474           some more comments.
14475
14476 2005-10-21  Jackson Harper  <jackson@ximian.com>
14477
14478         * ListView.cs: Raise a double click event. Also tried to somewhat
14479         fix when the selectedindexchanged event is raised. Its still
14480         broken though.
14481
14482 2005-10-21  Jackson Harper  <jackson@ximian.com>
14483
14484         * TreeView.cs: New method to invalidate the plus minus area of a
14485         node without invalidating the whole node (maybe this can be used
14486         in some more places).
14487         * TreeNodeCollection.cs: When adding to an empty node we need to
14488         invalidate its plus minus area so the little block shows up.
14489         
14490 2005-10-21  Jackson Harper  <jackson@ximian.com>
14491
14492         * TreeView.cs: Make sure that when we invalidate a node the bounds
14493         are big enough to cover the selected box and the focus
14494         rectangle. Use a different colour for the lines connecting nodes
14495         so they show up with all themes.
14496
14497 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14498
14499         * NativeWindow.cs: Don't call anything that could call into the driver,
14500           we might be on a different thread.
14501
14502 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14503
14504         * Control.cs(Dispose): Since Dispose might run on a different thread,
14505           make sure that we call methods that could call into the driver via
14506           invoke, to avoid thread issues
14507
14508 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14509
14510         * XplatUI.cs: Removed finalizer
14511         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14512           not allowing to be called on the finalizer thread.
14513
14514 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14515
14516         * ImageList.cs:
14517           - Reverted r51889 and r51891.
14518           - Added ImageListItem class that stores unmodified image items and image
14519             properties required to create list images until handle is created.
14520           - Added AddItem and moved image creation logic to AddItemInternal.
14521           - Added CreateHandle method that creates images based on unmodified items.
14522           - Added DestroyHandle that changes state to store unmodified items.
14523           - Add and AddStrip methods no more create handle.
14524           - ReduceColorDepth has no return value.
14525           - Dispose destroys handle.
14526           - Modified other methods to reflect the above changes.
14527           - Implemented key support.
14528           - Added profile 2.0 members and attributes.
14529           - Added private Reset and ShouldSerialize methods that provide the same
14530             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14531             them as they are private.
14532           - Added some more comments about implementation details.
14533
14534 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14535
14536         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14537
14538 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14539
14540         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14541
14542 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14543
14544         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14545         * DataGridColumnStyle.cs: Remove debug message
14546
14547 2005-10-20  Jackson Harper  <jackson@ximian.com>
14548
14549         * TreeView.cs: We can always get input keys regardless of whether
14550         or not editing is enabled. They are used for navigation.
14551
14552 2005-10-20  Jackson Harper  <jackson@ximian.com>
14553
14554         * TreeNode.cs: Use the viewport rect for determining if a node
14555         needs to be moved for visibility. Don't use Begin/End edit. This
14556         calls a full refresh when its done.
14557         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14558         rect property internal so the treenodes can see it. When clicking
14559         on a node we need to ensure that its visible because it might just
14560         be partly visible when clicked.
14561
14562 2005-10-20  Jackson Harper  <jackson@ximian.com>
14563
14564         * TreeNodeCollection.cs: Remove debug code.
14565
14566 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14567
14568         * Datagrid.cs: Implements column sorting in Datagrid
14569         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14570
14571 2005-10-20  Jackson Harper  <jackson@ximian.com>
14572
14573         * TreeNodeCollection.cs: Remove items properly. Update the correct
14574         area after removing them.
14575
14576 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14577
14578         * Datagrid.cs: Should not call base.OnPaintBackground
14579
14580 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14581
14582         * XplatUIX11.cs (GetMessage):
14583           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14584             window instead of client window
14585           - Now properly calculates NC_xBUTTONUP message coordinates
14586           - ScreenToMenu now properly calculates it's coordinates of whole 
14587             window, since menus are in the whole window, not in the client
14588             window
14589           - Added WholeToScreen coordinate translation method
14590
14591 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14592
14593         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14594           want to return a message, loop back to the beginning of the function
14595           and grab the next real message to process instead.
14596
14597 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14598
14599         * Splitter.cs: Properly set limits if no filler control is used
14600
14601 2005-10-19  Jackson Harper  <jackson@ximian.com>
14602
14603         * ColorDialog.cs: Don't show the help button if it is not enabled
14604         instead of disabling it (this is what MS does). Don't create the
14605         panel until the dialog is run, otherwise the vars (such as
14606         ShowHelp) are not set yet.
14607
14608 2005-10-19  Jackson Harper  <jackson@ximian.com>
14609
14610         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14611         are reduced when adding nodes.
14612         * TreeNode.cs:
14613         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14614         tree.
14615         
14616 2005-10-19  Jackson Harper  <jackson@ximian.com>
14617
14618         * FolderBrowserDialog.cs: End editing our treeview so the window
14619         actually gets refreshed.
14620
14621 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14622
14623         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14624           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14625           inside of WM_PAINT
14626
14627 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14628
14629         * MenuAPI.cs: Returns after Hidding window
14630         * XplatUIX11.cs: Added TODO found while debugging menu issues
14631
14632 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14633
14634         * XplatUIX11.cs: Do not re-map the whole window when it's size
14635           becomes non-zero unless it's supposed to be actually visible
14636
14637 2005-10-18  Jackson Harper  <jackson@ximian.com>
14638
14639         * TreeView.cs: We don't need to keep a count anymore.
14640         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14641         use the Grow method.
14642
14643 2005-10-18  Jackson Harper  <jackson@ximian.com>
14644
14645         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14646         implement it manually here.
14647
14648 2005-10-18  Jackson Harper  <jackson@ximian.com>
14649
14650         * ImageList.cs: Dont kill the list when the colour depth is
14651         changed, just change the colour depth of all the images.
14652         - Same goes for setting the image size. Just resize them all
14653         instead of killing the list softly.
14654
14655 2005-10-18  Jackson Harper  <jackson@ximian.com>
14656
14657         * Control.cs: Don't invalidate empty rectangles.
14658
14659 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14660
14661         * ListViewItem.cs:
14662           - Adds checked item to the Checked/Item lists (where empty before)
14663           - Do not add items to the Selected lists if they are already present
14664         * ListView.cs:
14665           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14666           - When deleting items make sure that we delete them for the Selected
14667           and Checked list also.
14668
14669 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14670
14671         * Label.cs: Dispose objects no longer used
14672         * ThemeWin32Classic.cs: Dispose objects no longer used
14673
14674 2005-10-18  Jackson Harper  <jackson@ximian.com>
14675
14676         * TabControl.cs: Don't refresh the whole control when the tabs are
14677         scrolled, we just need to refresh the tab area.
14678
14679 2005-10-17  Jackson Harper  <jackson@ximian.com>
14680
14681         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14682         after handle when we need it.
14683
14684 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14685
14686         * Control.cs: When the parent size changes, recalculate anchor 
14687           positions. Partial fix for #76462
14688
14689 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14690
14691         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14692           drawn. Fixes #76462
14693
14694 2005-10-17  Jackson Harper  <jackson@ximian.com>
14695
14696         * MonthCalendar.cs: Don't create the numeric up down until our
14697         handle is created. Otherwise our handle is created in the
14698         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14699         yet.
14700
14701 2005-10-17  Jackson Harper  <jackson@ximian.com>
14702
14703         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14704         correctly.
14705
14706 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14707         * TreeNode.cs : small logical fix (was using local var instead of field)
14708         
14709 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14710
14711         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14712
14713 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14714
14715         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14716
14717 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14718
14719         * Control.cs: 
14720           - Re-implemented anchoring code. My first version was really broken.
14721             This fixes bug #76033. Unlike the previous implementation we will
14722             no longer have round errors since all numbers are calculated from
14723             scratch every time. Removed various anchor-related obsolete vars.
14724           - InitLayout no longer causes layout event firing and layout to be 
14725             performed
14726
14727 2005-10-16  Jackson Harper  <jackson@ximian.com>
14728
14729         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14730         which was broken).
14731
14732 2005-10-16  Jackson Harper  <jackson@ximian.com>
14733
14734         * TabControl.cs: Remove debug code.
14735
14736 2005-10-16  Jackson Harper  <jackson@ximian.com>
14737
14738         * XEventQueue.cs: Increase the default queue size (very simple
14739         apps needed to grow the queue).
14740         * Hwnd.cs: No finalizer so we don't need to suppress
14741         finalization. Compute the invalid area manually so a new rectangle
14742         does not newto be created.
14743         * ScrollableControl.cs: Don't set any params (otherwise visibility
14744         isn't set correctly).
14745         * MdiChildContext.cs: New constructor takes the mdi parent so it
14746         doesn't have to be computed and avoids a crash on windows. Draw
14747         the window icon properly, and allow the text to be seen.
14748         * Form.cs: Use new MdiChildContext constructor. Make sure the
14749         child context isn't null in wndproc.
14750         * TabControl.cs: Don't set focus, this is muddling keyboard
14751         behavoir. Expand the tab rows when a window size increase will
14752         allow extra tabs to be seen. Don't allow tabs smaller than the
14753         width of a window to be scrolled out of view.
14754         * TreeNode.cs:
14755         * TreeView.cs: Use measure string to calculate a nodes width, the
14756         width is cached and only updated when the text or the font is
14757         changed. Don't check for expand/collapse clicks on the first level
14758         nodes if root lines are disabled.
14759         
14760 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14761
14762         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14763
14764 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14765
14766         * DataGridBoolColumn.cs: fixes warning
14767
14768 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14769
14770         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14771         to match more to match more precisely the MS Net behavior
14772
14773 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14774
14775         * Hwnd.cs: Added field to track if window is mapped
14776         * XplatUIX11.cs: 
14777           - Unmap windows if they become 0-size, re-map when 
14778             they are >0 again; fixes #76035
14779           - Re-set our error handler after initializing X11Desktop
14780             to override any error handlers Gtk or whatever was called
14781             may have set.
14782
14783 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14784
14785         * CheckedListBox.cs: Removed unused vars
14786         * ListView.cs: Fixed signatures
14787         * RichTextBox.cs: Removed unused vars
14788         * TextBoxBase.cs: Removed unused vars
14789         * XplatUIWin32.cs: Removed unused vars
14790         * XplatUIX11.cs: Removed unused vars
14791         * XplatUI.cs: Updated version and date to latest published
14792
14793 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14794
14795         * Cursor.cs: Added private .ctor to work around a bug in
14796           resourceset (Thanks to Geoff Norton for the help on this)
14797         * SplitterEventArgs.cs: Made fields accessible so we don't
14798           waste boatloads of objects and can reuse the same one
14799           in Splitter
14800         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14801           any captions and borders when generating screen coordinates
14802         * Splitter.cs: Reimplemented control, now fully complete, uses
14803           rubberband drawing, supports and obeys all properties, has
14804           proper cursors
14805
14806 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14807
14808         * Form.cs (Form): Setup default values for autoscale and
14809         autoscale_base_size;  Make these instance variables, not static
14810         variables. 
14811
14812         (OnLoad): on the first load, adjust the size of the form.
14813
14814 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14815
14816         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14817           width argument to DrawReversibleRectangle()
14818         * XplatUIWin32.cs, XplatUIX11.cs: 
14819           - Implemented width for DrawReversibleRectangle()
14820           - Added logic to DrawReversibleRectangle that recognizes a zero
14821             width or height and only draws a line in that situation
14822         
14823 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14824
14825         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14826         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14827         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14828           method (it uses our FosterParent window to get a graphics context)
14829
14830 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14831
14832         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14833           and SetWindowBackground methods
14834         * Control.cs:
14835           - Setting proper ControlStyles
14836           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14837             EraseWindowBackground, instead we draw the window background
14838             ourselves in PaintControlBackground. This behaviour is
14839             required to match MS, where, when OnPaintBackground is not
14840             called, the background is not drawn.
14841           - Removed unneeded Refresh() in set_Text
14842         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14843         * XplatUIX11.cs:
14844           - Created DeriveStyles method to translate from CreateParams to
14845             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14846             matches FormBorderStyle enum values)
14847           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14848             style calculations into single DeriveStyles method
14849           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14850             from redrawing the whole window on any resize or expose.
14851           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14852             all styles were applied to our whole/client window appropriately
14853           - Removed EraseWindowBackground() and SetWindowBackground() methods
14854           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14855             no longer clear/redraw the background through X
14856           - Removed handling of erase_pending bit, we have no use for it (or
14857             so it seems)
14858         * XplatUIOSX.cs:
14859           - Removed generation and handling of WM_ERASEBKGND message
14860           - Removed EraseWindowBackground() and SetWindowBackground() methods
14861           - Removed handling of hwnd.ErasePending flag
14862         * XplatUIWin32.cs:
14863           - Removed EraseWindowBackground() and SetWindowBackground() methods
14864           - We no longer call EraseWindowBackground on PaintEventStart, we 
14865             ignore the fErase flag, erasing is handled in Control in the
14866             background handler
14867         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
14868           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
14869           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
14870           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
14871           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
14872           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
14873           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
14874
14875 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
14876
14877         * PropertyGrids.cs: Get sub properties
14878         * PropertyGridView.cs: Fix drawing code
14879
14880 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14881
14882         * ListBox.cs: Fixes 76383
14883
14884 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14885
14886         * DataGridTextBoxColumn.cs: Sets location and size before attachment
14887         * ThemeWin32Classic.cs: Fixes border drawing and calculations
14888         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
14889
14890
14891 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14892
14893         * ComboBox.cs: Fixes border drawing
14894
14895 2005-10-10  Miguel de Icaza  <miguel@novell.com>
14896
14897         * MimeIcon.cs: Ignore errors if the file can not be read.
14898
14899 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14900
14901         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
14902          - Fixed border calculations
14903          - Fixed horizontal scrolling in single column listboxes
14904          - Fixed drawing issues
14905
14906 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
14907
14908         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
14909           FormBorderStyle enum
14910         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
14911           code to determine FormBorderStyles from CreateParams
14912         * Form.cs:
14913           - Fixed bug where we'd set the wrong window styles if we were
14914             not creating an MDI window
14915           - Added call to XplatUI.SetBorderStyle when form borders are set
14916         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
14917         * Hwnd.cs:
14918           - Removed obsolete edge style
14919           - Switched from BorderStyle to FormBorderStyle
14920         
14921 2005-10-10  Jackson Harper  <jackson@ximian.com>
14922
14923         * Form.cs: Use the property to get the window handle instead of
14924         accessing it directly. Prevents a null reference exception.
14925
14926 2005-10-10  Jackson Harper  <jackson@ximian.com>
14927
14928         * TreeView.cs: Don't adjust the rect given to DrawString now that
14929         our libgdiplus draws correctly.
14930
14931 2005-10-08  Jackson Harper  <jackson@ximian.com>
14932
14933         * TreeView.cs: Don't try to find the clicked on node if there are
14934         no nodes in the tree.
14935
14936 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14937
14938         * RichTextBox.cs:
14939
14940           restore
14941
14942 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14943
14944         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
14945           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
14946           ErrorProvider.cs:
14947           Use ResPool for brushes and dispose System.Drawing objects that
14948           are not used anymore.
14949
14950 2005-10-07  Jackson Harper  <jackson@ximian.com>
14951
14952         * MdiChildContext.cs: Use the new borders instead of drawing them
14953         ourselves.
14954
14955 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
14956
14957         * Calling UpdateBounds after changing the window's BorderStyle 
14958         since the style can change the ClientSize
14959
14960 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14961
14962         * Control.cs: Made PaintControlBackground virtual
14963         * Panel.cs: Overriding PaintControlBackground instead of using paint
14964           event; paint event method was interfering with 'real' users of the
14965           event.
14966
14967 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
14968
14969         * ThemeWin32Classic.cs: remove border drawing since it is handled
14970         by the base control class now and was causing double border drawing.
14971
14972 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14973
14974         * Panel.cs: Redraw our background on paint. Not a pretty solution,
14975           but it does seem to match MS behaviour. This fixes bug #75324
14976
14977 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14978
14979         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
14980           somewhat hackish looking
14981
14982 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
14983
14984         * TextBoxBase.cs:
14985           - We now accept Enter even if AcceptEnter is false, if the containing
14986             form does not have an AcceptButton configured (fixes bug #76355)
14987           - Calculations are now fixed to no longer use Width/Height, but
14988             ClientSize.Width/Height, since we now support borders (this was
14989             a result of fixing borders and therefore bug #76166)
14990           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
14991             true (fixes bug #76354)
14992         
14993 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14994
14995         * Control.cs: 
14996           - Defaulting BorderStyle and setting it in XplatUI when our window 
14997             is created
14998           - Added enum check to InternalBorderStyle setter
14999         * XplatUIX11.cs: 
15000           - Added drawing of window borders
15001           - Now properly calculates WM decorations offset for toplevel 
15002             windows (fixes bug #74763)
15003         * XplatUIWin32.cs: 
15004           - Implemented BorderStyles for windows (we're letting win32 draw 
15005             the border for us)
15006           - Fixed the signature for SetWindowLong
15007         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15008           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15009           setting borders
15010         * UpDownBase.cs: Remove drawing of borders, this is handled by
15011           the driver, outside the client area
15012         * ListView.cs: Removed bogus border calculations. The control should
15013           be oblivious to borders, since those are not part of the client
15014           area. 
15015         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15016         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15017           drawing code
15018
15019 2005-10-06  Jackson Harper  <jackson@ximian.com>
15020
15021         * MdiChildContext.cs: Clear out the old virtual position remove
15022         all the unneeded calls to CreateGraphics.
15023
15024 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15025
15026         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15027
15028 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15029
15030         * Form.cs: 
15031           - Added loading and setting of our new default icon
15032           - Only set icon if window is already created
15033
15034 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15035
15036         * Label.cs:
15037           - Do not explicitly set the foreground and background colors, to
15038             allow inheriting from parents (fixes #76302)
15039           - Use Control's InternalBorderStyle property to deal with borders
15040
15041 2005-10-06  Jackson Harper  <jackson@ximian.com>
15042
15043         * MdiChildContext.cs: Use the new xplatui function to draw a
15044         reversible rect.
15045
15046 2005-10-06  Jackson Harper  <jackson@ximian.com>
15047
15048         * Form.cs: Add the parent before creating the child context cause
15049         we need the parent when setting up the child.
15050
15051 2005-10-06  Jackson Harper  <jackson@ximian.com>
15052
15053         * FolderBrowserDialog.cs: redo the tree population code so a
15054         second thread isn't used. Should be a lot faster and more stable
15055         now.
15056
15057 2005-10-05  Jackson Harper  <jackson@ximian.com>
15058
15059         * TreeView.cs: There are no expand/collapse boxes if the node has
15060         no children.
15061
15062 2005-10-05  Jackson Harper  <jackson@ximian.com>
15063
15064         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15065
15066 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15067
15068         * FileDialog.cs: Fix InitialDirectory
15069
15070 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15071
15072         * ComboBox.cs:
15073                 - Fixes changing between styles
15074                 - Fixes simple mode
15075                 - Fixes last item crashing when navigating with keyboard
15076
15077 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15078
15079         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15080
15081 2005-10-05  Jackson Harper  <jackson@ximian.com>
15082
15083         * TreeView.cs: If updating the root node do a full refresh.
15084         * TreeNode.cs: The root node should be expanded by default. Also
15085         added a utility prop to tell if we are the root node.
15086         * TreeNodeCollection.cs: Only refresh if the node we are being
15087         added to is expanded. Also added a comment on a potential
15088         optimization.
15089         
15090 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15091
15092         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15093           in dispose method. Fixes #76330
15094
15095 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15096
15097         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15098
15099                 - Implements vertical and horizontal scrolling using XplatUI
15100                 - Fixes keyboard navagation
15101                 - Fixes EnsureVisible
15102                 - Drawing fixes
15103                 - Handles and draws focus properly
15104
15105
15106 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15107
15108         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15109           Create handle. NET_2_0: Destroy handle when value is null.
15110
15111 2005-10-03  Jackson Harper  <jackson@ximian.com>
15112
15113         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15114         revert and a new patch to prevent the thumb from refreshing so
15115         much.
15116
15117 2005-10-02  Jackson Harper  <jackson@ximian.com>
15118
15119         * ScrollBar.cs: Don't update position if it hasn't actually
15120         changed. This occurs when you hold down the increment/decrement
15121         buttons and the thumb gets to the max/min.
15122
15123 2005-10-01  Jackson Harper  <jackson@ximian.com>
15124
15125         * Form.cs:
15126         * MdiChildContext.cs:
15127         * MdiClient.cs: Implement ActiveMdiChild in Form.
15128
15129 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15130
15131         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15132
15133 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15134
15135         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15136           be found
15137
15138 2005-09-30  Jackson Harper  <jackson@ximian.com>
15139
15140         * ListBox.cs: Don't do a full refresh unless some data has
15141         actually changed.
15142
15143 2005-09-30  Jackson Harper  <jackson@ximian.com>
15144
15145         * TreeView.cs: Make sure that the checkboxes size is factored in
15146         even when not visible.
15147
15148 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15149
15150         * FileDialog.cs: Fix Jordi's build break
15151
15152 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15153
15154         * FileDialog.cs: 
15155                 - Use standard the Windows colours for the combobox as espected
15156                 - Dispose objects that use resouces when no longer need them
15157
15158 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15159
15160         * X11DesktopColors.cs: Initial incomplete implementation
15161         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15162
15163 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15164
15165         * Theme.cs: 
15166           - Switched Theme color names to match the names defined in 
15167             System.Drawing.KnownColors. Life's hard enough, no need to make 
15168             it harder.
15169           - Added setters to all theme color properties so themes can set
15170             their color schemes. The setters also propagate the color changes
15171             to System.Drawing.KnownColors via reflection
15172         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15173           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15174           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15175           use the new, more logical theme color names
15176         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15177           post-NT colors
15178         * ThemeWin32Classic.cs:
15179           - Removed code to set the old classic Windows colors. Instead it
15180             now relies on the colors returned by System.Drawing.KnownColors
15181             which will be either modern static colors (Unix) or colors
15182             read from the user's configuration (Win32)
15183           - Updated to use the new, more logical theme color names
15184           - Switched DataGrid drawing code to use only Theme colors instead of
15185             a mix of System.Drawing.KnownColors and Theme colors
15186           - DrawFrameControl(): Removed code that fills the button area, the
15187             fill would overwrite any previous fill done by a control. This
15188             fixes bug #75338 
15189           - Added DrawReversibleRectangle() stub
15190         * ScrollableControl.cs: Set visible state to false when scrollbars
15191           are removed (pdn fix)
15192         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15193           DrawReversibleRectangle() method to allow drawing primitive 
15194           'rubber bands'
15195         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15196
15197 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15198
15199         * ImageList.cs: Add(Icon): Create handle.
15200
15201 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15202
15203         * ListView.cs:
15204         * ThemeWin32Classic.cs:
15205                 - Fixes detail mode
15206                 - Sets clippings
15207                 - Issues with drawing
15208
15209 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15210
15211         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15212           source has to be the ImageList.
15213
15214 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15215
15216         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15217
15218 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15219
15220         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15221
15222 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15223
15224         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15225
15226 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15227         * GridItem.cs: Fixed TODOs
15228         * GridItemCollection.cs: Added ICollection interface
15229
15230 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15231
15232         * ImageList.cs: Resize icons when needed.
15233
15234 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15235
15236         * ListViewItem.cs
15237                 - Fixes GetBounds and returns on screen rects
15238         * ListView.cs:
15239                 - Fixes vertical and horzintal scrolling of items
15240         * ThemeWin32Classic.cs:
15241                 - Fixes drawing
15242                 
15243 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15244
15245         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15246
15247 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15248
15249         * ImageList.cs: Added comments about handle creation. Moved Handle,
15250           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15251           Handle is created in Add methods.
15252
15253 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15254          
15255         * DataGridDrawingLogic.cs: 
15256                 - Takes rows into account on Colum calculations
15257                 - Returns the column when clickig
15258         * DataGrid.cs:
15259                 - Fixes default HitTestInfo values
15260                 - Fixes HitTestInfo.ToString
15261                 - Fixes ResetBackColor          
15262         
15263 2005-09-28  Jackson Harper  <jackson@ximian.com>
15264
15265         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15266         sizing or cursor changes). Also added some temp code to draw the
15267         titlebars text (Makes dev a little easier).
15268
15269 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15270
15271         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15272
15273 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15274          
15275         * ListBox.cs: Fixes bug 76253
15276
15277 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15278
15279         * ImageList.cs: Added comments about the current implementation. Added
15280           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15281           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15282           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15283           with Bitmap.LockBits for better performance. Revised the whole file to
15284           match MS.NET behaviour and provide better performance. Non-public
15285           interface members are calling public members even when they throw
15286           NotSupportedException for better maintainability. Moved ColorDepth,
15287           ImageSize, ImageStream and TransparentColor implementations to
15288           ImageCollection for better performance as these properties are not used
15289           by ImageList.
15290         * ImageListStreamer.cs: Added a new internal constructor that takes an
15291           ImageList.ImageCollection and serializes Images based on
15292           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15293           match ImageList property name.
15294
15295 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15296
15297         * ListBox.cs: Fixes IndexFromPoint for last item
15298
15299 2005-09-27  Jackson Harper  <jackson@ximian.com>
15300
15301         * Form.cs: Set the position of new mdi children correctly.
15302
15303 2005-09-27  Jackson Harper  <jackson@ximian.com>
15304
15305         * MdiClient.cs: New mdi children need to be added to the back of
15306         the controls collection so the zorder is set correctly. Also add a
15307         count of all the child windows that have been created.
15308
15309 2005-09-27  Jackson Harper  <jackson@ximian.com>
15310
15311         * Form.cs (CreateParams): Setup MDI forms correctly.
15312
15313 2005-09-27  Jackson Harper  <jackson@ximian.com>
15314
15315         * MdiChildContext.cs:
15316         * MonthCalendar.cs:
15317         * UpDownBase.cs:
15318         * ListBox.cs:
15319         * ListView.cs:
15320         * TextBoxBase.cs:
15321         * TreeView.cs:
15322         * ScrollableControl.cs:
15323         * ComboBox.cs: Add implicit controls using the new implict control
15324         functionality in ControlCollection. Also try to block multiple
15325         control add in a suspend/resume layout to save some cycles.
15326         
15327 2005-09-27  Jackson Harper  <jackson@ximian.com>
15328
15329         * Control.cs: Add functionality to the controls collection to add
15330         'implicit controls' these are controls that are created by the
15331         containing control but should not be exposed to the user. Such as
15332         scrollbars in the treeview.
15333         * Form.cs: The list var of the ControlsCollection is no longer
15334         available because of the potential of implicit controls getting
15335         ignored by someone accessing the list directly.
15336
15337 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15338
15339         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15340           loose it's parent. (Fixed bug introduced in r49103 when we added
15341           setting the child parent to null on Remove)
15342
15343 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15344
15345         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15346         * Splitter.cs: Added missing attributes for BorderStyle property.
15347         * TextBoxBase.cs: Marked Calculate* methods internal.
15348         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15349         MS.NET.
15350
15351 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15352          
15353         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15354
15355 2005-09-25  Jackson Harper  <jackson@ximian.com>
15356
15357         * TreeView.cs: Update the node bounds correctly regardless of
15358         whether the node is visible.
15359
15360 2005-09-25  Jackson Harper  <jackson@ximian.com>
15361
15362         * ImageList.cs: Don't dispose the image after it is added to the
15363         image list. Only reformat images that need to be resized.
15364
15365 2005-09-25  Jackson Harper  <jackson@ximian.com>
15366
15367         * ImageList.cs: Don't set the format when changing the image.
15368
15369 2005-09-25  Jackson Harper  <jackson@ximian.com>
15370
15371         * TreeView.cs: We can't just assume the node has a font. Use the
15372         treeviews font if no node font is available.
15373
15374 2005-09-25  Jackson Harper  <jackson@ximian.com>
15375
15376         * TreeView.cs: Allow the scrollbars to be reset with negative
15377         values.
15378         - Don't add scrollbars to negative sized windows.
15379
15380 2005-09-23  Jackson Harper  <jackson@ximian.com>
15381
15382         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15383         old Mono.Posix. Also remove some stray code that shouldn't have
15384         been committed.
15385
15386 2005-09-23  Jackson Harper  <jackson@ximian.com>
15387
15388         * TreeView.cs: Attempt at proper sizing of the horizontal
15389         scrollbar. Also don't resize the scrollbars unless they are
15390         visible.
15391
15392 2005-09-23  Jackson Harper  <jackson@ximian.com>
15393
15394         * TreeView.cs: We don't need to expand the invalid area when the
15395         selection changes, as this is all drawn in the node's bounding
15396         box. The area needs to be expanded (previous typo was contracting
15397         it) when the focus rect moves.
15398
15399 2005-09-23  Jackson Harper  <jackson@ximian.com>
15400
15401         * TreeView.cs: Display the selection box under the correct
15402         circumstances. We were rendering white text with no selection box
15403         before.
15404
15405 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15406
15407         * TextControl.cs(Split): Now updates selection start/end if it points 
15408           into a line that's being split. Fixes a FIXME and bug #75258
15409
15410 2005-09-23  Jackson Harper  <jackson@ximian.com>
15411
15412         * Binding.cs:
15413         * ListControl.cs: Don't use the path when retrieving binding
15414         managers from the binding context. My bat sense tells me that the
15415         path is only used on insertion.
15416
15417 2005-09-22  Jackson Harper  <jackson@ximian.com>
15418
15419         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15420
15421 2005-09-22  Jackson Harper  <jackson@ximian.com>
15422
15423         * Splitter.cs: There are special cursors used for splitting.
15424         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15425
15426 2005-09-22  Jackson Harper  <jackson@ximian.com>
15427
15428         * Splitter.cs: Change the cursor appropriately when the splitter
15429         is moused over, so the user actually knows there is a splitter
15430         there.
15431
15432 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15433
15434        * Label.cs : Fix ToString method to give same output as MS.NET
15435
15436 2005-09-22  Jackson Harper  <jackson@ximian.com>
15437
15438         * TreeView.cs: Create the scrollbars when the handle is created
15439         and add them right away, just make them invisble. Also account for
15440         the window being shrunk vertically to the point that the vert
15441         scrollbar needs to be added.
15442         - Remove some 0.5 adjustments to get around anti aliasing issues.
15443         
15444 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15445          
15446         * MainMenu.cs: Fixes default value
15447         * MenuItem.cs: Fixes default value
15448
15449 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15450
15451         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15452
15453 2005-09-21  Jackson Harper  <jackson@ximian.com>
15454
15455         * Control.cs: Don't try to set the border style on the window if
15456         it hasn't been created. When the window is created the border
15457         style will be used.
15458
15459 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15460
15461         * Control.cs (Update): Don't call XplatUI if we don't have a
15462           window handle yet
15463
15464 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15465
15466         * ContainerControl.cs: Instead of throwing an exception, print
15467           a one-time warning about Validate not being implemented
15468         * XplatUIWin32.cs: Removed debug output
15469
15470 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15471
15472         * Control.cs: Only set XplatUI background if we expect the windowing
15473           system to handle the background. This stops controls that draw their
15474           own background from flickering
15475
15476         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15477           creation. This allows, amongst other things, using MWF X11 windows 
15478           with OpenGL.
15479
15480 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15481
15482         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15483           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15484           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15485           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15486           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15487           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15488           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15489           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15490           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15491           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15492           GridColumnStylesCollection.cs, 
15493           IDataGridColumnStyleEditingNotificationService.cs,
15494           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15495           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15496           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15497           TreeNodeCollection.cs, AmbientProperties.cs, 
15498           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15499           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15500           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15501           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15502           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15503           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15504           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15505           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15506           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15507           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15508           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15509           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15510           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15511           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15512           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15513           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15514           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15515           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15516           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15517           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15518           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15519           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15520           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15521           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15522           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15523           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15524           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15525           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15526           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15527           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15528           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15529           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15530           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15531           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15532           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15533           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15534           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15535
15536 2005-09-21  Jackson Harper  <jackson@ximian.com>
15537
15538         * TreeNode.cs: Call Before/After Expand not Collapse when
15539         expanding.
15540
15541 2005-09-20  Jackson Harper  <jackson@ximian.com>
15542         
15543         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15544
15545 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15546          
15547         * ListViewItem.cs:
15548                 - Fixes bug 76120
15549                 - Fixes proper storing of subitems
15550                 - Fixes not updated items
15551
15552 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15553
15554         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15555           things if our window handle isn't created yet. Also disabled 
15556           debug for TextBoxBase
15557
15558 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15559
15560         * MenuAPI.cs: Remove filtering of events to allow menu usage
15561
15562 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15563
15564         * Cursor.cs: Allow null to be passed to Cursor.Current.
15565
15566 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15567
15568         * ThemeWin32Classic.cs:
15569           - Change some private methods/fields to protected virtual so that 
15570             they can be accessed and overriden in derived classes
15571           - First refactoring of some methods. Derived themes now don't 
15572             need to duplicate the complete code from ThemeWin32Classic
15573         * ThemeNice.cs:
15574           - Added nice StatusBar
15575           - Derive from ThemeWin32Classic and not Theme
15576           - Removed duplicate ThemeWin32Classic code
15577
15578 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15579
15580         * Control.cs (ControlCollection.Add): If the value null is passed
15581         the control is ignored. 
15582
15583         Optimize this loop.
15584
15585 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15586
15587         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15588           PostQuitMessage state.
15589         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15590
15591 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15592
15593         * Application.cs: Our constructor will never get called, move 
15594           initialization to fields; fixes bug #75933
15595
15596 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15597
15598         * FileDialog.cs :
15599                 - Allow files to be selected properly using file name
15600                 combo box.
15601                 - Add ability to change diretory (absolute / relative)
15602                 using file name combo box.
15603
15604 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15605          
15606         * ListBox.cs: 
15607                 - Fixes Multicolumn listboxes item wrong calculations
15608                 - Allows to click when only one item is in the listbox
15609                 - Fixes crash when no items using keyboard navigation
15610
15611 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15612
15613         * ComboBox.cs: Reverted almost everything from the latest patch which
15614           broke ComboBox
15615
15616 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15617         
15618         * ToolTip.cs:
15619                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15620         * ComboBox.cs:
15621                 - When DropDownStyle is Simple, it does not show scrollbar 
15622                 to the last item of the list.
15623                 - When DropDownStyle is Simple, it crashed when the list was 
15624                 scrolled down with the down cursor key.
15625                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15626                 selected item was not shown.
15627                 - The position of the selected item was not preserved when 
15628                 the next dropdown happened.
15629         * ThemeWin32Classic.cs:
15630                 - Items were wrapped at the right end.
15631         * CheckedListBox.cs:
15632                 - Fixed Add method
15633         * ListBox.cs:
15634                 - Items should be fully shown.
15635                 - When resizing and vertical scrollbar disappeared, the item 
15636                 of index 0 should be on the top of the list.
15637                 - GetItemRectangle should consider the size of ver. scrollbar
15638         * StatusBar.cs:
15639                 - SizingGrip area should not be allocated when it is not 
15640                 displayed.
15641                 - Now it reflects MinWidth of the containing panel and 
15642                 fixed a crash that happens when its width becomes so small.
15643
15644 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15645
15646         * CheckedListBox.cs: Fixes bug 76028
15647         * ListBox.cs: Fixes bug 76028
15648
15649 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15650
15651         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15652         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15653
15654 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15655
15656         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15657
15658 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15659
15660         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15661
15662 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15663
15664         * IRootGridEntry.cs: Added
15665         * PropertyGridCommands.cs: Added
15666         * PropertiesTab.cs: Added missing methods and property
15667         * PropertyGridView.cs: Made class internal
15668         * PropertyGridTextBox.cs: Made class internal
15669
15670 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15671
15672         * MimeIcon.cs: Try to check some other environment variables
15673           if "DESKTOP_SESSION" returns "default"
15674
15675 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15676
15677         * ThemeNice.cs: Corrected background colors (e.g. menus)
15678         * ColorDialog.cs: Use correct background colors for controls
15679
15680 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15681
15682         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15683
15684 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15685
15686         * RichTextBox.cs: Added initial implementation
15687         * lang.cs: Removed. Was accidentally checked in long time ago
15688         * TODO: Removed. Contents were obsolete
15689
15690 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15691                                                                                 
15692         * PropertiesTab.cs : Added
15693
15694 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15695                                                                                 
15696         * PropertyGrid.cs : Update
15697         * PropertyGridView.cs : Update
15698         * System.Windows.Forms.resx : Added images and strings
15699
15700 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15701
15702         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15703  
15704 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15705
15706         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15707           a busy loop right after the Ungrab the X11 display is otherwise 
15708           blocked
15709
15710 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15711
15712         * ThemeWin32Classic.cs: Optimise the use of clipping
15713
15714 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15715
15716         * DataGrid.cs: fixes recursion bug
15717
15718 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15719
15720         * ThemeNice.cs: 
15721           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15722           - Cleanup
15723
15724 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15725
15726         * ThemeNice.cs: Draw nice ProgressBars
15727
15728 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15729
15730         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15731
15732         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15733         bug finder.
15734
15735 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15736
15737         * ThemeNice.cs:
15738           - Added nicer menu drawing
15739           - Updated DrawTab
15740           - some refactoring
15741
15742 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15743
15744         * CreateParams.cs (ToString): Made output match MS
15745         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15746             handle is already created (to avoid forcing window creation)
15747         * XplatUIX11.cs: Set window text to caption after creating window,
15748           in case Text was set before window was created
15749         * Form.cs: Use this.Text instead of a static string as caption
15750
15751 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15752
15753         * NotifyIcon.cs: Don't set the window to visible; this screws
15754           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15755           OnPaint without a bitmap)
15756         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15757           happen very often anyway; we could add the check to the WM_PAINT 
15758           event generation code
15759
15760 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15761
15762         * NotifyIcon.cs: Fill the icon area with a background color, to 
15763           avoid 'residue' when transparent icons are drawn
15764         * XplatUIX11.cs:
15765           - Handle whole_window == client_window when destroying windows
15766           - SystrayAdd(): Set client_window to whole_window value to
15767             get mouse and other events passed to NotifyIcon
15768
15769 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15770
15771         * Form.cs: Set proper default for Opacity property
15772         * NotifyIcon.cs:
15773           - ShowSystray(): Don't bother creating telling the OS
15774             about the systray item if no icon is provided
15775           - Now handles WM_NCPAINT message to deal with whole/client window
15776             split
15777           - Create window as visible to not get caught by Expose optimization
15778         * Hwnd.cs: Removed debug message
15779         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15780           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15781             PaintEventStart/End to use new client argument
15782         * TextBoxBase.cs:
15783           - Commented out debug messages
15784           - Switched PaintEventStart/End to use new client argument
15785         * XplatUI.cs: Added client window bool to PaintEventStart()/
15786           PaintEventEnd() calls, to support drawing in non-client areas
15787         * XplatUIDriver.cs: 
15788           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15789             calls, to support drawing in non-client areas
15790           - Added conditional compile to allow using MWF BeginInvoke 
15791             on MS runtime
15792         * XplatUIX11.cs:
15793           - Added some conditional debug output
15794           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15795             whole/client window split
15796           - Implemented handling of client argument to PaintEventStart()/End()
15797         * Control.cs:
15798           - Throw exception if BeginInvoke() is called and the window handle
15799             or one of the window's parent handles is not created
15800           - Added conditional compile to allow using MWF BeginInvoke on
15801             MS runtime
15802           - get_Parent(): Only sets parent if handle is created. This avoids
15803             forcing window handle creation when parent is set.
15804           - Now fires Layout and Parent changed events in proper order
15805           - Switched to use Handle instead of window.Handle for Z-Order setting,
15806             the get_Parent() patch above causes us to possibly get null for 'window'
15807           - Implemented handling of client argument to PaintEventStart()/End()
15808           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15809             default handling)
15810           - Now sends a Refresh() to all child windows when Refresh() is called
15811
15812 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15813
15814         * Form.cs: Added (non-functional) Opacity property
15815         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15816
15817 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15818         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15819           use export MONO_THEME=nice to activate it.
15820           Currently supported controls:
15821           - Button
15822           - ComboBox
15823           - ScrollBar
15824           - TabControl (TabAlignment.Top only, other will follow)
15825         * ThemeEngine.cs: Add theme nice
15826         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15827           if enabled
15828
15829 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15830
15831         * Splitter.cs: Resize docked control and its neighbor.
15832
15833 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15834         -- Making Windows with Menus layout correctly --
15835         * Form.cs : The first leg of the fix
15836                 Menu setter - adjust Client Size as needed to make space for the menu
15837                 SetClientSizeCore - doesn't call base version to be able to pass the 
15838                         menu handle to XplatUI.CalculateWindowRect
15839         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15840         * XplatUIX11.cs: The critical second leg of the fix
15841                 GetWindowPos needs to use a recalculated client_rect
15842                 so that resizing the window doesn't break layout of child controls. 
15843                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15844                 Lots of \t\n killed
15845
15846 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15847
15848         * Label.cs: Now properly recalculates width and height on Font and Text
15849           changes if AutoSize is set
15850
15851 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15852         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15853
15854 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15855
15856         * ImageList.cs: Makes ToString method compatible with MS
15857
15858 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
15859
15860         * MenuAPI.cs: fixes bug 75716
15861
15862 2005-08-11 Umadevi S <sumadevi@novell.com>
15863         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
15864
15865 2005-08-11 Umadevi S <sumadevi@novell.com>
15866         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
15867
15868 2005-08-10  Umadevi S <sumadevi@novell.com>
15869         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
15870
15871 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
15872
15873         * Menu.cs: fixes bug 75700
15874         * MenuAPI.cs: fixes navigation issues
15875
15876 2005-08-09  Umadevi S <sumadevi@novell.com>
15877         * CheckedListBox.cs - simple fix for GetItemChecked.
15878
15879 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
15880
15881         * ComboBox.cs: Serveral fixes
15882         * ListBox.cs: Serveral fixes
15883
15884 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15885
15886         * ComboBox.cs: Fixes FindString methods and GetItemHeight
15887         * ListBox.cs: Fixes FindString methods
15888
15889 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15890
15891         * DataGrid.cs: fixes bugs exposed by new tests
15892
15893 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
15894
15895         * Mime.cs: Compile Mono assembly references only if compiling
15896           with Mono (Allows to build with VS.Net again)
15897
15898 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
15899
15900         * Control.cs (PaintControlBackground): Draw background image
15901         corrrectly.
15902         (CheckForIllegalCrossThreadCalls): Stubbed.
15903         
15904         * Form.cs (OnCreateControl): Center when should be centered.
15905         
15906         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
15907
15908 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
15909
15910         * Binding.cs: Binding to properties should be case unsensitive
15911
15912 2005-07-18 vlindos@nucleusys.com
15913
15914         * DataGrid.cs: fixes setmember order
15915
15916 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
15917
15918         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
15919         * FileDialog.cs: FileDialog is now resizable and uses the new
15920           MimeIconEngine
15921
15922 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
15923
15924         * DataGridTextBoxColumn.cs: default value
15925         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
15926         * GridTableStylesCollection.cs: fixes checking MappingName
15927         * DataGridDrawingLogic.cs: fixes drawing logic issues
15928         * DataSourceHelper.cs: rewritten to make compatible with more data sources
15929         * DataGrid.cs: fixes    
15930
15931 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
15932
15933         * MimeGenerated.cs: Use case sensitive comparer for
15934           NameValueCollections
15935
15936 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
15937
15938         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
15939         * ThemeWin32Classic.cs: bug fixes, code refactoring
15940         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
15941         * DataGrid.cs: bug fixes, code refactoring
15942         * DataGridTextBox.cs: bug fixes, code refactoring
15943         * DataGridColumnStyle.cs:  bug fixes, code refactoring
15944         * Theme.cs:  bug fixes, code refactoring
15945
15946 2005-07-01  Peter Bartok  <pbartok@novell.com> 
15947
15948         * TextControl.cs: Quick fix for the reported crash on ColorDialog
15949           and other text box usage
15950
15951 2005-07-01  Jackson Harper  <jackson@ximian.com>
15952
15953         * TabControl.cs: Make sure the bottom of the tab covers the pages
15954         border.
15955
15956 2005-06-30  Peter Bartok  <pbartok@novell.com> 
15957
15958         * Form.cs (ShowDialog): Assign owner of the dialog
15959         * TextBoxBase.cs: Always refresh caret size when deleting, caret
15960           might have been moved to a tag with different height
15961
15962 2005-06-30  Jackson Harper  <jackson@ximian.com>
15963
15964         * Form.cs: Don't create an infinite loop when setting focus
15965         * MenuItem.cs: Don't dirty the parents if we don't have any
15966
15967 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
15968
15969         * LibSupport.cs: Rename
15970
15971 2005-06-29  Peter Bartok  <pbartok@novell.com>
15972
15973         * TextBoxBase.cs: Re-align caret after deleting a character
15974         * TextControl.cs:
15975           - DeleteChars(): Ensure that tag covers the provided position
15976           - StreamLine(): Drop reference for dropped tag
15977
15978 2005-06-29  Peter Bartok  <pbartok@novell.com> 
15979
15980         * TextControl.cs: 
15981           - Selections now work properly, anchoring at the initial location
15982             and properly extending in either direction (SetSelectionToCaret(),
15983             SetSelectionStart() and SetSelectionEnd())
15984           - No longer redraws the whole control on selection change, now
15985             calculates delta between previous and new selection and only
15986             invalidates/redraws that area
15987           - Fixed FindPos() math off-by-one errors
15988           - Changed DeleteChars() to verify the provided tag covers the
15989             provided position, selections may have a tag that doesn't cover
15990             the position if the selection is at a tag border
15991           - Fixed off-by-one errors in DeleteChars()
15992           - Added missing streamlining check in DeleteChars() to remove
15993             zero-length tags
15994           - Implemented Invalidate() method, now properly calculates exposures
15995             between two given lines/positions
15996           - Implemented SetSelection()
15997           - Obsoleted and removed FixupSelection()
15998           - Improved RecalculateDocument() logic, removing code duplication
15999
16000 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16001
16002         * LibSupport.cs: changes to match different input/output arguments.
16003
16004 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16005
16006         * LibSupport.cs: added libsupport.so init routine.
16007
16008 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16009         
16010         * ControlBindingsCollection.cs
16011                 - Throws an exception on null datasource when adding
16012                 - Checks for duplicated bindings when adding
16013
16014 2005-06-28  Jackson Harper  <jackson@ximian.com>
16015
16016         * TreeView.cs (OnKeyDown): Support left and right properly
16017         (navigates as well as expanding and collapsing.
16018         - Add support for Multiply, this expands all the selected nodes
16019         children.
16020         - Fix some tabbing.
16021
16022 2005-06-28  Jackson Harper  <jackson@ximian.com>
16023
16024         * TreeView.cs: Implement keyboard navigation, currently supports,
16025         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16026         support for toggling checkboxes with the space bar.
16027
16028 2005-06-28  Jackson Harper  <jackson@ximian.com>
16029
16030         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16031         tree.
16032
16033 2005-06-28  Jackson Harper  <jackson@ximian.com>
16034
16035         * TreeView.cs: Add missing event.
16036
16037 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16038
16039         * TextControl.cs:
16040           - Made line ending size configurable (now allows for counting 
16041             lineendings as \n or \r\n)
16042           - Added margin to viewport to keep caret visible on right side
16043           - Fixed translation routines for line/pos to documentpos to consider
16044             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16045           - Fixed some line-endings to be unix style
16046           - Fixed Document.FormatText to perform it's calculations 1-based
16047           - Added descriptions for a few methods that might otherwise get 
16048             used wrong
16049           - Added NOTE section with some basic conventions to remember at 
16050             the top of the file
16051           - Major fixup for RichTextBox selection drawing:
16052             * Fixed crashes when multiple tags on a single line were selected
16053             * fixed selection box drawing not overlaying text
16054             * fixed bogus offset calculation for tags not starting at index 1
16055             * Switched behaviour from using multiple Substrings of a 
16056               StringBuilder.ToString() to using multiple 
16057               StringBuilder.ToString(start, length) statements, hoping this is
16058               faster (kept original version commented out in the code, in case
16059               original version was faster)
16060         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16061           alignment != Left
16062         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16063           call it as well
16064
16065 2005-06-27  Jackson Harper  <jackson@ximian.com>
16066
16067         * TabControl.cs: Move to the left and right with the arrow
16068         keys. These keys don't cycle beyond first and last like
16069         tab. Refresh all the tabs when scrolling them to the left or
16070         right.
16071
16072 2005-06-27  Jackson Harper  <jackson@ximian.com>
16073
16074         * TabControl.cs:
16075           - ToString: Added method
16076           - CreateParams: Remove TODO and comment
16077           - OnKeyDown: Cycle through bounds properly.
16078           - SelectedIndex: Scroll to the right or left if we need to
16079           display the newly selected tab.
16080
16081 2005-06-23  Jackson Harper  <jackson@ximian.com>
16082
16083         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16084         set.
16085
16086 2005-06-23  Jackson Harper  <jackson@ximian.com>
16087
16088         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16089         CTRL-SHIFT-TAB, and HOME, END are there any others?
16090
16091 2005-06-23  Jackson Harper  <jackson@ximian.com>
16092
16093         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16094
16095 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16096         
16097         * DataGridTextBoxColumn.cs: fixes and enhancements
16098         * ThemeWin32Classic.cs: fixes and enhancements
16099         * DataGridBoolColumn.cs:  fixes and enhancements
16100         * DataGridDrawingLogic.cs:  fixes and enhancements
16101         * CurrencyManager.cs: fixes and enhancements
16102         * DataGrid.cs: fixes and enhancements
16103         * DataGridColumnStyle.cs:  fixes and enhancements
16104
16105 2005-06-22  Jackson Harper  <jackson@ximian.com>
16106
16107         * TabControl.cs: Add some missing methods that just call into the
16108         base. Make the TabPageCollection's IList interface behave in the
16109         same manner as the MS implementation.
16110
16111 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16112
16113         * TextControl.cs: Added sanity check
16114         * TextBoxBase.cs: 
16115           - Fixed wrapping behaviour, don't set wrap on single line controls
16116             (this fixes the breakage of colordialog introduced in an earlier
16117              checkin)
16118           - Added rudimentary support for autoscrolling right-aligned controls
16119             (still needs fixing, also, center alignment scroll is missing)
16120
16121 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16122         
16123         * ScrollBar.cs: Fixes thumbpos on Maximum values
16124
16125 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16126         
16127         * PropertyGridView.cs: Pass context information to UITypeEditors 
16128
16129 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16130
16131         * TextBoxBase.cs:
16132           - Now calling PositionCaret with absolute space coordinates
16133           - Enabled vertical scrolling
16134           - Better tracking of scrollbar changes, tied into WidthChange
16135             event
16136           - Improved cursor tracking
16137           - Removed debug output
16138         * TextControl.cs:
16139           - PositionCaret coordinates are now works in absolute space, not 
16140             the canvas
16141           - Improved tracking of document size
16142           - Added events for width and height changes
16143
16144 2005-06-21  Peter Bartok  <pbartok@novell.com>
16145
16146         * Form.cs: Set focus to active control when form is activated
16147         * TextControl.cs: 
16148           - Added word-wrap functionality to RecalculateLine() 
16149           - Added some short function descriptions for VS.Net to aid in
16150             writing dependent controls
16151           - Added Caret property, returning the current coords of the caret
16152           - Added ViewPortWidth and ViewPortHeight properties
16153           - Added Wrap property
16154           - Added CaretMoved event
16155           - Removed some old debug code
16156           - Split() can now create soft splits
16157           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16158           - Added method to format existing text
16159           - Fixed size/alignment calculations to use viewport
16160           - RecalculateDocument now can handle changing line-numbers while
16161             calculating lines
16162
16163         * TextBox.cs:
16164           - Added some wrap logic, we don't wrap if alignment is not left
16165           - Added casts for scrollbar var, base class switched types to
16166             also support RichTextBoxA
16167           - Implemented handling of scrollbar visibility flags
16168
16169         * TextBoxBase.cs:
16170           - Switched scrollbars type to RichTextBoxScrollBars to support
16171             RichTextBox
16172           - Added tracking of canvas width/height
16173           - Switched scrollbars to be not selectable (to keep focus on text)
16174           - Added central CalculateDocument() method to handle all redraw
16175             requirements
16176           - Added ReadOnly support
16177           - Added WordWrap support
16178           - Fixed handling of Enter key (we now treat it as a DialogKey)
16179           - Fixed caret positioning when h or v scroll is not zero
16180           - Fixed placing/generation of vertical scrollbar
16181           - Added CalculateScrollBars() method to allow updating scrollbar
16182             limits and visibility
16183           - Fixed handling of horizontal scroll
16184           - Added handling of vertical scroll
16185           - Implemented auto-'jump' when caret moves to close to a left or
16186             right border and there is text to be scrolled into view (currently
16187             there's the potential for a stack overflow, until a bug in
16188             scrollbar is fixed)
16189
16190 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16191         
16192         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16193
16194 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16195
16196         * Mime.cs:
16197         - added inodes.
16198         - return application/x-zerosize for files with size zero
16199           (if no extension pattern matches).
16200         - check matches collection for strings too.
16201         - return only the first mime type if the name value
16202           collection has more than one mime type.
16203
16204 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16205         
16206         * PropertyGrid.cs: Cleaned up some TODOs
16207         * PropertyGridView.cs: Added support for UITypeEditors
16208
16209 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16210         
16211         * DataGrid.cs: clears cached value
16212
16213 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16214
16215         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16216         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16217         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16218         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16219         
16220 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16221
16222         * ThemeWin32Classic.cs: fixes colour
16223
16224 2005-06-15  Peter Bartok  <pbartok@novell.com>
16225
16226         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16227         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16228         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16229         * Control.cs: Added some MWFCategory and MWFDescription attributes
16230         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16231
16232 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16233
16234         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16235         usage
16236
16237 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16238
16239         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16240         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16241         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16242         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16243         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16244         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16245
16246 2005-06-13  Jackson Harper  <jackson@ximian.com>
16247
16248         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16249         isn't printed when the user enables dropping. (X11 does accept
16250         drops).
16251         
16252 2005-06-13  Jackson Harper  <jackson@ximian.com>
16253
16254         * TreeView.cs: Remove some TODOS.
16255
16256 2005-06-13  Jackson Harper  <jackson@ximian.com>
16257
16258         * Form.cs: Hook into the mdi framework.
16259         * MdiClient.cs: Use the base control collections add method so
16260         parents get setup correctly. Set the default back colour and dock
16261         style.
16262         * MdiChildContext.cs: New class, this bad actor handles an
16263         instance of an MDI window. Right now there is only basic
16264         support. You can drag, close, and resize windows. Minimize and
16265         Maximize are partially implemented.
16266
16267 2005-06-13  Jackson Harper  <jackson@ximian.com>
16268
16269         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16270         freaky when both vals are negative. NOTE: There are probably other
16271         places in XplatUIX11 that this needs to be done.
16272
16273 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16274
16275         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16276         * DataGridColumnStyle.cs: fixes signature
16277
16278 2005-06-12  Jackson Harper  <jackson@ximian.com>
16279
16280         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16281         windows.
16282
16283 2005-06-11  Jackson Harper  <jackson@ximian.com>
16284
16285         * StatusBarPanel.cs: Signature cleanups. Implement
16286         BeginInit/EndInit.
16287
16288 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16289
16290         * DataGridTextBoxColumn.cs: Honors aligment
16291         * GridColumnStylesCollection.cs: Contains is case unsensitive
16292         * GridTableStylesCollection.cs: several fixes
16293         * DataGridTableStyle.cs: default column creation
16294         * DataGridDrawingLogic.cs: fixes
16295         * CurrencyManager.cs: ListName property
16296         * DataGrid.cs: multiple styles support
16297         * DataGridColumnStyle.cs: fixes
16298         
16299
16300 2005-06-10  Peter Bartok  <pbartok@novell.com>
16301
16302         * Control.cs(Select): Moved SetFocus call to avoid potential
16303           loops if controls change the active control when getting focus
16304         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16305           the up/down buttons
16306
16307 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16308
16309         * ImageListConverter.cs: Implemented
16310
16311 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16312
16313         * MonthCalendar.cs: Wired in NumericUpDown control for year
16314
16315 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16316
16317         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16318           DoubleClick events, since they are not meant to be fired.
16319
16320 2005-06-09  Peter Bartok  <pbartok@novell.com>
16321
16322         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16323           Jonathan's standalone controls into MWF, implemented missing
16324           events, attributes and methods; added xxxAccessible classes
16325         * AccessibleObject.cs: Made fields internal so other classes
16326           can change them if needed
16327
16328 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16329
16330         * UpDownBase.cs: Complete implementation
16331         * NumericUpDown.cs: Complete implementation
16332         * DomainUpDown.cs: Complete implementation
16333
16334 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16335
16336         * DataGridTextBoxColumn.cs: drawing fixes
16337         * DataGridCell.cs: fixes ToString method to match MSNet
16338         * DataGridTableStyle.cs: fixes
16339         * DataGridBoolColumn.cs: fixes, drawing
16340         * DataGridDrawingLogic.cs: fixes, new methods
16341         * DataGridTextBox.cs: Keyboard and fixes
16342         * DataGrid.cs:
16343                 - Keyboard navigation
16344                 - Scrolling fixes
16345                 - Row selection (single, multiple, deletion, etc)
16346                 - Lots of fixes
16347         
16348 2005-06-07  Jackson Harper  <jackson@ximian.com>
16349
16350         * ThemeWin32Classic.cs: Clear the background area when drawing
16351         buttons.
16352
16353 2005-06-06  Peter Bartok  <pbartok@novell.com>
16354
16355         * ImageListStreamer.cs: Fixed signature for GetData
16356         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16357         * ComboBox.cs:
16358           - Added missing ChildAccessibleObject class
16359           - Added missing OnXXXFocus overrides, switched to using those
16360             instead of the event handler
16361         * Control.cs:
16362           - Added Parent property for ControlAccessibleObject
16363           - Fixed signatures
16364           - Fixed attributes
16365           - Added ResetBindings()
16366         * ListBindingConverter.cs: Implemented some methods
16367         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16368         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16369         * ContainerControl.cs: Fixed signature, now subscribing to the
16370           ControlRemoved event instead of overriding the handler, LAMESPEC
16371         * CurrencyManager.cs: Added missing attribute
16372         * MonthCalendar.cs: Added missing properties
16373
16374 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16375
16376         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16377         
16378 2005-06-06  Gaurav Vaish and Ankit Jain
16379
16380         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16381         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16382         
16383 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16384
16385         * Control.cs: fixes CreateParams Width / Height.
16386
16387 2005-06-05  Peter Bartok  <pbartok@novell.com>
16388
16389         * Win32DnD.cs: Removed compilation warnings
16390
16391 2005-06-05  Peter Bartok  <pbartok@novell.com>
16392
16393         * Control.cs (CreateParams): Since we don't know if one of the
16394           properties we use is overridden, lets make sure if we fail accessing
16395           we continue with a backup plan
16396
16397 2005-06-05  Peter Bartok  <pbartok@novell.com>
16398
16399         * Win32DnD.cs:
16400           - Removed debug output
16401           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16402             struct
16403           - Plugged resource leak
16404         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16405           MS size
16406
16407 2005-06-05  Peter Bartok  <pbartok@novell.com>
16408
16409         * XplatUIWin32.cs: Removed DnD code
16410         * Win32DnD.cs: Implemented drop source and drop target functionality
16411
16412 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16413
16414         * UpDownBase.cs: remove duplicate addition of event, enable some code
16415         that was commented out.
16416         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16417         Validate input when a key is pressed. It works fine now for every
16418         combination of Hexadecimal. Only missing some drawing love when sharing
16419         space with other controls.
16420
16421 2005-06-04  Peter Bartok  <pbartok@novell.com>
16422
16423         * Control.cs:
16424           - We need to pass a window for DragDrop, so enable callback events
16425           - Added DnD callback events when being a DragSource
16426         * XplatUI.cs (StartDrag): Added window handle argument
16427         * XplatUIDriver.cs (StartDrag): Added window handle argument
16428         * QueryContinueDragEventArgs: Made fields internally accessible so
16429           drivers can set them
16430         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16431           can set them
16432
16433 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16434
16435         * DataGridTextBoxColumn.cs: column text editing
16436         * DataGridTableStyle.cs: Respect columns styles created by the user
16437         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16438         * DataGridBoolColumn.cs: bool column editing
16439         * DataGrid.cs: fixes to scrolling, properties, etc
16440         * DataGridTextBox.cs: handle keyboard
16441         * DataGridColumnStyle.cs: fixes
16442
16443 2005-06-02  Jackson Harper  <jackson@ximian.com>
16444
16445         * ImageListStreamer.cs: Somewhat broken implementation of
16446         GetObjectData. The RLE needs some work to match MS properly.
16447
16448 2005-06-02  Jackson Harper  <jackson@ximian.com>
16449
16450         * X11Dnd.cs: Attempting to keep at least one file in MWF
16451         monostyled.
16452
16453 2005-06-02  Peter Bartok  <pbartok@novell.com>
16454
16455         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16456           that way
16457
16458 2005-06-02  Peter Bartok  <pbartok@novell.com>
16459
16460         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16461         * XplatUI.cs: Added DoDragDrop() method
16462         * XplatUIDriver.cs: Added DoDragDrop() method
16463
16464 2005-06-02  Jackson Harper  <jackson@ximian.com>
16465
16466         * Splitter.cs: Implement BorderStyle.
16467
16468 2005-06-02  Jackson Harper  <jackson@ximian.com>
16469
16470         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16471         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16472         X11 using XDND.
16473
16474 2005-06-02  Peter Bartok  <pbartok@novell.com>
16475
16476         * DataObject.cs:
16477           - Added Data setter
16478           - Fixed broken insertion code for SetData, now also
16479             overwrites any existing entry of the same format name
16480         * Hwnd.cs: Added list of pointers that automatically gets
16481           freed when the window is disposed
16482         * XplatUI.cs: Call driver initialization method when loading
16483           a driver
16484         * Control.cs:
16485           - OnDragLeave takes EventArgs, not DragEventArgs
16486           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16487             supported
16488           - Forces style update when drop state changes
16489         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16490           not perfect since we cannot (yet) call the IDataObject.GetData()
16491           method, we keep getting 0x80004005 error, dunno why)
16492
16493 2005-06-02  Peter Bartok  <pbartok@novell.com>
16494
16495         * DragEventArgs.cs: Make fields internal so we can cache the
16496           object and re-set the fields from XplatUI
16497
16498 2005-06-02  Jackson Harper  <jackson@ximian.com>
16499
16500         * Control.cs: Add some internal methods so the DnD subsystem can
16501         raise DnD events. Also call into the driver when AllowDrop is set.
16502         * XplatUI.cs:
16503         * XplatUIDriver.cs: New method for setting whether or not a window
16504         is allowed to accept drag and drop messages.
16505                 
16506 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16507         
16508         * ScrollBar.cs: Make sure that values sent in Scroll events
16509         are always between Maximum and Minimum.
16510
16511 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16512
16513         * Menu.cs: Call MenuChanged when menuitem visibility has been
16514         changed.
16515         * MenuItem.cs: Rebuild menu when item is (not) visible.
16516         * MainMenu.cs: MainMenu has special MenuChanged.
16517         * Theme.cs: Caption and FrameBorderSize are not fixed.
16518         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16519         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16520         * XplatUIX11.cs,
16521         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16522         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16523
16524 2005-05-30  Jackson Harper  <jackson@ximian.com>
16525
16526         * DataFormat.cs: We can't statically initialize this stuff because
16527         it calls into the xplatui and could create a loop. So we lazy init
16528         it.
16529
16530 2005-05-28  Jackson Harper  <jackson@ximian.com>
16531
16532         * Control.cs: Proper implementation of Product(Name/Version).
16533
16534 2005-05-27  Jackson Harper  <jackson@ximian.com>
16535
16536         * DataObject.cs: Dont crash if no data is found.
16537
16538 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16539         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16540                 as per status page, guessing it should be set to true
16541
16542 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16543
16544         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16545         * DataGridTableStyle.cs: set proper formatting text, def header text
16546         * ThemeWin32Classic.cs: new themable paramaters
16547         * DataGridBoolColumn.cs: paint check box, get data, fixes
16548         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16549         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16550         * DataGridColumnStyle.cs: fixes
16551         * Theme.cs: new themable paramaters
16552                 
16553 2005-05-26  Peter Bartok  <pbartok@novell.com>
16554
16555         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16556
16557 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16558         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16559
16560 2005-05-24  Peter Bartok  <pbartok@novell.com>
16561
16562         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16563           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16564           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16565           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16566           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16567           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16568           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16569           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16570           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16571           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16572           missing attributes, etc
16573         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16574
16575 2005-05-24  Peter Bartok  <pbartok@novell.com>
16576
16577         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16578           when user tries to get help
16579         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16580           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16581           to suppress warnings
16582         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16583           avoid unreachable code warning
16584
16585 2005-05-20  Peter Bartok  <pbartok@novell.com>
16586
16587         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16588
16589 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16590
16591         * DataGridTextBoxColumn.cs: Basic painting methods
16592         * DataGridTableStyle.cs: Set table style in the column
16593         * ThemeWin32Classic.cs: Use Theme for colors
16594         * DataGridDrawingLogic.cs: Implement more drawing
16595         * DataGrid.cs: drawing, theming, enhacements, fixes
16596         * DataGridColumnStyle.cs: fixes, drawing
16597         * Theme.cs: theming for Datagrid
16598
16599 2005-05-20  Peter Bartok  <pbartok@novell.com>
16600
16601         * Cursor.cs: Implemented GetObjectData() method
16602
16603 2005-05-20  Peter Bartok  <pbartok@novell.com>
16604
16605         * Cursors.cs: Added setting of cursor name
16606         * Cursor.cs:
16607           - Implemented constructors
16608           - Implemented Draw and DrawStretched
16609           - Implemented Current property
16610           - Implemented == and != operators
16611           - Implemented Dispose()
16612           - Implemented ToString
16613           - Added missing attributes
16614         * XplatUIX11.cs:
16615           - Added missing reset for OverrideCursor when DoEvents is called
16616           - Fixed creation of cursor, logic was wrong
16617         * XplatUIWin32.cs:
16618           - Added missing reset for OverrideCursor when DoEvents is called
16619           - Fixed creation of cursor, bit arrays were swapped
16620         * Clipboard.cs: Removed obsolete MonoTODO attribute
16621
16622 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16623
16624         * ComboBox.cs: fixes OnSelectedItemChanged
16625         * ControlBindingsCollection.cs: fixes item range check
16626
16627 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16628
16629         * UpDownBase.cs:
16630                 - Calc preferred height properly
16631                 - Implement missing properties
16632                 
16633         * NumericUpDown.cs: Implement missing events
16634
16635 2005-05-19  Jackson Harper  <jackson@ximian.com>
16636
16637         * TabControl.cs: New method that resizes the tab pages before
16638         redrawing them. This as needed as the control is double buffered
16639         and sizing will not be recalculated unless ResizeTabPages is
16640         called.
16641         * TabPage.cs: Set base.Text instead of Text in the constructor so
16642         that UpdateOwner does not get called. Use the new Redraw method of
16643         TabControl instead of Refresh so the sizing is recalculated.
16644         * ThemeWin32Classic.cs: Draw the text for button tabs.
16645
16646 2005-05-19  Jackson Harper  <jackson@ximian.com>
16647
16648         * Control.cs: Paint control background images. Fix typo where
16649         PaintControlBackground was not getting called correctly.
16650
16651 2005-05-19  Peter Bartok  <pbartok@novell.com>
16652
16653         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16654           I can investigate, apparently I broke FileDialog
16655
16656 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16657
16658         * AxHost.cs: Some simple properties.
16659         * Control.cs: window must be accessible after ctor.
16660         * Form.cs: Added TransparencyKey property.
16661         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16662         * XplatUIWin32.cs: SetBorderStyle implemented.
16663
16664 2005-05-18  Peter Bartok  <pbartok@novell.com>
16665
16666         * DataObject.cs: Entries are not global but particular to the
16667           DataObject, now it behaves that way
16668         * XplatUIWin32.cs: Implemented Clipboard methods
16669         * Clipboard.cs: Implemented
16670         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16671         * XplatUIOSX.cs: Updated to final clipboard prototypes
16672         * XplatUIX11.cs: Implemented Clipboard methods
16673         * XplatUIDriver.cs: Updated to final clipboard prototypes
16674         * XplatUIStructs.cs:
16675           - Added BITMAPINFOHEADER struct
16676           - Added ClipboardFormats enum
16677         * X11Structs.cs:
16678           - Added ClipboardStruct
16679           - Added Atom enum items for clipboard types
16680           - Fixed atom types for Selection event structures
16681         * DataFormats.cs:
16682           - Added internal properties and methods for drivers to enumerate
16683             all known formats
16684           - Switched initialization method to allow drivers to assign their
16685             own IDs even for the MS predefined clipboard IDs
16686         * XplatUI.cs: Updated to final clipboard interface
16687
16688 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16689         * PropertyGridView.cs: Fixed compiler warnings.
16690
16691 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16692         * PropertyGrid.cs: Added some event calls
16693         * PropertyGridView.cs: Change drawing code to use double buffering
16694         * PropertyGridTextBox.cs: Changed Text property name
16695         * GridItem.cs: Added Bounds property.
16696         * GridEntry.cs: Added Bounds property.
16697
16698 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16699
16700         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16701         since GetType() may not return the correct type if the object is
16702         a remoting proxy.
16703
16704 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16705
16706         * TreeNodeCollection.cs: fixes get/set item ranges
16707         
16708 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16709
16710         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16711                 
16712 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16713
16714         * ComboBox.cs: Fix item range comparation
16715         * ListView.cs: Fix item range comparation
16716
16717 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16718
16719         * FontDialog.cs:
16720           - Clear example panel when OnPaint is called
16721           - Better solution for displaying the example panel text
16722           - Select default indexes in the ListBoxes
16723
16724 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16725
16726         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16727
16728 2005-05-11  Peter Bartok  <pbartok@novell.com>
16729
16730         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16731         * SelectionRangeConverter.cs: Implemented
16732         * PropertyGrid.cs: Fixed attribute value
16733         * Control.cs:
16734           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16735           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16736         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16737           that's common to all drivers. First methods to go there are
16738           Sebastien Pouliot's CAS Stack Propagation helper methods
16739         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16740           Sebastien Pouliot for CAS Stack Propagation
16741
16742 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16743
16744         * OSXStructs.cs:
16745           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16746
16747 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16748
16749         * DataGridTextBoxColumn.cs: fixed some members
16750         * GridColumnStylesCollection.cs: indexed column is case insensitive
16751         * DataGridTableStyle.cs: fixes
16752         * ThemeWin32Classic.cs: add new theme parameter
16753         * Theme.cs: add new theme parameter
16754         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16755         * DataGrid.cs: fixes, new internal properties, etc.
16756         * DataGridColumnStyle.cs: allows to set grid value
16757         *
16758
16759 2005-05-10  Peter Bartok  <pbartok@novell.com>
16760
16761         * AccessibleObject.cs:
16762           - Removed MonoTODO attribute on help, method is correct
16763           - Fixed Bounds property
16764         * AxHost.cs: Moved MonoTODO
16765         * ButtonBase.cs: Now setting AccessibleObject properties
16766         * RadioButton.cs: Setting proper AccessibleObject role
16767         * CheckBox.cs: Setting proper AccessibleObject role
16768         * ControlBindingsCollection.cs: Added properties, methods and attributes
16769         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16770           userdefined DataFormats.Format items as well
16771         * ListControl.cs: Removed data_member from the public eye
16772         * OpenFileDialog.cs:
16773           - Made class sealed
16774           - Added missing attributes
16775         * SaveFileDialog.cs: Added missing attributes
16776         * ImageListStreamer.cs: Fixed code that caused warnings
16777         * LinkLabel.cs: Removed unreachable code
16778         * TreeView.cs: Fixed code that caused warnings
16779         * PropertyGridView.cs: Fixed code that caused warnings
16780         * GridColumnStylesCollection.cs: Added missing attributes
16781         * GridTableStylesCollection: Added missing attribute
16782         * PropertyManager: Added .ctor
16783         * SecurityIDType: Added
16784         * DataObject.cs: Implemented class
16785         * LinkArea.cs: Added missing attribute
16786
16787 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16788
16789         * RadioButton.cs: call base method to allow to fire OnClick event
16790         * UpDownBase.cs: OnMouseUp call base method
16791         * CheckedListBox.cs: call base method before returning
16792         * TrackBar.cs: call base method before returning
16793         
16794
16795 2005-05-10  Peter Bartok  <pbartok@novell.com>
16796
16797         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16798           for messages
16799
16800 2005-05-10  Peter Bartok  <pbartok@novell.com>
16801
16802         * DataFormats.cs: Implemented
16803         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16804           XplatUIX11.cs: Added Clipboard APIs
16805         * XplatUIWin32.cs: Implemented Clipboard APIs
16806         * FolderBrowserDialog.cs: Added missing event, attributes
16807
16808 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16809
16810         * CheckBox.cs: call base method to allow to fire OnClick event
16811
16812 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16813
16814         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16815
16816 2005-05-06  Peter Bartok  <pbartok@novell.com>
16817
16818         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16819         * Screen.cs: Implemented
16820         * HelpNavigator.cs: Added
16821         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16822           property
16823         * HelpProvider.cs: Implemented all we can do until we have a CHM
16824           help library (which means that "What's This" does work now)
16825
16826 2005-05-06  Jackson Harper  <jackson@ximian.com>
16827
16828         * XplatUIX11.cs: Fix waking up the main loop.
16829                 
16830 2005-05-05  Peter Bartok  <pbartok@novell.com>
16831
16832         * XplatUI.cs: Updated revision
16833         * Form.cs: Removed enless loop
16834         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16835         * Label.cs (OnPaint): Added call to base.OnPaint()
16836         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16837         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16838         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16839         * AxHost.cs: Added
16840         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16841         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16842           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16843           reuse of ToolTipWindow by other controls
16844         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16845         * XplatUIX11.cs: Now clipping drawing area (experimental)
16846         * PictureBox.cs: Moved base.OnPaint() call to end of method
16847         * Theme.cs: Fixed ToolTip abstracts to match new format
16848         * ErrorProvider.cs: Implemented
16849
16850 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16851
16852         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16853         * LinkLabel.cs:
16854                 - Adds cursors
16855                 - Handles focus
16856                 - Implements LinkBehavior
16857                 - Fixes many issues
16858
16859 2005-05-03  Jackson Harper  <jackson@ximian.com>
16860
16861         * ListView.cs: Calculate the scrollbar positioning on resize and
16862         paint, so they get put in the correct place.
16863
16864 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16865
16866         * ColorDialogs.cs: The small color panels are now handled by
16867           SmallColorControl. This fixes drawing of the focus rectangle
16868           and adds a 3D border.
16869
16870 2005-05-03  Peter Bartok  <pbartok@novell.com>
16871
16872         * Control.cs: Modified version of Jonathan Chamber's fix for
16873           double-buffering
16874
16875 2005-05-03  Jackson Harper  <jackson@ximian.com>
16876
16877         * ListView.cs: Remove redraw variable. Control now handles whether
16878         or not a redraw needs to be done, and will only raise the paint
16879         event if redrawing is needed.
16880
16881 2005-05-03  Jackson Harper  <jackson@ximian.com>
16882
16883         * Splitter.cs: No decorations for the splitter form. Cache the
16884         hatch brush.
16885
16886 2005-05-03  Jackson Harper  <jackson@ximian.com>
16887
16888         * TreeView.cs: Use dashed lines to connect nodes. Use the
16889         ControlPaint method for drawing the focus rect instead of doing
16890         that in treeview.
16891
16892 2005-05-02  Peter Bartok  <pbartok@novell.com>
16893
16894         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
16895
16896 2005-04-29  Jackson Harper  <jackson@ximian.com>
16897
16898         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
16899         entire image buffer. Just clear the clipping rectangle.
16900
16901 2005-04-29  Jackson Harper  <jackson@ximian.com>
16902
16903         * ThemeWin32Classic.cs: Don't draw list view items that are
16904         outside the clipping rectangle.
16905
16906 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
16907
16908         * ListBox.cs: added horizontal item scroll
16909
16910 2005-04-29  Jackson Harper  <jackson@ximian.com>
16911
16912         * ThemeWin32Classic.cs: Remove some old debug code that was
16913         causing flicker with the new double buffering code.
16914
16915 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
16916
16917         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
16918         behave like combobox and comboboxlist (still not sure if this is
16919         correct though).
16920
16921 2005-04-28  Jackson Harper  <jackson@ximian.com>
16922
16923         * ThemeWin32Classic.cs: Don't fill the middle of progress
16924         bars. This fills areas outside of the clip bounds that don't need
16925         to be filled.
16926
16927 2005-04-28  Jackson Harper  <jackson@ximian.com>
16928
16929         * Control.cs: Don't expose functionality to touch the image buffers.
16930         * ProgressBar.cs:
16931         * ListView.cs: We do not need to (and no longer can) manipulate
16932         the image buffers directly. All of this is handled by Control.
16933
16934 2005-04-28  Peter Bartok  <pbartok@novell.com>
16935
16936         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
16937           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
16938           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
16939
16940 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
16941
16942         * Combobox:
16943                 - Adjust control's height for non-simple comboboxes (bug fix)
16944                 - Remove dead code
16945         * MenuAPI.cs: remove unused var
16946         * ScrollBar.cs: remove unsed var
16947                  
16948         * ListBox.cs: unselect items when clearing
16949
16950 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
16951
16952         * ListControl.cs: honors OnPositionChanged and default Selected Item
16953         * ListBox.cs: unselect items when clearing
16954
16955 2005-04-27  Jackson Harper  <jackson@ximian.com>
16956
16957         * X11Keyboard.cs: Initialize a default keyboard and give a warning
16958         if a "correct" keyboard is not found. This will make us not crash,
16959         but might give some users bad keyboard layouts...seems to be the
16960         same thing rewind does.
16961
16962 2005-04-27  Jackson Harper  <jackson@ximian.com>
16963
16964         * BindingManagerBase.cs: Attach the current/position changed
16965         handlers to their respective events.
16966
16967 2005-04-27  Jackson Harper  <jackson@ximian.com>
16968
16969         * Control.cs: Make sure that the first WM_PAINT does a full draw,
16970         not just a blit.
16971         * ThemeWin32Classic.cs: Don't fill the background for picture
16972         boxes. This could overright user drawing.
16973         * ComboBox.cs: Just fill the clipping rect not the entire client
16974         rect when drawing the background. This prevents pieces of the
16975         image buffer from getting overwritten and is theoretically faster.
16976
16977 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
16978
16979         * ComboBox.cs: Databinding support fixes, fire missing events
16980         * ListControl.cs: implement missing methods and properties, fixes
16981         * ThemeWin32Classic.cs: Databiding support on Drawing
16982         * CheckedListBox.cs: Databinding support fixes, fire missing events
16983         * ListBox.cs: Databinding support fixes, fire missing events
16984         
16985 2005-04-25  Peter Bartok  <pbartok@novell.com>
16986
16987         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
16988
16989 2005-04-25  Jackson Harper  <jackson@ximian.com>
16990
16991         * TreeView.cs: Use the horizontal scrollbars height not width when
16992         determining how much of the client area is available.
16993
16994 2005-04-25  Jackson Harper  <jackson@ximian.com>
16995
16996         * Control.cs: Double buffering is handled differently now. As per
16997         the spec, the extra buffer is created in the WM_PAINT message and
16998         passed down to the control's drawing code.
16999         * GroupBox.cs:
17000         * Label.cs:
17001         * CheckBox.cs:
17002         * ProgressBar.cs:
17003         * RadioButton.cs:
17004         * ColorDialog.cs:
17005         * ComboBox.cs:
17006         * PropertyGridView.cs:
17007         * UpDownBase.cs:
17008         * MessageBox.cs:
17009         * MenuAPI.cs:
17010         * ListView.cs:
17011         * ButtonBase.cs:
17012         * SizeGrip.cs:
17013         * ScrollBar.cs:
17014         * ListBox.cs:
17015         * TrackBar.cs:
17016         * ToolBar.cs:
17017         * PictureBox.cs:
17018         * DateTimePicker.cs:
17019         * StatusBar.cs:
17020         * TreeView.cs: Update to new double buffering system.
17021         * MonthCalendar.cs: Uncomment block, as Capture is now
17022         working. Update to new double buffering
17023         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17024         * PaintEventArgs.cs: New internal method allows us to set the
17025         graphics object. This is used for double buffering.
17026         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17027         rectangle. The internal paint_area var has been removed from
17028         StatusBar. The clipping rect should be used instead.
17029         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17030         * TabPage.cs: The RefreshTabs method was removed, so just call the
17031         tab controls Refresh method now.
17032         * TabControl.cs: Update to new double buffering. Make sure the
17033         handle is created before sizing the tab pages, otherwise we will
17034         get stuck in a loop.
17035
17036 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17037
17038         * LinkLabel.cs: Fix typo, bug #74719; patch
17039           from Borja Sanchez Zamorano
17040
17041 2005-04-22  Jackson Harper  <jackson@ximian.com>
17042
17043         * TreeNode.cs: Implement Handle stuff.
17044         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17045
17046 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17047
17048         * DataGridTextBoxColumn.cs: call base constructors, fixes
17049         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17050         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17051         * DataGridTableStyle.cs: implements create default column styles
17052         * DataGridBoolColumn.cs: which types can handle
17053         * DataGrid.cs: missing methods, fixes, new functionality
17054         * DataGridColumnStyle.cs: fixes
17055
17056 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17057         * FolderBrowserDialog.cs:
17058         - Use a thread to fill the TreeView
17059         - Adjusted some sizes
17060
17061 2005-04-19  Peter Bartok  <pbartok@novell.com>
17062
17063         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17064           property. Fixes #74360.
17065
17066 2005-04-19  Jackson Harper  <jackson@ximian.com>
17067
17068         * XEventQueue.cs: Lock when getting the lockqueue size.
17069         * PictureBox.cs: Call base OnPaint
17070         
17071 2005-04-19  Peter Bartok  <pbartok@novell.com>
17072
17073         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17074           messages were no longer being processed (this broke BeginInvoke)
17075
17076           
17077 2005-04-18  Jackson Harper  <jackson@ximian.com>
17078
17079         * TreeView.cs: buglet that caused node images to get drawn
17080         regardless of whether or not they were in the clipping rectangle.
17081
17082 2005-04-18  Jackson Harper  <jackson@ximian.com>
17083
17084         * CurrencyManager.cs: There are four rules for GetItemProperties:
17085         - If the type is an array use the element type of the array
17086         - If the type is a typed list, use the type
17087         - If the list contains an Item property that is not an object, use
17088         that property
17089         - use the first element of the list if there are any elements in
17090         the list.
17091         
17092 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17093
17094         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17095         click. This handles offsets for scrolling properly and reduces
17096         memory. Also fixed GetNode to not offset now that TopNode works
17097         properly.
17098         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17099         
17100 2005-04-17  Jackson Harper  <jackson@ximian.com>
17101
17102         * CursorConverter.cs: Initial implementation.
17103
17104 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17105
17106         * ListControl.cs: work towards complex data binding support on ListControl
17107         * CurrencyManager.cs: work towards complex data binding support on ListControl
17108         * ListBox.cs: work towards complex data binding support on ListControl
17109
17110
17111 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17112
17113         * GridTableStylesCollection.cs: fixes name and constructor
17114         * DataGridTableStyle.cs: fixes
17115         * DataGridBoolColumn.cs: fixes names and constructors
17116         * DataGrid.cs: define methods and properties. Some init implementations
17117         * DataGridCell.cs: define methods and properties. Some init implementations
17118         * GridTablesFactory.cs: Define methods and properties
17119
17120 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17121
17122         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17123         graphics port changes.  We still want the coordinates in global screen
17124         coordinates.
17125
17126 2005-04-14  Jackson Harper  <jackson@ximian.com>
17127
17128         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17129         check plus minus or checkbox clicks unless those features are enabled.
17130
17131 2005-04-14  Jackson Harper  <jackson@ximian.com>
17132
17133         * TreeView.cs: Add methods for setting the top and bottom visible
17134         nodes. TreeNode::EnsureVisible uses these methods.
17135         * TreeNode.cs: Implement EnsureVisible
17136
17137 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17138
17139         * Form.cs: Pospone menu assignation if the window has not been created yet
17140         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17141         size and position
17142
17143 2005-04-12  Jackson Harper  <jackson@ximian.com>
17144
17145         * TreeView.cs: Set the TopNode properly when scrolling
17146         occurs. This has the added benifit of reducing the amount of
17147         walking that needs to be done when drawing. Also removed an old
17148         misleading TODO.
17149         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17150         
17151 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17152
17153         * Timer.cs: fixes interval setting when the timer is already enabled
17154         
17155 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17156
17157         * FolderBrowserDialog.cs: First approach
17158
17159 2005-04-09  Peter Bartok  <pbartok@novell.com>
17160
17161         * FolderBrowserDialog: Added
17162
17163 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17164
17165         * LinkLabel.cs: move drawing code into the theme
17166         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17167         * Theme.cs: define DrawLinkLabel method
17168
17169 2005-04-05  Jackson Harper  <jackson@ximian.com>
17170
17171         * BindingContext.cs: Use weak references so these bad actors don't
17172         stay alive longer then they need to.
17173
17174 2005-04-05  Jackson Harper  <jackson@ximian.com>
17175
17176         * ListControl.cs: Basic implementation of complex databinding.
17177         * ComboBox.cs:
17178         * ListBox.cs: Add calls to ListControl databinding methods.
17179
17180 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17181
17182         * FileDialog.cs:
17183           - Don't change PopupButtonState to Normal when the
17184             PopupButton gets pressed several times.
17185           - Renamed ButtonPanel to PopupButtonPanel
17186
17187 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17188
17189         * ColorDialog.cs: Use cached objects instead of creating them
17190         * LinkLabel.cs: Use cached objects instead of creating them
17191         * Splitter.cs: Use cached objects instead of creating them
17192         * FontDialog.cs: Use cached objects instead of creating them
17193         * PropertyGridView.cs: Use cached objects instead of creating them
17194         * MessageBox.cs: Use cached objects instead of creating them
17195         * FileDialog.cs: Use cached objects instead of creating them
17196         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17197         * TreeView.cs: Use cached objects instead of creating them
17198         
17199 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17200
17201         * Control.cs: use Equals to compare the font since no == op
17202         * ScrollBar.cs: use Equals to compare the font since no == op
17203
17204 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17205
17206         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17207
17208 2005-04-01  Jackson Harper  <jackson@ximian.com>
17209
17210         * Binding.cs: Implement IsBinding.
17211         * BindingManagerBase.cs:
17212         * PropertyManager.cs:
17213         * CurrencyManager.cs: Add IsSuspended property.
17214
17215 2005-04-01  Jackson Harper  <jackson@ximian.com>
17216
17217         * Binding.cs: Had some IsAssignableFrom calls backwards.
17218
17219 2005-04-01  Jackson Harper  <jackson@ximian.com>
17220
17221         * Binding.cs: Handle null data members when pulling data.
17222         * PropertyManager.cs: Handle the data member being a property that
17223         does not exist.
17224
17225 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17226
17227         * DataGridTextBoxColumn.cs: fixes signature
17228         * DataGrid.cs: calls right constructor
17229
17230 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17231
17232         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17233         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17234         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17235         * DataGridTableStyle.cs: implements DataGridTableStyle
17236         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17237         * DataGridTextBox.cs: implements DataGridTextBox
17238         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17239
17240 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17241
17242         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17243
17244 2005-03-29  Peter Bartok  <pbartok@novell.com>
17245
17246         * Application.cs:
17247           - Properly implemented CompanyName property
17248           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17249             returns a path that includes CompanyName, ProductName and
17250             Version (fixes bug #70330)
17251
17252 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17253
17254         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17255           fixes bug #72588.
17256
17257 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17258
17259         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17260         
17261           - Added ReadOnly CheckBox
17262           - Further refactoring: moved some code from Open-/SaveFileDialog
17263             to FileDialog
17264
17265 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17266
17267         * OpenFileDialog.cs: Fixed CheckFileExists
17268         * FileDialog.cs:
17269           Moved FileView and DirComboBox outside FileDialog class.
17270           They can now be used outside FileDialog
17271
17272 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17273
17274         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17275         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17276
17277 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17278
17279         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17280           - Added missing CreatePrompt property in SaveDialog
17281           - Overall SaveDialog handling should be better now
17282           - Added non standard ShowHiddenFiles property
17283           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17284           - Added InitialDirectory and RestoreDirectory support
17285
17286 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17287
17288         * FileDialog.cs: Made dirComboBox usable
17289
17290 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17291
17292         * FileDialog.cs: Added Filter support (case sensitiv)
17293
17294 2005-03-24  Jackson Harper  <jackson@ximian.com>
17295
17296         * TabControl.cs: Need a couple more pixels for the lines.
17297
17298 2005-03-23  Jackson Harper  <jackson@ximian.com>
17299
17300         * TabControl.cs: Give the tab page focus when it is selected.
17301
17302 2005-03-23  Jackson Harper  <jackson@ximian.com>
17303
17304         * TabControl.cs: Account for the drawing of tabs borders when
17305         invalidating. If the slider was clicked dont do click detection on
17306         the tabs.
17307
17308 2005-03-23  Jackson Harper  <jackson@ximian.com>
17309
17310         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17311
17312 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17313
17314         * CategoryGridEntry.cs: Added
17315         * GridItem.cs: Added helper properties
17316         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17317         * GridEntry.cs: Updated code for collection
17318         * PropertyGrid.cs: Cleaned up some formatting
17319         * PropertyGridView.cs: Added drop down functionality for enums.
17320         * GridItemCollection.cs: Added enumerator logic
17321         * PropertyGridEntry.cs: Added
17322
17323 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17324
17325         * FileDialog.cs:
17326           - Removed unnecessary commented code
17327           - Fixed handling for entering the filename manually in the combobox
17328
17329 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17330
17331         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17332
17333 2005-03-18  Peter Bartok  <pbartok@novell.com>
17334
17335         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17336           them being touching the border
17337
17338 2005-03-18  Peter Bartok  <pbartok@novell.com>
17339
17340         * TextControl.cs: Quick hack to center text better
17341
17342 2005-03-18  Peter Bartok  <pbartok@novell.com>
17343
17344         * ControlPaint.cs:
17345           - Don't throw NotImplemented exceptions, just print a notice once
17346             instead (requested by Miguel). This makes running existing SWF
17347             apps a bit easier
17348         * Control.cs:
17349           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17350           - Added context menu trigger on right click
17351         * Panel.cs: Trigger invalidate on resize
17352         * StatusBar.cs:
17353           - Removed old double-buffer drawing
17354           - Added ResizeRedraw style to force proper update of statusbar
17355         * ListView.cs:
17356           - Removed debug output
17357         * ThemeWin32Classic.cs:
17358           - Fixed drawing of status bar, now draws Text property if there
17359             are no defined panels
17360
17361 2005-03-18  Jackson Harper  <jackson@ximian.com>
17362
17363         * ImageList.cs: When the image stream is set pull all the images
17364         from it.
17365         * ImageListStreamer.cs: Implement reading image list streams.
17366
17367 2005-03-18  Peter Bartok  <pbartok@novell.com>
17368
17369         * ThemeWin32Classic.cs (DrawPictureBox):
17370           - Fixed calculations for centered drawing
17371           - Fixed drawing for normal mode, not scaling the image on normal
17372
17373 2005-03-18  Peter Bartok  <pbartok@novell.com>
17374
17375         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17376           textbox
17377         * FileDialog.cs:
17378           - Made Open/Save button the accept button for FileDialog
17379           - Tied the cancel button to the IButtonControl cancel button
17380           - Save/Open now properly builds the pathname
17381           - Now handles user-entered text
17382           - Preventing crash on right-click if no item is selected
17383           - Fixed Text property, now uses contents of textbox
17384           - Fixed SelectedText property, now just returns the text part that
17385             is selected in the text box
17386
17387 2005-03-18  Jackson Harper  <jackson@ximian.com>
17388
17389         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17390         rect, make sure to de-adjust the interior rect after drawing the
17391         tab text.
17392
17393 2005-03-18  Peter Bartok  <pbartok@novell.com>
17394
17395         * MenuAPI.cs: Remove menu *before* executing selected action to
17396           prevent the menu from 'hanging around'
17397           
17398 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17399
17400         * XplatUIOSX.cs: Implemented WorkingArea property
17401
17402 2005-03-17  Peter Bartok  <pbartok@novell.com>
17403
17404         * XplatUIX11.cs: Fixed menu coord calculations
17405         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17406           for calculating offsets
17407
17408 2005-03-17  Peter Bartok  <pbartok@novell.com>
17409
17410         * Hwnd.cs: Do not consider menu presence for default client
17411           rectangle location/size
17412         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17413           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17414           translation functions
17415         * FileDialog.cs: Fixed (what I presume is a) typo
17416
17417 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17418
17419         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17420           X access (avoids X-Async errors)
17421
17422 2005-03-16  Jackson Harper  <jackson@ximian.com>
17423
17424         * TabControl.cs: Raise the SelectedIndexChanged event.
17425
17426 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17427
17428         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17429           - Removed vertical ToolBar and replaced it with a custom panel
17430             (desktop and home button already work)
17431           - Added Help button (some controls get resized or relocated then)
17432           - Draw correct text depending on Open or Save.
17433           - Fixed some typos...
17434
17435 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17436
17437         * ScrollBar.cs:
17438           - Only change Maximum and Minimum when need it (bug fix)
17439
17440 2005-03-15  Peter Bartok  <pbartok@novell.com>
17441
17442         * Form.cs: Use Handle for icon, to trigger creation if
17443           the window does not yet exist
17444         * Control.cs:
17445           - CanSelect: Slight performance improvement
17446           - Focus(): Preventing possible recursion
17447           - Invalidate(): Removed ControlStyle based clear flag setting
17448           - WM_PAINT: fixed logic for calling OnPaintBackground
17449           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17450             EraseWindowBackground if the control doesn't paint background
17451         * XplatUIWin32.cs:
17452           - Moved EraseWindowBackground() method to internal methods
17453           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17454             is sent via SendMessage on BeginPaint call on Win32
17455         * XplatUIX11.cs:
17456           - Added EraseWindowBackground() method
17457           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17458             PaintEventStart, which more closely matches Win32 behaviour
17459           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17460           - Fixed SetFocus() to properly deal with client and whole windows
17461         * Hwnd.cs: Added ErasePending property
17462         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17463         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17464
17465 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17466
17467         * XplatUIOSX.cs:
17468           - Fix hard loop when timers exist.
17469           - Fix bugs with middle and right click for 3 button mice.
17470
17471 2005-03-11  Peter Bartok  <pbartok@novell.com>
17472
17473         * XplatUIX11.cs:
17474           - get_WorkingArea: Need to call X directly, GetWindowPos only
17475             returns cached data now
17476           - Added sanity check to GetWindowPos hwnd usage
17477
17478 2005-03-11  Jackson Harper  <jackson@ximian.com>
17479
17480         * BindingManagerBase.cs: This method isn't used anymore as
17481         PullData now updates the data in the control.
17482
17483 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17484
17485         * Form.cs: fixes menu drawing on X11
17486         * MenuAPI.cs:  fixes menu drawing on X11
17487
17488 2005-03-11  Peter Bartok  <pbartok@novell.com>
17489
17490         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17491           from Jonathan Gilbert; should fix bug #73606
17492         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17493           in Screen coordinates. Thanks, Jordi.
17494         * Form.cs: Added missing attribute
17495
17496 2005-03-11  Peter Bartok  <pbartok@novell.com>
17497
17498         * Form.cs:
17499           - Rudimentary Mdi support
17500           - Removed outdated FormParent code
17501           - Implemented lots of missing properties and methods, still missing
17502             transparency support
17503           - Added missing attributes
17504           - Implemented support for MaximumBounds
17505           - Added firing of various events
17506         * XplatUI.cs: Added SetIcon() method
17507         * XplatUIDriver.cs: Added SetIcon() abstract
17508         * XplatUIOSX.cs: Stubbed out SetIcon() method
17509         * XplatUIX11.cs:
17510           - Implemented SetIcon() support
17511           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17512           - Switched to unix line endings
17513         * XplatUIWin32.cs:
17514           - Made POINT internal so for can access it as part of MINMAX
17515           - Implemented SetIcon() support
17516           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17517             native Mdi support again, might have to go managed)
17518         * Control.cs: Now fires the StyleChanged event
17519         * MdiClient.cs: Added; still mostly empty
17520
17521 2005-03-10  Peter Bartok  <pbartok@novell.com>
17522
17523         * SaveFileDialog.cs: Added emtpy file
17524
17525 2005-03-08  Peter Bartok  <pbartok@novell.com>
17526
17527         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17528           in turn triggers OnCreateContro) when creating a handle for the
17529           first time.
17530         * TextControl.cs: Fixed endless loop in certain cases when
17531           replacing the current selection
17532
17533 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17534
17535         * ScrollBar.cs:
17536           - Honors NewValue changes in Scroll events allowing apps to change it
17537           - Adds First and Last Scroll events
17538           - Fixes Thumb events
17539
17540 2005-03-07  Peter Bartok  <pbartok@novell.com>
17541
17542         * Hwnd.cs: Added DefaultClientRectangle property
17543         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17544           more detailed debug information
17545         * XplatUIX11.cs:
17546           - Fixed size-change feedback loop, where we would pull an old size
17547             off the queue and mistakenly change our window's size to an
17548             earlier value
17549           - Now compressing ConfigureNotify events, to reduce looping and
17550             redraw issues
17551         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17552           is called
17553
17554 2005-03-07  Jackson Harper  <jackson@ximian.com>
17555
17556         * Binding.cs: Push data pushes from data -> property. Check if the
17557         property is readonly when attempting to set it.
17558
17559 2005-03-07  Jackson Harper  <jackson@ximian.com>
17560
17561         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17562         instead of IsSubclassOf. Pulling data now sets the value on the
17563         control.
17564         * PropertyManager.cs:
17565         * CurrencyManager.cs: Just need to pull data when updating now,
17566         because PullData will set the value on the control.
17567
17568 2005-03-04  Jackson Harper  <jackson@ximian.com>
17569
17570         * Binding.cs: Implement data type parsing and converting on pulled
17571         data. TODO: Are there more ways the data can be converted?
17572
17573 2005-03-04  Jackson Harper  <jackson@ximian.com>
17574
17575         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17576         controls Validating method so we can repull the data when the
17577         control loses focus.
17578
17579 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17580
17581         * ColumnHeader.cs:
17582           - Fixes null string format
17583           
17584         * ListView.cs:
17585           - Adds enum type checks
17586           - Fixes redrawing and recalc need after changing some properties
17587           - Fixes on focus_item set after the event
17588           - Fixes adding columns after the control has been created
17589           
17590         * ThemeWin32Classic.cs:
17591           - Fixes CheckBox focus rectangle
17592           - Fixes ColumnHeader drawing
17593
17594
17595 2005-03-03  Jackson Harper  <jackson@ximian.com>
17596
17597         * Binding.cs: Bind to <Property>Changed events so we can detect
17598         when properties are changed and update the data.
17599
17600 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17601
17602         * ImageList.cs:
17603           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17604           - Fixes ImageList constructor with ImageList container
17605           - Fixes image scaling (wrong parameters at DrawImage)
17606
17607 2005-02-02  Jackson Harper  <jackson@ximian.com>
17608
17609         * Binding.cs: Make property searches case-insensitive. Eliminate
17610         some duplicated code.
17611
17612 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17613
17614         * ComboBox.cs:
17615                 - Handle focus event
17616                 - Fix scrollbar events
17617                 - Discard highlighted item if remove it
17618                 - Fixes SelectedItem with strings
17619
17620 2005-03-01  Peter Bartok  <pbartok@novell.com>
17621
17622         * Control.cs:
17623           - Fixed Visible property, now follows (once again) parent chain
17624             to return false if any control in the chain is visible=false
17625           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17626           - Fixed several places where is_visible instead of Visible was used
17627           - Implemented FIXME related to focus selection when setting focused
17628             control to be invisible
17629
17630         * XplatUIWin32.cs: Now using proper method to find out if window is
17631           visible. Thanks to Jordi for pointing it out
17632
17633 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17634
17635         * ComboBox.cs: show/hide scrollbar instead of creating it
17636
17637 2005-02-27  Jackson Harper  <jackson@ximian.com>
17638
17639         * CurrencyManager.cs: Add PositionChanged stuff.
17640
17641 2005-02-27  Peter Bartok  <pbartok@novell.com>
17642
17643         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17644         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17645         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17646         * XplatUIX11.cs:
17647           - Implemented GetMenuDC()
17648           - Implemented GetMenuOrigin()
17649           - Implemented ReleaseMenuDC()
17650           - Implemented generation of WM_NCPAINT message
17651           - Implemented generation and handling of WM_NCCALCSIZE message
17652         * Form.cs: Added debug helper message for Jordi's menu work
17653         * Hwnd.cs:
17654           - Modified ClientRect property; added setter, fixed getter to handle
17655             setting of ClientRect
17656           - Added MenuOrigin property
17657
17658 2005-02-26  Peter Bartok  <pbartok@novell.com>
17659
17660         * XplatUIX11.cs:
17661           - Destroys the caret if a window that's being destroyed contains it
17662           - Ignores expose events coming from the X11 queue for windows that
17663             already are destroyed
17664           - Now uses the proper variable for handling DestroyNotify, before we
17665             marked the wrong window as destroyed
17666           - Improved/added some debug output
17667
17668 2005-02-26  Peter Bartok  <pbartok@novell.com>
17669
17670         * X11Keyboard.cs: Fixes to work on 64bit systems
17671
17672 2005-02-26  Peter Bartok  <pbartok@novell.com>
17673
17674         * Control.cs:
17675           - Now calling OnHandleDestroyed from DestroyHandle()
17676             instead of Dispose()
17677           - Removed bogus call to controls.Remove() from DestroyHandle()
17678
17679 2005-02-26  Peter Bartok  <pbartok@novell.com>
17680
17681         * Control.cs: Properly destroy child windows when our handle is
17682           destroyed
17683
17684 2005-02-25  Peter Bartok  <pbartok@novell.com>
17685
17686         * XplatUI.cs:
17687           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17688           - Alphabetized Static Methods and Subclasses
17689
17690         * XplatUIX11.cs:
17691           - Added XException class to allow custom handling of X11 exceptions
17692           - Created custom X11 error handler, tied into XException class
17693           - Added support for MONO_XEXCEPTIONS env var to allow the user
17694             to either throw an exception on X errors or continue running
17695             after displaying the error
17696           - Added handling of DestroyNotify message
17697           - Added handler for CreateNotify message (still disabled)
17698           - Improved (tried to at least) Where method to provide file and lineno
17699         * X11Structs.cs:
17700           - Added XErrorHandler delegate
17701           - Added XRequest enumeration (to suppor translation of errors)
17702
17703 2005-02-25  Jackson Harper  <jackson@ximian.com>
17704
17705         * PropertyManager.cs: Implement editing features
17706         * CurrencyManager.cs:
17707         * Binding.cs: First attempt at UpdateIsBinding
17708         * BindingManagerBase.cs: Call UpdateIsBinding before
17709         pushing/pulling data.
17710
17711 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17712
17713         * MenuAPI.cs: Respect disabled items
17714         * ThemeWin32Classic.cs
17715                 - Caches ImageAttributes creation for DrawImageDisabled
17716                 - Fixes vertical menu line drawing
17717                 - Draws disabled arrows in disable menu items
17718
17719 2005-02-24  Peter Bartok  <pbartok@novell.com>
17720
17721         * Hwnd.cs:
17722           - Added UserData property to allow associating arbitrary objects
17723             with the handle
17724           - Fixed leak; now removing Hwnd references from static windows array
17725         * XplatUIWin32.cs:
17726           - Fixed Graphics leak in PaintEventEnd
17727           - Removed usage of HandleData, switched over to Hwnd class
17728         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17729
17730 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17731
17732         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17733         * ScrollBar.cs: Fixes bug
17734         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17735          keyboard navigation enhancements
17736
17737 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17738
17739         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17740         * GroupBox.cs: Add control styles
17741         * Label.cs: Add control styles
17742         * UpDownBase.cs: Add control styles
17743         * ListBox.cs: Add control styles
17744         * XplatUIWin32.cs: Fixes wrong parameter order
17745
17746
17747 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17748
17749         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17750
17751 2005-02-23  Jackson Harper  <jackson@ximian.com>
17752
17753         * PropertyManager.cs: Implement property binding. This doesn't
17754         seem to work yet though as (I think) there are some bugs in
17755         System.ComponentModel.PropertyDescriptor.
17756         * BindingContext.cs: Use new PropertyManager constructor.
17757
17758 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17759
17760         * ProgressBar.cs: use clip region in ProgressBar
17761         * ThemeWin32Classic.cs: use clip region in ProgressBar
17762
17763 2004-02-22  Jackson Harper  <jackson@ximian.com>
17764
17765         * BindingsCollection.cs: Remove some debug code.
17766
17767 2005-02-22  Jackson Harper  <jackson@ximian.com>
17768
17769         * BindingContext.cs:
17770         * ControlBindingsCollection.cs:
17771         * CurrencyManager.cs:
17772         * Binding.cs:
17773         * BindingManagerBase.cs: Initial implementation
17774         * BindingsCollection.cs: Add an internal contains method that the
17775         BindingManagerBase uses to ensure bindings aren't added twice to
17776         the collection.
17777         * PropertyManager.cs: Stubbed out.
17778         * Control.cs:
17779         * ContainerControl.cs: Hook up databinding
17780         
17781 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17782
17783         * XplatUIOSX.cs:
17784           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17785           Fixed Invalidate/Update chain.
17786           Fixed tons of other minor bugs (this is almost a complete rewrite).
17787
17788 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17789
17790         * ComboBox.cs: do subcontrol creation when the control is created
17791
17792 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17793
17794         * Label.cs: fixes image drawing (image and imagelist)
17795         * ThemeWin32Classic.cs: cache brushes
17796         
17797 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17798
17799         * Form.cs: Move menu drawing code to Theme class
17800         * ComboBox.cs: Move ComboBox drawing code to Theme class
17801         * MenuItem.cs: Move menu drawing code to Theme class
17802         * MenuAPI.cs: Move menu drawing code to Theme class
17803         * ThemeWin32Classic.cs: New methods
17804         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17805         * ListBox.cs: Move Listbox drawing code to Theme class
17806         * Theme.cs: New methods
17807
17808 2005-02-20  Peter Bartok  <pbartok@novell.com>
17809
17810         * Control.cs:
17811           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17812             only process mnemonics on those)
17813           - Fixed event sequence for key handling; first calling
17814             ProcessKeyEventArgs now
17815         * TextBoxBase.cs:
17816           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17817             for processing non-character keys
17818           - Fixed WM_CHAR to generate proper event sequence before processing
17819         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17820           generation
17821
17822 2005-02-19  Peter Bartok  <pbartok@novell.com>
17823
17824         * UserControl.cs: Added TextChanged event; added attributes
17825         * SizeGrip.cs: Implemented resizing and optional display of grip
17826         * Form.cs: Fixed attribute
17827         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17828           Changed meaning of ScrollWindow bool argument; instead of the
17829           clear attribute (which will be true usually anyway), it gives the
17830           option of moving child controls as well.
17831         * XplatUIX11.cs:
17832           - Changed to match new ScrollWindow argument
17833           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17834             now handles the implicit parent window a WM puts around us
17835         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17836           to work)
17837         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17838         * TreeView.cs: Adjusted to new ScrollWindow arguments
17839
17840 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17841
17842         * Form.cs: Menu integration with non-client area
17843         * MenuItem.cs: Menu integration with non-client area
17844         * MenuAPI.cs: Menu integration with non-client area
17845
17846 2005-02-18  Peter Bartok  <pbartok@novell.com>
17847
17848         * MethodInvoker.cs: Added
17849         * MdiLayout.cs: Added
17850         * SendKeys.cs: Started implementation
17851         * ErrorIconAlignment.cs: Added
17852
17853 2005-02-18  Peter Bartok  <pbartok@novell.com>
17854
17855         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17856         * Form.cs: Added handling for Menu-related Non-client messages
17857
17858 2005-02-17  Peter Bartok  <pbartok@novell.com>
17859
17860         * UpDownBase.cs: Fixed typo, compilation errors
17861         * DomainUpDown.cs: Fixed attribute value
17862
17863 2005-02-16  Miguel de Icaza  <miguel@novell.com>
17864
17865         * UpDownBase.cs: Attach entry events.
17866         Propagate events.
17867         Add ForeColor property, Focused, InterceptArrowKeys (interception
17868         does not work yet).
17869
17870 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
17871
17872         * Form.cs:
17873                 - Redraw non client are on Setmenu
17874                 - Calc proper menu starting point
17875
17876 2005-02-17  Peter Bartok  <pbartok@novell.com>
17877
17878         * Application.cs: Fixed message_filter check
17879
17880 2005-02-17  Peter Bartok  <pbartok@novell.com>
17881
17882         * Application.cs: Now calls registered message filters
17883         * DockStyle.cs: Fixed attribute
17884         * Form.cs: Fixed attribute
17885         * Menu.cs: Fixed attribute
17886         * ToolTip.cs: Fixed attribute
17887         * TreeNode.cs: Added missing attributes and arranged in regions
17888         * PropertyGrid.cs: Fixed signatures
17889         * TreeNodeCollection.cs: Added attributes
17890         * Splitter.cs: Added missing attributes; arranged into regions
17891         * TabPage.cs: Added missing attributes; arranged into regions
17892         * TextBoxBase.cs: Added missing attributes
17893         * TextBox.cs: Added missing attributes
17894         * ArrangeDirection.cs: Added missing attributes
17895         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
17896         * ToolBarButton.cs: Fixed attributes
17897         * AnchorStyles.cs: Fixed attribute
17898         * TrackBar.cs: Fixed attributes
17899         * TabControl.cs: Added missing attributes and arranged into regions
17900         * ToolBar.cs: Fixed attribute
17901         * StatusBar.cs: Fixed signature, organized into regions and added
17902           attributes
17903         * StatusBarPanel.cs: Fixed attributes
17904         * ContentsResizedEventArgs.cs: Implemented
17905         * ContentsResizedEventHandler.cs: Implemented
17906         * DateBoldEventArgs.cs: Implemented
17907         * DateBoldEventHandler.cs: Implemented
17908         * UpDownEventArgs.cs: Implemented
17909         * UpDownEventHandler.cs: Implemented
17910         
17911 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
17912
17913         * Form.cs: first Menu NC refactoring
17914         * MenuAPI.cs: first Menu NC refactoring
17915         
17916 2005-02-16  Peter Bartok  <pbartok@novell.com>
17917
17918         * ImeMode.cs: Added missing attributes
17919         * Menu.cs: Fixed attribute
17920         * GroupBox.cs: Fixed attribute
17921         * Label.cs: Fixed attribute
17922         * ColorDialog.cs (RunDialog): Removed TODO attribute
17923         * ComboBox.cs: Fixed attributes
17924         * ListControl.cs: Added missing attributes
17925         * PropertyGrid.cs: Fixed attributes
17926         * Control.cs: Fixed attributes
17927         * ListViewItem.cs: Added TypeConverter attribute
17928         * NotifyIcon.cs: Fixed attributes
17929         * ListView.cs: Fixed attributes
17930         * ButtonBase.cs: Fixed attribute
17931         * ImageList.cs: Added missing attributes
17932         * ContainerControl.cs: Fixed signature
17933         * CheckedListBox.cs: Fixed attribute; added missing attributes
17934         * Panel.cs: Fixed attributes
17935         * PropertyTabChangedEventArgs.cs: Added missing attribute
17936         * PropertyValueChangedEventArgs.cs: Added missing attribute
17937         * Binding.cs: Fixed attribute
17938         * ListViewItemConverter: Implemented ListViewSubItemConverter class
17939         * ListBox.cs: Fixed attribute; added missing attributes;
17940         * ScrollableControl.cs: Added missing attributes
17941         * PictureBox.cs: Added missing attributes; implemented missing property
17942         * DateTimePicker.cs: Added missing attributes
17943         * Theme.cs (ToolWindowCaptionHeight): Fixed type
17944         * MonthCalendar.cs: Fixed attributes
17945         * StatusBarPanel.cs: Added missing attributes
17946         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
17947
17948 2005-02-16  Peter Bartok  <pbartok@novell.com>
17949
17950         * TextBoxBase.cs: The previous method to enforce height yet remember
17951           the requested high was less than ideal, this is an attempt to do
17952           it better.
17953         * Control.cs: Added comment about possible problem
17954         * Copyright: Updated format
17955         * GridItemType.cs: Fixed swapped values
17956
17957 2005-02-15  Jackson Harper  <jackson@ximian.com>
17958
17959         * BaseCollection.cs: Use property so we never access an
17960         uninitialized list. Also initialize the list in the property.
17961
17962 2005-02-15  Peter Bartok  <pbartok@novell.com>
17963
17964         * GroupBox.cs (ProcessMnemonic): Implemented
17965         * Label.cs (ProcessMnemonic): Implemented
17966         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
17967           hotkeys
17968
17969 2005-02-15  Peter Bartok  <pbartok@novell.com>
17970
17971         * RadioButton.cs (ProcessMnemonic): Implemented
17972         * CheckBox.cs (ProcessMnemonic): Implemented
17973         * Control.cs:
17974           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
17975             handling
17976           - Added internal method to allow calling ProcessMnemonic from other
17977             controls
17978         * ContainerControl.cs:
17979           - Started support for handling validation chain handling
17980           - Implemented ProcessMnemonic support
17981           - Added Select() call to Active, to make sure the active control
17982             receives focus
17983         * Form.cs: Setting toplevel flag for Forms (this was lost in the
17984           FormParent rewrite)
17985         * ThemeWin32Classic.cs:
17986           - DrawCheckBox(): Fixed stringformat to show hotkeys
17987           - DrawRadioButton(): Fixed stringformat to show hotkeys
17988         * CommonDialog.cs: Removed WndProc override, not needed
17989
17990 2005-02-14  Peter Bartok  <pbartok@novell.com>
17991
17992         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
17993           missed those in the rewrite
17994
17995 2005-02-14  Miguel de Icaza  <miguel@novell.com>
17996
17997         * NumericUpDown.cs (Increment, ToString): Add.
17998         (DecimalPlaces): implement.
17999         
18000         Add attributes.
18001         
18002         * UpDownBase.cs: Add the designer attributes.
18003
18004 2005-02-13  Peter Bartok  <pbartok@novell.com>
18005
18006         * Panel.cs: Removed border_style, now in Control
18007         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18008           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18009
18010 2005-02-13  Peter Bartok  <pbartok@novell.com>
18011
18012         * MouseButtons.cs: Added missing attributes
18013         * XplatUIStructs.cs: Added enumeration for title styles
18014         * LeftRightAlignment.cs: Added missing attributes
18015         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18016           it compatible with Graphics.FromHwnd()
18017         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18018         * Keys.cs: Added missing attributes
18019         * SelectionRange.cs: Added missing attributes
18020         * SelectionRangeConverter.cs: Added
18021         * XplatUI.cs:
18022           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18023             ReleaseMenuDC methods
18024           - Renamed ReleaseWindow to UngrabWindow
18025           - Added proper startup notice to allow version identification
18026         * Form.cs:
18027           - Added missing attributes
18028           - Removed FormParent concept
18029         * Label.cs: Removed border_style field, now in Control
18030         * RadioButton.cs: Now properly selects RadioButton when focus is
18031           received
18032         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18033         * Control.cs:
18034           - Added missing attributes
18035           - Added borderstyle handling
18036           - Removed FormParent concept support
18037           - Fixed calls to XplatUI to match changed APIs
18038           - Fixed bug that would case us to use disposed Graphics objects
18039           - Removed unneeded internal methods
18040           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18041           - SelectNextControl(): Fixed to properly check common parents
18042         * TextBoxBase.cs: Removed border_style field (now in Control)
18043         * MessageBox.cs:
18044           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18045             fixed calculations for form size
18046           - Added support for localized strings and icons
18047           - Improved form size calculations, added border
18048         * ListView.cs: Removed border_style field (now in Control)
18049         * X11Structs.cs: Moved several structs from X11 driver here
18050         * X11Keyboard.cs: Changed debug message
18051         * Application.cs: Removed FormParent concept support
18052         * CommonDialog.cs:
18053           - Resetting end_modal flag
18054           - Removed FormParent concept support
18055         * NativeWindow.cs: Removed FormParent concept support
18056         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18057           Client area and Non-Client whole window to allow support for WM_NC
18058           messages
18059         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18060           prevent using it until it supports Hwnd as per Geoff Norton's request
18061         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18062         * PictureBox.cs: Removed border_style field, now in Control
18063         * XplatUIWin32.cs: Added new driver methods
18064
18065 2005-02-12  Peter Bartok  <pbartok@novell.com>
18066
18067         * OpacityConverter.cs: Implemented
18068         * Hwnd.cs: Internal class to support drivers that need to emulate
18069           client area/non-client area window behaviour
18070
18071 2005-02-11  Peter Bartok  <pbartok@novell.com>
18072
18073         * KeysConverter.cs: Implemented
18074
18075 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18076
18077         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18078         * LinkLabel: Added missing attributes
18079         * MainMenu.cs: fixes ToString
18080         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18081         * ListBox.cs: fixes event position
18082         * TrackBar.cs: adds missing attributes and events
18083         
18084 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18085
18086         * MenuItem.cs: Use SystemInformation and bug fixes
18087         * MenuAPI.cs: Use SystemInformation and bug fixes
18088
18089 2005-02-09  Jackson Harper  <jackson@ximian.com>
18090
18091         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18092         their keystate otherwise things like VK_MENU get stuck "on".
18093
18094 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18095
18096         * ListBox.cs: Fixes AddRange bug
18097         
18098 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18099
18100         * ProgressBar.cs
18101                 - Add missing attributes
18102                 - Add missing method
18103                 
18104         * CheckedListBox.cs: Added missing attributes
18105                 - Add missing attributes
18106                 - Remove extra method
18107         
18108         * ComboBox.cs: Added missing attributes
18109         * VScrollBar.cs: Added missing attributes
18110         * ScrollBar.cs:  Added missing attributes
18111         * ListBox.cs: Fixes signature, add missing consts
18112         * LinkArea.cs:   Added missing attributes
18113         
18114
18115 2005-02-08  Peter Bartok  <pbartok@novell.com>
18116
18117         * Menu.cs: Added missing attributes
18118         * MainMenu.cs: Added missing attributes
18119         * GroupBox.cs: Added missing attributes
18120         * Label.cs: Added missing attributes
18121         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18122         * ColorDialog.cs:
18123           - Added Instance and Options properties
18124           - Added missing attributes
18125         * Cursor.cs: Made Serializable
18126         * NotifyIcon: Added missing attributes
18127         * MenuItem.cs: Added missing attributes
18128         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18129         * Panel.cs: Added Missing attributes
18130         * MonthCalendar.cs: Fixed CreateParams
18131
18132 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18133         
18134         * LinkLabel.cs:
18135                 - Fixes signature
18136                 - Fixes issues with links
18137                 - Adds the class attributes
18138
18139 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18140         
18141         * ComboBox.cs:
18142                 - Fixes button when no items available in dropdown
18143                 - Fixes repainting problems
18144                 - Adds the class attributes
18145                 
18146 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18147
18148         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18149         the current theme.  Cache these on startup.
18150
18151 2005-02-07  Jackson Harper  <jackson@ximian.com>
18152
18153         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18154         the scrollbar buttons when they are depressed.
18155
18156 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18157
18158         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18159         Get the display size from the main displayid.  We currently dont
18160         support multiple display configurations.
18161
18162 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18163
18164         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18165
18166 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18167
18168         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18169
18170 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18171
18172         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18173
18174 2005-02-04  Jackson Harper  <jackson@ximian.com>
18175
18176         * ThemeWin32Classic.cs: Respect the clipping rect when
18177         drawing. Only fill the intersection of clips and rects so there
18178         isn't a lot of large fills.
18179         * ScrollBar.cs: Pass the correct clipping rect to the theme
18180         engine. Remove some debug code.
18181
18182 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18183         
18184         * DateTimePicker.cs:
18185                 - Fixed crash on DateTime.Parse, use Constructor instead
18186
18187 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18188         
18189         * MenuItem.cs:
18190         * MenuAPI.cs:
18191                 - Owner draw support (MeasureItem and DrawItem)
18192
18193 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18194         
18195         *  Menu.cs:
18196                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18197                 - Fixes MenuItems.Add range
18198         * MenuItem.cs:
18199                 - MergeMenu and Clone and CloneMenu functions
18200
18201 2005-02-03  Jackson Harper  <jackson@ximian.com>
18202
18203         * ScrollBar.cs: Make abstract
18204         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18205         is abstract.
18206
18207 2005-02-03  Jackson Harper  <jackson@ximian.com>
18208
18209         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18210         all the unneeded refreshes and uses invalidates with properly
18211         computed rects.
18212
18213 2005-02-03  Peter Bartok  <pbartok@novell.com>
18214
18215         * ComponentModel.cs: Added
18216         * IDataGridEditingService.cs: Added
18217         * Timer.cs: Added missing attributes
18218         * ToolTip.cs: Added missing attributes
18219
18220 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18221
18222         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18223
18224 2005-02-03  Peter Bartok  <pbartok@novell.com>
18225
18226         * ListBox.cs: Added missing attributes
18227
18228 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18229         
18230         * ListBox.cs:
18231                 - Fixes font height after font change
18232                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18233                 
18234 2005-02-02  Peter Bartok  <pbartok@novell.com>
18235
18236         * HandleData.cs: Introduced static methods to allow class
18237           to be more self-contained and track it's own HandleData objects
18238         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18239           HandleData to use new static methods
18240
18241 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18242
18243         * Combobox.cs:
18244                 - Fixes default size and PreferredHeight
18245                 - Missing events
18246                 - ObjectCollection.Insert implementation
18247                 
18248         * ListControl.cs
18249                 - Fixes signature
18250         * ListBox.cs:
18251                 - Several fixes
18252                 - ObjectCollection.Insert implementation
18253                 - No selection after clean
18254                 - Small fixes
18255
18256 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18257
18258         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18259
18260 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18261
18262         * Combobox.cs:
18263                 - Caches ItemHeight calculation for OwnerDrawVariable
18264                 - Handles dropdown properly
18265                 - Fixes several minor bugs
18266
18267 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18268
18269         * ListBox.cs:
18270                 - Fixes 71946 and 71950
18271                 - Fixes changing Multicolumn on the fly
18272                 - Fixes keyboard navigation on Multicolumn listboxes
18273
18274 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18275         
18276         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18277         crash reporter log.
18278
18279 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18280
18281         * XplatUIOSX.cs: Allow applications to actually exit.
18282
18283 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18284
18285         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18286         their parent at creation time rather than lazily later.  Fixes a major
18287         regression we were experiencing.
18288
18289 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18290
18291         * ThemeWin32Classic.cs: more date time picker painting fixes
18292         * DateTimePicker.cs: more monthcalendar drop down fixes
18293         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18294
18295 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18296
18297         * ScrollBar.cs:
18298                 - When moving the thumb going outside the control should stop the moving
18299                 - Adds the firing of missing events
18300                 - Fixes no button show if Size is not specified
18301                 - End / Home keys for keyboard navigation
18302
18303 2005-01-30  Peter Bartok  <pbartok@novell.com>
18304
18305         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18306           sanity check to prevent theoretical loop
18307         * XplatUIWin32.cs (SetVisible): Removed debug output
18308         * XplatUIX11.cs (SystrayChange): Added sanity check
18309         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18310         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18311           behaviour, valid until the X11 client window rewrite is done
18312         * TextBox.cs (ctor): Setting proper default foreground and background
18313           colors
18314
18315 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18316
18317         * Theme: Added DrawDateTimePicker to interface
18318         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18319         * DateTimePicker.cs: Created (still needs keys and painting code)
18320         * DateTimePickerFormat.cs: added
18321         * MonthCalendar.cs: fixed CreateParams for popup window mode
18322           
18323 2005-01-29  Peter Bartok  <pbartok@novell.com>
18324
18325         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18326           this should also the calculations for ligher/darker
18327         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18328
18329 2005-01-29  Peter Bartok  <pbartok@novell.com>
18330
18331         * ArrangeDirection.cs: Added
18332         * ArrangeStartingPositon.cs: Added
18333         * SystemInformation.cs: Implemented
18334         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18335           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18336           used by SystemInformation class
18337         * X11Strucs.cs: Added XSizeHints structure
18338         * MenuAPI.cs:
18339           - Fixed CreateParams to make sure the menu window is always visible
18340           - TrackPopupMenu: Added check to make sure we don't draw the
18341             menu offscreen
18342
18343 2005-01-29  Peter Bartok  <pbartok@novell.com>
18344
18345         * HandleData.cs: Added method for altering invalid area
18346         * TextBoxBase.cs: Implemented TextLength
18347
18348 2005-01-28  Peter Bartok  <pbartok@novell.com>
18349
18350         * XplatUIX11.cs: Improvement over last patch, not sending
18351           the WM_PAINT directly anymore, instead we scroll any pending
18352           exposed areas and let the system pick out the WM_PAINT later
18353
18354 2005-01-28  Peter Bartok  <pbartok@novell.com>
18355
18356         * SWF.csproj: Deleted, no longer used. Instead,
18357           Managed.Windows.Forms/SWF.csproj should be used
18358         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18359           directly, to avoid a potential race condition with the next
18360           scroll
18361
18362 2005-01-28  Peter Bartok  <pbartok@novell.com>
18363
18364         * XplatUI.cs: Made class internal
18365
18366 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18367
18368         * CheckedListBox.cs:
18369                 - Draw focus
18370                 - Fixed Drawing
18371                 - Missing methods and events
18372
18373 2005-01-27  Peter Bartok  <pbartok@novell.com>
18374
18375         * Application.cs (Run): Don't use form if we don't have one
18376
18377 2005-01-27  Peter Bartok  <pbartok@novell.com>
18378
18379         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18380
18381 2005-01-27  Peter Bartok  <pbartok@novell.com>
18382
18383         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18384         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18385         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18386         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18387         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18388         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18389         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18390         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18391         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18392         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18393         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18394         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18395
18396 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18397
18398         * Combobox.cs:
18399                 - Draw focus on Simple Combobox
18400                 - Fixes drawing issues
18401                 - fixes 71834
18402
18403 2005-01-27  Peter Bartok  <pbartok@novell.com>
18404
18405         * Form.cs:
18406           - Place window in default location, instead of hardcoded 0/0
18407           - Send initial LocationChanged event
18408         * Control.cs:
18409           - UpdateBounds after creation to find out where the WM placed us
18410           - Make sure that if the ParentForm changes location the Form
18411             is notified
18412         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18413             to the root, but to whatever the WM placed around us.
18414             Translate to root coordinates before returning toplevel
18415             coordinates
18416         * XplatUIWin32.cs: Removed debug output
18417         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18418           flag to GetWindowPos, to allow translation of coordinates on X11
18419
18420 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18421
18422         * ListBox.cs: connect LostFocus Event
18423
18424 2005-01-27  Peter Bartok  <pbartok@novell.com>
18425
18426         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18427           XplatUIX11.cs: Extended the Systray API
18428         * Form.cs: Removed debug output
18429         * Application.cs: Fixed focus assignment, always need to call
18430           XplatUI.Activate() since Form.Activate() has rules that may
18431           prevent activation
18432         * NotifyIcon.cs: Should be complete now
18433         * ToolTip.cs: Worked around possible timer bug
18434
18435 2005-01-27  Jackson Harper  <jackson@ximian.com>
18436
18437         * TabControl.cs:
18438         - Only invalidate the effected tabs when the
18439         selected index changes. This reduces drawing and gets rid of some
18440         flicker.
18441         - Only refresh if the tabs need to be shifted, otherwise only
18442         invalidate the slider button.
18443         - On windows the tabs are not filled to right if the slider is
18444         visible.
18445         
18446 2005-01-27  Jackson Harper  <jackson@ximian.com>
18447
18448         * TabControl.cs: Only refresh on mouseup if we are showing the
18449         slider. Also only invalidate the button whose state has changed.
18450
18451 2005-01-26  Peter Bartok  <pbartok@novell.com>
18452
18453         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18454         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18455           and SystrayRemove() methods
18456         * XplatUIOSX.cs: Stubbed Systray methods
18457         * XplatUIX11.cs:
18458           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18459             methods
18460           - Fixed broken XChangeProperty calls (marshalling messed up things)
18461         * X11Structs.cs: Added enums and structs required for Size hinting
18462         * NotifyIcon.cs: Added & implemented
18463
18464 2005-01-26  Jackson Harper  <jackson@ximian.com>
18465
18466         * TabControl.cs: Space vertically layed out tabs properly.
18467
18468 2005-01-26  Peter Bartok  <pbartok@novell.com>
18469
18470         * Form.cs (CreateClientParams): Always set the location to 0,0
18471           since we're a child window.
18472
18473         * Control.cs (SetVisibleCore): Always explicitly setting the location
18474           of a toplevel window, apparently X11 doesn't like to move windows
18475           while they're not mapped.
18476
18477 2005-01-26  Jackson Harper  <jackson@ximian.com>
18478
18479         * TabControl.cs: Implement FillToRight size mode with vertically
18480         rendered tabs.
18481
18482 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18483
18484         * ControlPaint.cs, ThemeWin32Classic.cs
18485                 - Fixes DrawFocusRectangle
18486
18487 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18488
18489         * MenuAPI.cs:
18490                 - MenuBar tracking only starts when item is first clicked
18491                 - Fixes menu hidding for multiple subitems
18492                 - Unselect item in MenuBar when item Executed
18493                 - Fixes bug 71495
18494
18495 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18496
18497         * ListControl.cs:
18498                 - IsInputKey for ListBox
18499         * ListBox.cs:
18500                 - Focus item
18501                 - Shift and Control item selection
18502                 - Implement SelectionMode.MultiExtended
18503                 - Fixes RightToLeft
18504         * ComboBox.cs:
18505                 - IsInputKey implemented
18506                 - Do not generate OnTextChangedEdit on internal txt changes
18507                 
18508 2005-01-23  Peter Bartok  <pbartok@novell.com>
18509
18510         * AccessibleObject.cs: Partially implemented Select()
18511         * MonthCalendar.cs: Added missing attributes and events
18512         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18513           form can properly override CreateParams.
18514         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18515           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18516           Control performs Invalidate & Update
18517         * NativeWindow (CreateHandle): Added special handling for Form
18518           and Form.FormParent classes to allow overriding of From.CreateParams
18519         * Control.cs:
18520           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18521             name 'owner'
18522           - ControlNativeWindow: Added Owner property
18523           - Removed usage of Refresh() on property changes, changed into
18524             Invalidate(), we need to wait until the queue is processed for
18525             updates, direct calls might cause problems if not all vars for
18526             Paint are initialized
18527           - Added call to UpdateStyles() when creating the window, to set any
18528             styles that CreateWindow might have ignored.
18529           - Added support for Form CreateParent overrides to UpdateStyles()
18530         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18531           CreateParams are now properly overridable
18532         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18533           CreateParams are now properly overridable
18534
18535 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18536
18537         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18538         OnTextBoxChanged.
18539
18540         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18541         recursive invocation that I have not figured out yet.
18542
18543         Reset the timer when not using (it was accumulating).
18544
18545
18546         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18547         user has made changes that require validation.
18548
18549         Reset changing to avoid loops.
18550
18551 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18552
18553         * NumericUpDown.cs: Display value at startup.
18554
18555         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18556         ValidateEditText.
18557
18558         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18559         filled in.  Added some basic parsing of text.
18560
18561         Still missing the OnXXX method overrides, and figuring out the
18562         events that must be emitted.
18563
18564         * UpDownBase.cs: Handle UserEdit on the Text property.
18565         
18566 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18567
18568         * ComboBox.cs:
18569           - Fixes IntegralHeight
18570           - ToString method
18571
18572 2005-01-21  Jackson Harper  <jackson@ximian.com>
18573
18574         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18575         is set so that the page visibility is updated and the tabs are
18576         sized correctly.
18577
18578 2005-01-21  Jackson Harper  <jackson@ximian.com>
18579
18580         * TabControl.cs: Use cliping rectangle for blitting. Give the
18581         theme the clipping rect so we can do clipping while
18582         drawing. Remove some debug code.
18583
18584 2005-01-21  Jackson Harper  <jackson@ximian.com>
18585
18586         * TabPage.cs: Add a new method so tab pages can force the tab
18587         control to recalculate the tab page sizes.
18588         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18589         sizes.
18590
18591 2005-01-20  Jackson Harper  <jackson@ximian.com>
18592
18593         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18594
18595 2005-01-20  Jackson Harper  <jackson@ximian.com>
18596
18597         * TreeView.cs: Set the bounds for nodes properly. They were
18598         getting screwed up when checkboxes were not enabled, but images
18599         were.
18600
18601 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18602
18603         * ListBox.cs:
18604                 - Owner draw support
18605                 - Fixes
18606                 
18607 2005-01-20  Jackson Harper  <jackson@ximian.com>
18608
18609         * XplatUIStructs.cs: More misc keys
18610         * X11Keyboard.cs: Ignore some control keys.
18611
18612 2005-01-20  Jackson Harper  <jackson@ximian.com>
18613
18614         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18615         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18616
18617 2005-01-19  Peter Bartok  <pbartok@novell.com>
18618
18619         * Control.cs: Un-selecting the control when it is loosing focus
18620
18621 2005-01-19  Jackson Harper  <jackson@ximian.com>
18622
18623         * TreeView.cs: Hook up to the text controls leave event so we can
18624         end editing when the users clicks outside the text box.
18625         
18626 2005-01-19  Jackson Harper  <jackson@ximian.com>
18627
18628         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18629         get set in the conversion array.
18630
18631 2005-01-19  Peter Bartok  <pbartok@novell.com>
18632
18633         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18634           focus is properly set
18635         * Button.cs:
18636           - Added missing attributes
18637           - removed styles, those are already set in the base class
18638         * ButtonBase.cs:
18639           - Added missing attributes
18640           - Added clip window styles
18641         * CheckBox.cs: Added missing attributes
18642         * CommonDialog.cs:
18643           - FormParentWindow.CreateParams: Added required clip styles
18644         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18645           also filters modifier keys
18646         * MessageBox.cs:
18647           - Added assignment of Accept and Cancel button to enable Enter
18648             and Esc keys in MessageBox dialogs
18649           - FormParentWindow.CreateParams: Added required clip styles
18650         * RadioButton.cs: Added missing attributes
18651         * TextControl.cs: No longer draws selection if control does not
18652           have focus
18653         * TextBoxBase.cs:
18654           - Now draws simple rectangle around test area to make it obvious
18655             there's a control. This is a hack until we properly support borders
18656           - A few simple fixes to support selections better, now erases selected
18657             text when typing, and resets selection when using movement keys
18658
18659 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18660
18661         * UpDownBase.cs: Added some new properties.
18662
18663         * DomainUpDown.cs: Implement a lot to get my test working.
18664
18665 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18666
18667         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18668
18669 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18670
18671         * OSXStructs (WindowAttributes): Fixed csc complaints
18672
18673 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18674
18675         * XplayUIOSX.cs:
18676           OSXStructs.cs: Initial refactor to move enums and consts into
18677           OSXStructs and use them in the driver for greater readability.
18678
18679 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18680
18681         * XplatUIOSX.cs: Initial support for Standard Cursors.
18682         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18683
18684 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18685
18686         * ComboBox.cs: ability to change style when the ctrl is already
18687         created, missing methods and events, bug fixes, signature fixes
18688
18689 2005-01-19  Peter Bartok  <pbartok@novell.com>
18690
18691         * Cursors.cs (ctor): Added ctor to fix signature
18692
18693 2005-01-18  Peter Bartok  <pbartok@novell.com>
18694
18695         * Button.cs: Implemented DoubleClick event
18696         * ButtonBase.cs:
18697           - Fixed keyboard handling to behave like MS, where the press of
18698             Spacebar is equivalent to a mousedown, and the key release is
18699             equivalent to mouseup. Now a spacebar push will give the same
18700             visual feedback like a mouse click.
18701           - Added missing attributes
18702           - Added ImeModeChanged event
18703           - Added support for generating DoubleClick event for derived classes
18704         * CheckBox.cs:
18705           - Implemented DoubleClick event
18706           - Added missing attributes
18707         * CommonDialog.cs: Added missing attribute
18708         * ContextMenu.cs: Added missing attributes
18709         * RadioButton.cs:
18710           - AutoChecked buttons do not allow to be unselected when clicked
18711             (otherwise we might end up with no selected buttons in a group)
18712           - Added missing attributes
18713           - Implemented DoubleClickEvent
18714         * ThreadExceptionDialog.cs: Enabled TextBox code
18715
18716 2005-01-18  Peter Bartok  <pbartok@novell.com>
18717
18718         * Form.cs: Removed debug output
18719         * Button.cs: Added support for DoubleClick method
18720
18721 2005-01-18  Peter Bartok  <pbartok@novell.com>
18722
18723         * Form.cs:
18724           - Added method to parent window that allows triggering size
18725             calculations when a menu is added/removed
18726           - set_Menu: Cleaned up mess from early days of Form and Control,
18727             now properly triggers a recalc when a menu is added/removed
18728           - Added case to select form itself as focused form if no child
18729             controls exist
18730           - Added PerformLayout call when showing dialog, to ensure properly
18731             placed controls
18732         * Control.cs:
18733           - Select(): Made internal so Form can access it
18734           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18735             status
18736         * Application.cs (Run): Removed hack and calls PerformLayout instead
18737           to trigger calculation when Form becomes visible
18738
18739 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18740
18741         * ComboBox.cs: fixes for ownerdraw
18742
18743 2005-01-18  Peter Bartok  <pbartok@novell.com>
18744
18745         * TextControl.cs:
18746           - Sentinel is no longer static, each Document gets it's own, this
18747             avoids locking or alternatively overwrite problems when more
18748             than one text control is used simultaneously.
18749           - Switched to use Hilight and HilightText brushes for text selection
18750
18751         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18752
18753 2005-01-18  Peter Bartok  <pbartok@novell.com>
18754
18755         * Control.cs:
18756           - Hooked up the following events:
18757                 o ControlAdded
18758                 o ControlRemoved
18759                 o HandleDestroyed
18760                 o ImeModeChanged
18761                 o ParentChanged
18762                 o TabStopChanged
18763                 o Invalidated
18764                 o SystemColorsChanged
18765                 o ParentFontChanged
18766                 o Move
18767           - Removed debug output
18768           - Added a call to the current theme's ResetDefaults when a color change
18769             is detected
18770         * Form.cs: Now setting the proper ImeMode
18771         * Theme.cs: Defined a method to force recreation of cached resources
18772           and rereading of system defaults (ResetDefaults())
18773         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18774
18775 2005-01-17  Peter Bartok  <pbartok@novell.com>
18776
18777         * Control.cs: Added missing attributes
18778
18779 2005-01-17  Jackson Harper  <jackson@ximian.com>
18780
18781         * TreeNode.cs: Implement editing. Add missing properties selected
18782         and visible.
18783         * TreeView.cs: Implement node editing. Also some fixes to use
18784         Invalidate (invalid area) instead of Refresh when selecting.
18785
18786 2005-01-17  Peter Bartok  <pbartok@novell.com>
18787
18788         * Control.cs:
18789           - Implemented InvokeGotFocus() method
18790           - Implemented InvokeLostFocus() method
18791           - Implemented InvokePaint() method
18792           - Implemented InvokePaintBackground() method
18793           - Implemented InvokeClick() method
18794           - Implemented FindForm() method
18795           - Implemented RectangleToClient() method
18796           - Implemented ClientToRectangle() method
18797           - Implemented ResetBackColor() method
18798           - Implemented ResetCursor() method
18799           - Implemented ResetFont() method
18800           - Implemented ResteForeColor() method
18801           - Implemented ResetImeMode() method
18802           - Implemented ResetLeftToRight() method
18803           - Implemented ResetText() method
18804           - Implemented Scale() methods
18805           - Implemented ScaleCore() method
18806           - Implemented Update() method
18807           - Removed unused variables
18808           - Stubbed AccessibilityNotifyClients and
18809             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18810             with those yet)
18811           - Now setting proper default for RightToLeft property
18812           - Fixed bug in SetClientSizeCore that would cause windows to get
18813             really big
18814           - Now sending Click/DoubleClick events
18815           - Now selecting controls when left mouse button is clicked on
18816             selectable control
18817         * AccessibleEvents.cs: Added
18818         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18819         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18820         * XplatUIWin32.cs: Implemented UpdateWindow() method
18821         * XplatUIX11.cs: Implemented UpdateWindow() method
18822         * Form.cs: Removed stray semicolon causing CS0162 warning
18823         * ThemeWin32Classic.cs: Fixed unused variable warnings
18824         * ScrollableControl.cs: Now calls base method for ScaleCore
18825         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18826           style to avoid interference with internal click handler (which is
18827           different than standard Control click handling)
18828         * RadioButton.cs:
18829           - Now unchecks all sibling radio buttons when control is
18830             selected (Fixes #68756)
18831           - Removed internal tabstop variable, using the one inherited from
18832             Control
18833
18834 2005-01-17  Jackson Harper  <jackson@ximian.com>
18835
18836         * NavigateEventArgs.cs: Fix base type.
18837         * LinkLabel.cs: Sig fix
18838         
18839 2005-01-17  Jackson Harper  <jackson@ximian.com>
18840
18841         * TreeView.cs: Only invalidate the effected nodes bounds when
18842         selecting nodes.
18843
18844 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18845
18846         * XplatUIWin32.cs: fixes Win32 marshaling
18847         * XplatUIX11.cs: fixes method signature
18848
18849 2005-01-17  Peter Bartok  <pbartok@novell.com>
18850
18851         * XplatUIX11.cs: Clean up resources when we no longer need them
18852
18853 2005-01-17  Peter Bartok  <pbartok@novell.com>
18854
18855         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18856           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18857           and DestroyCursor() methods.
18858         * Cursor.cs: Partially implemented, now supports standard cursors;
18859           still contains some debug code
18860         * Cursors.cs: Implemented class
18861         * Control.cs:
18862           - WndProc(): Added handling of WM_SETCURSOR message, setting the
18863             appropriate cursor
18864           - Implemented Cursor property
18865           - Replaced break; with return; more straightforwar and possibly
18866             faster
18867           - Now properly setting the result for WM_HELP
18868         * X11Structs.cs: Added CursorFontShape enum
18869         * XplatUIStructs.cs:
18870           - Added StdCursor enum (to support DefineStdCursor() method)
18871           - Added HitTest enum (to support sending WM_SETCURSOR message)
18872         * XplatUIX11.cs:
18873           - Now sends the WM_SETCURSOR message
18874           - Implemented new cursor methods
18875         * XplatUIOSX.cs: Stubbed new cursor methods
18876         * XplatUIWin32.cs:
18877           - Implemented new cursor methods
18878           - Added GetSystemMetrics function and associated enumeration
18879
18880 2005-01-15  Peter Bartok  <pbartok@novell.com>
18881
18882         * Control.cs:
18883           - WndProc(): Now handles EnableNotifyMessage
18884           - SelectNextControl(): Fixed bug where if no child or sibling
18885             controls exist we looped endlessly
18886
18887 2005-01-14  Jackson Harper  <jackson@ximian.com>
18888
18889         * TreeView.cs: Recalculate the tab pages when a new one is added
18890         so that the proper bounding rects are created.
18891
18892 2005-01-14  Jackson Harper  <jackson@ximian.com>
18893
18894         * TreeView.cs: Draw a gray box instead of a grip in the lower
18895         right hand corner when there are both horizontal and vertical
18896         scroll bars.
18897
18898 2005-01-14  Jackson Harper  <jackson@ximian.com>
18899
18900         * Control.cs: When erasing backgrounds use FromHwnd instead of
18901         FromHdc when there is a NULL wparam. This occurs on the X driver.
18902         * XplatUIX11.cs: Set the wparam to NULL.
18903
18904 2005-01-13  Jackson Harper  <jackson@ximian.com>
18905
18906         * PictureBox.cs: Implement missing methods (except ToString, need
18907         to test that on windows) and events. When visibility is changed we
18908         need to redraw the image because the buffers are killed. When size
18909         is changed refresh if the sizemode needs it.
18910
18911 2005-01-13  Peter Bartok  <pbartok@novell.com>
18912
18913         * Control.cs (SelectNextControl): Was using wrong method to select
18914           a control
18915
18916 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18917
18918         * ComboBox.cs: fixes dropstyle
18919
18920 2005-01-13  Peter Bartok  <pbartok@novell.com>
18921
18922         * Form.cs:
18923           - Implemented Select() override
18924           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
18925           - Now sets keyboard focus on startup
18926         * Control.cs (SelectNextControl): Now properly handles directed=true
18927         * TextBoxBase.cs:
18928           - WndProc: Now passes tab key on to base if AcceptTabChar=false
18929           - Added (really bad) focus rectangle (mostly for testing)
18930         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
18931           to enforce redraw on focus changes
18932         * ContainerControl.cs:
18933           - Fixed detection of Shift-Tab key presses
18934           - Fixed traversal with arrow keys
18935         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
18936           gonna keep this or if it's complete yet
18937         
18938 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18939
18940         * ComboBox.cs: missing properties, fixes
18941
18942 2005-01-13  Peter Bartok  <pbartok@novell.com>
18943
18944         * Panel.cs (ctor): Setting Selectable window style to off
18945         * Splitter.cs (ctor): Setting Selectable window style to off
18946         * GroupBox.cs (ctor): Setting Selectable window style to off
18947         * Label.cs (ctor): Setting Selectable window style to off
18948
18949 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
18950
18951         * UpDownBase.cs (InitTimer): If the timer has been already
18952         created, enable it.
18953
18954         Use a TextBox instead of a Label.
18955
18956 2005-01-12  Jackson Harper  <jackson@ximian.com>
18957
18958         * TreeView.cs: Refresh the tree after sorting the nodes. Always
18959         draw the connecting node lines (when ShowLines is true).
18960         * TreeNode.cs: The nodes index can now be updated. This is used
18961         when a node collection is sorted.
18962         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
18963         insert or an existing unsorted node collection can be sorted.
18964         
18965 2005-01-12  Peter Bartok  <pbartok@novell.com>
18966
18967         * ContainerControl.cs: Implemented ProcessDialogKeys()
18968
18969 2005-01-12  Peter Bartok  <pbartok@novell.com>
18970
18971         * Control.cs:
18972           - Implemented SelectNextControl() method
18973           - Several focus related bug fixes
18974           - Fixed Docking calculations to match MS documentation and
18975             behaviour
18976
18977 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
18978
18979         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
18980         bug fixes
18981
18982 2005-01-12  Peter Bartok  <pbartok@novell.com>
18983
18984         * Control.cs:
18985           - Fixed broken Contains() method
18986           - Implemented GetNextControl() method. Finally. This is the pre-
18987             requisite for focus handling.
18988
18989 2005-01-12  Peter Bartok  <pbartok@novell.com>
18990
18991         * OSXStrucs.cs: Added
18992
18993 2005-01-12  Peter Bartok  <pbartok@novell.com>
18994
18995         * XplatUIWin32.cs:
18996           - Removed PeekMessageFlags
18997           - Implemented SetWindowStyle() method
18998         * XplatUIStructs.cs: Added PeekMessageFlags
18999         * X11Structs: Added missing border_width field to XWindowChanges struct
19000         * XplatUIX11.cs:
19001           - PeekMessage: Now throws exception if flags which are not yet
19002             supported are passed
19003           - Implemented SetWindowStyle() method
19004           - Fixed SetZOrder to handle AfterHwnd properly
19005         * XplatUI.cs: Added SetWindowStyle() method
19006         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19007         * Control.cs:
19008           - Implemented UpdateStyles() method
19009           - Implemented UpdateZOrder() method
19010         * XplatUIOSX.cs: Added SetWindowStyle() stub
19011
19012 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19013
19014         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19015         button mouse).
19016
19017
19018 2005-01-11  Jackson Harper  <jackson@ximian.com>
19019
19020         * TreeView.cs: Still need to draw lines to siblings even if out of
19021         the current node is out of the clip.
19022
19023 2005-01-11  Jackson Harper  <jackson@ximian.com>
19024
19025         * TreeView.cs: When setting the hbar/vbar/grip position use
19026         SetBounds so that perform layout is only called once. Also suspend
19027         and resume layout so layout is only done once for all controls.
19028         - Removed some debug fluff
19029         * SizeGrip.cs: Call base implmentation in overriding methods.
19030         - When visibility is changed the drawing buffers are killed so we
19031         need to redraw.
19032
19033 2005-01-11  Jackson Harper  <jackson@ximian.com>
19034
19035         * TreeView.cs: Calculate the open node count while drawing. This
19036         saves us an entire tree traversal for every paint operation. Use
19037         a member var for the open node count so less vars are passed around.
19038
19039 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19040
19041         * MonthCalendar.cs:
19042         - fixed selection to use mousemove, not mouse polling on timer
19043         * ThemeWin32Classic.cs
19044         - removed redundant unused variable "no_more_content"
19045         
19046 2005-01-11  Peter Bartok  <pbartok@novell.com>
19047
19048         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19049           are pending, so it now calls PeekMessage instead of GetMessage;
19050           implemented a incomplete version of PeekMessage
19051         
19052 2005-01-11  Peter Bartok  <pbartok@novell.com>
19053
19054         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19055           I18n issues
19056         * TextBoxBase.cs: Added sending of TextChanged event
19057
19058 2005-01-10  Jackson Harper  <jackson@ximian.com>
19059
19060         * TreeView.cs: Try not to draw outside the clipping rectangle on
19061         each node element.
19062
19063 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19064
19065         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19066
19067 2005-01-10  Jackson Harper  <jackson@ximian.com>
19068
19069         * TreeView.cs:
19070         - Implement fast scrolling. Now only the newly
19071         exposed nodes are drawn and the old image is moved using the
19072         XplatUI::ScrollWindow method.
19073         - Factor in height of nodes when calculating whether or not the
19074         node is in the clipping rect.
19075
19076 2005-01-10  Jackson Harper  <jackson@ximian.com>
19077
19078         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19079
19080 2005-01-10  Peter Bartok  <pbartok@novell.com>
19081
19082         * Application.cs: Added temporary hack to resolve all our resize
19083           required issues on startup. This will get fixed properly at
19084           some point in the future
19085
19086 2005-01-10  Jackson Harper  <jackson@ximian.com>
19087
19088         * SizeGrip.cs: New internal class that is used as a sizing
19089         grip control...hence the name.
19090
19091 2005-01-10  Peter Bartok  <pbartok@novell.com>
19092
19093         * Control.cs: Implemented proper TabIndex handling, now assigning
19094           a tabindex when a control is added to a container
19095         * GroupBox.cs (ctor): Now sets the Container style bit, required
19096           for Control.GetNextControl()
19097
19098 2005-01-09  Jackson Harper  <jackson@ximian.com>
19099
19100         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19101
19102 2005-01-09  Peter Bartok <pbartok@novell.com>
19103
19104         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19105           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19106           an overload for ScrollWindow to allow only scrolling a rectangle
19107
19108 2005-01-09  Peter Bartok <pbartok@novell.com>
19109
19110         * Form.cs:
19111           - Implemented SetDesktopBounds method
19112           - Implemented SetDesktopLocation method
19113
19114 2005-01-08  Jackson Harper  <jackson@ximian.com>
19115
19116         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19117         the node count has changed, this removes to VScroll::Refresh calls
19118         when drawing.
19119
19120 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19121
19122         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19123
19124 2005-01-07  Jackson Harper  <jackson@ximian.com>
19125
19126         * TreeNode.cs: Just update the single node when it is
19127         checked. Don't refresh after toggling, the Expand/Collapse already
19128         handles this.
19129         * TreeView.cs: Respect clipping a little more when drawing. Try
19130         not to redraw things that don't need to be redrawn. Just hide the
19131         scrollbars when they are no longer needed instead of removing
19132         them, so they don't have to be created again and again.
19133         
19134 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19135
19136         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19137         coordinates to window space to place the caret properly, FIXED.
19138         Implement GetWindowState & SetWindowState
19139
19140 2005-01-06  Peter Bartok <pbartok@novell.com>
19141
19142         * Form.cs:
19143           - Implemented ClientSize property
19144           - Implemented DesktopBounds property
19145           - Implemented DesktopLocation property
19146           - Implemented IsRestrictedWindow property
19147           - Implemented Size property
19148           - Implemented TopLevel property
19149           - Implemented FormWindowState property
19150         * Control.cs:
19151           - Implemented GetTopLevel() method
19152           - Implemented SetTopLevel() method
19153         * X11Structs.cs (Atom):
19154           - Added AnyPropertyType definition
19155           - Added MapState definiton and updated XWindowAttribute struct
19156         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19157         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19158         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19159         * XplatUIWin32.cs:
19160           - Implemented GetWindowState() and SetWindowState() methods
19161           - Fixed Win32GetWindowLong return type
19162         * XplatUIX11.cs:
19163           - Introduced central function for sending NET_WM messages
19164           - Implemented GetWindowState() and SetWindowState() methods
19165         * TextBoxBase.cs (set_Lines):
19166           - Now uses Foreground color for text added via Text property (Duh!)
19167           - Added code to remember programmatically requested size (fixes
19168             behaviour when Multiline is set after Size)
19169           - Added AutoSize logic
19170
19171 2005-01-06  Jackson Harper  <jackson@ximian.com>
19172
19173         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19174
19175 2005-01-06  Jackson Harper  <jackson@ximian.com>
19176
19177         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19178         set to less then 0.
19179
19180 2005-01-06  Jackson Harper  <jackson@ximian.com>
19181
19182         * ScrollableControl.cs: Lazy init the scrollbars.
19183         
19184 2005-01-06  Jackson Harper  <jackson@ximian.com>
19185
19186         * Theme.cs: Speed up getting pens and solid brushes, by using
19187         their ARGB as a hash instead of tostring and not calling Contains.
19188
19189 2005-01-06  Peter Bartok <pbartok@novell.com>
19190
19191         * Form.cs:
19192           - Implemented OnActivated and OnDeactivate event trigger
19193           - Implemented Activate() method
19194           - Fixed ShowDialog() to activate the form that was active before
19195             the dialog was shown
19196         * XplatUIX11.cs:
19197           - Added global active_window var that tracks the currently active
19198             X11 window
19199           - Now always grabs Property changes from the root window to always
19200             catch changes on the active window property
19201           - Added code to PropertyNotify handler to send Active/Inactive
19202             messages when state changes. This puts X11 and Win32 en par on
19203             WM_ACTIVATE notifications (except for double notifications when
19204             the user clicks away from our modal window to another one of our
19205             windows)
19206
19207 2005-01-05  Jackson Harper  <jackson@ximian.com>
19208
19209         * ImageList.cs: Implment ctor
19210
19211 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19212
19213         * XplatUIOSX.cs: Implement Activate/SetTopmost
19214
19215 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19216
19217         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19218
19219 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19220
19221         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19222
19223 2005-01-05  Peter Bartok <pbartok@novell.com>
19224
19225         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19226           XplatUIOSX.cs: Added GetActive method to return the currently
19227           active window for the application (or null, if none is active)
19228         * Form.cs:
19229           - Implemented ActiveForm
19230           - Commented out owner assignment for modal dialogs (causes problems
19231             on Win32, since the owner will be disabled)
19232           - Reworked some Active/Focus handling (still incomplete)
19233         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19234           (causes problems on Win32, since the owner will be disabled)
19235         * IWin32Window: Added ComVisible attribute
19236
19237 2005-01-05  Peter Bartok <pbartok@novell.com>
19238
19239         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19240           required XplatUI functions.
19241
19242 2005-01-05  Peter Bartok <pbartok@novell.com>
19243
19244         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19245           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19246           to implement focus and activation handling; still incomplete and
19247           with debug output
19248
19249 2005-01-04  Peter Bartok <pbartok@novell.com>
19250
19251         * TextBoxBase.cs: Changed access level for Document property to
19252           match switch to internal for TextControl
19253
19254 2005-01-04  Peter Bartok <pbartok@novell.com>
19255
19256         * AccessibleObject: Added ComVisible attribute
19257
19258 2005-01-04  Jackson Harper  <jackson@ximian.com>
19259
19260         * X11Keyboard.cs: Remove unneeded var.
19261
19262 2005-01-04  Jackson Harper  <jackson@ximian.com>
19263
19264         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19265         but PAINT.
19266         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19267         ClientMessage. This makes apps exit cleanly (more often).
19268         
19269 2005-01-04  Jackson Harper  <jackson@ximian.com>
19270
19271         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19272         handling focus, return correct colors and fonts,
19273         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19274         handle selection, horizontal scrolling, and mouse interaction.
19275
19276 2005-01-04  Peter Bartok <pbartok@novell.com>
19277
19278         * ICommandExecutor.cs: Added
19279         * IDataGridColumnStyleEditingNotificationService.cs: Added
19280         * IFeatureSupport.cs: Added
19281         * IFileReaderService.cs: Added
19282         * IDataObject.cs: Added ComVisible attribute
19283         * AmbientProperties.cs: Added
19284         * BaseCollection.cs: Added missing attributes
19285         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19286         * BaseCollection.cs: Added missing attributes
19287         * Binding.cs: Added TypeConverter attribute
19288         * BindingContext.cs: Added DefaultEvent attribute
19289         * BindingsCollection.cs: Added DefaultEvent attribute
19290         * Button.cs: Added DefaultValue attribute
19291         * DragEventArgs.cs: Added ComVisible attribute
19292         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19293         * KeyEventArgs.cs: Added ComVisible attribute
19294         * KeyPressEventArgs.cs: Added ComVisible attribute
19295         * MouseEventArgs.cs: Added ComVisible attribute
19296         * NavigateEventArgs.cs: Added
19297         * NavigateEventHandler.cs: Added
19298         * FeatureSupport.cs: Added
19299         * OSFeature.cs: Added
19300         * Theme.cs: Added abstract Version property to support OSFeature
19301         * ThemeWin32Classic.cs: Added Version property to
19302           support OSFeature.Themes
19303         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19304           the proper styles to avoid background drawing are set, also doesn't
19305           match MS signature
19306         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19307         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19308         * ScrollEventArgs.cs: Added ComVisible attribute
19309         * SplitterEventArgs.cs: Added ComVisible attribute
19310         * AccessibleSelection.cs: Added Flags attribute
19311         * Appearance.cs: Added ComVisible attribute
19312         * Border3DSide.cs: Added ComVisible attribute
19313         * Border3DStyle.cs: Added ComVisible attribute
19314         * BorderStyle.cs: Added ComVisible attribute
19315         * DragAction.cs: Added ComVisible attribute
19316         * ErrorBlinkStyle.cs: Added
19317         * ScrollEventType.cs: Added ComVisible attribute
19318         * AnchorStyles.cs: Added Editor attribute
19319         * DockStyle.cs: Added Editor attribute
19320         * HorizontalAlignment.cs: Added ComVisible attribute
19321         * HelpEventArgs.cs: Added ComVisible attribute
19322         * PaintEventArgs.cs: Added IDisposable
19323
19324 2005-01-04  Peter Bartok <pbartok@novell.com>
19325
19326         * TextControl.cs: Switched Line, LineTag and Document classes to
19327           internal
19328
19329 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19330
19331         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19332         Simple mode, fixes, IntegralHeight, etc.
19333
19334 2005-01-04  Peter Bartok <pbartok@novell.com>
19335
19336         * TextBoxBase.cs: Using proper font variable now
19337
19338 2005-01-04  Peter Bartok <pbartok@novell.com>
19339
19340         * Form.cs (ShowDialog): Set parent to owner, if provided
19341         * GroupBox.cs: Removed unused vars
19342         * TextControl.cs:
19343           - Added GetHashCode() for Document and LineTag classes
19344           - Removed unused variables
19345           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19346             to allow translation between continuous char position and line/pos
19347         * CheckBox.cs: Removed vars that are provided by base class
19348         * RadioButton.cs: Removed vars that are provided by base class, added
19349           new keyword where required
19350         * LinkLabel.cs: Added new keyword where required
19351         * Control.cs (WndProc): Removed unused variable
19352         * TextBoxBase.cs:
19353           - Finished SelectionLength property
19354           - Implemented SelectionStart property
19355           - Implemented Text property
19356           - Removed unused vars
19357         * MessageBox.cs: Added new keyword where required
19358         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19359           WndProc signature
19360         * MenuAPI.cs: Added new keyword where required
19361         * ButtonBase.cs: Removed vars that are provided by base class, added
19362           new keyword where required
19363         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19364           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19365           into this)
19366         * Application.cs (Run): Now triggers the ThreadExit event
19367         * CommonDialog.cs: Added new keyword where required; now properly sets
19368           parent (owner) for dialog
19369         * XplatUIX11.cs: Commented out unused vars
19370         * StatusBar.cs: Fixed signature for Text property
19371         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19372
19373 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19374
19375         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19376         TrackBar.cs, MonthCalendar.cs: remove unused vars
19377
19378 2005-01-03  Jackson Harper  <jackson@ximian.com>
19379
19380         * ThemeWin32Classic.cs:
19381         * X11Keyboard.cs: Remove unused vars.
19382
19383 2005-01-03  Peter Bartok  <pbartok@novell.com>
19384
19385         * TextBox.cs:
19386           - set_Text: Tied into TextControl
19387           - set_TextAlignment: Tied into TextControl
19388         * TextControl.cs:
19389           - Added alignment properties and implemented alignment handling
19390             and drawing (still has a bug, not generating proper expose events)
19391           - Added new Line() constructor to allow passing the line alignment
19392           - Fixed selection setting, properly handling end<start now
19393           - Added aligment considerations to RecalculateDocument()
19394         * TextBoxBase.cs:
19395           - Now properly enforces control height for single line controls
19396           - Added support for CharacterCasing
19397           - Added IsInputKey override
19398           - Fixed Keys.Enter logic
19399           - Added SetBoundsCore override
19400           - Fixed mouse selection handling
19401
19402 2005-01-03  Jackson Harper  <jackson@ximian.com>
19403
19404         * TreeView.cs:
19405           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19406           - Checkboxes are always aligned to the bottom of the node,
19407           regardless of item height.
19408           - Use the node bounds to draw the text so we can center it when
19409           the item height is greater then the font height.
19410           - Node::Bounds are only the text part of the node.
19411         * TreeNode.cs: New method to combine collapsing and unchecking all
19412           nodes recursively.
19413
19414 2005-01-02  Jackson Harper  <jackson@ximian.com>
19415
19416         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19417         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19418         tree when a check is changed. TODO: Only refresh the checked node.
19419
19420 2004-12-30  Jackson Harper  <jackson@ximian.com>
19421
19422         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19423         * TreeNode.cs: When collapsing make sure to never collapse the
19424         root node.
19425
19426 2004-12-29  Jackson Harper  <jackson@ximian.com>
19427
19428         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19429         
19430 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19431
19432         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19433
19434 2004-12-28  Peter Bartok  <pbartok@novell.com>
19435
19436         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19437           not yet assigned
19438
19439 2004-12-28  Peter Bartok  <pbartok@novell.com>
19440
19441         * Control.cs (WndProc): Added WM_HELP handler, now generates
19442           HelpRequested event
19443         * Form.cs: Added HelpButton property and required support code
19444         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19445
19446 2004-12-28  Peter Bartok  <pbartok@novell.com>
19447
19448         * CommonDialog.cs:
19449           - Made DialogForm.owner variable internal
19450           - Added check to ensure owner form is set before setting
19451             owner properties in CreateParams
19452
19453 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19454
19455         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19456           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19457           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19458           system to support borderless/titleless windows (implements menus).
19459           Fix GetWindowPos.  Implement initial background color support for
19460           views.
19461
19462 2004-12-28  Peter Bartok  <pbartok@novell.com>
19463
19464         * Form.cs (get_CreateParams): Make sure we have an owner before using
19465           the owner variable. Implement proper default if no owner exists
19466
19467 2004-12-28  Peter Bartok  <pbartok@novell.com>
19468
19469         * In preparation for making Managed.Windows.Forms the default build target
19470           for System.Windows.Forms, the following stubbed files were added.
19471           Dialogs are currently being implemented by contributors and are only
19472           short-term place holders.
19473         * ColorDialog.cs: Initial check-in (minmal stub)
19474         * DataGrid.cs: Initial check-in (minimal stub)
19475         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19476         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19477         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19478         * FontDialog.cs: Initial check-in (minimal stub)
19479         * FileDialog.cs: Initial check-in (minimal stub)
19480         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19481         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19482         * OpenFileDialog: Initial check-in (minimal stub)
19483         * IComponentEditorPageSite.cs: Initial check-in
19484         * Splitter.cs: Initial check-in (for Jackson)
19485         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19486         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19487         * TextBox.cs: Initial check-in; still needs some wiring to
19488           TextControl backend
19489         * Form.cs: Implemented ControlBox property
19490         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19491         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19492         * TextControl.cs: Added selection functionality; added todo header
19493         * TextBoxBase.cs:
19494           - Implemented Lines property
19495           - Implemented TextHeight property
19496           - Implemented SelectedText property
19497           - Implemented SelectionLength property
19498           - Implemented SelectAll method
19499           - Implemented ToString method
19500           - Removed and cleaned up some debug code
19501           - Implemented (still buggy) mouse text selection
19502
19503 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19504
19505         * ComboBox.cs: Complete DropDownList implementation, fixes.
19506
19507 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19508
19509         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19510         * ComboBoxStyle.cs: ComboBoxStyle enum
19511         * ComboBox.cs: Initial work on ComboBox control
19512
19513 2004-12-21  Peter Bartok  <pbartok@novell.com>
19514
19515         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19516           forward so that anything that creates a window gets the default,
19517           also no longer uses Visible property in CreateParams to avoid
19518           walking up the parent chain and possibly get the wrong visible
19519           status. Fixed IsVisible to no longer walk up to the parent.
19520
19521 2004-12-21  Peter Bartok  <pbartok@novell.com>
19522
19523         * Form.cs (ShowDialog): Unset modality for the proper window
19524  
19525 2004-12-20  Peter Bartok  <pbartok@novell.com>
19526
19527         * CommonDialog.cs: Initial check-in
19528
19529 2004-12-20  Peter Bartok  <pbartok@novell.com>
19530
19531         * Control.cs (Visible): Now uses the parent window instead of the
19532           client area window for the property
19533
19534         * Form.cs
19535           - ShowDialog(): Now uses the proper window for modality
19536           - The default visibility state for the form parent is now false. This
19537             will prevent the user from seeing all the changes to the form and
19538             its controls before the application hits Application.Run()
19539           - Removed some stale commented out code
19540
19541         * NativeWindow.cs:
19542           - Added FindWindow() method to have a method to check for existence
19543             of a window handle
19544           - Added ability to override default exception handling (for example
19545             when debugging with VS.Net; to do this the ExternalExceptionHandler
19546             define must be set
19547           - Removed some useless debug output
19548
19549         * XplatUIX11.cs:
19550           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19551             not working as expected
19552           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19553             property to allow switching back to the modal window if focus is
19554             given to another one of our windows (Application Modal)
19555           - Now only sets override_redirect if we create a window
19556             without WS_CAPTION
19557           - Moved EventMask selection before mapping of newly created window
19558             so we can catch the map event as well
19559           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19560           - Added various Atom related DllImports
19561           - Implemented Exit() method
19562           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19563             in the CreateParams
19564
19565         * MessageBox.cs: Now properly deals with the FormParent window by
19566           providing an override the FormParent CreateParams property to
19567           set as POPUP instead of OVERLAPPED window.
19568
19569 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19570
19571         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19572         Minor code cleanup.
19573
19574 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19575         
19576         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19577
19578 2004-12-18  Peter Bartok  <pbartok@novell.com>
19579
19580         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19581           implementing SetModal() method
19582
19583 2004-12-18  Peter Bartok  <pbartok@novell.com>
19584
19585         * X11Structs.cs (XGCValues): Fixed type of function element
19586         * XplatUI.cs: Added ScrollWindow() method
19587         * XplatUIDriver.cs: Added ScrollWindow() abstract
19588         * XplatUIWin32.cs: Implemented ScrollWindow() method
19589         * XplatUIX11.cs: Implemented ScrollWindow() method
19590         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19591
19592 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19593
19594         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19595         Some more keyboard support (INCOMPLETE)
19596
19597 2004-12-17  Peter Bartok  <pbartok@novell.com>
19598
19599         * TextControl.cs:
19600         - Added color attribute to line tags.
19601         - Added color argument to all functions dealing with tags
19602         - Added color argument support to various functions
19603         - Fixed miss-calculation of baseline/shift in certain circumstances
19604
19605         * TextBoxBase.cs: Added new color option to test code
19606
19607 2004-12-17  Jackson Harper  <jackson@ximian.com>
19608
19609         * TreeNode.cs:
19610         * MonthCalendar.cs: Signature fixes
19611
19612 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19613
19614         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19615         keyboard event moved it.  Create a new graphics context for each paint resolves this
19616
19617 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19618
19619         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19620         Make caret exist and go blink blink.  Initial keyboard support.
19621         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19622         works.
19623
19624 2004-12-17  Jackson Harper  <jackson@ximian.com>
19625
19626         * XplatUIStructs.cs: Updated set of virtual keycodes.
19627         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19628
19629 2004-12-17  Jackson Harper  <jackson@ximian.com>
19630
19631         * XplatUIX11.cs: Prune old keyboard code.
19632
19633 2004-12-17  Jackson Harper  <jackson@ximian.com>
19634
19635         * XplatUIX11.cs: When generating mouse wparams get the modifier
19636         keys from the ModifierKeys property.
19637
19638 2004-12-17  Jackson Harper  <jackson@ximian.com>
19639
19640         * X11Keyboard.cs: Send up/down input when generating
19641         messages. Remove some unused vars.
19642
19643 2004-12-17  Jackson Harper  <jackson@ximian.com>
19644
19645         * TabControl.cs:
19646         * TreeView.cs: get rid of warnings.
19647
19648 2004-12-17  Jackson Harper  <jackson@ximian.com>
19649
19650         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19651
19652 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19653
19654         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19655           CheckedListBox.cs: Implementation
19656
19657 2004-12-17  Peter Bartok  <pbartok@novell.com>
19658
19659         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19660
19661 2004-12-16  Peter Bartok  <pbartok@novell.com>
19662
19663         * TextControl.cs:
19664           - InsertCharAtCaret(): Fixed start pos fixup
19665           - CaretLine_get: No longer derives the line from the tag, the tag
19666             could be stale if lines in the document have been added or deleted
19667           - RebalanceAfterDelete(): Fixed bug in balancing code
19668           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19669           - Line.Streamline(): Now can also elminate leading empty tags
19670           - DumpTree(): Added a few more tests and prevented exception on
19671             uninitialized data
19672           - Added Debug section for Combining lines
19673           - Delete(): Now copies all remaining properties of a line
19674           
19675         * TextBoxBase.cs:
19676           - Left mousebutton now sets the caret (and middle button still acts
19677             as formatting tester, which must go away soon)
19678           - Added Debug section for Deleting/Combining lines
19679           - Fixed calculations for UpdateView after Combining lines
19680
19681 2004-12-16  Peter Bartok  <pbartok@novell.com>
19682
19683         * TextControl.cs: Now properly aligns text on a baseline, using the
19684           new XplatUI.GetFontMetrics() method. Simplified several calculations
19685         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19686           defined
19687
19688 2004-12-16  Peter Bartok  <pbartok@novell.com>
19689
19690         * XplatUI.cs: Added GetFontMetrics() method
19691         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19692         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19693           into libgdiplus, our private GetFontMetrics function
19694         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19695         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19696
19697 2004-12-16  Jackson Harper  <jackson@ximain.com>
19698
19699         * XplatUIStruct.cs: Add enum for dead keys
19700         * X11Keyboard.cs: Map and unmap dead keys.
19701
19702 2004-12-16  Jackson Harper  <jackson@ximian.com>
19703
19704         * X11Keyboard.cs: Detect and use the num lock mask.
19705
19706 2004-12-16  Peter Bartok  <pbartok@novell.com>
19707
19708         * Control.cs (CreateGraphics): Added check to make sure the
19709           handle of the window exists before calling Graphics.FromHwnd()
19710
19711 2004-12-16  Peter Bartok  <pbartok@novell.com>
19712
19713         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19714           contains a lot of code that's not supposed to be there for the
19715           real thing, but required for developing/testing the textbox
19716           backend.
19717
19718 2004-12-16  Peter Bartok  <pbartok@novell.com>
19719
19720         * TextControl.cs:
19721         - Fixed Streamline method
19722         - Added FindTag method to Line
19723         - Added DumpTree method for debugging
19724         - Added DecrementLines() method for deleting lines
19725         - Fixed UpdateView to update the cursor to end-of-line on single-line
19726           updates
19727         - Added PositionCaret() method
19728         - Fixed MoveCaret(LineDown) to move into the last line, too
19729         - Added InsertChar overload
19730         - Fixed InsertChar tag offset calculations
19731         - Added DeleteChar() method
19732         - Added Combine() method for folding lines
19733         - Fixed Delete() method, no longer allocates wasted Line object and
19734           now copies all properties when swapping nodes
19735         - Delete() method now updates document line counter
19736
19737 2004-12-15  Jackson Harper  <jackson@ximian.com>
19738
19739         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19740         * X11Keyboard.cs: Expose the currently selected modifier keys
19741         through a property.
19742
19743 2004-12-15  Peter Bartok  <pbartok@novell.com>
19744
19745         * TextControl.cs: Initial check-in. Still incomplete
19746
19747 2004-12-15  Jackson Harper  <jackson@ximian.com>
19748
19749         * TreeNode.cs:
19750         * TreeView.cs: Fix build on csc (second time today ;-))
19751
19752 2004-12-15  Jackson Harper  <jackson@ximian.com>
19753
19754         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19755         is calculated and use this for click testing.
19756         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19757
19758 2004-12-15  Jackson Harper  <jackson@ximian.com>
19759
19760         * TreeView.cs: Pass the nodes image index to the image list when
19761         drawing that image.
19762
19763 2004-12-15  Jackson Harper  <jackson@ximian.com>
19764
19765         * X11Keyboard.cs: Set messages hwnd.
19766         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19767         post_message calls.
19768
19769 2004-12-15  Jackson Harper  <jackson@ximian.com>
19770
19771         * X11Keyboard.cs: Fix to compile with csc.
19772         
19773 2004-12-15  Jackson Harper  <jackson@ximian.com>
19774
19775         * X11Structs.cs: Add key mask values
19776         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19777         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19778         down/up foo into WM_CHAR foo
19779         * KeyboardLayouts.cs: Common keyboard layouts
19780         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19781         post messages into the main queue.
19782
19783 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19784
19785         * Button.cs: implement ProcessMnemonic
19786         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19787           brushes everytime
19788         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19789         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19790
19791 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19792         
19793         * MonthCalendar.cs: Implemented click-hold for next/previous month
19794           and date selection
19795           
19796 2004-12-11  Peter Bartok  <pbartok@novell.com>
19797
19798         * X11Structs.cs:
19799           - Added XKeyboardState (moved from XplatUIX11.cs)
19800           - Added XCreateGC related enums and structures
19801           - Added GXFunction for XSetFunction
19802
19803         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19804
19805         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19806           CaretVisible() calls
19807
19808         * ToolTip.cs: Added code to prevent stealing focus from app windows
19809
19810         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19811           DestroyCaret, SetCaretPos and CaretVisible)
19812
19813         * XplatUIX11.cs:
19814           - Added implementation for caret functions
19815           - Moved hover variables into a struct, to make it a bit easier
19816             on the eyes and to debug
19817           - Removed XKeyboardState (moved to XplatUIX11.cs)
19818           - Moved Keyboard properties into the properties region
19819
19820         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19821           call to get a graphics context for our control
19822
19823         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19824
19825         * TreeView.cs: Fixed bug. No matter what color was set it would always
19826           return SystemColors.Window
19827
19828         * XplatUIWin32.cs: Implemented caret overrides
19829
19830 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19831
19832         * ListBox.cs: fire events, implement missing methods and properties,
19833         sorting.
19834
19835 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19836
19837         * MonthCalendar.cs: invalidation bug fixing
19838         * ThemeWin32Classic.cs: paint fixing
19839
19840 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19841
19842         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19843         prepare the CGContextRef there now.
19844
19845 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19846
19847         * MonthCalendar.cs:
19848           - optimisationL only invalidate areas that have changed
19849         * ThemeWin32Classic.cs:
19850           - only paint parts that intersect with clip_area
19851
19852 2004-12-09  Peter Bartok  <pbartok@novell.com>
19853
19854         * Application.cs: Undid changes from r37004 which cause problems
19855         on X11
19856
19857 2004-12-09  Ravindra  <rkumar@novell.com>
19858
19859         * ToolBar.cs: Added support for displaying ContextMenu
19860         attached to a button on ToolBar.
19861         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
19862         property.
19863
19864 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19865
19866         * Label.cs: autosize works in text change and removes unnecessary
19867         invalidate
19868
19869 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19870
19871         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
19872         remove warnings
19873
19874 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
19875
19876         * XplatUIOSX.cs: Added mouse move/click/grab support
19877         Remove some debugging WriteLines not needed anymore.
19878         Add window resizing/positioning.
19879         Fix visibility on reparenting.
19880
19881 2004-12-08  Peter Bartok  <pbartok@novell.com>
19882
19883         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
19884
19885 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
19886
19887         * XplatUIOSX.cs: Initial checkin
19888         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
19889
19890 2004-12-03  Ravindra <rkumar@novell.com>
19891
19892         * ListView.cs: Added some keybindings and fixed scrolling.
19893         ScrollBars listen to ValueChanged event instead of Scroll
19894         Event. This would let us take care of all changes being
19895         done in the scrollbars' values programmatically or manually.
19896         * ListView.cs (CanMultiselect): Added a check for shift key.
19897         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
19898         * ListViewItem.cs (Clone): Fixed. We need to make a copy
19899         of ListViewSubItemCollection as well.
19900
19901 2004-12-06  Peter Bartok <pbartok@novell.com>
19902
19903         * Control.cs (Parent): Added check and exception to prevent
19904         circular parenting
19905
19906 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
19907
19908         * ListBox.cs: implemented clipping, selection single and multiple,
19909         bug fixing
19910
19911 2004-12-03  Ravindra <rkumar@novell.com>
19912
19913         * ListView.cs (ListView_KeyDown):
19914         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
19915         when CTRL key is pressed.
19916         * ListViewItem.cs (Selected): Fixed setting the property.
19917
19918 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19919
19920         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
19921
19922         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
19923         MinimizeBox, ShowInTaskbar, TopMost properties.
19924
19925         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
19926         will be implemented).
19927
19928 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19929
19930         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
19931
19932         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
19933         tests.
19934         
19935         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
19936         
19937         * TreeView.cs: BackColor is Colors.Window.
19938
19939 2004-12-01  Jackson Harper  <jackson@ximian.com>
19940
19941         * TreeView.cs: When resizing the tree if the user is making it
19942         smaller we don't get expose events, so we need to handle adding
19943         the horizontal scrollbar in the size changed handler as well as
19944         the expose handler.
19945
19946 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
19947
19948         * DrawItemState.cs: fixes wrong enum values
19949
19950 2004-12-01  Jackson Harper  <jackson@ximian.com>
19951
19952         * TreeView.cs: Resize the hbar as well as the vbar on resize.
19953
19954 2004-12-01  Jackson Harper  <jackson@ximian.com>
19955
19956         * NodeLabelEditEventArgs.cs:
19957         * NodeLabelEditEventHandler.cs:
19958         * OpenTreeNodeEnumerator.cs:
19959         * TreeNode.cs:
19960         * TreeNodeCollection.cs:
19961         * TreeView.cs:
19962         * TreeViewAction.cs:
19963         * TreeViewCancelEventArgs.cs:
19964         * TreeViewCancelEventHandler.cs:
19965         * TreeViewEventArgs.cs:
19966         * TreeViewEventHandler.cs: Initial implementation.
19967
19968 2004-12-01  Ravindra <rkumar@novell.com>
19969
19970         * ListView.cs (CalculateListView): Fixed scrolling related
19971         calculations. Also, removed some debug statements from other
19972         places.
19973         * ListViewItem.cs: Changed access to 'selected' instance variable
19974         from private to internal.
19975         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
19976
19977 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
19978
19979         * ThemeWin32Classic.cs: remove cache of brush and pens for
19980         specific controls and use the global system, fixes scrollbutton
19981         bugs (for small sizes, disabled, etc)
19982         
19983         * ScrollBar.cs: does not show the thumb for very small controls
19984         (as MS) and allow smaller buttons that the regular size
19985
19986 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
19987
19988         * UpDownBase.cs: Add abstract methods for the interface.
19989         Add new virtual methods (need to be hooked up to TextEntry when it
19990         exists).
19991         Add override methods for most features.
19992         Computes the size, forces the height of the text entry.
19993
19994         * NumericUpDown.cs: Put here the current testing code.
19995
19996         * Set eol-style property on all files that do not have mixed line
19997         endings, to minimize the future problems.  There are still a few
19998         files with mixed endings, and someone should choose whether they
19999         want to move it or not.
20000
20001 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20002
20003         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20004         System.Colors
20005         
20006 2004-11-30  Ravindra <rkumar@novell.com>
20007
20008         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20009         drawing and replaced use of SystemColors by theme colors.
20010         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20011         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20012         same ListViewItem is being added more than once.
20013
20014 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20015
20016         * MonthCalendar.cs:
20017           - ControlStyles love to make the control not flicker
20018           
20019 2004-11-30  Peter Bartok  <pbartok@novell.com>
20020
20021         * CharacterCasing.cs: Added
20022
20023 2004-11-29  Peter Bartok  <pbartok@novell.com>
20024
20025         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20026           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20027           I am removing these files as they conflict with already completed
20028           work. While it is fantastic to get contributions to MWF, I
20029           respectfully ask that everyone please coordinate their contributions
20030           through mono-winforms-list or #mono-winforms at this time. We're
20031           explicitly avoiding stubbing and don't want controls that don't have
20032           their basic functionality implemented in svn. Please also see
20033           http://www.mono-project.com/contributing/winforms.html
20034
20035
20036 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20037
20038         * Application.cs (ModalRun): Don't hang after exit.
20039
20040         * Theme.cs: New TreeViewDefaultSize property.
20041
20042         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20043         with less hardcoded SystemColors constant.
20044         Implemented TreeViewDefaultSize.
20045
20046         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20047         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20048
20049
20050 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20051
20052         * MonthCalendar.cs:
20053           - Fix NextMonthDate and PrevMonthDate click moving calendar
20054
20055 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20056
20057         * MonthCalendar.cs:
20058           - Fix usage of ScrollChange Property when scrolling months
20059
20060 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20061
20062         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20063          - Fixes menu destroying
20064          - Support adding and removing items on already created menus
20065
20066 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20067
20068         * MonthCalendar.cs:
20069           - Re-worked all bolded dates handling to match win32
20070         * ThemeWin32Classic.cs:
20071           - Fixed rendering with bolded dates
20072
20073 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20074
20075         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20076         - Horizontal scroolbar
20077         - Multicolumn
20078         - Fixes
20079
20080
20081 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20082
20083         * MonthCalendar.cs:
20084           - Fix Usage of MaxSelectionCount from SelectionRange
20085           - Fixed Shift + Cursor Selection
20086           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20087           - Fixed normal cursor selection to be compat with win32
20088           - Fixed Shift + Mouse Click selection
20089
20090 2004-11-24  Peter Bartok <pbartok@novell.com>
20091
20092         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20093         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20094         * XplatUIX11.cs:
20095           - CreatedKeyBoardMsg now updates keystate with Alt key
20096           - Added workaround for timer crash to CheckTimers, Jackson will
20097             develop a proper fix and check in later
20098           - Implemented DispatchMessage
20099           - Removed calling the native window proc from GetMessage (call
20100             now moved to DispatchMessage)
20101
20102         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20103           the keydata (Fixes bug #69831)
20104
20105         * XplatUIWin32.cs:
20106           - (DispatchMessage): Switched to return IntPtr
20107           - Added DllImport for SetFocus
20108
20109 2004-11-24  Ravindra <rkumar@novell.com>
20110
20111         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20112         background drawing.
20113         * ListViewItem.cs: Fixed various properties, calculations
20114         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20115         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20116         and some internal properties. Fixed MouseDown handler and Paint
20117         method.
20118
20119 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20120
20121         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20122
20123 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20124
20125         * ContainerControl.cs: correct accidental check in of local changes
20126
20127 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20128
20129         * ThemeWin32Classic.cs:
20130                 - Fixed Drawing Last month in grid (sometimes not showing)
20131         * MonthCalendar.cs:
20132                 - Fixed title width calculation bug (makeing title small)
20133
20134 2004-11-23  Peter Bartok <pbartok@novell.com>
20135
20136         * XplatUIX11.cs:
20137           - Added generation of WM_MOUSEHOVER event
20138           - Added missing assignment of async_method atom
20139           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20140
20141 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20142
20143         * ThemeWin32Classic.cs:
20144                 - Fixed Drawing of today circle when showtodaycircle not set
20145                 - fixed drawing of first and last month in the grid (gay dates)
20146         * MonthCalendar.cs:
20147                 - Fixed Drawing of today circle
20148                 - Fixed drawing of grady dates
20149                 - Fixed HitTest for today link when ShowToday set to false
20150                 - Fixed DefaultSize to obey ShowToday
20151
20152 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20153
20154         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20155         * System.Windows.Forms/Theme.cs
20156         * MonthCalendar.cs: added for MonthCalendar
20157         * SelectionRange.cs: added for MonthCalendar
20158         * Day.cs: added for MonthCalendar: added for MonthCalendar
20159         * DateRangeEventArgs.cs: added for MonthCalendar
20160         * DateRangeEventHandler.cs: added for MonthCalendar
20161
20162 2004-11-22  Ravindra <rkumar@novell.com>
20163
20164         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20165         property.
20166
20167 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20168
20169         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20170         event handler.
20171         
20172         * NumericUpDown.cs: Added new implementation.
20173         * UpDownBase.cs: Added new implementation.
20174
20175         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20176         implementations.
20177         
20178         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20179         implementations.
20180
20181         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20182         methods.
20183
20184 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20185
20186         * Timer.cs  (Dispose): Should call the base dispose when
20187         overriding.
20188
20189 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20190
20191         * ScrollBar.cs: updates thumb position when max, min or increment
20192         is changed
20193
20194 2004-11-21  Ravindra <rkumar@novell.com>
20195
20196         * ListView.cs: Implemented item selection, activation and
20197         column header style. Fixed properties to do a redraw, if
20198         required. Added support for MouseHover, DoubleClick, KeyDown
20199         and KeyUp event handling and some minor fixes.
20200         * ListViewItem.cs: Fixed constructor.
20201         * ThemeWin32Classic.cs: Improved drawing for ListView.
20202
20203 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20204
20205         * ThemeWin32Classic.cs: initial listbox drawing code
20206         * DrawMode.cs: new enumerator
20207         * ListControl.cs: stubbed class
20208         * ListBox.cs: initial implementation
20209         * Theme.cs: new methods definitions
20210         * SelectionMode.cs: new enumerator
20211
20212 2004-11-17  Peter Bartok  <pbartok@novell.com>
20213
20214         * XplatUIWin32.cs: Added double-click events to the class style
20215         * Control.cs (WndProc):
20216           - Added handling of click-count to MouseDown/ MouseUp events.
20217           - Added handling of middle and right mouse buttons
20218           - Removed old debug code
20219
20220 2004-11-17  Jackson Harper  <jackson@ximian.com>
20221
20222         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20223
20224 2004-11-17  Ravindra <rkumar@novell.com>
20225
20226         * ListView.cs: Added event handling for MouseMove/Up/Down.
20227         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20228         * ThemeWin32Classic.cs: We need to clear the graphics context and
20229         draw column header in a proper state.
20230
20231
20232 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20233
20234         *  Menu.cs: fixes signature
20235
20236 2004-11-16  Peter Bartok  <pbartok@novell.com>
20237
20238         * XplatUIX11.cs (GetMessage): Implemented generation of
20239           double click mouse messages
20240
20241 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20242
20243         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20244         not by menu
20245
20246 2004-11-11  Peter Bartok  <pbartok@novell.com>
20247
20248         * HandleData.cs: Added Visible property
20249         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20250           HandleData
20251         * XplatUIX11.cs: Removed old debug leftovers
20252         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20253         * Control.cs (WndProc): Removed old debug leftovers,
20254           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20255           needed WM_SIZE handling
20256
20257 2004-11-11  Jackson Harper  <jackson@ximian.com>
20258
20259         * OwnerDrawPropertyBag.cs:
20260         * TreeViewImageIndexConverter.cs: Initial implementation
20261
20262 2004-11-10  Jackson Harper  <jackson@ximian.com>
20263
20264         * ThemeWin32Classic.cs:
20265         * TabControl.cs: instead of moving tabs by the slider pos just
20266         start drawing at the tab that is offset by the slider. This way
20267         scrolling always moves by exactly one tab.
20268
20269 2004-11-10  Jackson Harper  <jackson@ximian.com>
20270
20271         * TabControl.cs: You can only scroll left when the slider has
20272         already ben moved right.
20273         
20274 2004-11-10  Jackson Harper  <jackson@ximian.com>
20275
20276         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20277         the clip area.
20278         
20279 2004-11-10  Jackson Harper  <jackson@ximian.com>
20280
20281         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20282         clip area.
20283         
20284 2004-11-09  Jackson Harper  <jackson@ximian.com>
20285
20286         * TabControl.cs (CalcXPos): New helper method so we can determine
20287         the proper place to start drawing vertical tabs.
20288         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20289         
20290 2004-11-09  Jackson Harper  <jackson@ximian.com>
20291
20292         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20293         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20294         and Bottom, left and right are illegal values for this and
20295         multiline is enabled when the alignment is set to left or right.
20296         (DrawTab): Each alignment block should draw the text itself now
20297         because Left requires special love. Also add rendering for Left
20298         aligned tabs.
20299         
20300 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20301
20302         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20303         does not destroy the windows, removes debugging messages
20304
20305 2004-11-09  jba  <jba-mono@optusnet.com.au>
20306
20307         * ThemeWin32Classic.cs
20308         (DrawButtonBase): Fix verticle text rect clipping in windows
20309         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20310         rendering and incorrect text rect clipping
20311         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20312         rendering and incorrect text rect clipping
20313         
20314 2004-11-08  Jackson Harper  <jackson@ximian.com>
20315
20316         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20317         bottom when they are bottom aligned so the bottoms of the tabs get
20318         displayed.
20319         * TabControl.cs (DropRow): Move rows up instead of down when the
20320         tab control is bottom aligned.
20321
20322 2004-11-08 13:59  pbartok
20323
20324         * XplatUIX11.cs:
20325           - Added handling for various window styles
20326           - Added handling for popup windows
20327           - Added SetTopmost handling
20328
20329 2004-11-08 13:55  pbartok
20330
20331         * XplatUIWin32.cs:
20332           - Added argument to SetTopmost method
20333           - Fixed broken ClientToScreen function
20334
20335 2004-11-08 13:53  pbartok
20336
20337         * XplatUIStructs.cs:
20338           - Added missing WS_EX styles
20339
20340 2004-11-08 13:53  pbartok
20341
20342         * XplatUI.cs, XplatUIDriver.cs:
20343           - Added argument to SetTopmost
20344
20345 2004-11-08 13:52  pbartok
20346
20347         * X11Structs.cs:
20348           - Added XSetWindowAttributes structure
20349           - Improved XWindowAttributes structure
20350           - Added SetWindowValuemask enum
20351           - Added window creation arguments enum
20352           - Added gravity enum
20353           - Added Motif hints structure
20354           - Added various Motif flags and enums
20355           - Added PropertyMode enum for property functions
20356
20357 2004-11-08 13:50  pbartok
20358
20359         * Form.cs:
20360           - Fixed arguments for updated SetTopmost method
20361
20362 2004-11-08 13:49  pbartok
20363
20364         * ToolTip.cs:
20365           - Fixed arguments for updated SetTopmost function
20366           - Fixed usage of PointToClient
20367
20368 2004-11-08 13:44  pbartok
20369
20370         * MenuAPI.cs:
20371           - Added Clipping of children and siblings
20372
20373 2004-11-08 13:41  pbartok
20374
20375         * MainMenu.cs:
20376           - Removed SetMenuBarWindow call. We do this in Form.cs
20377
20378 2004-11-08 13:40  jackson
20379
20380         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20381           scrolling jimmi in the correct location with bottom aligned tabs
20382
20383 2004-11-08 13:36  pbartok
20384
20385         * ContainerControl.cs:
20386           - Implemented BindingContext
20387           - Implemented ParentForm
20388
20389 2004-11-08 12:46  jackson
20390
20391         * TabControl.cs: Put bottom rendered tabs in the right location
20392
20393 2004-11-08 07:15  jordi
20394
20395         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20396           removes dead code
20397
20398 2004-11-05 17:30  jackson
20399
20400         * TabControl.cs: When selected tabs are expanded make sure they
20401           don't go beyond the edges of the tab control
20402
20403 2004-11-05 14:57  jackson
20404
20405         * TabControl.cs: Reset show_slider so if the control is resized to
20406           a size where it is no longer needed it's not displayed anymore
20407
20408 2004-11-05 13:16  jackson
20409
20410         * TabControl.cs: Make tab pages non visible when added to the
20411           control
20412
20413 2004-11-05 12:42  jackson
20414
20415         * TabControl.cs: Implement SizeMode.FillToRight
20416
20417 2004-11-05 12:16  jackson
20418
20419         * Control.cs: Do not call CreateHandle if the handle is already
20420           created
20421
20422 2004-11-05 11:46  jackson
20423
20424         * TabControl.cs: Remove superflous call to CalcTabRows
20425
20426 2004-11-05 09:07  jackson
20427
20428         * XplatUIX11.cs: Update for Mono.Posix changes
20429
20430 2004-11-05 07:00  ravindra
20431
20432         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20433           scrolling.
20434
20435 2004-11-04 22:47  jba
20436
20437         * ThemeWin32Classic.cs:
20438           - Fix Button rendering for FlatStyle = Flat or Popup
20439           - Fix RadioButton and CheckBox rendering when Appearance = Button
20440             (normal and flatstyle).
20441           - Correct outer rectangle color when drawing focus rectangle
20442           - Adjust button bounds to be 1 px smaller when focused
20443           - Make button not draw sunken 3d border when pushed (windows compat)
20444           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20445           - Offset the text in RadioButton and Checkbox when being rendered as
20446           a button.
20447           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20448           radiobuttons
20449           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20450           - Fixed disabled text rendering for normally rendered radiobuttons
20451
20452 2004-11-04 10:26  jackson
20453
20454         * TabControl.cs: Recalculate tab rows when resizing
20455
20456 2004-11-04 07:47  jordi
20457
20458         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20459           collection completion, drawing issues, missing features
20460
20461 2004-11-04 05:03  ravindra
20462
20463         * ScrollBar.cs:
20464                 - We need to recalculate the Thumb area when
20465                 LargeChange/maximum/minimum values are changed.
20466           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20467                 than minimum. This is required to handle the case if large_change is
20468                 more than max, and use LargeChange property instead of large_change
20469                 variable.
20470           - We return max+1 when large_change is more than max, like MS does.
20471
20472 2004-11-04 04:29  ravindra
20473
20474         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20475                 - Changed default value signatures (prefixed all with ListView).
20476                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20477                 ListView.
20478           - Fixed calculations for ListViewItem and implemented Clone()
20479           method.
20480
20481 2004-11-04 04:26  ravindra
20482
20483         * Theme.cs, ThemeWin32Classic.cs:
20484                 - Changed default ListView values signatures (prefixed all with
20485                 ListView).
20486           - Fixed default size values for VScrollBar and HScrollBar.
20487                 - Fixed DrawListViewItem method.
20488
20489 2004-11-04 04:05  ravindra
20490
20491         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20492
20493 2004-11-04 04:04  ravindra
20494
20495         * ImageList.cs: Implemented the missing overload for Draw method.
20496
20497 2004-11-03 19:29  jackson
20498
20499         * TabControl.cs: Handle dropping rows on selection properly
20500
20501 2004-11-03 11:59  jackson
20502
20503         * TabControl.cs: remove debug code
20504
20505 2004-11-03 11:52  jackson
20506
20507         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20508           the scrolly widgerywoo
20509
20510 2004-11-02 13:52  jackson
20511
20512         * TabControl.cs: Resize the tab pages and tabs when the tab control
20513           is resized
20514
20515 2004-11-02 13:40  jackson
20516
20517         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20518           selected tab to the bottom
20519
20520 2004-11-02 13:39  jackson
20521
20522         * TabPage.cs: Store the tab pages row
20523
20524 2004-11-02 12:33  jordi
20525
20526         * MenuItem.cs: fixes handle creation
20527
20528 2004-11-02 11:42  jackson
20529
20530         * TabControl.cs: signature fix
20531
20532 2004-11-02 08:56  jackson
20533
20534         * TabControl.cs: Calculate whether the tab is on an edge properly.
20535           Remove top secret debugging code
20536
20537 2004-11-01 19:57  jackson
20538
20539         * TabControl.cs: Add click handling, and proper sizing
20540
20541 2004-11-01 19:47  jackson
20542
20543         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20544           tab controls
20545
20546 2004-11-01 19:39  jackson
20547
20548         * TabPage.cs: add internal property to store the bounds of a tab
20549           page
20550
20551 2004-10-30 04:23  ravindra
20552
20553         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20554           values.
20555
20556 2004-10-30 04:21  ravindra
20557
20558         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20559           fixed calculations.
20560
20561 2004-10-30 03:06  pbartok
20562
20563         * XplatUIX11.cs:
20564           - Removed extension of DllImported libs
20565
20566 2004-10-29 09:55  jordi
20567
20568         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20569           navigation, itemcollection completion, menu fixes
20570
20571 2004-10-27 22:58  pbartok
20572
20573         * XplatUIX11.cs:
20574           - Now throws a nice error message when no X display could be opened
20575
20576 2004-10-26 13:51  jordi
20577
20578         * ListView.cs: removes warning
20579
20580 2004-10-26 03:55  ravindra
20581
20582         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20583           ThemeWin32Classic.cs: Some formatting for my last checkins.
20584
20585 2004-10-26 03:36  ravindra
20586
20587         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20588           control and default values.
20589
20590 2004-10-26 03:35  ravindra
20591
20592         * Theme.cs: Added some default values for ListView control.
20593
20594 2004-10-26 03:33  ravindra
20595
20596         * ToolBar.cs: ToolBar should use the user specified button size, if
20597           there is any. Added a size_specified flag for the same.
20598
20599 2004-10-26 03:33  ravindra
20600
20601         * ColumnHeader.cs: Added some internal members and calculations for
20602           ColumnHeader.
20603
20604 2004-10-26 03:32  ravindra
20605
20606         * ListViewItem.cs: Calculations for ListViewItem.
20607
20608 2004-10-26 03:31  ravindra
20609
20610         * ListView.cs: Added some internal members and calculations for
20611           ListView.
20612
20613 2004-10-22 13:31  jordi
20614
20615         * MenuAPI.cs: speedup menus drawing
20616
20617 2004-10-22 13:16  jackson
20618
20619         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20620           expose event
20621
20622 2004-10-22 11:49  jackson
20623
20624         * Control.cs: oops
20625
20626 2004-10-22 11:41  jackson
20627
20628         * Control.cs: Check to see if the window should have its background
20629           repainted by X when drawing.
20630
20631 2004-10-22 11:31  jackson
20632
20633         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20634           clear is true, this way we do not get flicker from X repainting the
20635           background
20636
20637 2004-10-22 11:28  jackson
20638
20639         * XEventQueue.cs: Queue properly
20640
20641 2004-10-21 09:38  jackson
20642
20643         * XEventQueue.cs: Fix access modifier
20644
20645 2004-10-21 09:36  jackson
20646
20647         * XEventQueue.cs: Don't loose messages
20648
20649 2004-10-21 09:22  jackson
20650
20651         * XEventQueue.cs: Don't loose messages
20652
20653 2004-10-20 04:15  jordi
20654
20655         * BootMode.cs: enum need it by SystemInfo
20656
20657 2004-10-19 21:58  pbartok
20658
20659         * XplatUIWin32.cs:
20660           - Small sanity check
20661
20662 2004-10-19 21:56  pbartok
20663
20664         * Form.cs:
20665           - Added private FormParentWindow class which acts as the container
20666             for our form and as the non-client area where menus are drawn
20667           - Added/Moved required tie-ins to Jordi's menus
20668           - Fixed/Implemented the FormStartPosition functionality
20669
20670 2004-10-19 21:52  pbartok
20671
20672         * Control.cs:
20673           - Removed unneeded locals
20674           - Added code to all size and location properties to understand and
20675             deal with the parent container of Form
20676
20677 2004-10-19 21:33  pbartok
20678
20679         * Application.cs:
20680           - Fixed to deal with new Form subclasses for menus
20681
20682 2004-10-19 17:48  jackson
20683
20684         * XEventQueue.cs: commit correct version of file
20685
20686 2004-10-19 16:50  jackson
20687
20688         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20689
20690 2004-10-19 16:15  jordi
20691
20692         * MenuAPI.cs: MenuBarCalcSize returns the height
20693
20694 2004-10-19 08:31  pbartok
20695
20696         * Control.cs:
20697           - Added missing call to PreProcessMessage before calling OnXXXKey
20698           methods
20699
20700 2004-10-19 00:04  ravindra
20701
20702         * ToolTip.cs: Fixed constructor.
20703
20704 2004-10-18 09:31  jordi
20705
20706         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20707
20708 2004-10-18 09:26  jordi
20709
20710         * MenuItem.cs: fixes MenuItem class signature
20711
20712 2004-10-18 08:56  jordi
20713
20714         * MenuAPI.cs: prevents windows from showing in the taskbar
20715
20716 2004-10-18 00:28  ravindra
20717
20718         * ToolTip.cs: Suppressed a warning message.
20719
20720 2004-10-18 00:27  ravindra
20721
20722         * Control.cs: Default value of visible property must be true.
20723
20724 2004-10-17 23:19  pbartok
20725
20726         * ToolTip.cs:
20727           - Complete implementation
20728
20729 2004-10-17 23:19  pbartok
20730
20731         * XplatUIX11.cs:
20732           - Added EnableWindow method
20733           - Added SetModal stub
20734           - Added generation of WM_ACTIVATE message (still needs testing)
20735           - Added SetTopMost stub
20736           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20737
20738 2004-10-17 23:17  pbartok
20739
20740         * XplatUIWin32.cs:
20741           - Removed VirtualKeys to XplatUIStructs
20742           - Implemented SetTopMost method
20743           - Implemented EnableWindow method
20744           - Bugfix in ScreenToClient()
20745           - Bugfixes in ClientToScreen()
20746
20747 2004-10-17 22:51  pbartok
20748
20749         * XplatUIStructs.cs:
20750           - Added WS_EX styles to WindowStyles enumeration
20751
20752 2004-10-17 22:50  pbartok
20753
20754         * XplatUI.cs, XplatUIDriver.cs:
20755           - Added method for enabling/disabling windows
20756           - Added method for setting window modality
20757           - Added method for setting topmost window
20758
20759 2004-10-17 22:49  pbartok
20760
20761         * ThemeWin32Classic.cs:
20762           - Added ToolTip drawing code
20763
20764 2004-10-17 22:49  pbartok
20765
20766         * Theme.cs:
20767           - Added ToolTip abstracts
20768
20769 2004-10-17 22:47  pbartok
20770
20771         * Form.cs:
20772           - Fixed Form.ControlCollection to handle owner relations
20773           - Added Owner/OwnedForms handling
20774           - Implemented Z-Ordering for owned forms
20775           - Removed unneeded private overload of ShowDialog
20776           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20777             so I hope)
20778           - Fixed Close(), had wrong default
20779           - Added firing of OnLoad event
20780           - Added some commented out debug code for Ownership handling
20781
20782 2004-10-17 22:16  pbartok
20783
20784         * Control.cs:
20785           - Fixed/implemented flat list of controls
20786
20787 2004-10-17 22:14  pbartok
20788
20789         * Application.cs:
20790           - Added code to simulate modal dialogs on Win32
20791
20792 2004-10-17 16:11  jordi
20793
20794         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20795           mouse event
20796
20797 2004-10-17 13:39  jordi
20798
20799         * MenuAPI.cs: menu drawing fixes
20800
20801 2004-10-15 09:10  ravindra
20802
20803         * StructFormat.cs: General Enum.
20804
20805 2004-10-15 09:09  ravindra
20806
20807         * SizeGripStyle.cs: Enum for Form.
20808
20809 2004-10-15 09:08  ravindra
20810
20811         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20812           in Theme for ListView.
20813
20814 2004-10-15 09:06  ravindra
20815
20816         * ColumnHeader.cs: Flushing some formatting changes.
20817
20818 2004-10-15 09:05  ravindra
20819
20820         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20821           style.
20822
20823 2004-10-15 09:03  ravindra
20824
20825         * ListView.cs: Implemented Paint method and fixed coding style.
20826
20827 2004-10-15 07:34  jordi
20828
20829         * MenuAPI.cs: fix for X11
20830
20831 2004-10-15 07:32  ravindra
20832
20833         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20834                 - Renamed Paint() method to Draw() for clarity. Also, moved
20835                 DrawImage() to OnPaint().
20836
20837 2004-10-15 07:25  ravindra
20838
20839         * CheckBox.cs, RadioButton.cs:
20840                 - Removed Redraw (), we get it from ButtonBase.
20841                 - Implemented Paint (), to do class specific painting.
20842
20843 2004-10-15 07:16  ravindra
20844
20845         * ButtonBase.cs:
20846                 - Redraw () is not virtual now.
20847                 - Added an internal virtual method Paint (), so that
20848                 derived classes can do their painting on their own.
20849                 - Modified OnPaint () to call Paint ().
20850
20851 2004-10-15 06:43  jordi
20852
20853         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20854           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20855
20856 2004-10-15 00:30  ravindra
20857
20858         * MessageBox.cs:
20859                 - MessageBox on windows does not have min/max buttons.
20860                 This change in CreateParams fixes this on Windows. We
20861                 still need to implement this windowstyle behavior in
20862                 our X11 driver.
20863
20864 2004-10-14 05:14  ravindra
20865
20866         * ToolBar.cs:
20867                 - Changed Redraw () to do a Refresh () always.
20868                 - Fixed the MouseMove event handling when mouse is pressed,
20869                 ie drag event handling.
20870                 - Replaced the usage of ToolBarButton.Pressed property to
20871                 ToolBarButton.pressed internal variable.
20872
20873 2004-10-14 05:10  ravindra
20874
20875         * ToolBarButton.cs:
20876                 - Added an internal member 'inside' to handle mouse move
20877                 with mouse pressed ie mouse drag event.
20878                 - Changed 'Pressed' property to return true only when
20879                 'inside' and 'pressed' are both true.
20880                 - Some coding style love.
20881
20882 2004-10-14 00:17  ravindra
20883
20884         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
20885           public method.
20886
20887 2004-10-14 00:15  ravindra
20888
20889         * ButtonBase.cs: Redraw () related improvements.
20890
20891 2004-10-14 00:14  ravindra
20892
20893         * MessageBox.cs: Moved InitFormSize () out of Paint method and
20894           removed unnecessary calls to Button.Show () method.
20895
20896 2004-10-13 17:50  pbartok
20897
20898         * XplatUIX11.cs:
20899           - Formatting fix
20900           - Removed destroying of window until we solve the problem of X
20901             destroying the window before us on shutdown
20902
20903 2004-10-13 16:32  pbartok
20904
20905         * ButtonBase.cs:
20906           - Now Redraws on MouseUp for FlatStyle Flat and Popup
20907
20908 2004-10-13 14:18  pbartok
20909
20910         * XplatUIX11.cs:
20911           - Added code to destroy the X window
20912
20913 2004-10-13 14:18  pbartok
20914
20915         * XplatUIWin32.cs:
20916           - Added code to destroy a window
20917
20918 2004-10-13 14:12  pbartok
20919
20920         * ButtonBase.cs:
20921           - Added the Redraw on Resize that got dropped in the last rev
20922
20923 2004-10-13 09:06  pbartok
20924
20925         * ThemeWin32Classic.cs:
20926           - Path from John BouAntoun:
20927             * Fix check rendering (centre correctly for normal style, offset
20928               correctly for FlatStyle).
20929             * Fix border color usage (use backcolor) for FlatStyle.Popup
20930             * Use checkbox.Capture instead of checkbox.is_pressed when
20931               rendering flatstyle states.
20932
20933 2004-10-12 21:48  pbartok
20934
20935         * ThemeWin32Classic.cs:
20936           - Removed all occurences of SystemColors and replaced them with the
20937             matching theme color
20938
20939 2004-10-12 21:41  pbartok
20940
20941         * ThemeWin32Classic.cs:
20942           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
20943             him using the function for flatstyle drawing
20944           - Changed functions to use the new version of CPDrawBorder3D
20945
20946 2004-10-12 21:15  pbartok
20947
20948         * ControlPaint.cs:
20949           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
20950             match MS documentation. They need to return defined colors if the
20951             passed color matches the configured control color. Thanks to John
20952             BouAntoun for pointing this out.
20953
20954 2004-10-12 20:57  pbartok
20955
20956         * Control.cs:
20957           - Fix from John BouAntoun: Raise ForeColorChanged event when text
20958             color is changed
20959
20960 2004-10-12 20:46  pbartok
20961
20962         * CheckBox.cs:
20963           - Fix from John BouAntoun: Now properly sets the Appearance property
20964
20965 2004-10-12 20:45  pbartok
20966
20967         * ThemeWin32Classic.cs:
20968           - Fixes from John BouAntoun: now handles forecolors and backcolors
20969             for flatstyle rendered controls much better; It also fixes normal
20970             checkbox rendering when pushed or disabled.
20971
20972 2004-10-08 02:50  jordi
20973
20974         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
20975           work
20976
20977 2004-10-07 08:56  jordi
20978
20979         * ThemeWin32Classic.cs: Removes deletion of cached brushes
20980
20981 2004-10-06 03:59  jordi
20982
20983         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
20984           XplatUIWin32.cs: removes warnings from compilation
20985
20986 2004-10-05 12:23  jackson
20987
20988         * RadioButton.cs: Fix ctor
20989
20990 2004-10-05 11:10  pbartok
20991
20992         * MessageBox.cs:
20993           - Partial implementation by Benjamin Dasnois
20994
20995 2004-10-05 10:15  jackson
20996
20997         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
20998           by John BouAntoun
20999
21000 2004-10-05 03:07  ravindra
21001
21002         * ToolBar.cs:
21003                 - Removed a private method, Draw ().
21004                 - Fixed the ButtonDropDown event handling.
21005                 - Fixed MouseMove event handling.
21006
21007 2004-10-05 03:04  ravindra
21008
21009         * ThemeWin32Classic.cs:
21010                 - Added DrawListView method and ListViewDefaultSize property.
21011                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21012                 - Changed DOS style CRLF to Unix format (dos2unix).
21013
21014 2004-10-05 03:03  ravindra
21015
21016         * Theme.cs:
21017                 - Added DrawListView method and ListViewDefaultSize property.
21018
21019 2004-10-05 02:42  ravindra
21020
21021         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21022           clicks on DropDown arrow.
21023
21024 2004-10-04 22:56  jackson
21025
21026         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21027           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21028           Control handle the buffers, derived classes should not have to
21029           CreateBuffers themselves.
21030
21031 2004-10-04 21:20  jackson
21032
21033         * StatusBar.cs: The control handles resizing the buffers now.
21034
21035 2004-10-04 21:18  jackson
21036
21037         * Control.cs: When resizing the buffers should be invalidated. This
21038           should be handled in Control not in derived classes.
21039
21040 2004-10-04 14:45  jackson
21041
21042         * TabPage.cs: oops
21043
21044 2004-10-04 02:14  pbartok
21045
21046         * LeftRightAlignment.cs:
21047           - Initial check-in
21048
21049 2004-10-04 01:09  jordi
21050
21051         * ThemeWin32Classic.cs: fixes right button position causing right
21052           button not showing on horizontal scrollbars
21053
21054 2004-10-02 13:12  pbartok
21055
21056         * XplatUIX11.cs:
21057           - Simplified the Invalidate method by using an X call instead of
21058             generating the expose ourselves
21059           - Added an expose when the window background is changed
21060           - Implemented ClientToScreen method
21061
21062 2004-10-02 13:08  pbartok
21063
21064         * XplatUIWin32.cs:
21065           - Added Win32EnableWindow method (test for implementing modal
21066           dialogs)
21067           - Added ClientToScreen method and imports
21068
21069 2004-10-02 13:07  pbartok
21070
21071         * XplatUI.cs, XplatUIDriver.cs:
21072           - Added ClientToScreen coordinate translation method
21073
21074 2004-10-02 13:06  pbartok
21075
21076         * KeyPressEventArgs.cs:
21077           - Fixed access level for constructor
21078
21079 2004-10-02 13:06  pbartok
21080
21081         * NativeWindow.cs:
21082           - Changed access level for the window_collection hash table
21083
21084 2004-10-02 13:05  pbartok
21085
21086         * Form.cs:
21087           - Added KeyPreview property
21088           - Added Menu property (still incomplete, pending Jordi's menu work)
21089           - Implemented ProcessCmdKey
21090           - Implemented ProcessDialogKey
21091           - Implemented ProcessKeyPreview
21092
21093 2004-10-02 13:02  pbartok
21094
21095         * Control.cs:
21096           - Added private method to get the Control object from the window
21097           handle
21098           - Implemented ContextMenu property
21099           - Implemented PointToScreen
21100           - Implemented PreProcessMessage
21101           - Implemented IsInputChar
21102           - Implemented IsInputKey
21103           - Implemented ProcessCmdKey
21104           - Completed ProcessKeyEventArgs
21105           - Fixed message loop to call the proper chain of functions on key
21106           events
21107           - Implemented ProcessDialogChar
21108           - Implemented ProcessDialogKey
21109           - Implemented ProcessKeyMessage
21110           - Implemented ProcessKeyPreview
21111           - Added RaiseDragEvent stub (MS internal method)
21112           - Added RaiseKeyEvent stub (MS internal method)
21113           - Added RaiseMouseEvent stub (MS Internal method)
21114           - Added RaisePaintEvent stub (MS Internal method)
21115           - Added ResetMouseEventArgs stub (MS Internal method)
21116           - Implemented RtlTranslateAlignment
21117           - Implemented RtlTranslateContent
21118           - Implemented RtlTranslateHorizontal
21119           - Implemented RtlTranslateLeftRight
21120           - Added generation of KeyPress event
21121
21122 2004-10-02 05:57  ravindra
21123
21124         * ListViewItem.cs: Added attributes.
21125
21126 2004-10-02 05:32  ravindra
21127
21128         * ListView.cs: Added attributes.
21129
21130 2004-10-01 11:53  jackson
21131
21132         * Form.cs: Implement the Close method so work on MessageBox can
21133           continue.
21134
21135 2004-09-30 14:06  pbartok
21136
21137         * XplatUIX11.cs:
21138           - Bug fixes
21139
21140 2004-09-30 11:34  jackson
21141
21142         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21143
21144 2004-09-30 07:26  ravindra
21145
21146         * ListViewItemConverter.cs: Converter for ListViewItem.
21147
21148 2004-09-30 07:26  ravindra
21149
21150         * SortOrder.cs: Enum for ListView control.
21151
21152 2004-09-30 07:25  ravindra
21153
21154         * ColumnHeader.cs: Supporting class for ListView control.
21155
21156 2004-09-30 07:24  ravindra
21157
21158         * ListView.cs, ListViewItem.cs: Initial implementation.
21159
21160 2004-09-30 07:20  ravindra
21161
21162         * ItemActivation.cs: Enum for ListView Control.
21163
21164 2004-09-29 20:29  pbartok
21165
21166         * XplatUIX11.cs:
21167           - Added lookup of pixel value for background color; tries to get a
21168             color 'close' to the requested color, it avoids having to create a
21169             colormap.  Depending on the display this could mean the used color
21170             is slightly off the desired color. Might have to change it to a more
21171             resource intensive colormap approach, but it will work as a
21172           workaround to avoid red screens.
21173
21174 2004-09-29 14:27  jackson
21175
21176         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21177
21178 2004-09-28 12:44  pbartok
21179
21180         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21181           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21182           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21183           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21184           TrackBar.cs, VScrollBar.cs:
21185           - Streamlined Theme interfaces:
21186             * Each DrawXXX method for a control now is passed the object for
21187               the control to be drawn in order to allow accessing any state the
21188               theme might require
21189
21190             * ControlPaint methods for the theme now have a CP prefix to avoid
21191               name clashes with the Draw methods for controls
21192
21193             * Every control now retrieves it's DefaultSize from the current
21194             theme
21195
21196 2004-09-28 12:17  jackson
21197
21198         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21199           drawing
21200
21201 2004-09-24 14:57  jackson
21202
21203         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21204           Gives us a nice little performance boost.
21205
21206 2004-09-24 12:02  jackson
21207
21208         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21209           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21210           Control and supporting classes. Initial checkin
21211
21212 2004-09-23 13:08  jackson
21213
21214         * Form.cs: Temp build fixage
21215
21216 2004-09-23 01:39  ravindra
21217
21218         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21219           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21220           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21221           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21222           EventHandlers needed by ListView Control.
21223
21224 2004-09-22 14:12  pbartok
21225
21226         * ScrollableControl.cs:
21227           - Implemented DockPadding property
21228           - Implemented AutoScroll property
21229           - Implemented AutoScrollMargin property
21230           - Implemented AutoScrollMinSize property
21231           - Implemented AutoScrollPosition property
21232           - Implemented DisplayRectangle property (still incomplete)
21233           - Implemented CreateParams property
21234           - Implemented HScroll property
21235           - Implemented VScroll property
21236           - Implemented OnVisibleChanged property
21237
21238 2004-09-22 14:09  pbartok
21239
21240         * Form.cs:
21241           - Added Form.ControllCollection class
21242           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21243             RemoveOwnedForm (still incomplete, missing on-top and common
21244             minimize/maximize behaviour)
21245           - Added StartPosition property (still incomplete, does not use when
21246             creating the form)
21247           - Added ShowDialog() methods (still incomplete, missing forcing the
21248             dialog modal)
21249
21250 2004-09-22 14:05  pbartok
21251
21252         * Application.cs:
21253           - Added message loop for modal dialogs
21254
21255 2004-09-22 14:02  pbartok
21256
21257         * GroupBox.cs:
21258           - Fixed wrong types for events
21259
21260 2004-09-22 14:00  pbartok
21261
21262         * Shortcut.cs, FormWindowState.cs:
21263           - Fixed wrong values
21264
21265 2004-09-22 12:01  jackson
21266
21267         * Control.cs: Text is never null
21268
21269 2004-09-20 22:14  pbartok
21270
21271         * XplatUIWin32.cs:
21272           - Fixed accessibility level for Idle handler
21273
21274 2004-09-20 18:54  jackson
21275
21276         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21277           XplatUIX11.cs: New message loop that uses poll so we don't get a
21278           busy loop
21279
21280 2004-09-17 10:43  pbartok
21281
21282         * ScrollBar.cs:
21283           - Fixed behaviour of arrow buttons. Now properly behaves like
21284             Buttons (and like Microsoft's scrollbar arrow buttons)
21285
21286 2004-09-17 10:14  pbartok
21287
21288         * ScrollBar.cs:
21289           - Added missing release of keyboard/mouse capture
21290
21291 2004-09-17 06:18  jordi
21292
21293         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21294           Theme.cs: Very early menu support
21295
21296 2004-09-16 17:45  pbartok
21297
21298         * XplatUIWin32.cs:
21299           - Fixed sending a window to the front
21300           - Added overload for SetWindowPos to avoid casting
21301
21302 2004-09-16 17:44  pbartok
21303
21304         * Control.cs:
21305           - Added SendToBack and BringToFront methods
21306
21307 2004-09-16 07:00  ravindra
21308
21309         * Copyright: Added Novell URL.
21310
21311 2004-09-16 07:00  ravindra
21312
21313         * ToolBar.cs: Invalidate should be done before redrawing.
21314
21315 2004-09-15 21:19  ravindra
21316
21317         * ColumnHeaderStyle.cs: Enum for ListView Control.
21318
21319 2004-09-15 21:18  ravindra
21320
21321         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21322           ListView Control.
21323
21324 2004-09-13 18:26  jackson
21325
21326         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21327           properly
21328
21329 2004-09-13 18:13  jackson
21330
21331         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21332           a second thread and post messages into the main threads message
21333           queue. This makes timing much more consistent. Both win2K and XP
21334           have a minimum timer value of 15 milliseconds, so we now do this
21335           too.
21336
21337 2004-09-13 15:18  pbartok
21338
21339         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21340           XplatUIX11.cs:
21341           - Added Z-Ordering methods
21342
21343 2004-09-13 10:56  pbartok
21344
21345         * Form.cs:
21346           - Fixed #region names
21347           - Moved properties and methods into their proper #regions
21348
21349 2004-09-13 10:51  pbartok
21350
21351         * Form.cs:
21352           - Added Accept and CancelButton properties
21353           - Added ProcessDialogKey() method
21354
21355 2004-09-13 08:18  pbartok
21356
21357         * IWindowTarget.cs:
21358           - Initial check-in
21359
21360 2004-09-10 21:50  pbartok
21361
21362         * Control.cs:
21363           - Added DoDragDrop() [incomplete]
21364           - Properly implemented 'Visible' handling
21365           - Added SetVisibleCore()
21366           - Implemented FindChildAtPoint()
21367           - Implemented GetContainerControl()
21368           - Implemented Hide()
21369
21370 2004-09-10 19:28  pbartok
21371
21372         * Control.cs:
21373           - Moved methods into their appropriate #regions
21374           - Reordered methods within regions alphabetically
21375
21376 2004-09-10 18:57  pbartok
21377
21378         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21379           - Added method to retrieve text from window
21380
21381 2004-09-10 18:56  pbartok
21382
21383         * Control.cs:
21384           - Moved some internal functions into the internal region
21385           - Implemented FontHeight
21386           - Implemented RenderRightToLeft
21387           - Implemented ResizeRedraw
21388           - Implemented ShowFocusCues
21389           - Implemented ShowKeyboardCues
21390           - Implemented FromChildHandle
21391           - Implemented FromHandle
21392           - Implemented IsMnemonic
21393           - Implemented ReflectMessage
21394           - All public and protected Static Methods are now complete
21395
21396 2004-09-10 16:54  pbartok
21397
21398         * Control.cs:
21399           - Implemented remaining missing public instance properties
21400           - Alphabetized some out of order properties
21401
21402 2004-09-10 05:51  ravindra
21403
21404         * PictureBox.cs: Added a check for null image.
21405
21406 2004-09-10 00:59  jordi
21407
21408         * GroupBox.cs: remove cvs tag
21409
21410 2004-09-09 05:25  ravindra
21411
21412         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21413
21414 2004-09-09 05:23  ravindra
21415
21416         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21417           parent redraw.
21418
21419 2004-09-09 02:28  pbartok
21420
21421         * ThemeWin32Classic.cs:
21422           - Improve disabled string look
21423
21424 2004-09-09 01:15  jordi
21425
21426         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21427           args and handler
21428
21429 2004-09-08 23:56  ravindra
21430
21431         * ItemBoundsPortion.cs: It's enum, not a class!
21432
21433 2004-09-08 23:47  ravindra
21434
21435         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21436           Enums for Form.
21437
21438 2004-09-08 21:13  ravindra
21439
21440         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21441           ListView control.
21442
21443 2004-09-08 21:03  ravindra
21444
21445         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21446           avoid crash.
21447
21448 2004-09-08 21:01  ravindra
21449
21450         * ScrollableControl.cs: Removed unreachable code.
21451
21452 2004-09-08 06:45  jordi
21453
21454         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21455
21456 2004-09-08 01:00  jackson
21457
21458         * XplatUIX11.cs: Only run the timers when updating the message
21459           queue. This effectively gives X messages a higher priority then
21460           timer messages. Timers still need love though
21461
21462 2004-09-07 14:01  jackson
21463
21464         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21465           this for us and the handle is no longer valid.
21466
21467 2004-09-07 13:59  jackson
21468
21469         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21470           loop that manages to not crash. TODO: Add poll and cleanup timers
21471
21472 2004-09-07 11:12  jordi
21473
21474         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21475
21476 2004-09-07 03:40  jordi
21477
21478         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21479           fixes, methods, multiple links
21480
21481 2004-09-06 06:55  jordi
21482
21483         * Control.cs: Caches ClientRectangle rectangle value
21484
21485 2004-09-05 02:03  jordi
21486
21487         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21488           certain situations
21489
21490 2004-09-04 11:10  jordi
21491
21492         * Label.cs: Refresh when font changed
21493
21494 2004-09-02 16:24  pbartok
21495
21496         * Control.cs:
21497           - Added sanity check to creation of double buffer bitmap
21498
21499 2004-09-02 16:24  pbartok
21500
21501         * ButtonBase.cs:
21502           - Fixed selection of text color
21503           - Fixed handling of resize event; now properly recreates double
21504             buffering bitmap
21505           - Added missing assignment of TextAlignment
21506           - Added proper default for TextAlignment
21507
21508 2004-09-02 14:26  pbartok
21509
21510         * RadioButton.cs:
21511           - Added missing RadioButton.RadioButtonAccessibleObject class
21512
21513 2004-09-02 14:26  pbartok
21514
21515         * Control.cs:
21516           - Added missing Control.ControlAccessibleObject class
21517           - Started to implement Select()ion mechanisms, still very incomplete
21518
21519 2004-09-02 14:25  pbartok
21520
21521         * AccessibleObject.cs:
21522           - Added missing methods
21523
21524 2004-09-02 14:23  pbartok
21525
21526         * AccessibleNavigation.cs, AccessibleSelection.cs:
21527           - Initial check-in
21528
21529 2004-09-02 10:32  jordi
21530
21531         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21532           pool for pens, brushes, and hatchbruses
21533
21534 2004-09-01 15:30  jackson
21535
21536         * StatusBar.cs: Fix typo
21537
21538 2004-09-01 14:44  pbartok
21539
21540         * RadioButton.cs:
21541           - Fixed state
21542
21543 2004-09-01 14:39  pbartok
21544
21545         * Button.cs, RadioButton.cs:
21546           - Functional initial check-in
21547
21548 2004-09-01 14:01  pbartok
21549
21550         * CheckBox.cs:
21551           - Added missing default
21552           - Added missing region mark
21553
21554 2004-09-01 09:10  jordi
21555
21556         * Label.cs: fixes method signatures, new methods, events, fixes
21557           autosize
21558
21559 2004-09-01 07:19  jordi
21560
21561         * Control.cs: Init string variables with an empty object
21562
21563 2004-09-01 04:20  jordi
21564
21565         * Control.cs: fires OnFontChanged event
21566
21567 2004-08-31 20:07  pbartok
21568
21569         * ButtonBase.cs:
21570           - Enabled display of strings
21571
21572 2004-08-31 20:05  pbartok
21573
21574         * Form.cs:
21575           - Added (partial) implementation of DialogResult; rest needs to be
21576             implemented when the modal loop code is done
21577
21578 2004-08-31 19:55  pbartok
21579
21580         * CheckBox.cs:
21581           - Fixed to match the removal of the needs_redraw concept
21582
21583 2004-08-31 19:55  pbartok
21584
21585         * ButtonBase.cs:
21586           - Removed the rather odd split between 'needs redraw' and redrawing
21587           - Now handles the events that require regeneration (ambient
21588             properties and size)
21589
21590 2004-08-31 19:41  pbartok
21591
21592         * Control.cs:
21593           - Added firing of BackColorChanged event
21594           - Added TopLevelControl property
21595           - Fixed handling of WM_ERASEBKGRND message
21596
21597 2004-08-31 12:49  pbartok
21598
21599         * ButtonBase.cs:
21600           - Removed debug
21601           - Minor fixes
21602
21603 2004-08-31 12:48  pbartok
21604
21605         * CheckBox.cs:
21606           - Finished (famous last words)
21607
21608 2004-08-31 04:35  jordi
21609
21610         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21611           scrolling bugs, adds new methods
21612
21613 2004-08-30 14:42  pbartok
21614
21615         * CheckBox.cs:
21616           - Implemented CheckBox drawing code
21617
21618 2004-08-30 14:42  pbartok
21619
21620         * ButtonBase.cs:
21621           - Made Redraw() and CheckRedraw() virtual
21622           - Improved mouse up/down/move logic to properly track buttons
21623
21624 2004-08-30 09:44  pbartok
21625
21626         * CheckBox.cs:
21627           - Updated to fix broken build. Not complete yet.
21628
21629 2004-08-30 09:28  pbartok
21630
21631         * CheckState.cs:
21632           - Initial checkin
21633
21634 2004-08-30 09:17  pbartok
21635
21636         * Appearance.cs:
21637           - Initial check-in
21638
21639 2004-08-27 16:12  ravindra
21640
21641         * ToolBarButton.cs: Added TypeConverter attribute.
21642
21643 2004-08-27 16:07  ravindra
21644
21645         * ImageIndexConverter.cs: Implemented.
21646
21647 2004-08-27 14:17  pbartok
21648
21649         * Control.cs:
21650           - Removed unneeded stack vars
21651           - First attempt to fix sizing issues when layout is suspended
21652
21653 2004-08-25 15:35  jordi
21654
21655         * ScrollBar.cs: more fixes to scrollbar
21656
21657 2004-08-25 14:04  ravindra
21658
21659         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21660           Added the missing divider code and grip for ToolBar Control.
21661
21662 2004-08-25 13:20  pbartok
21663
21664         * Control.cs:
21665           - Control now properly passes the ambient background color to child
21666             controls
21667
21668 2004-08-25 13:20  jordi
21669
21670         * ScrollBar.cs: small bug fix regarding bar position
21671
21672 2004-08-25 12:33  pbartok
21673
21674         * Timer.cs:
21675           - Now only calls SetTimer or KillTimer if the enabled state has
21676           changed
21677
21678 2004-08-25 12:33  pbartok
21679
21680         * XplatUIWin32.cs:
21681           - Fixed timer handling, now seems to work
21682           - Improved error message for window creation
21683
21684 2004-08-25 12:32  pbartok
21685
21686         * Control.cs:
21687           - Fixed generation of MouseUp message
21688
21689 2004-08-25 12:29  jordi
21690
21691         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21692           and fixes for progressbar
21693
21694 2004-08-24 18:43  ravindra
21695
21696         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21697           in ToolBar control.
21698
21699 2004-08-24 17:15  pbartok
21700
21701         * Panel.cs:
21702           - Added #region
21703           - Added missing events
21704           - Alphabetized
21705
21706 2004-08-24 17:14  pbartok
21707
21708         * StatusBar.cs, PictureBox.cs:
21709           - Now uses Control's CreateParams
21710
21711 2004-08-24 16:36  pbartok
21712
21713         * XplatUIX11.cs:
21714           - Fixed background color handling
21715           - Fixed sending of enter/leave events on a grab
21716
21717 2004-08-24 16:35  pbartok
21718
21719         * X11Structs.cs:
21720           - Refined definitions for CrossingEvent
21721
21722 2004-08-24 12:37  jordi
21723
21724         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21725           formmating, methods signature, and adds missing events
21726
21727 2004-08-24 12:24  jordi
21728
21729         * Control.cs: fire OnEnabledChanged event
21730
21731 2004-08-24 11:17  pbartok
21732
21733         * XplatUIWin32.cs:
21734           - Implemented SetTimer() and KillTimer()
21735
21736 2004-08-24 11:16  pbartok
21737
21738         * XplatUIX11.cs:
21739           - Now uses Remove instead of Add to kill the timer
21740
21741 2004-08-24 10:16  jackson
21742
21743         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21744           picture boxes in the theme now. Draw picture box borders and obey
21745           sizing modes
21746
21747 2004-08-24 05:49  jackson
21748
21749         * Timer.cs: Remove top secret debugging code
21750
21751 2004-08-24 05:34  jackson
21752
21753         * PictureBox.cs: Temp hack to make picture boxes draw their full
21754           image
21755
21756 2004-08-24 05:29  jackson
21757
21758         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21759           XplatUIX11.cs: Move timers to the driver level. On X they are
21760           queued by the driver and checked on idle.
21761
21762 2004-08-24 01:07  jackson
21763
21764         * XplatUIX11.cs: Use a queue for async messages instead of passing
21765           them as ClientMessages since that was totally broken. Also simply
21766           check for events and return an idle message if none are found. This
21767           gives us an idle handler, and prevents deadlocking when no messages
21768           are in the queue.
21769
21770 2004-08-23 18:19  ravindra
21771
21772         * XplatUIWin32.cs: Removed the unwanted destructor.
21773
21774 2004-08-23 17:27  pbartok
21775
21776         * ButtonBase.cs:
21777           - Finishing touches. Works now, just needs some optimizations.
21778
21779 2004-08-23 16:53  jordi
21780
21781         * ScrollBar.cs: small fix
21782
21783 2004-08-23 16:45  pbartok
21784
21785         * Application.cs:
21786           - Removed debug output
21787           - Simplifications
21788
21789 2004-08-23 16:43  jordi
21790
21791         * ScrollBar.cs: [no log message]
21792
21793 2004-08-23 16:10  pbartok
21794
21795         * Form.cs:
21796           - Fixed handling of WM_CLOSE message
21797           - Removed debug output
21798
21799 2004-08-23 16:09  pbartok
21800
21801         * Application.cs:
21802           - Added handling of Idle event
21803           - Added handling of form closing
21804           - Fixed reporting of MessageLoop property
21805           - Removed some unneeded code, should provide a bit of a speedup
21806
21807 2004-08-23 15:22  pbartok
21808
21809         * Control.cs:
21810           - Added InitLayout() method
21811           - Added code to properly perform layout when Anchor or Dock property
21812             is changed
21813           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21814             LAMESPEC, tried to do it in a way that makes sense
21815
21816 2004-08-23 14:10  jordi
21817
21818         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21819           properties and methods
21820
21821 2004-08-23 13:55  pbartok
21822
21823         * Control.cs:
21824           - Properly fixed Jordi's last fix
21825           - Now uses Cursor's Position property instead of calling XplatUI
21826           directly
21827
21828 2004-08-23 13:44  jordi
21829
21830         * PaintEventHandler.cs: Adding missing attribute
21831
21832 2004-08-23 13:39  pbartok
21833
21834         * Cursor.cs:
21835           - Implemented Position property
21836
21837 2004-08-23 13:39  pbartok
21838
21839         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21840           - Added method to move mouse cursor
21841
21842 2004-08-23 13:39  pbartok
21843
21844         * XplatUIX11.cs:
21845           - Fixed setting of background color
21846           - Added method to move mouse cursor
21847
21848 2004-08-23 13:16  jordi
21849
21850         * Control.cs: avoids null exception
21851
21852 2004-08-22 17:46  jackson
21853
21854         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21855           PictureBox
21856
21857 2004-08-22 17:40  jackson
21858
21859         * XplatUIX11.cs: Add some missing locks
21860
21861 2004-08-22 15:10  pbartok
21862
21863         * Control.cs, Form.cs:
21864           - Removed OverlappedWindow style from Control, instead it's default
21865             now is child
21866           - Made form windows OverlappedWindow by default
21867
21868 2004-08-22 13:34  jackson
21869
21870         * ScrollBar.cs: Update the position through the Value property so
21871           the OnValueChanged event is raised.
21872
21873 2004-08-22 12:04  pbartok
21874
21875         * SWF.csproj:
21876           - Added Cursor.cs and UserControl.cs
21877
21878 2004-08-22 12:03  pbartok
21879
21880         * Cursor.cs:
21881           - Started implementation, not usable yet
21882
21883 2004-08-22 12:00  pbartok
21884
21885         * UserControl.cs:
21886           - Implemented UserControl (complete)
21887
21888 2004-08-21 19:20  ravindra
21889
21890         * ToolBar.cs: Correcting the formatting mess of VS.NET.
21891
21892 2004-08-21 18:49  ravindra
21893
21894         * ToolBar.cs: Probably this completes the missing attributes in
21895           toolbar control.
21896
21897 2004-08-21 18:03  ravindra
21898
21899         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
21900           Fixed toolbar control signatures.
21901
21902 2004-08-21 16:32  pbartok
21903
21904         * LinkLabel.cs:
21905           - Signature Fixes
21906
21907 2004-08-21 16:30  pbartok
21908
21909         * Label.cs:
21910           - Signature fixes
21911
21912 2004-08-21 16:19  pbartok
21913
21914         * Control.cs, Label.cs:
21915           - Signature fixes
21916
21917 2004-08-21 15:57  pbartok
21918
21919         * ButtonBase.cs:
21920           - Added loads of debug output for development
21921           - Fixed typo in method name
21922
21923 2004-08-21 15:52  pbartok
21924
21925         * ToolBarButtonClickEventArgs.cs:
21926           - Added missing base class
21927
21928 2004-08-21 14:53  pbartok
21929
21930         * Control.cs:
21931           - Updated to match new GrabWindow signature
21932
21933 2004-08-21 14:51  pbartok
21934
21935         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21936           - Added method to get default display size
21937
21938 2004-08-21 14:23  pbartok
21939
21940         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21941           - Added method to query current grab state
21942           - Added argument to allow confining a grab to a window
21943
21944 2004-08-21 14:22  pbartok
21945
21946         * Keys.cs:
21947           - Added [Flags] attribute so that modifiers can be used in bitwise
21948           ops
21949
21950 2004-08-21 14:21  pbartok
21951
21952         * TrackBar.cs, ScrollBar.cs:
21953           - Replaced direct XplatUI calls with their Control counterpart
21954
21955 2004-08-21 13:32  pbartok
21956
21957         * Control.cs:
21958           - Implemented Created property
21959
21960 2004-08-21 13:28  pbartok
21961
21962         * Control.cs:
21963           - Implemented ContainsFocus
21964
21965 2004-08-21 13:26  pbartok
21966
21967         * Control.cs:
21968           - Implemented CausesValidation
21969
21970 2004-08-21 13:21  pbartok
21971
21972         * Control.cs:
21973           - Implemented CanFocus
21974           - Implemented CanSelect
21975           - Implemented Capture
21976
21977 2004-08-21 12:35  pbartok
21978
21979         * XplatUIWin32.cs:
21980           - Fixed bug with Async message handling
21981           - Implemented getting the ModifierKeys
21982
21983 2004-08-21 12:32  jackson
21984
21985         * AsyncMethodResult.cs: Make sure we have the mutex before we
21986           release it. Fixes BeginInvoke on windows
21987
21988 2004-08-21 11:31  pbartok
21989
21990         * XplatUIWin32.cs, XplatUIX11.cs:
21991           - Drivers now return proper mouse state
21992
21993 2004-08-21 10:54  jackson
21994
21995         * Control.cs: Implement EndInvoke
21996
21997 2004-08-21 10:48  jackson
21998
21999         * Timer.cs: Remove unneeded finalizer
22000
22001 2004-08-20 19:52  ravindra
22002
22003         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22004           in mouse event handling in the ToolBar control.
22005
22006 2004-08-20 19:50  ravindra
22007
22008         * ImageList.cs: Changed draw method to use the arguments passed in
22009           to draw the image.
22010
22011 2004-08-20 18:58  pbartok
22012
22013         * XplatUIStructs.cs:
22014           - Added private message for async communication
22015
22016 2004-08-20 17:38  ravindra
22017
22018         * Control.cs: Made RightToLeft property virtual and removed a
22019           Console.WriteLine.
22020
22021 2004-08-20 14:39  jordi
22022
22023         * ThemeGtk.cs: use style_attach
22024
22025 2004-08-20 14:39  pbartok
22026
22027         * XplatUIWin32.cs:
22028           - Added jackson's Async code from X11 to Win32
22029
22030 2004-08-20 14:09  pbartok
22031
22032         * SWF.csproj:
22033           - Added all new files
22034
22035 2004-08-20 14:09  pbartok
22036
22037         * Control.cs:
22038           - Added call to set window background color
22039
22040 2004-08-20 14:03  pbartok
22041
22042         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22043           - Added method for setting the window background
22044
22045 2004-08-20 14:02  pbartok
22046
22047         * XplatUIWin32.cs:
22048           - Added method for setting the background color
22049           - Added handling for erasing the window background
22050
22051 2004-08-20 13:45  jordi
22052
22053         * TrackBar.cs: fixes timer, new properties and methods
22054
22055 2004-08-20 13:34  jackson
22056
22057         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22058           correct thread
22059
22060 2004-08-20 13:22  jackson
22061
22062         * Timer.cs: Timer Tick events are now handed through Controls Async
22063           mechanism so the callbacks are executed in the same thread as X
22064
22065 2004-08-20 13:19  jackson
22066
22067         * XplatUIDriver.cs: Expose functionality to send async messages
22068           through the driver
22069
22070 2004-08-20 13:18  jackson
22071
22072         * Control.cs: Implement Begininvoke
22073
22074 2004-08-20 13:14  jackson
22075
22076         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22077           messages through the driver
22078
22079 2004-08-20 13:12  jackson
22080
22081         * XplatUIX11.cs: Lock before all X operations. Also added Async
22082           method functionality through XSendEvent
22083
22084 2004-08-20 13:11  jackson
22085
22086         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22087           This will screw up on 64 bit systems)
22088
22089 2004-08-20 13:10  jackson
22090
22091         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22092           Async messages through X/Win32
22093
22094 2004-08-19 19:39  pbartok
22095
22096         * XplatUIX11.cs:
22097           - Updated code to match new HandleData.DeviceContext type
22098
22099 2004-08-19 19:38  pbartok
22100
22101         * HandleData.cs:
22102           - Made DeviceContext a generic object to allow usage from various
22103           drivers
22104           - Added support for queueing Windows messages
22105
22106 2004-08-19 19:37  pbartok
22107
22108         * XplatUIWin32.cs:
22109           - Added generation of MouseEnter, MouseLeave and MouseHover events
22110           - Added cleanup on EndPaint
22111
22112 2004-08-19 19:17  pbartok
22113
22114         * Control.cs:
22115           - Added handling of WM_MOUSEHOVER
22116           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22117           code
22118
22119 2004-08-19 18:55  jordi
22120
22121         * ThemeGtk.cs: fixes button order
22122
22123 2004-08-19 18:12  jordi
22124
22125         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22126
22127 2004-08-19 17:09  pbartok
22128
22129         * Control.cs:
22130           - Added Right property
22131           - Added RightToLeft property
22132
22133 2004-08-19 16:27  jordi
22134
22135         * ThemeGtk.cs: experimental GTK theme support
22136
22137 2004-08-19 16:26  jordi
22138
22139         * ITheme.cs, Theme.cs: move themes from an interface to a class
22140
22141 2004-08-19 16:25  jordi
22142
22143         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22144           theme enhancaments
22145
22146 2004-08-19 16:04  pbartok
22147
22148         * XplatUIX11.cs:
22149           - Added colormap basics
22150           - Added a way to re-initialize with a different display handle
22151           - Fixed setting of the window background color
22152           - Added various X11 imports related to colors and colormaps
22153
22154 2004-08-19 15:51  pbartok
22155
22156         * X11Structs.cs:
22157           - Removed packing hints (Paolo suggested this a while back)
22158           - fixed colormap type
22159           - Added default Atom types
22160           - Added Screen and color structs and enums
22161
22162 2004-08-19 15:39  pbartok
22163
22164         * ImageList.cs:
22165           - Added missing Draw() method
22166           - Added missing RecreateHandle event
22167
22168 2004-08-19 15:30  pbartok
22169
22170         * Form.cs:
22171           - Added handling of WM_CLOSE
22172
22173 2004-08-18 13:16  jordi
22174
22175         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22176           a table
22177
22178 2004-08-18 09:56  jordi
22179
22180         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22181
22182 2004-08-17 15:31  ravindra
22183
22184         * SWF.csproj: Updated project.
22185
22186 2004-08-17 15:25  pbartok
22187
22188         * Control.cs:
22189           - Drawing improvement; don't call UpdateBounds if we are not visible
22190             (or have been minimized)
22191
22192 2004-08-17 15:24  pbartok
22193
22194         * XplatUIWin32.cs:
22195           - Finished IsVisible
22196           - Added Win32GetWindowPlacement
22197
22198 2004-08-17 15:08  jackson
22199
22200         * Panel.cs: Initial checkin of the Panel
22201
22202 2004-08-17 14:25  pbartok
22203
22204         * Control.cs:
22205           - Fixed broken handling of default window sizes
22206
22207 2004-08-17 13:29  jackson
22208
22209         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22210           has a large startup time.
22211
22212 2004-08-17 10:25  jackson
22213
22214         * HandleData.cs: union areas properly
22215
22216 2004-08-17 10:12  jackson
22217
22218         * HandleData.cs: union areas properly
22219
22220 2004-08-16 20:00  ravindra
22221
22222         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22223
22224 2004-08-16 18:48  ravindra
22225
22226         * ToolBar.cs: Added attributes.
22227
22228 2004-08-16 17:17  ravindra
22229
22230         * SWF.csproj: Updated project.
22231
22232 2004-08-16 17:16  jackson
22233
22234         * XplatUIX11.cs: Check for more expose events before sending a
22235           WM_PAINT so they can all be grouped together. This makes dragging a
22236           window across another window redraw in a sane way.
22237
22238 2004-08-16 15:47  pbartok
22239
22240         * Control.cs:
22241           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22242             support OnMouseEnter/Leave()
22243           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22244             exposure handling
22245
22246 2004-08-16 15:46  pbartok
22247
22248         * XplatUIStructs.cs, XplatUIX11.cs:
22249           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22250           OnMouseEnter/Leave()
22251
22252 2004-08-16 15:34  jackson
22253
22254         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22255           sure messages get the message field set to WM_NULL if they are not
22256           handled.
22257
22258 2004-08-16 15:24  jackson
22259
22260         * HandleData.cs: HandleData is used for storing message information
22261           for window handles
22262
22263 2004-08-15 17:23  ravindra
22264
22265         * ColorDepth.cs: Added attribute.
22266
22267 2004-08-15 17:23  ravindra
22268
22269         * SWF.csproj: Updated project for ToolBar Control.
22270
22271 2004-08-15 17:20  ravindra
22272
22273         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22274           control and also dos2unix format.
22275
22276 2004-08-15 17:13  ravindra
22277
22278         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22279           ToolBarButtonClickEventArgs.cs,
22280           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22281           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22282
22283 2004-08-15 15:31  pbartok
22284
22285         * ButtonBase.cs:
22286           - First (mostly) working version
22287
22288 2004-08-13 16:15  pbartok
22289
22290         * Control.cs:
22291           - Fixed Anchor default
22292
22293 2004-08-13 15:43  pbartok
22294
22295         * Control.cs:
22296           - Changed GetCursorPos signature
22297
22298 2004-08-13 15:42  pbartok
22299
22300         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22301           - Changed signature for GetCursorPos
22302
22303 2004-08-13 15:25  pbartok
22304
22305         * XplatUIX11.cs:
22306           - Cleanup
22307           - Fixed resizing/exposure handling
22308
22309 2004-08-13 15:22  jordi
22310
22311         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22312           with tickposition
22313
22314 2004-08-13 14:55  jordi
22315
22316         * TrackBar.cs: change from wndproc to events
22317
22318 2004-08-13 13:00  jordi
22319
22320         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22321           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22322
22323 2004-08-13 12:53  pbartok
22324
22325         * XplatUIWin32.cs:
22326           - Changed GetWindowPos to also provide client area size
22327           - Fixed broken prototypes for several win32 functions
22328
22329 2004-08-13 12:53  pbartok
22330
22331         * XplatUI.cs, XplatUIDriver.cs:
22332           - Changed GetWindowPos to also provide client area size
22333
22334 2004-08-13 12:52  pbartok
22335
22336         * XplatUIX11.cs:
22337           - Added generation of WM_POSCHANGED
22338           - Changed GetWindowPos to also provide client area size
22339
22340 2004-08-13 12:52  pbartok
22341
22342         * Control.cs:
22343           - Added Dispose() and destructor
22344           - Fixed resizing and bounds calculation
22345           - Fixed Layout
22346           - Added memory savings for invisible windows
22347
22348 2004-08-13 12:46  jordi
22349
22350         * TrackBar.cs: adds timer and grap window
22351
22352 2004-08-13 10:25  jackson
22353
22354         * Timer.cs: SWF Timer
22355
22356 2004-08-12 16:59  pbartok
22357
22358         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22359           - Implemented method to get current mouse position
22360
22361 2004-08-12 14:29  jordi
22362
22363         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22364           enhancement, fix mouse problems, highli thumb, etc
22365
22366 2004-08-12 13:31  pbartok
22367
22368         * Control.cs:
22369           - Fixed Anchoring bugs
22370
22371 2004-08-12 13:01  jackson
22372
22373         * StatusBar.cs: Don't forget things
22374
22375 2004-08-12 12:54  jackson
22376
22377         * ThemeWin32Classic.cs: Handle owner draw status bars
22378
22379 2004-08-12 12:54  jackson
22380
22381         * StatusBar.cs: Implement missing properties, events, and methods.
22382           Handle mouse clicking
22383
22384 2004-08-12 10:19  jackson
22385
22386         * StatusBarPanelClickEventArgs.cs,
22387           StatusBarPanelClickEventHandler.cs: Classes for handling status
22388           bar panel click events
22389
22390 2004-08-12 10:10  jackson
22391
22392         * Control.cs: Add missing properties
22393
22394 2004-08-12 09:46  pbartok
22395
22396         * BindingsManagerBase.cs:
22397           - Name changed to BindingManagerBase.cs
22398
22399 2004-08-12 09:25  jordi
22400
22401         * ScrollableControl.cs: calls ctrlbase instead of exeception
22402
22403 2004-08-11 16:28  pbartok
22404
22405         * InputLanguageChangingEventArgs.cs:
22406           - Never check in before compiling. Fixes the last check-in
22407
22408 2004-08-11 16:26  pbartok
22409
22410         * InputLanguageChangingEventArgs.cs:
22411           - More signature fixes
22412
22413 2004-08-11 16:20  pbartok
22414
22415         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22416           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22417           ImageListStreamer.cs, InputLanguage.cs,
22418           InputLanguageChangedEventArgs.cs,
22419           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22420           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22421           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22422           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22423           - Signature fixes
22424
22425 2004-08-11 16:16  pbartok
22426
22427         * Application.cs:
22428           - Fixed Signature
22429           - Added .Net 1.1 method
22430
22431 2004-08-11 15:25  pbartok
22432
22433         * SWF.csproj:
22434           - Fixed BindingManagerBase.cs filename
22435
22436 2004-08-11 15:22  pbartok
22437
22438         * BindingManagerBase.cs:
22439           - Was checked in with wrong filename
22440
22441 2004-08-11 14:50  pbartok
22442
22443         * SWF.csproj:
22444           - Updated
22445
22446 2004-08-11 13:41  jordi
22447
22448         * XplatUIWin32.cs: Fixes ClientRect
22449
22450 2004-08-11 13:19  pbartok
22451
22452         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22453           XplatUIX11.cs:
22454           - We had SetWindowPos and MoveWindow to set window positions and
22455             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22456             keep SetWindowPos as matching counterpart
22457           - Added some X11 sanity checking
22458
22459 2004-08-11 12:59  pbartok
22460
22461         * Control.cs:
22462           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22463             (It seems that SetBounds is just a front for SetBoundsCore and
22464              SetBoundsCore updates the underlying window system and
22465              UpdateBounds is responsible for updating the variables associated
22466              with the Control and sending the events)
22467           - Major cleanup of Size handling; we now have two sizes, client_size
22468             and bounds. Bounds defines the window with decorations, client_size
22469             without them.
22470
22471 2004-08-11 12:55  pbartok
22472
22473         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22474           - Added method to calculate difference between decorated window and
22475             raw client area
22476
22477 2004-08-11 12:54  pbartok
22478
22479         * Label.cs:
22480           - Forcing redraw on resize
22481
22482 2004-08-11 11:43  pbartok
22483
22484         * ImageList.cs:
22485           - Removed disposing of the actual images when the list is disposed
22486
22487 2004-08-11 09:13  pbartok
22488
22489         * Control.cs:
22490           - Now properly reparents windows
22491
22492 2004-08-11 08:37  pbartok
22493
22494         * Control.cs:
22495           - Duh!
22496
22497 2004-08-11 07:47  pbartok
22498
22499         * Control.cs:
22500           - Rewrote the collection stuff. Might not be as fast now, not
22501             keeping the number of children around and accessible directly, but
22502             it's more straightforward
22503
22504 2004-08-11 07:44  pbartok
22505
22506         * AccessibleObject.cs:
22507           - Fixed to match ControlCollection rewrite
22508
22509 2004-08-11 07:43  pbartok
22510
22511         * ImageList.cs:
22512           - Added missing creation of the collection list
22513
22514 2004-08-10 20:08  jackson
22515
22516         * StatusBar.cs: Get the paint message from WndProc
22517
22518 2004-08-10 19:31  jackson
22519
22520         * ThemeWin32Classic.cs: Create Brushes as little as possible
22521
22522 2004-08-10 19:20  jackson
22523
22524         * UICues.cs: Add Flags attribute
22525
22526 2004-08-10 19:19  jackson
22527
22528         * StatusBarPanel.cs: Signature cleanup
22529
22530 2004-08-10 19:10  jackson
22531
22532         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22533           Initial implementation of status bar item drawing
22534
22535 2004-08-10 17:27  jordi
22536
22537         * TrackBar.cs: add missing methods, properties, and restructure to
22538           hide extra ones
22539
22540 2004-08-10 16:24  jackson
22541
22542         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22543           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22544           attribute
22545
22546 2004-08-10 13:21  jordi
22547
22548         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22549           enhancements and standarize on win colors defaults
22550
22551 2004-08-10 12:52  jackson
22552
22553         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22554           ThemeWin32Classic.cs: Implement DrawItem functionality
22555
22556 2004-08-10 12:47  jordi
22557
22558         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22559
22560 2004-08-10 12:32  jordi
22561
22562         * Control.cs: throw ontextchange event
22563
22564 2004-08-10 11:43  pbartok
22565
22566         * Control.cs:
22567           - Added more to the still unfinished Dock/Anchor layout code
22568
22569 2004-08-10 11:39  pbartok
22570
22571         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22572           - Added GetWindowPos method
22573
22574 2004-08-10 11:36  pbartok
22575
22576         * XplatUIWin32.cs:
22577           - Implemented several methods
22578
22579 2004-08-10 09:47  jackson
22580
22581         * TrackBar.cs: Allow control to handle buffering
22582
22583 2004-08-10 09:41  jackson
22584
22585         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22586
22587 2004-08-10 09:24  jackson
22588
22589         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22590
22591 2004-08-10 09:09  jackson
22592
22593         * StatusBar.cs: Let Control handle all the buffering.
22594
22595 2004-08-10 09:08  jackson
22596
22597         * Control.cs: Control will now handle the buffering code, so each
22598           control does not have to implement this.
22599
22600 2004-08-10 08:34  jackson
22601
22602         * XplatUIDriver.cs: Use default colors from the theme
22603
22604 2004-08-09 17:12  pbartok
22605
22606         * ImageList.cs:
22607           - Fixed several bugs Ravindra pointed out
22608
22609 2004-08-09 16:11  pbartok
22610
22611         * Control.cs:
22612           - Added incomplete dock layout code
22613           - Added support for mouse wheel
22614
22615 2004-08-09 16:09  pbartok
22616
22617         * XplatUIX11.cs:
22618           - Added handling for middle and right mousebutton
22619           - Added handling for mouse wheel
22620           - Added handling for key state and mouse state and position
22621           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22622           messages
22623
22624 2004-08-09 15:40  jackson
22625
22626         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22627           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22628           checkin
22629
22630 2004-08-09 15:37  jackson
22631
22632         * StatusBar.cs: Initial implementation of StatusBar
22633
22634 2004-08-09 15:36  jackson
22635
22636         * ITheme.cs: Add support for drawing status bar and getting status
22637           bar item sizes
22638
22639 2004-08-09 15:35  pbartok
22640
22641         * MouseButtons.cs:
22642           - Fixed values
22643
22644 2004-08-09 15:34  jackson
22645
22646         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22647           status bar item sizes
22648
22649 2004-08-09 15:21  jackson
22650
22651         * ThemeWin32Classic.cs: Use known colors for default control
22652           colours
22653
22654 2004-08-09 15:12  jackson
22655
22656         * ThemeWin32Classic.cs: Make the default font static, it is static
22657           in control so this doesn't change functionality and creating fonts
22658           is sloooooow.
22659
22660 2004-08-09 14:56  pbartok
22661
22662         * X11Structs.cs:
22663           - Added GrabMode enum
22664
22665 2004-08-09 14:55  pbartok
22666
22667         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22668           - Removed Run method, was only required for initial development
22669
22670 2004-08-09 14:51  pbartok
22671
22672         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22673           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22674           capture
22675
22676 2004-08-09 13:48  pbartok
22677
22678         * XplatUIX11.cs:
22679           - Fixed default sizing for child windows
22680
22681 2004-08-09 12:56  pbartok
22682
22683         * XplatUIX11.cs:
22684           - Added generation of WM_DESTROY message
22685           - Added handling of window manager induced shutdown
22686
22687 2004-08-09 11:31  jackson
22688
22689         * ThemeWin32Classic.cs: New names for control properties
22690
22691 2004-08-09 11:25  jackson
22692
22693         * Control.cs: Use new color names
22694
22695 2004-08-09 11:02  jackson
22696
22697         * XplatUI.cs: Get default window properties from the theme
22698
22699 2004-08-09 11:01  jackson
22700
22701         * ITheme.cs: The theme engine now controls default window
22702           properties
22703
22704 2004-08-09 11:00  jackson
22705
22706         * ThemeWin32Classic.cs: Add default window color properties
22707
22708 2004-08-09 10:17  jackson
22709
22710         * ThemeWin32Classic.cs: Use correct default back color
22711
22712 2004-08-09 10:05  jackson
22713
22714         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22715           the theme now.
22716
22717 2004-08-09 09:56  jackson
22718
22719         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22720
22721 2004-08-09 09:54  jackson
22722
22723         * Control.cs: Get default properties from the theme.
22724
22725 2004-08-09 09:53  jackson
22726
22727         * ITheme.cs: Themes now handle default control properties
22728
22729 2004-08-09 09:53  jackson
22730
22731         * ThemeWin32Classic.cs: Themes now handle default control
22732           properties so coloring will be consistent
22733
22734 2004-08-08 16:54  jordi
22735
22736         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22737
22738 2004-08-08 15:08  jordi
22739
22740         * XplatUIX11.cs: fixes keyboard crash
22741
22742 2004-08-08 13:47  jordi
22743
22744         * Label.cs: add cvs header info
22745
22746 2004-08-08 12:09  jackson
22747
22748         * ThemeWin32Classic.cs: Add pen_buttonface
22749
22750 2004-08-08 11:52  jordi
22751
22752         * Label.cs, LinkLabel.cs: [no log message]
22753
22754 2004-08-08 11:34  jordi
22755
22756         * ThemeWin32Classic.cs: Use Windows Standard Colours
22757
22758 2004-08-07 17:32  jordi
22759
22760         * TrackBar.cs: throw exceptions of invalid enums values
22761
22762 2004-08-07 17:31  jordi
22763
22764         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22765           draw method name
22766
22767 2004-08-07 16:56  jackson
22768
22769         * HorizontalAlignment.cs: Initial checkin
22770
22771 2004-08-07 13:16  jordi
22772
22773         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22774           methods
22775
22776 2004-08-07 13:05  jordi
22777
22778         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22779           GetSysColor defines
22780
22781 2004-08-06 18:01  pbartok
22782
22783         * ThemeWin32Classic.cs:
22784           - Fixed some rounding issues with float/int
22785
22786 2004-08-06 18:00  jackson
22787
22788         * DockStyle.cs, AnchorStyles.cs:
22789
22790                   Add flags and serializable attributes.
22791
22792 2004-08-06 17:46  pbartok
22793
22794         * XplatUIX11.cs:
22795           - Implemented GetParent
22796
22797 2004-08-06 17:18  pbartok
22798
22799         * TrackBar.cs:
22800           - Fixed some rounding issues with float/int
22801
22802 2004-08-06 17:17  pbartok
22803
22804         * X11Structs.cs, XplatUIX11.cs:
22805           - Fixed Refresh and Invalidate
22806
22807 2004-08-06 15:30  pbartok
22808
22809         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22810           - Fixed recursive loop when resizing
22811           - Improved/fixed redrawing on expose messages
22812
22813 2004-08-06 09:53  jordi
22814
22815         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22816           keyboard navigation
22817
22818 2004-08-06 08:02  pbartok
22819
22820         * X11Structs.cs, XplatUIX11.cs:
22821           - Fixed reparenting
22822           - Fixed window border creation
22823
22824 2004-08-05 15:38  pbartok
22825
22826         * XplatUIX11.cs:
22827           - Attempted fix for reparenting problems
22828
22829 2004-08-04 15:14  pbartok
22830
22831         * Control.cs:
22832           - Fixed Invalidation bug (calculated wrong client area)
22833           - Added ClientSize setter
22834
22835 2004-08-04 15:13  pbartok
22836
22837         * Form.cs:
22838           - Added AutoScale properties
22839
22840 2004-08-04 15:13  pbartok
22841
22842         * SWF.csproj:
22843           - Added latest files
22844
22845 2004-08-04 14:11  pbartok
22846
22847         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22848           XplatUIX11.cs:
22849           - Added Invalidate handling
22850
22851 2004-08-03 17:09  jordi
22852
22853         * XplatUIDriver.cs: fixes spelling mistake
22854
22855 2004-07-27 09:53  jordi
22856
22857         * TrackBar.cs: fixes trackbar events, def classname, methods
22858           signature
22859
22860 2004-07-27 09:29  jordi
22861
22862         * ScrollBar.cs: fixes scrollbar events
22863
22864 2004-07-27 04:38  jordi
22865
22866         * Control.cs: changes to be able to run winforms samples
22867
22868 2004-07-26 11:42  jordi
22869
22870         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
22871           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
22872
22873 2004-07-26 05:41  jordi
22874
22875         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
22876           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
22877           implementation
22878
22879 2004-07-22 09:22  jordi
22880
22881         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
22882           check link overlapping, implement events, and fixes
22883
22884 2004-07-21 10:28  jordi
22885
22886         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
22887
22888 2004-07-21 10:19  jordi
22889
22890         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
22891           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
22892           LinkLabelLinkClickedEventArgs.cs,
22893           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
22894           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
22895           implementation
22896
22897 2004-07-19 13:09  jordi
22898
22899         * Control.cs, Label.cs: label control re-written: added missing
22900           functionlity, events, and properties
22901
22902 2004-07-19 10:49  jordi
22903
22904         * Control.cs: fixes SetBounds logic
22905
22906 2004-07-19 01:29  jordi
22907
22908         * Control.cs: Call RefreshWindow only if the window has created
22909
22910 2004-07-15 14:05  pbartok
22911
22912         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
22913           - Implemented ImageList and ImageList.ImageCollection classes
22914           - Added ColorDepth enumeration
22915           - Updated SWF VS.Net project
22916
22917 2004-07-15 11:06  jordi
22918
22919         * XplatUIStructs.cs: added MsgButons enum
22920
22921 2004-07-15 11:03  jordi
22922
22923         * Control.cs: added basic mouse handeling events
22924
22925 2004-07-15 03:38  jordi
22926
22927         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
22928           Vertical TrackBar control implementation
22929
22930 2004-07-13 09:33  jordi
22931
22932         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
22933
22934 2004-07-13 09:31  jordi
22935
22936         * Control.cs, Form.cs: commit: new properties and fixes form size
22937           problems
22938
22939 2004-07-09 14:13  miguel
22940
22941         * ProgressBar.cs: Spelling
22942
22943 2004-07-09 11:25  pbartok
22944
22945         * ProgressBar.cs:
22946           - Removed usage of Rectangle for drawing. Miguel pointed out it's
22947           faster
22948
22949 2004-07-09 11:17  miguel
22950
22951         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
22952
22953                 * ProgressBar.cs: Fixed spelling for `block'
22954
22955                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
22956                 style guidelines.
22957
22958                 Avoid using the += on rect.X, that exposed a bug in the compiler.
22959
22960 2004-07-08 23:21  pbartok
22961
22962         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
22963           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
22964           BaseCollection.cs, Binding.cs, BindingContext.cs,
22965           BindingMemberInfo.cs, BindingsCollection.cs,
22966           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
22967           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
22968           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
22969           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
22970           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
22971           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
22972           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
22973           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
22974           FrameStyle.cs, GiveFeedbackEventArgs.cs,
22975           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
22976           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
22977           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
22978           InputLanguageChangedEventArgs.cs,
22979           InputLanguageChangedEventHandler.cs,
22980           InputLanguageChangingEventArgs.cs,
22981           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
22982           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
22983           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
22984           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
22985           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
22986           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
22987           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
22988           QueryAccessibilityHelpEventArgs.cs,
22989           QueryAccessibilityHelpEventHandler.cs,
22990           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
22991           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
22992           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
22993           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
22994           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
22995           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
22996           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
22997           XplatUIX11.cs, lang.cs:
22998           - Initial check-in
22999