* ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-07  Chris Toshok  <toshok@ximian.com>
2
3         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
4         background color.  it overwrites the background image we've
5         already painted.  Fixes #80599.
6
7 2007-02-07  Chris Toshok  <toshok@ximian.com>
8
9         * DataGrid.cs: return immediately from Edit() when there are no
10         columns.  Fixes #80662.
11
12 2007-02-07  Chris Toshok  <toshok@ximian.com>
13
14         * MessageBox.cs: fix #80625.  don't always show the Help button in
15         2.0.  use the displayHelpButton parameter to determine if we
16         should show it. Also, make the internal show_help field private.
17
18 2007-02-07  Chris Toshok  <toshok@ximian.com>
19
20         * Control.cs (SetVisibleCore): check in the proposed patch for
21         80604, and set is_visible before calling CreateControl.
22
23 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
24
25         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
26         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
27         on it.
28
29 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
30
31         * MenuAPI.cs: hotkey_active internal field added, it is required because
32         we need to know when hotkeys must be draw, before this change a keystate
33         Navigating was used but we can have menu in navigating state without
34         hotkeys. Fixes #80694.
35         
36         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
37
38 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
39
40         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
41           corresponding events and methods to be internal for 1.1 profile and
42           public for 2.0 profile (required by SizeGrip).
43         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
44           implicit control list). Don't set the size nor the location of the
45           SizeGrip anymore as it's not needed.
46         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
47           draw directly on the captured control (fixes #80656). Removed
48           ShowGrip (it wasn't used anywhere), redraw (always true), added
49           GetDefaultSize and GetDefaultRectangle to calculate defaults.
50         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
51           be called from SizeGrip.
52
53 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
54
55         * Timer.cs: Throw ArgumentException if Interval <= 0.
56
57 2007-02-05  Jackson Harper  <jackson@ximian.com>
58
59         * TreeView.cs: We need to check scrollbar visibility when window
60         visibility is updated, because non visible trees don't ever add
61         scrollbars.
62         * Cursor.cs: We want the override cursor to be reset to NULL when
63         we set current cursor to the default cursor.
64
65 2007-02-05  Jackson Harper  <jackson@ximian.com>
66
67         * TextControl.cs: Don't have crlfs when we are non multiline.
68         - Consolidate the line position.
69
70 2007-02-05  Jackson Harper  <jackson@ximian.com>
71
72         * X11Keyboard.cs: BACK+CTRL gets a special char code.
73
74 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
75
76         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
77           handling LeaveNotify->NotifyUngrab in order to send
78           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
79           after calling XUngrabPointer, so we call WindowUngrabbed directly
80           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
81         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
82           MouseCaptureChanged correctly. Also create handles if changing
83           Capture (matches MS behaviour).
84
85 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
86
87         * SizeGrip.cs: Make the last change 2.0 only.
88
89 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
90
91         * SizeGrip.cs: If resizing and the capture is lost, revert any size
92           changes to initial size (fixes #80597).
93
94 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
95
96         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
97
98 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
99
100         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
101           background) and only allow dragging if enabled. This way the
102           sizegrip can be used to fill the open square that otherwise would
103           have been shown in the bottom right corner of ScrollableControl
104           when ScrollableControl is not suppose to support sizing.
105         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
106           sizegrip is shown and enabled, and hook up with necessary events.
107
108 2007-02-01  Chris Toshok  <toshok@ximian.com>
109
110         * DataGridTextBoxColumn.cs: clean up the
111         GetFormattedString/GetColumnValueAtRow combination of functions.
112         Also fix UpdateUI, and the initial state of
113         IsInEditOrNavigateMode.
114
115         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
116         aren't supposed to scroll the textbox here, we're supposed to
117         scroll the datagrid.
118
119 2007-02-01  Chris Toshok  <toshok@ximian.com>
120
121         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
122         setting the position.
123
124 2007-02-01  Chris Toshok  <toshok@ximian.com>
125
126         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
127         here, since the most recent focus fixes keep us from generating
128         the Leave event when our textbox gets focus.
129         (Edit): we should be passing null for the column style's
130         instantText parameter.
131         
132 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
133
134         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
135         raised.  Fixes menu text/icons not showing up in PDN.
136
137 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
138
139         * Control.cs: Remove code in constructor that makes every
140         control with WS_CHILD set have initial location -1, -1.
141
142 2007-01-31  Jackson Harper  <jackson@ximian.com>
143
144         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
145         XplatUIX11.
146         * XplatUIX11.cs: Give teh keyboard to teh dnd.
147
148 2007-01-31  Jackson Harper  <jackson@ximian.com>
149
150         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
151         - Remove some debug code.
152
153 2007-01-31  Jackson Harper  <jackson@ximian.com>
154
155         * XplatUIX11.cs: If you set the override cursor during a grab, it
156         should actually override the grab cursor.  This comes into play
157         when you are setting custom cursors in a DND feedback method.
158
159 2007-01-31  Jackson Harper  <jackson@ximian.com>
160
161         * X11Dnd.cs: Add support for handling the QueryContinue and
162         GiveFeedback events.
163         - Cancel drag and drop actions when the escape key is clicked.
164         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
165         can handle the ESCAPE key.
166         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
167         done when dnd events are continued after the button is released.
168         - Add a new helper method so that dnd can translate key events.
169
170 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
171
172         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
173         make it more obvious what is happening.
174
175 2007-01-30  Jackson Harper  <jackson@ximian.com>
176
177         * XplatUIX11.cs: Don't break when handling button release in drag
178         and drop operations. We need that BUTTONUP message to get through
179         so capture is released.
180         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
181         this is handled automatically when the mouse is down.
182
183 2007-01-30  Jackson Harper  <jackson@ximian.com>
184
185         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
186         is closed, so we need to make sure that we aren't changing the
187         dialog result when the OK (Open or Save) button has been clicked
188         and we are closing the window ourselves.  Note we don't need to
189         worry about the cache being written in this case, because it was
190         already done in the previous FilOk call.
191
192 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
193         
194         * DateTimePicker.cs: Remove a warning.
195         * ComboBox.cs: Remove a couple of warnings.
196
197 2007-01-29  Chris Toshok  <toshok@ximian.com>
198
199         * XplatUIX11.cs: don't crash, and remove the icon if the user has
200         set one, if SetIcon is passed a null icon.
201
202 2007-01-29  Andreia Gaita  <avidigal@novell.com>
203
204         * TextBox.cs: Redraw when the password characters changes
205         * TextControl.cs: Check if textbox has a password char and draw 
206         a line of password chars instead of the text in the line. LineTag gets 
207         an extra Draw() method which allows document.Draw to override the text 
208         that will be drawn. Removes 1024 char limitation on length of passworded 
209         lines.
210
211 2007-01-29  Jackson Harper  <jackson@ximian.com>
212
213         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
214         single chars is not.
215
216 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
217
218         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
219         one pixel.  Fix a StackOverflowException caused by an overload wrongly
220         calling itself.
221
222 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
223
224         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
225         also remove ProcessArrowKey and put the code inside ProcessKeys.
226
227 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
228
229         * PaddingConverter.cs: Added.
230
231 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
232         
233         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
234         ShowPanels is false (fixes #80600). Only draw up to 127 characters
235         of text (fixes #80601). For panels clip the text to draw to the
236         panel (fixes #80603).
237
238 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
239
240         * ComboBox.cs: Fixed implementation of ResetText.
241
242 2007-01-25  Jackson Harper  <jackson@ximian.com>
243
244         * TextControl.cs: For the last char of a line we need to use the
245         line size, not that chars width, since it won't actually be
246         computed since the right side of a char is based on the start of
247         the left side of the next char, and the next char does not exist.
248
249 2007-01-25  Chris Toshok  <toshok@ximian.com>
250
251         * Splitter.cs: fix the new unit tests, and reindent some switch
252         statements.
253
254 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
255
256         * ComboBox.cs: Implemented 2.0 methods and events.
257         * TextBoxBase.cs: Added OnTextUpdate, so that
258         ComboBox.ComboTextBox can inform ComboBox of it.
259
260 2007-01-25  Jackson Harper  <jackson@ximian.com>
261
262         * TextControl.cs: Respect ShowSelection when deciding whether or
263         not to display the caret, this allows comboboxes to have carets
264         when the combotextbox does not have focus.
265
266 2007-01-25  Jackson Harper  <jackson@ximian.com>
267
268         * TextControl.cs: Add a Suspend/Resume for updating, basically the
269         same as the Suspend/Resume for recalc, except this will do actual
270         Invalidates.
271         - New Undo manager, works much like the MS version.
272         - Implemented Redo
273         * TextBoxBase.cs: The Cut operation is undoable.
274
275 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
276         
277         * TextBoxBase.cs: Don't antialias text. Makes it look way better
278         on Windows (no difference on Linux).    
279
280 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
281
282         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
283         we don't want to activate any windows. Fixes #79433.
284
285 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
286
287         - ButtonBase.cs: Fix capitalization of parameter: disposing.
288         [Fixes bug #80609]
289
290 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
291
292         * FileDialog.cs:
293         - Move to using System.ComponentModel.EventHandlerList
294         - Replace Refresh with Invalidate
295         - Clear the mime filecache on closing
296         - Some other memory reducing work. After beeing closed FD now uses
297           only about 300 KB for the fdo mime stuff plus the memory of the
298           cached icons.
299         * Mime.cs: Changed coding style and removed unnecessary commented
300         code. Some more memory memory reducing work.
301
302 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
303
304         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
305         a few other missing 2.0 properties.
306         * Theme.cs: Added DrawFlatStyleComboBox.
307         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
308
309 2007-01-24  Chris Toshok  <toshok@ximian.com>
310
311         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
312         wake_waiting flag, not just when there's data to be read.  if we
313         don't, then future wakeup's won't reach us and we'll be doomed to
314         wait for the entire 1 second timeout forever (unless there are X
315         events to be had).
316
317 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
318
319         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
320         until you pass Items.Count, not Items.Count - 1 like 1.1.
321
322 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
323
324         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
325
326 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
327
328         * ToolStripContainer.cs: The recent Dock fix exposed that I was
329         adding the panels in the wrong order.
330
331 2007-01-24  Jackson Harper  <jackson@ximian.com>
332
333         * TextBoxBase.cs: When we move the caret we also need to move the
334         selection, this fixes some random crashing after doing select
335         text, unselect, delete a char, paste.
336
337 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
338
339         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
340
341 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
342
343         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
344         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
345         * ToolBar.cs: Force redraw in BackgroundImageChanged.
346
347 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
348
349         * ToolBar.cs:
350         - Implement support for vertical toolbars. Fixes #80539;
351         - Call LayoutToolBar when resize, it fix some other problems in layout.
352         - Rename requested_height to requested_size, as we can have width on it
353         when toolbar is vertical.
354         - Create a private property "Vertical" that uses Dock to verify when 
355         toolbar is vertical or not.
356         - Set ControlStyles when change Dock property.
357         - Refactory in LayoutToolBar to have better variables names and to support
358         vertical toolbars.
359         - Fixes default value for ButtonSize when button count is equal zero, size
360         must be (39, 36) test case writed.
361
362 2007-01-23  Chris Toshok  <toshok@ximian.com>
363
364         * Control.cs: fix the checks so that they work correctly for mdi
365         parents/children.
366
367 2007-01-23  Chris Toshok  <toshok@ximian.com>
368
369         * Control.cs: ControlCollection seems to have super-secret
370         abstraction breaking knowledge of Mdi containers.  allow MdiClient
371         to add toplevel controls.
372
373 2007-01-23  Chris Toshok  <toshok@ximian.com>
374
375         * Control.cs: throw an ArgumentException if a toplevel control is
376         added to our control collection from ControlCollection.Add, as
377         well as from ControlCollection.IList.Add.  This fixes the
378         ControlSetTopLevelTest.TestTopLevelAdd unit test.
379
380         Also, in ControlCollection.IList.Add, don't through an
381         ArgumentNullException, throw an ArgumentException, when value ==
382         null.  This matches MS.
383
384 2007-01-23  Chris Toshok  <toshok@ximian.com>
385
386         * BindingSource.cs: initial, incomplete, implementation of
387         BindingSource.
388
389 2007-01-23  Jackson Harper  <jackson@ximian.com>
390
391         * TextControl.cs:
392         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
393         that I can fix a broken unit test (TextBoxTest::ClearUndo)
394         
395 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
396
397         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
398
399 2007-01-23  Andreia Gaita  <avidigal@novell.com>
400
401         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
402         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
403         IndexOfKey() for 2.0
404
405 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
406
407         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
408         to prevent it from changing z-order.
409         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
410         leave UI updates in MdiWindowManager.
411         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
412         1 sized (NC handling goes weird on Linux otherwise).
413         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
414         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
415         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
416         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
417         and SetWindowState(s) to allow for changing the size of an activated child
418         before activating it (reduces a lot of flicker).
419
420 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
421
422         * Form.cs: Changing FormBorderStyle has different semantics based
423         on whether the Form is visible or not.  If not visible, don't change
424         the Size.  But InvalidateNC needs to be called to force the window
425         to pick up the changes and redraw itself.  [Fixes bug #80574]
426
427 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
428
429         [Moma work]
430         * ContainerControl.cs: ProcessCmdKey.
431         * ErrorProvider.cs: new constructor.
432         * Form.cs: fix AutoValidateEvent compiler warning.
433         * Label.cs: fix OnAutoSizeChanged compiler warning.
434         * MenuStrip.cs: fix CanOverflow compiler warning.
435         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
436         * TextBox.cs: Dispose.
437         * ToolStrip.cs: CanOverflow, re-enable double buffering.
438         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
439         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
440         * ToolStripItem.cs: Overflow, RightToLeft properties.
441
442 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
443
444         * Form.cs: Move the layout of the main form to MdiWindowManager.
445         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
446         do a layout of the main window to update MdiClient's client area to
447         the right area. Fixes #80533. Remove the calculation of nc size, 
448         it was just wrong and the correct one is the same as for 
449         InternalWindowManager. 
450
451 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
452
453         * Control.cs: Setting Anchor or Dock needs to reset the other
454         to its default.  [Fixes bug #80556]
455
456 2007-01-20  Chris Toshok  <toshok@ximian.com>
457
458         * CheckedListBox.cs: class status changes.
459
460         * ScrollableControl.cs: same.
461
462         * RichTextBox.cs: same.
463
464         * ContainerControl.cs: same.
465
466         * ListView.cs: same.
467
468         * NotifyIcon.cs: same.
469
470         * MenuStrip.cs: same.
471
472         * RadioButton.cs: same.
473
474         * CheckBox.cs: same.
475
476         * PrintPreviewDialog.cs: same.
477
478         * Form.cs: same.
479
480 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
481
482         * TreeNode.cs: Apply Alan's patch for Name property.
483
484 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
485         
486         * Form.cs: Implemented SizeGripStyle.
487         * SizeGrip.cs: Check for minimum and maximum size for the
488         control being resized and only resize if size has actually
489         changed.
490
491 2007-01-19  Chris Toshok  <toshok@ximian.com>
492
493         * DataGridColumnStyle.cs: stop setting _readonly in the
494         PropertyDescriptor setter.  fixes a unit test failure.
495
496         also, rename ParentReadOnly to TableStyleReadOnly, and have it
497         just consult our table style (if we have one).  We don't need to
498         consult the datagrid readonly attribute because that's passed in
499         as the _ro arg to Edit.  this simplifies things a little.
500         
501         * DataGrid.cs: use CurrentColumn instead of
502         current_cell.ColumnNumber just to simplify some of the code.
503
504         switch the order of some things in the CurrentCell setter to keep
505         the previous cell from getting a textbox again -
506         EnsureCellVisibility causes scrolling to happen, which calls Edit.
507         So we need to set the new cell before calling it.
508         
509         call Edit in OnEnter, as does Microsoft.
510         
511         also, make sure the current table style isn't the one we create
512         initially when checking to see if it's different than the one
513         we're setting it to in BindColumns (this fixes #80421).
514
515         * GridTableStylesCollection.cs: table styles can have "" for a
516         mapping name.  part of the fix for #80421.
517
518         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
519         Edit significantly.
520
521 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
522
523         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
524         and less GDI object leaky-er.
525
526 2007-01-18  Andreia Gaita  <avidigal@novell.com>
527
528         * LinkLabel.cs: Add opaque control style
529
530 2007-01-18  Jackson Harper  <jackson@ximian.com>
531
532         * TextControl.cs: Calculate width properly.
533         - Don't store the tag's X offset, this can be figured out very
534         easily.
535         - When getting the caret tag make sure to get the last empty tag.
536
537 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
538
539         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
540         [Fixes bug #79959]
541
542         * Control.cs: Color.Empty shouldn't count for previous transparent
543         redraw changes.
544
545 2007-01-18  Jackson Harper  <jackson@ximian.com>
546
547         * TextBox.cs:
548         * RichTextBox.cs:
549         * TextControl.cs: Starting to merge in some pieces of my older
550         undo work.  Basically just some slight cleanup of the undo API.
551
552 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
553
554         * TrackBar.cs: Fix signature of RightToLeftLayout.
555         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
556         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
557         * Application.cs: Implemented UseWaitCursor.
558
559 2007-01-18  Jackson Harper  <jackson@ximian.com>
560
561         * TextControl.cs: We can't skip tags if any part of the tag is
562         visible.
563
564 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
565
566         * ContainerControl.cs: Override OnLayout.
567
568 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
569
570         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
571
572         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
573         everything else.
574
575 2007-01-18  Chris Toshok  <toshok@ximian.com>
576
577         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
578         (leftover from the container_selected days, I'd wager).  fixes bug
579         #80546.
580
581 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
582
583         * Control.cs: Apply patch from George to fix the new testcase on
584         bug #80451.  We can't just check for Color.Transparent, we need 
585         to check if the back color's alpha channel is < 255.
586
587 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
588
589         * Form.cs: Move setting show_icon = true to before the constructor
590         so that the base constructor has that information when it calculates
591         the form's size.  Was causing forms to be (6, 6) bigger than they
592         were supposed to be.  Thanks for catching this Rolf!
593
594 2007-01-18  Jackson Harper  <jackson@ximian.com>
595
596         * TextControl.cs: When replacing a selection we need to invalidate
597         from the initial selection start, because selection start is moved
598         to the end of the replacement.
599
600 2007-01-18  Andreia Gaita  <avidigal@novell.com>
601
602         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
603
604 2007-01-18  Chris Toshok  <toshok@ximian.com>
605
606         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
607         I just added.
608
609 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
610
611         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
612         layout methods and properties from ToolBarButton must be available
613         into ToolBarButtonInfo.
614
615 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
616
617         * Control.cs: If the control has a transparent background, we
618         need to refresh it when it moves and when it's parent's background
619         image changes.  [Fixes bug #80451]
620
621 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
622
623         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
624
625 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
626
627         * XplatUIWin32.cs: Implement proper double buffering for Windows.
628         [Fixes bug #80447, and probably speeds up things as well]
629
630 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
631
632         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
633         * XplatUIWin32.cs: We need to recalculate NC size after changing 
634         window style to toolwindow (otherwise the client rectangle will be
635         3 pixels to small for some reason).
636         * MdiWindowManager.cs: Revert NC size calculations to match how
637         they are calculated only based on window styles (to match
638         Win32AdjustWindowRectEx, since otherwise when setting size or 
639         location, Control will call Win32AdjustWindowRectEx to update client 
640         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
641         calculate a different value of client size causing another paint 
642         (and flickering))
643         * InternalWindowManager.cs: When moving or resizing a window only
644         update size or location if they actually changed.
645         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
646         (seems to match Windows behaviour better). Cleaned up 
647         ManagedWindowDecorations to draw what's needed and nothing else
648         (was drawing borders and lines where they shouldn't be)
649         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
650         (style = 0xFFFF) and takes into account caption height when 
651         calculating window rectangle.   
652
653 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
654
655         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
656         can be added to toolbar multiple times, we need to maintain a list of 
657         button information for each positions.
658
659 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
660
661         * ToolBar.cs: Some small stetic changes.
662
663 2007-01-16  Jackson Harper  <jackson@ximian.com>
664
665         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
666         that allow us to have nested recalc = false blocks.
667         - Add paste support for images in the RichTextBox
668         * RichTextBox.cs: flush the text after the color is changed, so
669         the change takes effect.
670         - Use SuspendRecalc
671         - Some extra debugging info
672         * TextControl.cs: Tags no longer track their length, it is just
673         computed from the next tags length, this makes things a little
674         simpler and reduces places that we have to track length changes.
675         - Refactored the linetag class a little so we could make it
676         a base class for different kinds of tags
677         - Created a image tag, a tag that can have a single image inserted
678         into it
679         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
680         that we can call suspend multiple times.
681         - Add some debugging methods
682
683 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
684
685         * MdiClient.cs: Add ActivatePreviousChild for 
686         mdi child window navigation.
687         * Form.cs: Use MdiClient.ActivateNextChild/
688         ActivatePreviousChild instead of Form.SelectNextControl
689         to select the next/previous child since 
690         SelectNextControl doesn't do it in the same order
691         as mdi children should do it.
692
693 2007-01-16  Chris Toshok  <toshok@ximian.com>
694
695         * Control.cs: remove container_selected field.
696
697 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
698
699         * MdiClient.cs: Update main form's ActiveChild when
700         updating keyboard focus for the mdi child.
701
702 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
703
704         * Control.cs: PreferredSize fix.
705
706         * Form.cs: Add several 2.0 events, properties, and methods.
707
708 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
709
710         * Form.cs: Provide meaningful message when MdiParent is assigned a
711         Form that is not an MdiContainer.
712
713 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
714
715         * MdiClient.cs: Update main form's ActiveChild when
716         activating a mdi child.
717
718 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
719
720         * MdiWindowManager.cs: Fix NRE when merging menus and main form
721         doesn't have a menu.
722
723         * Form.cs: Request NCRecalc after creating a mdi child window.
724         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
725         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
726         
727         * MdiClient.cs: Add new method SendFocusToActiveChild that either
728         sends keyboard focus to the active child, or to the MdiClient
729         if there are no child forms.
730         
731 2007-01-15  Chris Toshok  <toshok@ximian.com>
732
733         * ListView.cs: drop the *Internal overrides, just do our work in
734         ItemControl's WndProc instead.
735
736         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
737         of the various controls, and forward the events properly (in the
738         same manner as MS) from the textbox to the UpDown.  Also the
739         ActiveControl of the UpDownBase gets set properly now.  Finally,
740         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
741
742         * NumericUpDown.cs: set Text in the ctor.
743
744         * DomainUpDown.cs: call UpdateEditText in the ctor.
745         
746         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
747         so even a Selectable = false textbox can be focused if you click
748         in it.  Go figure.
749
750         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
751         just add their handling in their respective WndProc's.  Also add
752         an explicit FocusInternal method that doesn't consult CanFocus
753         before calling Select(this).
754
755         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
756         do our work in WndProc instead.
757
758         * TabControl.cs: same.
759
760         * ComboBox.cs: same.
761
762 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
763
764         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
765         Fixes #80006.
766
767 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
768
769         * ListViewItem.cs:
770         * ThemeWin32Classic.cs: Don't draw the item text outside
771         item bounds in Details view, as well as use trimming.
772         Fixes bug #80376.
773
774 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
775
776         * Form.cs: Implement Form.ShowIcon.
777         
778         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
779         null, which when combined with the DlgModalFrame window style removes
780         the icon from the title bar.
781
782 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
783
784         * Control.cs: Call OnMouseClick after OnClick. (2.0)
785
786 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
787
788         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
789         menu when mdi child windows theres a menu, uses insert to get icon
790         at first position. Partially fix #80006.
791
792 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
793
794         * Clipboard.cs: Implement 2.0 methods.
795
796 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
797
798         * Menu.cs: Implement Insert method of MenuItemCollection class
799         to fix MenuMerge.
800
801 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
802
803         * ListView.cs: Implement 2.0 FindItemWithText method.
804
805 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
806
807         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
808         to calculate menu bar size. Fixes #80290.
809
810 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
811
812         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
813
814 2007-01-11  Chris Toshok  <toshok@ximian.com>
815
816         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
817         initial form.
818
819 2007-01-11  Chris Toshok  <toshok@ximian.com>
820
821         * LinkLabel.cs: make sure to call base.Select in our Select method
822         if it turns out we're going to be selected (i.e. if we have a link
823         that is going to receive focus).  That way our container's
824         ActiveControl is updated properly.
825
826 2007-01-11  Chris Toshok  <toshok@ximian.com>
827
828         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
829         they have 1 or more links.  this fixes the crash gert reported.
830
831 2007-01-11  Andreia Gaita  <avidigal@novell.com>
832
833         * ContainerControl.cs: Remove ContainerSelected flag, not needed
834         anymore.
835
836         * Control.cs (Controls.Add): Check if control to be added to the collection
837         is a top level control, and throw an ArgumentException if it is.
838         Remove ContainerSelectedFlag, not needed anymore.
839
840         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
841         top most control doesn't activate the form. This fixes a problem in the
842         MessageBox, where the default button wouldn't get focus because the form
843         was activated before being Loaded - when the Owner is set, SetTopMost is
844         called, and it would activate it.
845
846 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
847
848         * Button.cs: When clicked and setting the parent form's DialogResult,
849         use FindForm instead of Parent, since parent could be a container
850         control and not the Form.  Fixes bug #80495.
851
852 2007-01-10  Chris Toshok  <toshok@ximian.com>
853
854         * Form.cs: move the call to SendControlFocus into the same
855         is_loaded check.
856
857 2007-01-10  Chris Toshok  <toshok@ximian.com>
858
859         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
860         It breaks in the face of the new ActiveControl stuff, and should
861         be unnecessary.
862
863         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
864         activecontrol's focus if it's not already set, after we set
865         ActiveControl, but before we call OnActivated.  Re-fixes #79667
866         after the previous focus/active control fixes regressed it.
867
868         * Control.cs: reindent some code.
869         
870 2007-01-10  Chris Toshok  <toshok@ximian.com>
871
872         * Splitter.cs: clearing some outstanding changes from my tree.
873         Replace all accesses (not writes) to the internal dock_style field
874         with the Dock property.
875
876 2007-01-10  Chris Toshok  <toshok@ximian.com>
877
878         * Control.cs: make FireEnter, FireLeave, FireValidating, and
879         FireValidated virtual.
880
881         * Form.cs: override and don't chain up calls to FireEnter and
882         FireLeave.
883
884 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
885
886         * ListView.cs: Add more text padding space when using
887         auto resize for columns (the previous value didn't work fine).
888
889         * ThemeWin32Classic.cs: Update text position inside columns,
890         to match the appeareance of .Net.
891
892         * ColumnHeader.cs: When using auto resize, only the Width should
893         depend on the sub items, not the Height. Also, set width after
894         auto resizing (the value of Width should never remain as -1 or -2).
895
896 2007-01-10  Chris Toshok  <toshok@ximian.com>
897
898         * Application.cs: fix compilation errors when debug is enabled.
899
900 2007-01-10  Chris Toshok  <toshok@ximian.com>
901
902         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
903         add some nice ascii art pictures and explanation of the process).
904         (GetMostDeeplyNestedActiveControl): new utility function we need
905         because our ActiveControl can refer to a child container with its
906         own ActiveControl.
907
908         * Form.cs (OnActivated): remove the call to SelectActiveControl
909         from here, since you can override this method and not chain up,
910         and winforms still sets the active control.
911         (OnCreateControl): also remove the unnecessary SelectActiveControl
912         call from here.
913         (WndProc): it's actually called from the WM_ACTIVATE block, just
914         before calling OnActivated.
915
916         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
917         inside the else.  the ActiveControl setter will end up setting
918         focus on @control.  This keeps us from setting it again (and
919         generating an extra LostFocus/GotFocus pair).
920         (Select (bool, bool)): reindent.
921
922 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
923
924         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
925         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
926         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
927         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
928         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
929         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
930         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
931         ToolStripTextBox.cs: Another wave of corcompare work.
932
933 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
934
935         * ColumnHeader.cs: Implement 2.0 AutoResize method using
936         the Width property.
937
938         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
939         methods by callling Column.AutoResize method on columns.
940
941 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
942
943         * Control.cs: Provide proper implementations of PreferredSize
944         and GetPreferredSize (2.0).
945
946 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
947
948         * Form.cs: Remove one character (!) to make my previous OnClosing
949         stuff work for modal windows like MessageBox.
950
951 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
952
953         * ListView.cs:
954         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
955         ListView.Columns to get the last displayed column. Fixes #80452.
956
957 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
958
959         * Label.cs, LinkLabel.cs: Source code identation fixes.
960
961 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
962
963         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
964         we dont need to invalidate only borders because when we invalidate four
965         border lines the invalidate's generates a complete redraw of button, 
966         because it now invalidate a complete rect some other redraws operations
967         are fixed. Fixes #80196.
968         
969         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
970         Remove ToolBarInvalidateEntireButton as it is not used.
971
972 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
973         
974         * Form.cs: Make sure that both OnClosing and OnFormClosing are
975         called for 2.0 profile.
976         * CloseReason.cs: Make class internal for 1.1.
977
978 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
979
980         * ToolStripManager.cs: Implement FindToolStrip functionality.
981         * ToolStrip.cs: Register and unregister with ToolStripManager.
982
983 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
984
985         * Control.cs: This was messy.  2.0 moves much of ControlCollection
986         to ArrangedElementCollection.  Implemented this with as few #if's as 
987         possible (which is still too many).
988
989 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
990
991         * Control.cs: Implement SizeFromClientSize() [2.0].
992
993 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
994
995         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
996         use Theme.BorderSize to calculate area instead of static value 1, 
997         by the way use new BorderStaticSize instead     Border3DSize when 
998         border_static is true. Fixes #79537.
999         
1000         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1001         
1002         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1003         it is not needed.
1004
1005 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1006
1007         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1008
1009 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1010
1011         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1012         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1013         
1014         * Hwnd.cs: 
1015         - border_static field added, it will used to define when a control 
1016         theres 3D border but it must be static (thin).
1017         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1018         instead of static value 1, by the way use new BorderStaticSize instead
1019         Border3DSize when border_static is true.
1020
1021         * XplatUIX11.cs, XplatUIOSX.cs: 
1022         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1023         
1024         * Theme.cs: BorderStaticSize field added.
1025
1026 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1027
1028         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1029
1030 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1031
1032         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1033         mimic same behavior than win32 that set border only in CreateParams,
1034         it fix problems under CreateParams overrides. Fix #79442 and partial
1035         fix #79537.
1036         
1037         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1038         of thi control you must call recreate handle. 
1039         
1040         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1041         need to do anything as RecreateHangle will take care about borders.
1042
1043 2007-01-05  Mike Kestner  <mkestner@novell.com>
1044
1045         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1046         cycles between the ItemControl and parent.  Fixes #80388.
1047
1048 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1049
1050         * Control.cs: Lazy init layout engine. Do not directly use 
1051         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1052
1053 2007-01-05  Chris Toshok  <toshok@ximian.com>
1054
1055         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1056         unless our list manager has changed (i.e. unless we have reason to
1057         believe our columns have changed).  Fixes #80422.
1058         
1059         also, disable the call do BindColumns in
1060         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1061         1.1 the event isn't raised in response to a column addition on a
1062         table.)
1063
1064 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1065
1066         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1067         that inheritors can not call it if they choose.  Fixes bug #80456.
1068
1069 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1070
1071         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1072         doesn't blow up with a null exception on marshalling.
1073         
1074 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1075
1076         * Control.cs: Implement several 2.0 protected properties and methods.
1077         Ensure that all necessary events are being called when properties
1078         are set.
1079
1080 2007-01-05  Mike Kestner  <mkestner@novell.com>
1081
1082         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1083         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1084         instead of the parent control.  Fixes #80378.
1085
1086 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1087
1088         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1089           determine whether to use yard-pound or not (bug #78399).
1090
1091 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1092
1093         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1094         problems. So it is time to bring back the old popupbutton colors.
1095
1096 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1097
1098         * ColumnHeader.cs:
1099         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1100         property by using the internal information of the
1101         columns order in ListView.
1102
1103 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1104
1105         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1106         Add 2.0 Tag properties.
1107
1108         * LinkArea.cs: Add 2.0 ToString method.
1109
1110 2007-01-03  Chris Toshok  <toshok@ximian.com>
1111
1112         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1113         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1114         when we're editing, which fixes #80047.
1115
1116 2007-01-03  Chris Toshok  <toshok@ximian.com>
1117
1118         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1119         #80404.
1120
1121 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1122
1123         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1124         property and implementation.
1125
1126         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1127         for MdiWindowListItem property.
1128
1129         * ToolStripDropDown.cs: Don't consider hidden menu items while
1130         laying out the menu.
1131
1132 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1133
1134         * SendKeys.cs: window handle is not needed in win32, so just
1135         get the active window for X after parsing keys and don't use
1136         it when building the message; it is passed by parameter to the 
1137         Xplat method and used there to build the message instead. Also,
1138         wait for events to be processed on SendWait, as opposed to Send,
1139         which doesn't wait :) Playing with threads and Send() completely 
1140         hangs on ms.net, only SendWait() works.
1141         
1142         XplatUIX11.cs
1143         X11Display.cs: Check for valid window handle.
1144
1145 2007-01-03  Jackson Harper  <jackson@ximian.com>
1146
1147         * TextControl.cs: Need to prevent wrap calculations when replacing
1148         text (this was there before i removed it accidently).
1149         - Don't update the cursor during the positioning, just set it to
1150         selection_start at the end of the operaion.
1151
1152 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1153
1154         * Control.cs:
1155         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1156         
1157 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1158
1159         * MonthCalendar.cs: Added Click and DoubleClick events again,
1160         but this time they only hide Control's Click and DoubleClick.
1161         
1162 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1163
1164         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1165         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1166
1167 2007-01-02  Jackson Harper  <jackson@ximian.com>
1168
1169         * TextBoxBase.cs: We move the caret with the split now, so we
1170         don't need to explicitly move the caret after splitting.  This
1171         fixes the caret bumping down an extra line on Enter.
1172
1173 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1174
1175         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1176         2.72). 
1177
1178         * ScrollableControl.cs: Add Scroll event.
1179
1180 2007-01-02  Mike Kestner  <mkestner@novell.com>
1181
1182         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1183         to fix all hdr height padding codepaths.  Fixes #80207.
1184
1185 2007-01-02  Chris Toshok  <toshok@ximian.com>
1186
1187         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1188         setting it to the Control defaults anyway, and it being after the
1189         Dock set was screwing up layout.
1190         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1191         no need to call UpdateStatusBar here, as it'll be re-layed out if
1192         it needs to be.
1193
1194 2007-01-02  Mike Kestner  <mkestner@novell.com>
1195
1196         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1197         to header height for width == -1. Fixes the rest of #80207.
1198
1199 2007-01-02  Mike Kestner  <mkestner@novell.com>
1200
1201         * ListView.cs: rework the mouse event forwarding everaldo added
1202         to translate the coordinates to the parent control not
1203         raise the parent events until after we've done our work. Hover
1204         needs more work, in the case where HoverSelection is on, because
1205         the item control receives more than one MouseHover per Enter
1206         event, so we need to ensure only the "first" hover gets forwarded.
1207         Opening a minor bug for that.
1208
1209 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1210
1211         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1212         * ListControl.cs: Implemented AllowSelection property. Removed extra
1213         tabs.
1214         * ListBox.cs: Implemented AllowSelection property.
1215
1216 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1217
1218         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1219         SelectedItem, it prevent for errors when you must disable item
1220         before perform click. Fixes #80409.
1221
1222 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1223
1224         * MenuAPI.cs: Prevent second level and beyond submenus to close
1225         until first level when move out side of popup.
1226         
1227 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1228
1229         * MenuAPI.cs:
1230         - Down submenu positin in three pixels.
1231         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1232
1233 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1234
1235         * ThemeWin32Classic.cs:
1236         - Fix popup menu size adding one pixel on the top.
1237         - Down menu item border from two to one to mimic Win32.
1238         - Some source identation fixes. 
1239
1240 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1241
1242         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1243         position of menu arrows, it fix wrong arrow size.
1244
1245 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1246
1247         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1248         instead of line, it simplify draw operation and fix it using 3D
1249         borders to mimic Win32.
1250
1251 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1252
1253         * StatusStrip.cs: Add implementation of the sizing grip.
1254
1255         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1256         StatusStrip rendering.
1257
1258 2006-12-31  Chris Toshok  <toshok@ximian.com>
1259
1260         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1261         override the layout style (anchor/dock) of the control.  assign to
1262         Dock instead.  Fixes bug #80416.
1263
1264         * ToolStrip.cs: same.
1265
1266 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1267
1268         * ContainerControl.cs: Use ContainerSelected flag to check if 
1269         a Container is directly selected, or if Select is called on a 
1270         non-container. If a container is directly selected, focus events 
1271         should not be raised.
1272         Apply #80411 patch to throw exception on set_ActiveControl if 
1273         control is the same as the current one.
1274         
1275         * Control.cs: Use ContainerSelected flag (see above).
1276         Add invalidation check to raise event but not invalidate if 
1277         dimensions are 0.       
1278         Apply #80411 patch.
1279         
1280
1281 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1282
1283         * MenuAPI.cs: After click, dont close popup menu when menu is
1284         ContextMenu. Fixes #80399.
1285
1286 2006-12-30  Chris Toshok  <toshok@ximian.com>
1287
1288         * ContainerControl.cs: make sure we throw the exception if the
1289         container control doesn't contain the control we're setting
1290         ActiveControl to.
1291
1292 2006-12-30  Chris Toshok  <toshok@ximian.com>
1293
1294         * Control.cs (SetTopLevel): fix the exception raised by
1295         SetTopLevel for child controls.
1296         (set_Anchor): call UpdateDistances when setting the anchor type.
1297         This fixes bug #80336.
1298
1299 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1300
1301         * Theme.cs: For now, revert back to 8pt font.
1302
1303 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1304
1305         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1306         Fixes #80395.
1307
1308 2006-12-29  Chris Toshok  <toshok@ximian.com>
1309
1310         * Control.cs: reorder the code in OnResize to give the same event
1311         ordering as MS.
1312
1313 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1314
1315         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1316         TileHorizontally and TileVertically.
1317         
1318 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1319
1320         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1321         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1322         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1323         Corrected copyright and email adress.
1324
1325 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1326
1327         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1328         of Exception in FullPath property if no TreeView is associated with
1329         the TreeNode.
1330
1331 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1332
1333         * Theme.cs: Marked default_font as private, and initialize it in ctor
1334         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1335         on 2.0 profile.
1336         * ThemeGtk.cs: Removed default_font intialization.
1337         * ThemeWin32Classic.cs: Removed default_font initialization.
1338
1339 2006-12-28  Chris Toshok  <toshok@ximian.com>
1340
1341         * Control.cs: fix a couple of place where we were creating handles
1342         more aggressively than we should be.  Fixes ControlRefresh unit
1343         tests.
1344
1345 2006-12-28  Chris Toshok  <toshok@ximian.com>
1346
1347         * Control.cs: contrary to what the comment said, Control.Dock does
1348         not supercede Control.Anchor - the last one you assign to decides
1349         the layout behavior.  so we need to keep track of which was the
1350         last set.  Also, fix some of the affected property arguments in
1351         PerformLayout calls, and remove an redundant parent.PerformLayout
1352         call in OnResized.
1353
1354         Add a VisibleInternal property, which returns is_visible.  We
1355         can/should get rid of all the usage of this field elsewhere.
1356
1357 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1358         
1359         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1360         control style, not DoubleBuffer. Added UseDoubleBuffering property
1361         that indicates whether doublebuffering is enabled and supported.
1362         (comment from and code based on Gert Driesen's patch in #80324).
1363         Fixes #80324.
1364
1365 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1366         
1367         * Control.cs: Fixed a NRE.
1368
1369 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1370
1371         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1372         for 2.0.
1373
1374 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1375
1376         * Control.cs: Rewrote double buffering, now a seperate
1377         class handles all the buffering, no Graphics is disposed of
1378         until the painting is finished (earlier implementation 
1379         would crash if the control was resized in the OnPaint, 
1380         since it would cause the double buffer to be recreated
1381         and the old one disposed), a separate Graphics is 
1382         created for every paint (MS behaviour and anyways the state
1383         of the Graphics would have to be saved and restored otherwise)
1384         
1385         * XplatUIDriver.cs: 
1386         * XplatUIX11.cs:
1387         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1388         so that we can get the graphics for the back buffer without
1389         having to create a new one and remove the offscreen_dc parameter
1390         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1391         
1392 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1393
1394         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1395         Also make virtual all the key-related methods.
1396
1397         * ListViewItem.cs: Make virtual the key related methods for
1398         ListViewSubItemCollection.
1399
1400 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1401
1402         * ListView.cs:
1403         * ListViewItem.cs:
1404         * ThemeWin32Classic.cs:
1405         * Theme.cs: Initial support for Tile view in ListView,
1406         as well as the implementation of the required bits for it (Item
1407         and Subitem).
1408
1409 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1410
1411         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1412         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1413         Provide useful exception messages.
1414
1415 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1416
1417         * TrackBar.cs: Remove a warning.
1418         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1419         when used by DateTimePicker, fixes #80287. This also requires that 
1420         MonthCalendar implements it's own drawing for the yearly updown control,
1421         otherwise the Capture tracking would be too complicated. Removed the Click 
1422         and DoubleClick events (according to comments they were hiding the base class
1423         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1424         raise these events, not that they cannot be raised. It is possible to raise 
1425         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1426         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1427         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1428         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1429         event, no longer needed.
1430         
1431 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1432
1433         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1434         true if new value differs from current value.
1435
1436 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1437
1438         * Control.cs: ControlCollection.Count must be public. Fixed build of
1439         unit tests.
1440
1441 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1442
1443         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1444
1445 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1446
1447         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1448
1449 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1450
1451         * Control.cs: Invalidates control including when Width and Height is 
1452         equal zero or is not visible, only Paint event must be care about 
1453         this. Fixes #79913.
1454
1455 2006-12-26  Chris Toshok  <toshok@ximian.com>
1456
1457         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1458         more corcompare work.
1459
1460         * DataGridView.cs: fix compiler warning.
1461
1462         * ColumnHeader.cs: some corcompare work, and also take the
1463         opportunity to make the internal fields private.
1464
1465         * ListView.cs: fix the fallout from the above field change.
1466
1467 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1468
1469         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1470         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1471         ToolStripTextBox.cs: Fixes to events and corcompare.
1472
1473 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1474
1475         * ListView.cs: Call owner.OnMousexx event to propagate events from
1476         item to ListView. Fixes #80367.
1477
1478 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1479
1480         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1481         if value is less than one. ItemHeight should not be set to a value
1482         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1483         Removed extra tabs.
1484
1485 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1486
1487         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1488         * ToolStripStatusLabel.cs: Add Spring for Moma.
1489
1490 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1491
1492         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1493         Fixed code formatting. Removed debug code.
1494         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1495
1496 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1497
1498         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1499         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1500         ArgumentOutOfRangeException if ColumnCount is negative. In 
1501         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1502         less than 4 or higher than 32768.
1503         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1504         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1505         Fixed IsFormatProviderDefault to return true if FormatProvider has
1506         not been explicitly set.
1507
1508 2006-12-25  Chris Toshok  <toshok@ximian.com>
1509
1510         * Application.cs: add a couple of 2.0 events.
1511
1512 2006-12-25  Chris Toshok  <toshok@ximian.com>
1513
1514         * Control.cs: fix compiler warning.
1515
1516         * AxHost.cs: corcompare fixes.
1517
1518         * ApplicationContext.cs: corcompare fixes.
1519
1520 2006-12-25  Chris Toshok  <toshok@ximian.com>
1521
1522         * Control.cs: only update dist_right/dist_bottom if the
1523         width/height is > 0.  this fixes anchored controls being resized
1524         smaller until they disappear and then resized larger again.
1525
1526 2006-12-25  Chris Toshok  <toshok@ximian.com>
1527
1528         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1529         since they're nothing more than X/Left and Y/Top, respectively.
1530
1531         Also, move back to a per-control Bitmap/Graphics for
1532         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1533         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1534         Height.
1535
1536 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1537
1538         * MessageBox.cs: Implemented overload that takes a new "bool
1539         displayHelpButton" by adding a new internal field "show_help".
1540         When clicked this will raise the HelpRequested on the owner or the
1541         main form. 
1542
1543         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1544         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1545
1546         * ListView.cs: Add support ColumnWidthChanged and
1547         ColumnWidthChanging. 
1548
1549         Add support for ColumnReordered event.
1550         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1551         reorder.
1552
1553         Very nice codebase!
1554
1555         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1556
1557         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1558
1559 2006-12-24  Chris Toshok  <toshok@ximian.com>
1560
1561         * GridTablesFactory.cs: 2.0 corcompare work.
1562
1563         * ToolStripContainer.cs: add "override" to
1564         ContextMenuStripChanged, and remove the local event object.
1565
1566         * ToolStripDropDown.cs: same with a couple properties.
1567
1568         * ToolStripPanel.cs: same with AutoSizeChanged event.
1569
1570         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1571
1572         * Form.cs: add the remaining 2.0 events, and do some corcompare
1573         attribute work.
1574
1575         * DateTimePicker.cs: add "new" to padding.
1576
1577         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1578
1579         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1580
1581         * DataGridView.cs: PaddingChanged is overridden.
1582
1583 2006-12-24  Chris Toshok  <toshok@ximian.com>
1584
1585         * Control.cs: corecompare work here too.
1586
1587         * DataGridViewElement.cs, DataGridView.cs,
1588         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1589         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1590         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1591         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1592         work.
1593
1594 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1595
1596         * Control.cs: Switched the error message on the console for a
1597         todo.  A review of the code will have to cope with this anyways
1598         (since its a large feature, it is in our radar) and it was
1599         producing too much output when running PDN.
1600
1601         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1602         changes.  Applications depend on this (PDN 2.72)
1603
1604 2006-12-23  Chris Toshok  <toshok@ximian.com>
1605
1606         * TableLayoutSettings.cs: finish up the corcompare work for this
1607         class.
1608
1609 2006-12-23  Chris Toshok  <toshok@ximian.com>
1610
1611         * Control.cs: make SetImplicitBounds internal, do some futzing
1612         with LayoutEngine so that it's available in 1.1, and remove the
1613         entire duplicated code mess from PerformLayout.  Use
1614         System.Windows.Forms.Layout.DefaultLayout instead.
1615
1616         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1617
1618 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1619
1620         * Form.cs: Add MainMenuStrip property.
1621
1622 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1623
1624         * Control.cs: Add ContextMenuStrip property and implementation.
1625         Fix ContextMenu implementation to show menu centered on control when
1626         activated using the keyboard instead of showing at screen (0,0).
1627
1628         * ToolStripDropDown.cs: Fix needed overload of Show ().
1629
1630 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1631
1632         * Menu.cs: Name property added for 2.0 profile.
1633         
1634 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1635
1636         * Menu.cs: Update information about FindMenuItem, method to be
1637         implemented soon.
1638
1639 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1640
1641         * MenuAPI.cs: When deselect items deselect also selected subitems.
1642         
1643 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1644
1645         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1646         FindSubItemByCoord to found itens that is not active, also an
1647         cheking added to FindSubItemByCoord to search for items only 
1648         in visible popup windows. Fixes #80274.
1649
1650 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1651
1652         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1653         internal property, it be care about change ExStyle. 
1654
1655 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1656
1657         * ContainerControl.cs: set activeControl for parent forms up the 
1658         tree when the new activecontrol is a container.
1659         When validating the active control, if it is a container, also
1660         raise up the validation for it's active control. Fixes #80280
1661         
1662         * Control.cs: Add internal property flag and check to prevent
1663         Focus events from getting raised when Select() is called for
1664         a ContainerControl. There are still too many focus events being
1665         raised at the moment though.
1666         Cleaned up the code a bit.
1667
1668 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1669
1670         * Control.cs: Added all missing 2.0 events.and
1671         fixed a couple of corcompare issues.
1672         * TrackBar.cs: Implemented missing 2.0 bits.
1673         * MonthCalendar.cs, 
1674         * DateTimePicker.cs, 
1675         * MdiClient.cs: Fixed some corcompare issues.
1676
1677 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1678
1679         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1680         SplitterPanel.cs: corecompare work.
1681
1682 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1683
1684         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1685         Clean up warnings for BackgroundImageChanged and PaddingChanged
1686         events now that they are implemented in Control.cs.
1687
1688 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1689
1690         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1691         
1692         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1693         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1694         of TableLayoutPanel and supporting cast.
1695
1696 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1697
1698         * XplatUIWin32.cs: 
1699         - GrabWindow now confines the mouse pointer to the confine window.
1700         - Added Win32ClipCursor and Win32GetClipCursor.
1701
1702         * Control.cs: 
1703         - Added CaptureWithConfine to be able to capture and confine 
1704         mouse pointer.
1705         
1706         * InternalWindowManager.cs: 
1707         - Call CaptureWithConfine instead of Capture if we're an
1708         MdiChild (fixes #79982).
1709
1710 2006-12-21  Chris Toshok  <toshok@ximian.com>
1711
1712         * DataGrid.cs: guard against the initial state of selection, where
1713         selection_start == -1.  make sure we only select from index >= 0.
1714         Fixes bug #80291.
1715
1716 2006-12-21  Chris Toshok  <toshok@ximian.com>
1717
1718         * Control.cs: we don't need to be so draconian with
1719         UpdateDistances, and we thusly don't need to call it before
1720         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1721
1722 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1723
1724         * ComboBox.cs,
1725         TextBox.cs: Implemented AutoComplete properties.
1726
1727 2006-12-20  Chris Toshok  <toshok@ximian.com>
1728
1729         * DataGridView*.cs: some corecompare work.
1730
1731 2006-12-20  Jackson Harper  <jackson@ximian.com>
1732
1733         * XplatUIX11.cs: We need to hide the caret when deleting it,
1734         otherwise you get carets left lying around everywhere.
1735         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1736         prevents getting some weird half drawn caret tracers when
1737         scrolling.
1738         * TextControl.cs: Attempt to reduce the number of times we need to
1739         recreate the caret.
1740
1741 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1742
1743         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1744
1745 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1746
1747         * DateTimePicker.cs:
1748         - Implemented missing 2.0 bits.
1749         - Changed some default values to match MS.
1750         
1751 2006-12-20  Jackson Harper  <jackson@ximian.com>
1752
1753         * TextBoxBase.cs: When changing the font across the document we
1754         can't recalculate after changing each line, since that will cahnge
1755         the line count.
1756         - PreferredHeight is a little different than i thought.
1757         - When backspacing, move the caret before we do the actual char
1758         delete, because when that delete crosses a wrap boundary the
1759         positional information will change.
1760
1761 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1762
1763         * Control.cs: Added some missing 2.0 bits: 
1764         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1765         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1766         add IBindableComponent and IDropTarget implementation.
1767         
1768         * MonthCalendar.cs: 
1769         - Added all missing 2.0 features:
1770         BackgroundImageLayout, RightToLeftLayout, 
1771         OnHandleDestroyed, RightToLeftLayoutChanged, 
1772         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1773         PaddingChanged.
1774         - Rewrote all the BoldDate code, it was completely broken.
1775         - Fixed all the tests (the tests can now be re-enabled, the
1776         problems were not with the tests, but with the control, it was
1777         mostly broken).
1778         
1779         * DateTimePicker.cs: Changed the location where the 
1780         MonthCalendar is shown.
1781         
1782 2006-12-19  Chris Toshok  <toshok@ximian.com>
1783
1784         * DataGridView.cs: add IDropTarget implementation.
1785
1786         * ToolStripPanel.cs: add IDropTarget implementation.
1787
1788 2006-12-19  Jackson Harper  <jackson@ximian.com>
1789
1790         * TextControl.cs: soft now means something different than what it
1791         used to mean, we want to move the caret regardless of whether or
1792         not this break was soft (would we really have wanted the caret
1793         to not move with the break in the old context?)
1794         * TreeView.cs: Make sure we factor in the vert scrollbar when
1795         calculating the horizontal scrollbar's maximum.
1796
1797 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1798
1799         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
1800         check for keywords in alternate casing, close bug #80049.
1801
1802 2006-12-19  Chris Toshok  <toshok@ximian.com>
1803
1804         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
1805         methods (which all do nothing).
1806
1807         * IDropTarget.cs: add the 4 missing methods.
1808
1809 2006-12-19  Chris Toshok  <toshok@ximian.com>
1810
1811         * TableLayoutRowStyleCollection.cs: corcompare work.
1812         
1813         * TableLayoutSettings.cs: same.
1814
1815         * TableLayoutStyle.cs: same.
1816
1817         * TableLayoutColumnStyleCollection.cs: same.
1818
1819 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
1820
1821         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
1822         TableLayoutPanel I've had in my local tree for way too long.
1823
1824 2006-12-19  Miguel de Icaza  <miguel@novell.com>
1825
1826         * TableLayoutSettings.cs: Finish the public API (still needs all
1827         the logic to update on changes). 
1828
1829         * TableLayoutPanelCellPosition.cs: new file.
1830         
1831         * TableLayoutRowStyleCollection.cs,
1832         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
1833         TableLayoutSettings.cs: Track the final 2.0 table api.
1834
1835 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1836
1837         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
1838         and Image List 2.0 members for ColummnHeader.
1839         * ListView.cs: Add key-related 2.0 methods for
1840         ColumnHeaderCollection.
1841
1842 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1843
1844         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
1845         ArgumentNullException if items argument is null. Ignore null item in
1846         arrays. Removed extra tabs.
1847
1848 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1849
1850         * MonthCalendar.cs: Fixed InvalidCastException.
1851
1852 2006-12-19  Jackson Harper  <jackson@ximian.com>
1853
1854         * TextControl.cs: Don't increment the position here.
1855         - When calculating char positions only add in the line break size
1856         for hard line breaks.
1857
1858 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1859
1860         * SendKeys.cs: Changed some things to match ms.net behaviour
1861         when parsing shifted capital letters.
1862         
1863         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
1864         Add window handle as parameter to SendInput. X11 needs the 
1865         window handle, and the handle being passed      to it in the keys 
1866         queue is the active control handle (which windows needs), not 
1867         the window handle.
1868         
1869         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
1870         to support SendKeys on X.       
1871         
1872         * X11Keyboard: Implement helper method to lookup a linux keycode
1873         given the virtual keycode. Added table of keycode-2-virtualkey
1874         values to support this.
1875
1876 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1877
1878         * ListView.cs: Add support for SelectedIndexCollection
1879         and SelectedItemCollection 2.0 methods. Implement support
1880         for ImageKey too.
1881         * ListViewItem.cs: Add support for ListViewSubItemCollection
1882         2.0 methods. Also, fix an incorrect behavior of AddRange method
1883         (it shouldn't call Clear).
1884         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
1885
1886 2006-12-19  Jackson Harper  <jackson@ximian.com>
1887
1888         * RichTextBox.cs: 
1889         * TextBoxBase.cs: New args for FormatText
1890         * TextControl.cs: Rewrote the main drawing method, this version
1891         feels a little easier to understand and debug to me.  Hopefully it
1892         does to others also
1893         - Fix FormatText to OR in the new formating values.  Added
1894         FormatSpecified param, basically this works in the same way as
1895         BoundsSpecified in Control.
1896         - Set the caret properties when the caret is positioned.
1897         - When wrapping text make sure that we calculate the width of the
1898         last character
1899         - when calculating alignments we might have wrapped down to the
1900         next line, so don't search for an individual tag, search for the
1901         end of the line
1902         - We need to invalidate the selection area when we replace the
1903         selection.
1904         
1905 2006-12-19  Daniel Nauck  <dna@mono-project.de>
1906
1907         * Application.cs: add Restart () 2.0 support
1908
1909 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1910
1911         * MenuItem.cs: Invalidate menu item rectangle after change Enable
1912         property. Fixes #80268.
1913         
1914 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1915
1916         * MenuAPI.cs: Dont trigger select event when closes top menu
1917         item. Fixes #80270.
1918
1919 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1920
1921         * MenuAPI.cs: When you click on menuitem only trigger onselect
1922         event for top menu itens. Fixes #80271.
1923         
1924 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1925
1926         * MdiWindowManager.cs: Make IconicBounds depend on
1927         the bottom of MdiClient, not the top (fixes #80267)
1928         
1929 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1930
1931         * MdiClient.cs: Added missing 2.0 attribute
1932
1933 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1934
1935         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
1936         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
1937
1938 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
1939
1940         * MenuAPI.cs: Fix click when menuitem is not popup,
1941         this regression was caused by last commit (#80272).
1942
1943 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
1944
1945         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
1946         fire click event or close menu. Fixes #80272.
1947
1948 2006-12-17  Daniel Nauck  <dna@mono-project.de>
1949
1950         * ListViewHitTestInfo.cs: add
1951
1952 2006-12-17  Daniel Nauck  <dna@mono-project.de>
1953
1954         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
1955         * FlatButtonAppearance.cs: add
1956         * DockingAttribute.cs: add
1957
1958 2006-12-17  Chris Toshok  <toshok@ximian.com>
1959
1960         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
1961         and rebind our columns when it does - this way, if you make
1962         changes to the DataTable (or set the Table attribute on a DataView
1963         after setting it as the DataGrid's DataSource, the changes are
1964         made visible.)  Fixes bug #80107.
1965
1966 2006-12-17  Daniel Nauck  <dna@mono-project.de>
1967
1968         * ListViewGroup.cs: add internal Location property for layouting.
1969         * Theme.cs: add abstract ListViewGroupHeight function.
1970         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
1971
1972 2006-12-16  Andreia Gaita  <avidigal@novell.com>
1973
1974         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
1975         Added reset of selected index to 0 when adding first tab page.
1976         Fixes #80264
1977         
1978         * NumericUpDown.cs: Fix NET_2_0 check
1979
1980 2006-12-16  Daniel Nauck  <dna@mono-project.de>
1981
1982         * ListViewGroup.cs: fixed DefaultValueAttribute value
1983
1984 2006-12-16  Daniel Nauck  <dna@mono-project.de>
1985
1986         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
1987
1988 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1989
1990         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
1991         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
1992         ScrollableControl.cs: Add a handful of methods that are
1993         overwritten in 2.0 
1994
1995 2006-12-15  Chris Toshok  <toshok@ximian.com>
1996
1997         * XplatUIWin32.cs: initial implementation of the Reversible
1998         drawing functions.  there are some problems.  DrawReversibleFrame
1999         doesn't seem to work at all for Dashed FrameStyle, and in the
2000         Thick case there are drawing errors at the corners (we probably
2001         need to bind Rectangle instead of doing moveto/lineto's.)
2002
2003 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2004         
2005         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2006         to send blocks of key messages. Send accumulates keys to send with Flush, 
2007         while SendWait sends all keys immediately.
2008                 
2009         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2010         XplatUIX11.cs,  XplatUIX11-new.cs:
2011         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2012         to Win32 SendInput.
2013         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2014         
2015         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2016         testing for ms.net on this class is very tricky, as the tests run too fast 
2017         to allow the hook to release, essentially freezing the keyboard and the 
2018         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2019         category :p
2020
2021 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2022
2023         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2024                         added missing attributes.
2025  
2026 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2027
2028         * ListViewGroup.cs: Added missing attributes.
2029         * ListViewGroupCollection.cs: Added missing attributes.
2030
2031 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2032
2033         * ListViewItem.cs: fixed ListViewSubItem text property.
2034
2035 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2036         
2037         * Control.cs: Added missing 2.0 attributes
2038         
2039 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2040         
2041         * MdiClient.cs: Added missing 2.0 attribute.
2042         * MonthCalendar.cs: Added some missing 2.0 attributes 
2043         and properties.
2044         
2045 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2046
2047         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2048
2049 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2050
2051         * MainMenu.cs: Add the new 2.0 constructor to help out people
2052         using the MainMenu in VS2005.
2053
2054 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2055         
2056         * MdiChildContext.cs: Removed it, no longer used.
2057         * MdiClient.cs: Added missing 2.0 attributes.
2058         
2059 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2060         
2061         * InternalWindowManager.cs: Fix a NullRef with previous 
2062         changes for toolwindows.
2063         
2064 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2065
2066         * Control.cs: 
2067         - Added AfterTopMostControl to allow for certain controls 
2068         to always stay on top when normal controls are brought to 
2069         front.
2070         
2071         * XplatUIWin32.cs: 
2072         - (DrawInversibleRectangle): Get window rectangle from Win32 
2073         in stead of from control, since Win32 doesn't calculate
2074         screen coords correctly from control's Location if it 
2075         have docked siblings.
2076         
2077         * MdiWindowManager.cs:
2078         - Correct the control menu popup location when clicked on
2079         the maximized form icon. (fixes #80223.1)
2080         - Don't show moving rectangle if mouse hasn't moved from
2081         the original clicked point.
2082         - Removed FormGotFocus handler (not used).
2083         - Calculate the control buttons location from the main
2084         window's size and not client size (fixes #79770).
2085         - Form is now closed when the form icon is double-clicked
2086         (fixes #79775). 
2087         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2088         
2089         * InternalWindowManager.cs:
2090         - Moved some MDI-only methods to MdiWindowManager.
2091         - Removed unused properties and methods.
2092         - Unified method naming for methods handling wm messages.
2093         - Moved all message handling to seperate methods for
2094         each message.
2095         
2096         * ThemeWin32Classic.cs:
2097         - DrawManagedWindowDecorations now draws the title bar 
2098         with a gradient brush.
2099         - Add a CPDrawButtonInternal that allows us to specify
2100         light, normal and dark colors for the buttons (control 
2101         buttons for MDI children were drawn with the same light
2102         color as the background, therefore loosing the 3D effect).
2103         
2104         * SizeGrip.cs:
2105         - Add a CapturedControl property that is used to 
2106         determine the control to resize (defaults to parent). 
2107         Needed for MdiClient, since its SizeGrip's parent is
2108         MdiClient, but the control to resize is the main form.
2109         
2110         * MdiClient.cs:
2111         - Set SizeGrip's CapturedControl to the main form in order
2112         to resize the main form and not the MdiClient.
2113         - Override AfterTopMostControl to leave the scrollbars 
2114         always on top.
2115
2116 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2117
2118         * ListView.cs: fixed ListViewItemCollection AddRange and
2119                         implemented ListViewItemCollection AddRange 2.0 support.
2120
2121 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2122
2123         * ListViewGroup.cs: Add.
2124         * ListViewGroupCollection.cs: Add
2125         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2126         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2127                                 stub for ImageKey 2.0 support.
2128
2129 2006-12-14  Mike Kestner  <mkestner@novell.com>
2130
2131         * ListView.cs: add text padding to the autocalculation for columns
2132         of width -2.  Fixes #80207.
2133  
2134 2006-12-14  Mike Kestner  <mkestner@novell.com>
2135
2136         * ListView.cs: add some index guarding for partial row navigation 
2137         logic.  Fixes #80250.
2138
2139 2006-12-14  Mike Kestner  <mkestner@novell.com>
2140
2141         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2142         are added or inserted to the collection.  Fixes #81099.
2143
2144 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2145
2146         * MenuAPI.cs: Closes menu when right click out side of popup
2147         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2148
2149 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2150
2151         * ListViewItem.cs: Fix dumb error.
2152
2153         * ListView.cs: Add Find and ContainsKey methods in 
2154         ListViewItemCollection, and also return true for IsReadOnly
2155         and IsFixedSize (changes for 2.0). 
2156
2157 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2158
2159         * Control.cs: Allow Region to be set to null.
2160
2161 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2162
2163         * MdiWindowManager.cs: Remove unused (commented out) code.
2164         * Form.cs: When the MdiChild is maximized, the form needs 
2165         WM_NCMOUSELEAVE, so request it.
2166         * InternalWindowManager.cs: 
2167         - Added tooltips to control buttons.
2168         - Removed duplicated control button handling code.
2169         - Removed unused (commented out) code.
2170         
2171 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2172
2173         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2174         was used because we must set cursor without trigger ChangeCursor event
2175         and without change Cursor control property. Fixes #79963.
2176
2177 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2178         
2179         * Control.cs: Check if Region setter value is null, and ignore
2180
2181 2006-12-12  Jackson Harper  <jackson@ximian.com>
2182
2183         * TextControl.cs: We were almost always drawing one more line then
2184         needed, since the GetLineByPixel will return the last line found
2185         at that pixel. In most cases though, we were invalidating up to
2186         the junction between two lines.
2187         - Improve debug code.
2188
2189 2006-12-12  Chris Toshok  <toshok@ximian.com>
2190
2191         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2192         and FillReversibleRectangle.
2193
2194         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2195         and FillReversibleRectangle.
2196
2197         * XplatUIWin32.cs: add stubs which do nothing for
2198         DrawReversibleFrame, DrawReversibleLine, and
2199         FillReversibleRectangle.
2200
2201         * XplatUIOSX.cs: add stubs which raise NIE for
2202         DrawReversibleFrame, DrawReversibleLine, and
2203         FillReversibleRectangle.
2204
2205         * XplatUIX11.cs: add working implementation for
2206         DrawReversibleFrame, DrawReversibleLine, and
2207         FillReversibleRectangle.
2208         
2209         * ControlPaint.cs: implement DrawReversibleFrame,
2210         DrawReversibleLine, and FillReversibleRectangle, by calling into
2211         the appropriate XplatUI method.
2212
2213 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2214
2215         * Form.cs: Make MdiClient have the focus even if it's
2216         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2217         messages. Fixes #79907.
2218         
2219 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2220
2221         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2222         queried after the window is created.
2223         
2224         * XplatUIX11.cs: Added SendParentNotify to implement 
2225         WM_PARENTNOTIFY logic. Fixes #79965.
2226         
2227         * Control.cs: Added MakeParam.
2228         
2229 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2230
2231         * MdiClient.cs: Resume Layout before setting window
2232         states (fixes #80201).
2233
2234 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2235
2236         * MenuAPI.cs: Deselect a menu item after performing
2237         the click (fixes #80197).
2238
2239 2006-12-11  Jackson Harper  <jackson@ximian.com>
2240
2241         * TextBoxBase.cs: We need to cap this value, since Maximum -
2242         ViewPortHeight can be less than zero.
2243         - Only do selection with the left mouse button.
2244         * TextBox.cs: Don't tell the world that we have a context menu.
2245         * Control.cs: New method so that we can control whether or not the
2246         context menu is visible outside MWF.
2247
2248 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2249
2250         * ToolBarButton.cs: Fix text positon. 
2251
2252 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2253
2254         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2255
2256         * Control.cs (DoubleBuffered): Add implementation.
2257
2258         * Application.cs (OpenForms): Add.
2259
2260 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2261
2262         * Form.cs: Use opacity instead of Opactiy to determine if we need
2263         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2264
2265 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2266
2267         * Control.cs: Fix NRE if Control.Site was set to null.
2268
2269 2006-12-11  Chris Toshok  <toshok@ximian.com>
2270
2271         * Control.cs: ControlCollection.Remove should return if the arg is
2272         null, and ControlCollection.SetChildIndex should raise a ANE.
2273
2274 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2275
2276         * Control.cs: Verify value set for Dock property. Code formatting
2277         updates.
2278
2279 2006-12-11  Jackson Harper  <jackson@ximian.com>
2280
2281         * TextControl.cs: Draw the caret and the selection when a flag is
2282         set on the owner.
2283         * TextBoxBase.cs: We want to draw the caret and the selection for
2284         TextBox but not for TextBoxBase.
2285         - If the window is resized and scrolling is no longer needed (the
2286         whole doc is visible) set the scroll position to zero.
2287         - The default SelectWord (the one TextBox uses) should move the
2288         caret to the end of the word.
2289         - SelectAll moves the caret to the end of the selection.
2290         * TextBox.cs: We don't selectall on focus, we just do it when the
2291         control is created.
2292         
2293 2006-12-11  Mike Kestner  <mkestner@novell.com>
2294
2295         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2296
2297 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2298
2299         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2300         2.0 support.
2301         * ListViewItem.cs: Add Name 2.0 property.
2302
2303 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2304
2305         * TabControl.cs: Set visibility on selected or default tab 
2306         when tabcontrol handle is created, so that it's contents
2307         actually show up (duh). Fixes #80193
2308         Don't redraw the control if there is no handle created, as
2309         the selected index might be completely invalid. Added some tests
2310         to check for this.
2311
2312 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2313
2314         * ToolBar.cs: Uses maximun width and height of all buttons as 
2315         button rectangle when ButtonSize specified, it looks strange but
2316         is what happens in Win32. Fixes #80189.
2317
2318 2006-12-11  Jackson Harper  <jackson@ximian.com>
2319
2320         * TextControl.cs: Need to track undo levels ourself, since
2321         compound actions will mess them up.
2322
2323 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2324
2325         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2326         SelectedIndex value is changed (even if it's not valid).
2327         Reset SelectedIndex to 0 when the handle is created and if
2328         the current index is invalid.
2329         Fixes SelectdeIndex unit tests and #80128
2330
2331 2006-12-08  Chris Toshok  <toshok@ximian.com>
2332
2333         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2334         calls EndEdit, it needs to be called before we set current_cell to
2335         its new value.  Otherwise, we end up committing the value in the
2336         textbox to the new cell as well.  Fixes bug #80160.
2337
2338 2006-12-08  Chris Toshok  <toshok@ximian.com>
2339
2340         * Form.cs (set_CancelButton): if the button's DialogResult is
2341         None, set it to Cancel.  Fixes bug 80180.
2342
2343 2006-12-08  Jackson Harper  <jackson@ximian.com>
2344
2345         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2346         to watch ourselves when setting the canvas size and setting the
2347         scrollbar values.
2348
2349 2006-12-08  Chris Toshok  <toshok@ximian.com>
2350
2351         * DataGrid.cs: comment out the two MakeTransparent calls for the
2352         time being so people using trunk (and not 1.2.2) on windows can
2353         actually use the datagrid.  This deals with bug #80151.
2354
2355 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2356
2357         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2358         Graphics.DrawImage (image, int, int, int, int) overload instead
2359         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2360         the dpi difference and was blurring images it drew.
2361         [Fixes bug #79960]
2362
2363 2006-12-08  Chris Toshok  <toshok@ximian.com>
2364
2365         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2366         rowcnt is 0 (such as with an empty datasource), and make sure we
2367         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2368         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2369
2370 2006-12-08  Chris Toshok  <toshok@ximian.com>
2371
2372         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2373         grid.
2374
2375 2006-12-08  Chris Toshok  <toshok@ximian.com>
2376
2377         [ Fixes bug #80167 ]
2378         
2379         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2380         style is FlatStyle.System.
2381
2382         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2383         ButtonBase.flat_style private, and switch uses of it to the public
2384         property.
2385         
2386 2006-12-08  Chris Toshok  <toshok@ximian.com>
2387
2388         [ Fixes bug #80121 ]
2389         
2390         * ThemeWin32Classic.cs: center the caption text in the datagrid
2391         when we draw it.
2392
2393         * DataGrid.cs: lessen the amount we add to the caption height from
2394         6 to 2.  6 was making it huge.
2395
2396 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2397
2398         * UpDownBase: Handle MouseWheel call directly instead of capturing
2399         the inner textbox's OnMouseWheel. Fixes #80166
2400
2401 2006-12-08  Jackson Harper  <jackson@ximian.com>
2402
2403         * TextControl.cs: We need to invalidate the textbox when we empty
2404         it (how had this not been discovered before?)
2405
2406 2006-12-08  Jackson Harper  <jackson@ximian.com>
2407
2408         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2409         to behave like MS, we now ignore the eventargs.Click and just
2410         track state ourself, which we were already doing anyways.
2411         - Constrain the double click handler to the double click size.
2412         
2413 2006-12-08  Chris Toshok  <toshok@ximian.com>
2414
2415         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2416         direction if that scrollbar isn't shown.  fixes bug #80158.
2417
2418 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2419
2420         * NumericUpDown.cs: Update value on getter. Fixes #79950
2421
2422 2006-12-08  Chris Toshok  <toshok@ximian.com>
2423
2424         * MenuItem.cs: add back in the event cloning code.  I didn't know
2425         how to do it in the face of the EventHandlerList work i'd done
2426         last week.  Fixes bug #80183.
2427
2428 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2429
2430         * Control.cs: Add an invalidate to the BackgroundImage setter.
2431         [Fixes 80184]
2432
2433 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2434
2435         * ToolStrip*: Add some small properties reported by MoMA, fix event
2436         firing and default properties based off of unit tests, and add some
2437         attributes based off of the class status page.
2438
2439 2006-12-07  Jackson Harper  <jackson@ximian.com>
2440
2441         * TextBoxBase.cs: Take HideSelection into account when determining
2442         whether or not to show the selection.
2443         * RichTextBox.cs: After inserting the RTF into the document move
2444         the cursor to the beginning of the document.
2445
2446 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2447
2448         * Control.cs: Remove static ArrayList "controls" which maintained
2449         a reference to every control created.
2450         * Application.cs: Create a static FormCollection to maintain a reference
2451         to every form created.  Use it in places that formerly enumerated through
2452         the controls one looking for forms.
2453         * Form.cs: Add and remove self from above FormCollection.
2454
2455 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2456
2457         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2458           not libgdk (though it makes me wonder why I didn't have any
2459           problems)
2460
2461 2006-12-07  Chris Toshok  <toshok@ximian.com>
2462
2463         [ you had to know this was coming after that last commit...]
2464         
2465         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2466         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2467         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2468         XCopyArea).
2469
2470 2006-12-07  Chris Toshok  <toshok@ximian.com>
2471
2472         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2473         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2474         all the behavior we need for double buffering.
2475
2476         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2477         client side Bitmap, just like the old Control-based double buffer
2478         code did.  The methods are virtual, so each XplatUI driver
2479         subclass can replace the implementation to use a faster, platform
2480         specific approach.
2481
2482         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2483         double buffer code, and clean things up a bit in the process.
2484
2485 2006-12-06  Chris Toshok  <toshok@ximian.com>
2486
2487         * Control.cs: reindent WndProc.
2488
2489 2006-12-06  Chris Toshok  <toshok@ximian.com>
2490
2491         [ I wanna be like BenM when I grow up ]
2492         
2493         * Hwnd.cs: create a single static Graphics object on the static
2494         Bitmap we create.  use this for our text measurements.
2495
2496         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2497         This was causing us to allocate a backbuffer for every control,
2498         even when it wasn't flagged as double buffered.  Instead use the
2499         single graphics instance.  This might have implications for
2500         multithreaded applications.  If we run into problems we can switch
2501         to creating 1 Graphics per control, on the static Hwnd bitmap.
2502
2503         this change nets us a 7M savings in private dirty mappings when
2504         running FormsTest.exe.
2505
2506 2006-12-06  Chris Toshok  <toshok@ximian.com>
2507
2508         * ListView.cs: the BackgroundImage override is just to set
2509         attributes.  chain up to base.BackgroundImage.
2510
2511         * RichTextBox.cs: same.
2512
2513         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2514         changes, so instead a handler for BackgroundImageChanged.
2515         
2516         * Control.cs: make background_image private.
2517
2518 2006-12-06  Chris Toshok  <toshok@ximian.com>
2519
2520         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2521         sure we even need this assignment, but roll with it for now.
2522
2523         * Control.cs: make the cursor field private.
2524
2525 2006-12-06  Chris Toshok  <toshok@ximian.com>
2526
2527         * Form.cs: we don't need to explicitly set ImeMode to
2528         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2529         behavior in the face of ImeMode.Inherit.
2530
2531         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2532         change the ctor's assignment to use ImeMode instead of ime_mode.
2533
2534         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2535         ImeModeInherit.  Only check for the parent's imemode (and return
2536         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2537         This fixes the button unit test, which sets both ImeMode and
2538         DefaultImeMode to ImeMode.Disable.
2539
2540         also make the ime_mode field private.
2541
2542 2006-12-06  Chris Toshok  <toshok@ximian.com>
2543
2544         * Control.cs: make control_style private.
2545
2546         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2547         setting the styles to true, then setting them to false instead of
2548         reverting to their previous values.
2549
2550         also, call SetStyle on the scrollbars instead of using
2551         control_style directly.
2552
2553 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2554
2555         * FormCollection.cs: Implement. [2.0]
2556
2557 2006-12-06  Chris Toshok  <toshok@ximian.com>
2558
2559         * Control.cs: make tab_stop private.
2560
2561         * Label.cs: set TabStop, not tab_stop.  reformat some event
2562         add/remove methods to make them more compact.
2563
2564 2006-12-06  Chris Toshok  <toshok@ximian.com>
2565
2566         * RadioButton.cs: fix TabStop handling.
2567
2568 2006-12-06  Chris Toshok  <toshok@ximian.com>
2569
2570         * TextBox.cs: remove the explicit assignments to has_focus.
2571         Control does that.
2572
2573         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2574         manage that.
2575         
2576 2006-12-06  Chris Toshok  <toshok@ximian.com>
2577
2578         * ButtonBase.cs: remove all uses of is_enabled from this code.
2579         it's always true when any of the code containing the checks is
2580         executed.
2581
2582 2006-12-06  Chris Toshok  <toshok@ximian.com>
2583
2584         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2585         with different semantics (some are present in both 1.1 and 2.0
2586         profiles) so that we match MS's behavior in our unit tests.
2587
2588 2006-12-06  Jackson Harper  <jackson@ximian.com>
2589
2590         * TextControl.cs: Make this operation undoable.
2591         * TextBoxBase.cs: Factor the border width into the preferred
2592         height.
2593         - implement Modified as per the spec.
2594
2595 2006-12-06  Chris Toshok  <toshok@ximian.com>
2596
2597         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2598
2599 2006-12-06  Chris Toshok  <toshok@ximian.com>
2600
2601         * Control.cs: make right_to_left and context_menu fields private.
2602
2603 2006-12-06  Chris Toshok  <toshok@ximian.com>
2604
2605         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2606         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2607         Control.child_controls private.  switch all uses over to
2608         Control.Controls.
2609
2610 2006-12-06  Chris Toshok  <toshok@ximian.com>
2611
2612         * System.Windows.Forms/GroupBox.cs,
2613         System.Windows.Forms/AccessibleObject.cs,
2614         System.Windows.Forms/ErrorProvider.cs,
2615         System.Windows.Forms/Control.cs,
2616         System.Windows.Forms/UpDownBase.cs,
2617         System.Windows.Forms/ScrollBar.cs,
2618         System.Windows.Forms/DateTimePicker.cs,
2619         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2620         System.Windows.Forms/ToolTip.cs,
2621         System.Windows.Forms/RadioButton.cs,
2622         System.Windows.Forms/LinkLabel.cs,
2623         System.Windows.Forms/Splitter.cs,
2624         System.Windows.Forms/TextBoxBase.cs,
2625         System.Windows.Forms/ToolStripTextBox.cs,
2626         System.Windows.Forms/ContainerControl.cs,
2627         System.Windows.Forms/ThemeWin32Classic.cs,
2628         System.Windows.Forms/SizeGrip.cs,
2629         System.Windows.Forms/ToolStripDropDown.cs,
2630         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2631         private.  switch all uses over to Control.Parent.
2632
2633 2006-12-06  Chris Toshok  <toshok@ximian.com>
2634
2635         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2636         Control does this before calling emitting these events.
2637
2638         * TabControl.cs: same.
2639
2640         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2641         Control.client_rect.
2642
2643         * ButtonBase.cs: use the ClientSize property instead of the
2644         client_size field.
2645
2646         * ScrollableControl.cs: same.
2647
2648         * Control.cs: another pass at making properties private.  also,
2649         move the initialization of tab_stop to the ctor.
2650
2651 2006-12-05  Andreia Gaita <avidigal@novell.com>
2652
2653         * TabControl.cs: Let the selected index be set freely if the 
2654         control handle is not yet created.
2655
2656 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2657
2658         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2659         internal until I can rewrite DefaultLayout.
2660         * ToolStrip.cs: Fix build error and some general cleaning.
2661         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2662         Fix build errors caused by making some of Control's fields private.
2663
2664 2006-12-05  Jackson Harper  <jackson@ximian.com>
2665
2666         * TextControl.cs: Redo Insert a little so that it use IndexOf
2667         instead of Split, this prevents it from messing up on things like
2668         \n\n\n. Also more effecient since the split array doesn't need to
2669         be created.
2670         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2671         multiline text differently, this is the first of many fixes that
2672         will make multiline/non-multiline the same thing as far as the
2673         TextBoxBase is concerned.
2674         - Don't split the text and insert lines, this can lose some line
2675         endings (like is the last line a soft or hard break). Instead use
2676         the new Insert.
2677         - Fix an off by one when combining all the lines in the Text
2678         getter.
2679         - Remove separate multiline handling from the Text getter/setter.
2680
2681 2006-12-05  Chris Toshok  <toshok@ximian.com>
2682
2683         * ButtonBase.cs: a few changes:
2684
2685         - don't reinitialize internal Control fields in the ctor when they
2686         have the same values as Control sets them.
2687
2688         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2689         this before calling those methods.
2690
2691         - we don't need to call Refresh for anything.  use Invalidate
2692         instead.
2693
2694         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2695         calls Refresh in its OnEnabledChanged.
2696         
2697         - several of the events we were registered for in the ctor to
2698         redraw ourselves already include calls to Invalidate in the
2699         property setters that raise the events.  remove the extra
2700         invalidation.
2701
2702         - reformat a switch statement that was 83274658 columns wide.
2703         
2704 2006-12-05  Mike Kestner  <mkestner@novell.com>
2705
2706         * ComboBox.cs: fix a unit test regression from a TextBox
2707         SelectionLength return of -1 when there's no selection.  
2708
2709 2006-12-05  Chris Toshok  <toshok@ximian.com>
2710
2711         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2712         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2713         cleaning up some of the internal Control fields being used by
2714         subclasses.
2715
2716 2006-12-05  Mike Kestner  <mkestner@novell.com>
2717
2718         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2719         listbox after AddImplicit calls since it defaults to hidden. Add a 
2720         hack to preserve requested heights across DropDownStyle changes.
2721
2722 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2723
2724         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2725
2726 2006-12-05  Chris Toshok  <toshok@ximian.com>
2727
2728         * DataGridView.cs: fix compiler warnings.
2729
2730         * PrintControllerWithStatusDialog.cs: same.
2731
2732         * ToolBar.cs: same.
2733
2734         * FolderBrowserDialog.cs: same.
2735
2736         * Splitter.cs: same.
2737
2738         * DataGridViewComboBoxCell.cs: same.
2739
2740         * XplatUIWin32.cs: same.
2741
2742         * PictureBox.cs: same.
2743
2744         * Win32DnD.cs: same.
2745
2746         * PageSetupDialog.cs: same.
2747
2748         * FileDialog.cs: same.
2749
2750         * PrintDialog.cs: same.
2751
2752         * DataGridTextBoxColumn.cs: same.
2753
2754         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2755
2756 2006-12-05  Chris Toshok  <toshok@ximian.com>
2757
2758         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2759         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2760         System.ComponentModel.EventHandlerList work.
2761
2762 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2763
2764         * DrawTreeNodeEventArgs.cs: Added.
2765
2766 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2767         
2768         * InternalWindowManager.cs: Remove an unused field.
2769         
2770 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2771
2772         * InternalWindowManager.cs:
2773         - Save the point where the title bar is clicked.
2774         
2775         * MdiWindowManager.cs:
2776         - Only allow moving of the window as long as the 
2777         clicked point on the title bar does not get out of
2778         MdiClient's rectangle. Fixes #79982.
2779         
2780         * MdiClient.cs:
2781         - Added Horizontal/VerticalScrollbarVisible.
2782         - Simplified the scrollbar sizing algorithm.
2783         - Cache the difference in scrolled value in
2784         H/VBarValueChanged and move the calculation out
2785         of the for loop.
2786
2787 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2788
2789         * Control.cs: Make the Console.WriteLine in WndProc 
2790         write more info.
2791
2792 2006-12-05  Chris Toshok  <toshok@ximian.com>
2793
2794         * ToolStripManager.cs, ToolStripButton.cs,
2795         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
2796         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
2797         ToolStripSplitButton.cs, ToolStripSeparator.cs,
2798         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
2799         ToolStripProgressBar.cs, ToolStripContainer.cs,
2800         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
2801         to using System.ComponentModel.EventHandlerList.
2802
2803 2006-12-04  Chris Toshok  <toshok@ximian.com>
2804
2805         * LinkLabel.cs: fix up compiler warnings.
2806
2807         * TableLayoutSettings.cs: same.
2808
2809         * TreeView.cs: same.
2810
2811         * ToolBar.cs: same.
2812
2813         * TabControl.cs: same.
2814
2815         * RichTextBox.cs: same.
2816
2817         * ListViewItem.cs: same.
2818
2819         * PropertyGrid.cs: same.
2820
2821         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
2822
2823         * ToolTip.cs same.
2824
2825         * TextRenderer.cs: fix up compiler warnings.
2826
2827         * Label.cs: same.
2828
2829         * Form.cs: corcompare fixes.
2830
2831         * PictureBox.cs: fix up compiler warnings.
2832
2833         * ImageListStreamer.cs: same.
2834
2835         * TrackBar.cs: corcompare fix.
2836
2837         * Control.cs: fix up compiler warnings.
2838
2839         * SplitterPanel.cs: same.
2840
2841         * NumericTextBox.cs: same.
2842
2843         * ImageList.cs: same.
2844
2845         * StatusStrip.cs: same.
2846
2847         * ProgressBar.cs: corcompare fix.
2848
2849         * ToolStripButton.cs: fix up compiler warnings.
2850
2851         * ToolStripStatusLabel.cs: same.
2852
2853         * ToolStripSplitButton.cs: same.
2854
2855         * ToolStripSeparator.cs: same.
2856
2857         * ToolStripProgressBar.cs: same.
2858
2859         * ToolStripDropDownMenu.cs: same
2860
2861         * ToolStripDropDown.cs: same.
2862
2863         * ToolStripDropDownButton.cs: same.
2864
2865         * ToolStrip.cs: same.
2866
2867         * ToolStripControlHost.cs: same.
2868
2869         * ToolStripContentPanel.cs: same.
2870
2871         * ToolStripDropDown.cs: same.
2872
2873         * ToolStripContainer.cs: same.
2874
2875         * ToolStripPanel.cs: same, and add "new" where we need it to work
2876         with the new ArrangedElementCollection.
2877
2878         * ToolStripItemCollection.cs: add "new" where we need it to work
2879         with the new ArrangedElementCollection.
2880
2881 2006-12-04  Andreia Gaita <avidigal@novell.com>
2882
2883         * TabControl.cs: Fix default tab selection to after TabControl
2884         gets focus and not before. Fixes #80128
2885
2886 2006-12-04  Chris Toshok  <toshok@ximian.com>
2887
2888         * DataGridTableStyle.cs: remove the gross calling of
2889         datagrid.Refresh from here.  It's a broken idea and it doesn't
2890         work anyway.
2891
2892         * DataGrid.cs: instead, just register/unregister from the
2893         DataGridTableStyle events in CurrentTableStyle.  we play it
2894         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
2895         even though some would most likely not require it.  Fixes bug
2896         #80115 (and one portion of #80117 as a side effect).
2897
2898 2006-12-04  Chris Toshok  <toshok@ximian.com>
2899
2900         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
2901         so the textbox (if any) goes away.  Fixes bug #80117.
2902
2903 2006-12-04  Chris Toshok  <toshok@ximian.com>
2904
2905         * DataGridColumnStyle.cs: set the column's readonly property
2906         initially based on the property descriptor's IsReadOnly.  Fixes
2907         bug #80044.
2908
2909 2006-12-04  Chris Toshok  <toshok@ximian.com>
2910
2911         * ComboBox.cs: wrap the dropdown style changing work in
2912         SuspendLayout/ResumeLayout.  Fixes bug #79968.
2913
2914 2006-12-04  Jackson Harper  <jackson@ximian.com>
2915
2916         * TextBoxBase.cs: Fix off by one, since these are one-based.
2917         * TextBox.cs: Select all the text when we get focus.  The TextBox
2918         does this but the RTB does not.
2919
2920 2006-12-04  Chris Toshok  <toshok@ximian.com>
2921
2922         * DataGridTextBoxColumn.cs: remove some spew.
2923
2924         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
2925         but some part of me is saying "it shouldn't be here.."  At any
2926         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
2927         setting the value.
2928
2929 2006-12-04  Chris Toshok  <toshok@ximian.com>
2930
2931         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
2932         to reassign the propertydescriptor.
2933
2934 2006-12-04  Jackson Harper  <jackson@ximian.com>
2935
2936         * TextBoxBase.cs:
2937         * TextControl.cs: Remove some unused variables.  Maybe this will
2938         patch things up between mike and I.
2939         - don't split lines less then one char wide, if the viewport is
2940         that small text won't be visible anyways.
2941         
2942 2006-12-04  Jackson Harper  <jackson@ximian.com>
2943
2944         * TextBoxBase.cs: Default selection length is -1, need to do some
2945         more testing on windows to see when this is used for the property.
2946         - Redid the Lines [] property to that we properly remove soft line
2947         breaks
2948         - added support for preserving carriage returns
2949         -  CanUndo is not a variable like 'is undo enabled' it just returns
2950         true if there is undo operations available.
2951         - AppendText doesn't need to grab the last tag itself anymore,
2952         this happens automatically when we move the cursor.
2953         * TextControl.cs: Add CompoundActions to the undo class. This
2954         allows combining the other operations into one big option.  ie a
2955         paste will combine { delete old, insert new, move cursor }
2956         - Add InsertString undo operation
2957         - New method for deleting multiline text
2958         - Add carriage returns to lines. So we can preserve carriage
2959         returns when text is 'roundtripped'
2960
2961 2006-12-04  Chris Toshok  <toshok@ximian.com>
2962
2963         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
2964         minimum 0.  Fixes the scrollbar exception in bug #80136.
2965
2966 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2967
2968         * MdiClient.cs: 
2969         * MdiWindowManager: Removed unused fields and methods.
2970         
2971 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2972         
2973         * StatusBar.cs: Update all panels when a AutoSize=Contents
2974         panel needs updating.
2975         
2976         * StatusBarPanel.cs: Remove twidth and only use initialize.
2977         Fixes #80031.
2978                 
2979 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2980
2981         * Form.cs: When a form's MdiParent is set add it directly
2982         on top of the z-order in stead of relying on MdiClient's
2983         ActivateChild to do it. Fixes #80135.
2984         
2985         * MdiClient.cs: 
2986         - Remove original_order, mdi_child_list is already doing
2987         the same thing.
2988         - Create mdi_child_list on construction in
2989         stead of first use (avoids a few null checks).
2990
2991         * MenuItem.cs: Use an already existing list of mdi children
2992         to get the correct order of children and remove the other
2993         redundant list.
2994
2995 2006-12-04  Chris Toshok  <toshok@ximian.com>
2996
2997         * PropertyGridView.cs: cached_splitter_location is only used in
2998         !DOUBLEBUFFER code.
2999
3000         * PropertyGrid.cs: implement the ComComponentNameChanged event
3001         using Events, hoping that would fix the warning.  Looks like a
3002         compiler bug instead (#80144).
3003
3004         * PropertyManager.cs: remove unused method.
3005
3006 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3007
3008         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3009         include parentesis to fix expression evaluation. Fixes #79634.
3010
3011 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3012         
3013         * MenuAPI.cs:
3014         - Changes to fix behavior in Menu control, some reported in #80097
3015         and other detected during behavior refactory like a select event
3016         problems.
3017         - Remove unneded "if's" conditions.
3018         - Created an internal to flag when popup is active in control, we need 
3019         it because in .NET you can have menu active but without popup active
3020         when you active menu using popup without visible items.
3021         - Mimic win32 behavior for Select and Popup events.  
3022         - Dont open popup menu when you dont have visible subitems.
3023         - Do nothing when click on disabled menu item.
3024         - Some small changes to follow the coding style guidelines.
3025         - Unselect menu only when another control gives focus. Fixes #80097.
3026         - Remove unused code.
3027         
3028         * MenuItem.cs: internal VisibleItems method to check if menu
3029         theres visible subitems, it will be usefull to fix some 
3030         behavior in Menu control.
3031         
3032 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3033         
3034         * Timer.cs: Tag property for 2.0 profile.
3035         
3036 2006-12-01  Chris Toshok  <toshok@ximian.com>
3037
3038         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3039         
3040         * Win32DnD.cs: comment out some unused fields.
3041
3042         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3043         some unused properties/methods.
3044
3045         * XplatUIX11.cs: fix MousePosition so we override the base class's
3046         property instead of conflicting with it.
3047
3048         * PictureBox.cs: comment out some unused fields
3049
3050         * OSXStructs.cs: make some struct fields public.
3051
3052         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3053         MousePosition so we override the base class's property instead of
3054         conflicting with it.
3055
3056         * X11Dnd.cs: comment out some unused fields
3057
3058         * X11DesktopColors.cs: fix some struct field visibility to quiet
3059         the compiler.
3060
3061         * X11Dnd.cs: remove some debug code.
3062
3063         * ThemeClearlooks.cs: comment out unused field.
3064
3065         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3066
3067         * ThemeGtk.cs: comment out some unused pinvokes.
3068
3069         * Timer.cs: remove some unused fields.
3070
3071         * ThemeClearlooks.cs: comment out unused field.
3072
3073         * UpDownBase.cs: comment out unused field.
3074
3075         * DataObject.cs: comment out unused field.
3076
3077         * DataGridBoolColumn.cs: reomve unused field.
3078
3079         * DataGrid.cs: remove unused field.
3080
3081         * Cursor.cs: remove old ToBitmap code.
3082
3083         * ControlPaint.cs: remove unused method.
3084
3085         * ScrollBar.cs: remove unused fields.
3086
3087         * ComboBox.cs: remove unused field, and chain up to
3088         AccessibleObject ctor.
3089
3090         * ListBox.cs: remove unused field.
3091
3092         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3093
3094         * GridEntry.cs: remove unused fields.
3095
3096         * Binding.cs: remove unused fields.
3097
3098         * AxHost.cs: remove unused method.
3099
3100         * ContainerControl.cs: remove unused field.
3101
3102         * ScrollableControl.cs: remove unused fields.
3103
3104 2006-12-01  Chris Toshok  <toshok@ximian.com>
3105
3106         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3107         the Where/WhereString stuff.  it's easy enough to CWL
3108         Environment.StackTrace.
3109
3110         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3111         unused private fields.
3112
3113 2006-12-01  Jackson Harper  <jackson@ximian.com>
3114
3115         * TextControl.cs: Do not update the view while inserting multiline
3116         text. If we update the view we might wrap lines, before entering
3117         the new lines, which causes the new line insertion calculations to
3118         be totally fubared.
3119         - Remove an old TODO
3120         - Make debug output a little nicer
3121         
3122 2006-12-01  Chris Toshok  <toshok@ximian.com>
3123
3124         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3125
3126 2006-12-01  Chris Toshok  <toshok@ximian.com>
3127
3128         [ fix the majority of the CS0108 warnings we've been suppressing ]
3129         
3130         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3131
3132         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3133         to "LayoutToolBar" to quiet mcs.
3134         
3135         * TabControl.cs: mark our ControlCollection class as 'new'.
3136
3137         * TextBoxBase.cs: mark some events as 'new'.
3138
3139         * Splitter.cs: TabStop is 'new'.
3140
3141         * ControlBindingsCollection.cs: mark a few methods as new since
3142         they change the visibility from protected to public.
3143
3144         * RadioButton.cs: DoubleClick -> base class, and remove unused
3145         HaveDoubleClick.
3146
3147         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3148         events as new.
3149
3150         * NumericUpDown.cs: TextChanged -> base class.
3151
3152         * CheckedListBox.cs: mark our ObjectCollection class as new to
3153         quiet mcs.
3154
3155         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3156         muck with the base class.
3157
3158         * StatusBar.cs: fix some mcs warnings about Update being the same
3159         name as a base class method.
3160
3161         * RichTextBox.cs: mark some events as new, and make them do things
3162         to the base class impl.
3163
3164         * UserControl.cs: mark TextChanged as new, and have it manipulate
3165         base.TextChanged.
3166
3167         * UpDownBase.cs: mark some things new.
3168
3169         * CheckBox.cs: mark DoubleClick "new", and add some text about
3170         what we need to look at.
3171
3172         * Panel.cs: make the events "new", and manipulate the base
3173         version.  these are just here for attributes.
3174
3175         * AccessibleObject.cs: make owner private.
3176
3177         * Control.cs: deal with AccessibleObject.owner being private.
3178         cache our own copy if we need it.
3179
3180         * Button.cs: add "new" to the DoubleClickEvent.
3181
3182         * ListBox.cs: no need to track our own has_focus here.  let
3183         Control.has_focus do it for us.  Also some other work to clear up
3184         warnings about not overriding base class methods of the same name.
3185         
3186         * ComboBox.cs: clear up some warnings about not override base
3187         class methods of the same name.
3188
3189 2006-12-01  Chris Toshok  <toshok@ximian.com>
3190
3191         * Form.cs: flag a few things as "new" to quiet some of the mcs
3192         warnings.
3193
3194         * AxHost.cs: same.
3195
3196         * PrintPreviewDialog.cs: same.
3197
3198         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3199         now DGV isn't so horrible on the class status page.  also, move
3200         all events to using System.ComponentModel.EventHandlerList.  my
3201         wrists hurt.
3202
3203 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3204
3205         * MdiWindowManager.cs:
3206         - Set form to active mdi child if shown,
3207         and update the active mdi child to the next 
3208         remaining child in the z-order if the form is hidden.
3209
3210         * Form.cs: 
3211         - Track if the form has been visible and if its 
3212         visibility is beeing changed, so that the MdiClient
3213         can properly decide the ActiveMdiChild. The MdiClient 
3214         cannot track this since the form can change visibility 
3215         before MdiClient is created.
3216
3217         * MdiClient.cs:
3218         - Don't activate anything of the parent form is changing
3219         its visibility.
3220         - Rework ActiveMdiChild to only return visible mdi 
3221         children and take into account several other corner 
3222         cases.
3223
3224 2006-12-01  Chris Toshok  <toshok@ximian.com>
3225
3226         * IBindableComponent.cs: new 2.0 interface.
3227
3228 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3229
3230         * DataGrid.cs: Font for caption area is bold by default.
3231
3232 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3233
3234         * Menu.cs: Tag property for 2.0.
3235         
3236 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3237
3238         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3239         
3240 2006-12-01  Chris Toshok  <toshok@ximian.com>
3241
3242         * TreeView.cs: doh, the Begin* events should be
3243         TreeViewCancelEventHandler.
3244
3245 2006-12-01  Chris Toshok  <toshok@ximian.com>
3246
3247         * Form.cs: Form.ControlCollection already stores off the
3248         form_owner field.  don't access the base class's internal "owner"
3249         field.
3250
3251         * Control.cs: make all the fields in Control.ControlCollection
3252         private.  there's no need for any internal fields here.
3253
3254 2006-12-01  Chris Toshok  <toshok@ximian.com>
3255
3256         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3257         OnHandleCreated.  Fixes bug #80109.
3258
3259 2006-12-01  Chris Toshok  <toshok@ximian.com>
3260
3261         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3262         SplitContainer.cs, Control.cs, StatusStrip.cs,
3263         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3264         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3265         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3266         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3267         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3268         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3269         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3270         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3271         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3272         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3273
3274         do most of the work to convert our code over to use
3275         System.ComponentModel.Component.Events for
3276         adding/removing/dispatching events.
3277
3278
3279 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3280
3281         * DataGridView.cs: Fix an ArgumentNullException reported 
3282         twice today in IRC.
3283
3284 2006-11-30  Mike Kestner  <mkestner@novell.com>
3285
3286         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3287         grabbed listbox.  Fixes #80036 and #80101.
3288
3289 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3290
3291         * Message.cs: Changed ToString() to match MS.
3292         
3293 2006-11-30  Jackson Harper  <jackson@ximian.com>
3294
3295         * TextBoxBase.cs: You can still change the selected text on a read
3296         only textbox.
3297         * TextControl.cs: Lower magic number for wrap calculations. This
3298         lets text get closer to the right (far) edge.
3299
3300 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3301
3302         * Control.cs: Tweak 2.0 layout properties.
3303         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3304         * TextRenderer.cs: Add a new overload.
3305         * ToolStrip*: Huge amount of changes and new features.
3306
3307 2006-11-30  Mike Kestner  <mkestner@novell.com>
3308
3309         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3310         scroll range correct.  Fixes #79994.
3311
3312 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3313
3314         * MdiWindowManager.cs: Update main form's text when
3315         a form is closed. (fixes #80038)
3316         
3317 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3318
3319         * ToolBar.cs:
3320         - Fix an regression in ButtonSize.
3321         - Get ImeMode default value change to "Disable".
3322         - Get ShowTooltips default value change to true, default value is 
3323         "false" but after make a test in .NET we get "true" result as default.
3324         
3325 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3326
3327         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3328
3329 2006-11-29  Chris Toshok  <toshok@ximian.com>
3330
3331         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3332         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3333         SetWindowTransparency hasn't been called.
3334
3335 2006-11-29  Chris Toshok  <toshok@ximian.com>
3336
3337         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3338         if it's supported.
3339         (set_AllowTransparency): reorder things a little so that the
3340         WS_EX_LAYERED style is removed properly.
3341
3342 2006-11-29  Chris Toshok  <toshok@ximian.com>
3343
3344         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3345         
3346         * Form.cs: only call the XplatUI transparency method (get/set) if
3347         SupportsTransparency says it's supported. Otherwise fallback to
3348         doing nothing (in the set case) or returning the instance field we
3349         cache (in the get case).
3350
3351         * XplatUIStructs.cs: add TransparencySupport flag enum.
3352         
3353         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3354         change to SupportsTransparency.
3355
3356         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3357         TransparencySupport.None from SupportsTransparency.
3358
3359         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3360         TransparencySupport.Set from SupportsTransparency.
3361
3362         * XplatUIWin32.cs: implement GetWindowTransparency calling
3363         GetLayeredWindowAttributes, and implement SupportsTransparency by
3364         checking whether or not both
3365         GetWindowTransparency/SetWindowTransparency are available
3366         entrypoints.  We need to do this since SetWindowTransparency is
3367         available as of win2k, but GetWindowTransparency requires winxp.
3368         yay win32 api.
3369
3370         * XplatUI.cs: Add GetWindowTransparency, and change
3371         SupportsTransparency to allow for either/both Get/Set.
3372
3373 2006-11-29  Chris Toshok  <toshok@ximian.com>
3374
3375         * DataGrid.cs: keep from going into an infinite loop redrawing a
3376         datagrid that has no datasource.  Fixes bug #80033.
3377
3378 2006-11-29  Chris Toshok  <toshok@ximian.com>
3379
3380         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3381         Invalidate) before the mainmenu has been assigned to a control.
3382
3383 2006-11-29  Chris Toshok  <toshok@ximian.com>
3384
3385         * DataGrid.cs: detect when we should be double the double click
3386         row/column autosize stuff, although that codepath has yet to be
3387         written.  part of the work for bug #79891.
3388
3389 2006-11-29  Chris Toshok  <toshok@ximian.com>
3390
3391         * Binding.cs (SetControl): fix unit test.
3392
3393 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3394
3395         * PageSetupDialog.cs: Validate the margins and set them in
3396         PageSettings. 
3397         * NumericTextBox.cs: New class to mimic the behavior of the
3398         textboxes used in the printing dialogs.
3399
3400 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3401         
3402         * Form.cs: Revert previous change (remove call UpdateBounds
3403         from form constructor), because it messes with the handle creation
3404         order, and that one needs lots and lots of love.
3405         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3406         for valid printer and throw InvalidPrinterException if document
3407         is set but printer not valid), adding a MonoTODO. Once 
3408         handle creation is done properly, we can put this back in.
3409
3410 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3411
3412         * MenuItem.cs: Create a invalidate method for menu item, to be
3413         calling from set text, it make text changes to imadiate update
3414         on screen. Fixes #80013. 
3415         
3416 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3417
3418         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3419         fixes bug #80070 and some other problem on toolbar buttons
3420         layout.
3421
3422 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3423
3424         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3425         with dotted brush.      Fixes #79564
3426         
3427 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3428
3429         * Form.cs: Removed call to UpdateBounds on Form
3430         constructor, it was causing a call to CreateHandle
3431         before it was supposed to.
3432         * PrintControllerWithStatusDialog: Applied patch
3433         by Chris Toshok to hide controller when there are
3434         no printers available.
3435         PrintDialog.cs: initialize printer settings to 
3436         null - correct DefaultValues test #5
3437         * PrintPreviewControl.cs: Move PrintController
3438         initialization to GeneratePreview
3439         * PrintPreviewDialog.cs: 
3440         - Remove Preview generation     from Document_set(). It is 
3441         called on OnPaint
3442         - Throw InvalidPrinterException on CreateHandle if
3443         a Document is set but there are no printers or 
3444         printer is not valid.
3445         * ThemeWin32Classic: don't paint PrintPreviewControl
3446         if there is nothing to paint    
3447
3448 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3449
3450         * Form.cs: Add another popular method.
3451
3452         * TabPage.cs: ditto.
3453
3454 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3455
3456         * MenuItem.cs: Fixed a warning.
3457         * InternalWindowManager: Fixed a warning.
3458
3459 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3460
3461         * MenuItem.cs:
3462         - When cloning a menu also clone MdiList and clone the 
3463           window menu items properly (as the forms and menuitems
3464           are kept in an internal hashtable, these need updating 
3465           as well)
3466         - Rewrote the window menu code, menu items are added in the
3467           order the forms were added to their parent, and they are
3468           updated every time the window menu is shown (before the
3469           list was only generated once, in the current order of the
3470           forms, and would never be updated). A checkmark is shown
3471           next to the item corresponding to the active mdi child.
3472
3473 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3474
3475         * XplatUIStructs.cs: 
3476         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3477         
3478         * XplatUIWin32.cs: 
3479         - Added TME_NONCLIENT to TMEFlags.
3480         - Handles WM_NCMOUSEMOVE in GetMessage to 
3481           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3482
3483         * MdiWindowManager:
3484         - Now merges mdi child menu to parent menu when maximized.
3485         - Recalculate NC areas of both mdi child and mdi parent. 
3486           Fixes #79757 (4).
3487           on window state and size changes.Fixes #79844 (3).
3488         - Handle WM_NCCALCSIZE to properly calculate borders.
3489
3490         * Form.cs:
3491         - Add/remove to the mdi containers list of mdi children 
3492           in the order they are added.
3493         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3494           to the maximized mdi child.
3495         
3496         * InternalWindowManager.cs:
3497         - Only execute a click on the control buttons on the mouse up,
3498           not on the mouse down. Show the state of the button 
3499           (was only showing Normal state, never Pressed state). The
3500           pressed button now follows the mouse (if you click the Close 
3501           button and move the mouse over the Maximize button, the 
3502           Maximize button will be shown as pressed). Since Win32 does
3503           not generate WM_NCLBUTTONUP if you release the button outside
3504           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3505           it as a mouse up.
3506         
3507         * ThemeWin32Classic.cs:
3508         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3509
3510         * MdiClient.cs:
3511         - Added a list of forms which contains the order the forms are
3512           added to the mdi parent.
3513         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3514         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3515         - If the active form changes set the scrollbars to the top
3516           of the Z order, otherwise the form could hide them.
3517         - Scrollbars are now sized according to ClientSize, not 
3518           to Size, and they take into account the other scrollbar
3519           to determine maximum.
3520         
3521 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3522         
3523         * XplatUI.cs:
3524         * XplatUIDriver.cs:
3525         * XplatUIX11.cs:
3526         * XplatUIWin32.cs:
3527         * XplatUIOSX.cs:
3528         - Added RequestAdditionalWM_NCMessages for windows to 
3529           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3530           Currently only implemented in XplatUIWin32.
3531
3532 2006-11-27  Chris Toshok  <toshok@ximian.com>
3533
3534         * Hwnd.cs: only add the hwnd to the windows hash in
3535         set_WholeWindow and set_ClientWindow if whole_window/client_window
3536         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3537
3538 2006-11-27  Mike Kestner  <mkestner@novell.com>
3539
3540         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3541         from the ComboListBox.ShowWindow code. Fixes #79969.
3542
3543 2006-11-27  Chris Toshok  <toshok@ximian.com>
3544
3545         * Hwnd.cs: remove the setters for ExposePending and
3546         NCExposePending - noone uses them.
3547
3548 2006-11-27  Jackson Harper  <jackson@ximian.com>
3549
3550         * TextControl.cs: new param for ReplaceSelection which determines
3551         whether we select the new selection, or set the cursor to the end
3552         of the new selection.
3553         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3554         pasting, select the new text.
3555         * RichTextBox.cs: Use new param for ReplaceSelection.
3556
3557 2006-11-27  Jackson Harper  <jackson@ximian.com>
3558
3559         * TextBoxBase.cs: Set the selection to the caret after the caret
3560         is moved, otherwise they get out of sync.
3561
3562 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3563
3564         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3565         it fixes #80015
3566
3567 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3568
3569         * ThemeWin32Classic.cs: 
3570         - Fix toolbar drop down arrow position.
3571         - Fix drop down appearance when ToolBar.Appearance is normal,
3572         it fixes #80018.
3573         
3574 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3575
3576         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3577         * Control.cs: Same.
3578         * UpDownBase.cs: Same.
3579         * ButtonBase.cs: Same.
3580         * ScrollBar.cs: Same.
3581         * TrackBar.cs: Same.
3582         * PictureBox.cs: Same.
3583         * UserControl.cs: Same.
3584         * Label.cs: Same.
3585         * ListControl.cs: Same.
3586         * TextBoxBase.cs: Same.
3587         * ListView.cs: Same.
3588         * RichTextBox.cs: Same.
3589         * TreeView.cs: Same.
3590
3591 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3592
3593         * PrintDialog.cs:
3594         - Text label for where 
3595         - Text label comment was not shown
3596
3597 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3598
3599         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3600
3601 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3602
3603         * InternalWindowManager.cs: 
3604         - Handle WM_PARENTNOTIFY to activate the form
3605         if any child control is clicked.
3606         - The form is only sizable if not minimized.
3607
3608         * MdiWindowManager.cs:
3609         - Save the IconicBounds if the form is moved.
3610         - Rework SetWindowState, now the window bounds 
3611         are stored only if the old window state is Normal.
3612         
3613         * MdiClient.cs:
3614         - In SetWindowStates store the old window state if 
3615         the window is maximized and restore window state if
3616         the window looses focus.
3617         - Don't handle any scrollbar value changes if 
3618         initializing the scroll bars. Fixes #79771.
3619         - Reworked ArrangeIconicWindows. Current algorithm
3620         tests bounds agains all other minimized windows, if
3621         any intersections create new bounds (going left to 
3622         right, bottom to top) and then test again. When 
3623         successful the bounds are saved and never computed
3624         again. Fixes #79774.
3625
3626 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3627
3628         * InternalWindowManager.cs: Added HandleTitleBarUp.
3629
3630 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3631
3632         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3633         hexadecimal in ParseUserEdit.
3634
3635         
3636 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3637
3638         * MdiWindowManager.cs: 
3639         - Handle a click on the form's icon to show the 
3640         system menu (when maximized). Fixes #79775.
3641         - Change the existing click handler for the form's
3642         icon when not maximized to show on MouseUp.
3643         Fixes #79776.
3644
3645         * Form.cs: In OnResize only layout the mdi child's
3646         parent if it actually has a parent. Might not if
3647         the window is closing.
3648
3649
3650 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3651
3652         * MdiClient.cs: Ignore active MDI client for text of parent, if
3653         child has no text set.
3654
3655 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3656
3657         * ToolBar.cs: Fixed ToString to match MS.
3658
3659 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3660
3661         * NumericUpDown: 
3662         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3663         update inner values on set. Fixes #79966.
3664         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3665         - Fix hexadecimal parsing.
3666         
3667         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3668         parent. Fixes #79957
3669
3670 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3671
3672         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3673         the actual size has to be queried, since if height /
3674         width is negative Win32 changes it to 0. 
3675         Fixes #79999 on Windows.
3676         
3677         * XplatUIX11.cs: Set height / width to 0 if negative
3678         in SetWindowPos. Fixes #79999 on Linux.
3679         
3680 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3681
3682         * ThemeWin32Classic.cs: Fix text redenring when button is
3683         pressed.
3684
3685 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3686
3687         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3688         and later navigate by mouse. Fixes #79528.
3689
3690 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3691
3692         * ToolBar.cs: Set default value for TabStop to false in
3693         constructor, it fixes remaining behavior of bug #79863.
3694
3695 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3696
3697         * MdiWindowManager.cs:
3698         * InternalWindowManager.cs:
3699         - Moved a few methods specific to Mdi from 
3700         InternalWindowManager to MdiWindowManager.
3701         Fixes #79996.
3702         
3703 2006-11-21  Chris Toshok  <toshok@ximian.com>
3704
3705         * XplatUIOSX.cs: stub out InvalidateNC.
3706
3707         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3708         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3709
3710         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3711
3712         * XplatUIDriver.cs: add InvalidateNC abstract method.
3713
3714         * XplatUI.cs: add InvalidateNC.
3715
3716 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3717
3718         * ToolBar.cs: Invalidate complete button area when pressed status 
3719         was changed.
3720         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3721         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3722         by 1 when button is pressed.
3723
3724 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3725
3726         * ToolButton.cs: Invalidate middle of DropDown button when
3727         ToolBar theres DropDownArrows.
3728         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3729         fix DropDown drawing operations.
3730
3731 2006-11-20  Chris Toshok  <toshok@ximian.com>
3732
3733         * NativeWindow.cs: fix the formatting of functions ('{' on the
3734         following line), and enable the thread exception dialog.
3735
3736         * Application.cs: remove the duplicate exception catching from
3737         here.
3738
3739 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3740
3741         * Toolbar.cs: Triggers button click event when click on icon
3742         of dropdown ToolBarButton. Fixes #79912.
3743         
3744 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3745
3746         * Theme.cs:
3747         * ThemeWin32Classic.cs:
3748         - Added a property WindowBorderFont to enable themeing
3749           of mdi child windows' Text.
3750           
3751 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3752
3753         * InternalWindowManager.cs:
3754         * Form.cs:
3755         * MdiClient.cs:
3756         * MdiWindowManager.cs: 
3757         - If mdi child is maximized, set mdi parent's
3758           text to "Parent - [Child]". Fixes #79770.
3759         - If there is any maximized mdi child windows, only the active 
3760           window (and any new windows) is maximized, the rest are normal.
3761         - On a WindowState change only save mdi child's window bounds 
3762           if the old window state was normal. Fixes #79774.
3763         - The scroll bars are now calculated on hopefully all
3764           necessary events. Fixed #79771 / #79844->6 / #79906.
3765         - MdiClient.SizeScrollBars() now takes into account docked 
3766           controls in the parent when calculating available space.
3767         - InternalWindowManager now always repaints the entire title
3768           area. Fixes #79844->1/4/5.
3769         - Added RequestNCRecalc on mdi child windowstate changes.
3770           Fixes #79772.
3771
3772 2006-11-20  Mike Kestner  <mkestner@novell.com>
3773
3774         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3775         in the MouseUp handler of the listbox and move the return handling
3776         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3777
3778 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3779
3780         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
3781
3782 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3783
3784         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
3785           working in 1.2.x anymore. So, updated.
3786
3787 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
3788
3789         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
3790         NumberGroupSeparator of current culture instead of assuming en-US.
3791         Fixed bug #79967.
3792
3793 2006-11-17  Mike Kestner  <mkestner@novell.com>
3794
3795         * Control.cs: Add the concept of implicit bounds setting so that
3796         dock/undock round trips preserve explicitly set size/locations.
3797         Fixes #79313.
3798
3799 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3800
3801         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
3802           can't handle those filters. (Fixes bug #79961)
3803
3804 2006-11-17  Chris Toshok  <toshok@ximian.com>
3805
3806         [ fixes the exit/crashes associated with #79835.  it's clearly
3807         suboptimal though, we need to figure out a better way to solve
3808         this. ]
3809         
3810         * PrintPreviewControl.cs: deal with the new invalid printer
3811         exceptions.
3812
3813         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
3814         and return false (so CommonDialog.ShowDialog doesn't actually show
3815         the form.)
3816
3817         * PrintDialog.cs: enable/disable the Ok button depending on
3818         whether or not the printer is valid.
3819
3820         * CommonDialog.cs (ShowDialog): only actually show the form if
3821         RunDialog returns true.
3822
3823 2006-11-17  Jackson Harper  <jackson@ximian.com>
3824
3825         * TextControl.cs: When soft splitting a line, mark it as a soft
3826         split line. Also carry over the current line break to the next
3827         line.
3828
3829 2006-11-17  Chris Toshok  <toshok@ximian.com>
3830
3831         * XplatUIX11.cs: when scrolling a window with an invalid area, we
3832         only want to shift the part of the invalid area that overlaps the
3833         area we're scrolling.  we also don't want to clear the invalid
3834         area unless the invalid area was entirely contained within the
3835         scrolling area.
3836
3837 2006-11-16  Chris Toshok  <toshok@ximian.com>
3838
3839         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
3840         also make sure to free the memory returned by XGetWindowProperty
3841         in GetText().
3842
3843         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
3844
3845 2006-11-16  Chris Toshok  <toshok@ximian.com>
3846
3847         * XplatUI.cs: add a new super secret way to get at the totally
3848         unsupported X11 backend.
3849
3850 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
3851
3852         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
3853
3854 2006-11-16  Jackson Harper  <jackson@ximian.com>
3855
3856         * TreeView.cs: Allow more explicit setting of top node position
3857         for scrollbars. Slower algo, but more accurate.
3858         - CollapseAll should maintain the current top node.
3859         * TextBoxBase.cs: When positioning the caret, use the line, pos
3860         method, since the x, y method does not grab the correct tag, and
3861         the caret height never gets set correctly. (Maybe I should just do
3862         away with the caret having its own height, and always use the
3863         carets current tag for height).
3864
3865 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
3866
3867         [Fixes 79778, 79923]
3868
3869         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
3870         Parent to the FosterParent instead.
3871
3872 2006-11-16  Jackson Harper  <jackson@ximian.com>
3873
3874         * TreeView.cs: Need to recalc the topnode when we expand or
3875         collapse. The scrolling methods can't handle this on their own,
3876         since they use differences between the last scroll position, and
3877         those difference get completely messed up since we are expanding
3878         nodes.  This problem should probably be fixed in the scrolling
3879         methods, so they can figure out exactly where they are, but this
3880         will slow things down a little.
3881         * ThemeWin32Classic.cs: Special case for groupboxes with empty
3882         strings, makes nunit-gui look a lot nicer.
3883
3884 2006-11-16  Chris Toshok  <toshok@ximian.com>
3885
3886         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
3887         the broken multithreaded event handling we have in here.  File
3888         this entry under "Why we should move to the new X11 backend".
3889
3890         Any thread can make it into UpdateMessageQueue, which gets events
3891         from the X socket - some of which could belong to hwnds being
3892         managed by a different thread.  We can also have multiple threads
3893         in UpdateMessageQueue at the same time, with each one reading from
3894         the X socket.  This leads to many problems, with the following
3895         solutions:
3896
3897         We can't use hwnd.Queue.Enqueue anywhere in here and must use
3898         EnqueueLocked.
3899
3900         The MotionNotify compression we do can't work across threads
3901         (without locking the entire queue, perhaps) since we call
3902         hwnd.Queue.Peek, so we just punt and don't compress motion events
3903         unless the owning thread is the one which got the X event.
3904
3905         ConfigureNotify is another fun one, since it modifies the hwnd's
3906         bounds and then enqueues the event.  We add a lock to Hwnd which
3907         is held when setting configure_pending to true (and enqueuing the
3908         event).
3909
3910         There is a race wrt the wake socket.  we need to make sure that
3911         only 1 thread is waiting on that socket, or else a thread could
3912         sleep waiting for data that never comes.  It's difficult (but not
3913         impossible) to make happen, because it seems to require something
3914         like the following:
3915
3916             1. Thread 1 polls on wake_receive
3917         
3918             2. poll returns saying there's data to be read on
3919                wake_receive.
3920         
3921             3. Thread 2 polls on wake_receive and immediately returns
3922                saying there's data to be read.
3923
3924             4. Thread 2 reads the wakeup byte from wake_receive
3925
3926             5. Thread 1 attempts to read the wakeup byte from
3927                wake_receive.
3928
3929             6. Thread 2 exits (due to a form closing, perhaps).
3930
3931             7. Thread 1 blocks forever.
3932         
3933         Fun, eh?
3934
3935         Fixing the Expose handling isn't done yet, and the races inherent
3936         in that piece of code are responsible for the drawing mistakes you
3937         see when generating expose events in a MT app (like NPlot).  This
3938         one is the likely to be the hardest to bandaid, and it doesn't
3939         appear to cause anything but drawing problems.  The other issues
3940         caused apps to exit or hang.
3941
3942         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
3943         called from a different thread than the one that should be calling
3944         these functions.
3945
3946         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
3947
3948 2006-11-15  Chris Toshok  <toshok@ximian.com>
3949
3950         * Application.cs: null out the context's MainForm when we exit
3951         RunLoop.  Fixes a newly checked in unit test as well as the last
3952         ODE from bug #79933.
3953
3954 2006-11-15  Chris Toshok  <toshok@ximian.com>
3955
3956         * Form.cs (set_Owner): allow a null value so we can clear the
3957         form's owner.
3958         (Dispose): set all our owned_form's Owner properties to null, and
3959         clear the owned_forms collection.
3960         (WM_CLOSE): clean up this a little bit.. still not right though.
3961
3962         * ApplicationContext.cs: OnMainFormClosed should only call
3963         ExitThreadCore if the main form isn't recreating.  Fixes unit
3964         test.
3965
3966 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3967
3968         [Fixes 78346]
3969
3970         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
3971
3972 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3973
3974         [Fixes 79433]
3975
3976         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
3977         keep popup window types from stealing focus from the main form
3978         on Windows.
3979
3980         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
3981
3982         * MenuAPI.cs: Set above flag to true.
3983
3984 2006-11-15  Chris Toshok  <toshok@ximian.com>
3985
3986         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
3987         the button being released is not in wParam.
3988
3989 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
3990
3991         * Form.cs: Add the released button to MouseEventArgs.Button
3992         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
3993         on Win32.
3994
3995 2006-11-15  Chris Toshok  <toshok@ximian.com>
3996
3997         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
3998         GetText().  untested because it's unused in our implementation.
3999         Control.Text always caches the text, even if
4000         ControlStyles.CacheText is not set.
4001
4002         fixes bug #79939.
4003
4004 2006-11-15  Chris Toshok  <toshok@ximian.com>
4005
4006         [ fixes #79933 ]
4007         
4008         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4009         message.  no hiding, no disposing.
4010
4011         in the WM_CLOSE handler, hide the form if it's modal.
4012
4013 2006-11-15  Chris Toshok  <toshok@ximian.com>
4014
4015         * XplatUIX11.cs: use AddExpose instead of sending a message.
4016         fixes textbox border drawing.
4017
4018 2006-11-15  Chris Toshok  <toshok@ximian.com>
4019
4020         * PropertyGridView.cs: keep from crashing on mouse move/down when
4021         the property grid is empty.
4022
4023 2006-11-14  Jackson Harper  <jackson@ximian.com>
4024
4025         * TextControl.cs: Make PageUp and PageDown more like the MS
4026         versions.
4027         * TextBoxBase.cs: When we set the text property position the
4028         cursor at the beginning of the document.
4029
4030 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4031
4032         * Form.cs: if a mdi child's WindowState has changed
4033         before it's creation, it would display wrong control
4034         buttons.
4035         
4036 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4037
4038         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4039           (Fixes bug #79927)
4040
4041 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4042
4043         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4044         the window gets to paint its borders even if the window is
4045         getting smaller.
4046         
4047         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4048         otherwise the old control buttons would still be painted 
4049         if the window gets bigger.
4050         
4051         * PaintEventArgs.cs: add an internal method so that the clip 
4052         rectangle can be changed.
4053         
4054 2006-11-13  Chris Toshok  <toshok@ximian.com>
4055
4056         [ fixes bug #79745 ]
4057         
4058         * NotifyIcon.cs: lots of cleanup.
4059
4060         * X11Structs.cs: add an enum for XEMBED messages.
4061
4062         * XplatUIX11.cs: reindent one of the giant switch statements, it
4063         was taking up an additional tab stop, and this file is already way
4064         too wide for my laptop's screen.
4065
4066         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4067         we get it, resize the hwnd to the WMNormalHints max_width/height.
4068
4069 2006-11-13  Jackson Harper  <jackson@ximian.com>
4070
4071         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4072         teh simple way.
4073
4074 2006-11-13  Chris Toshok  <toshok@ximian.com>
4075
4076         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4077         #79898.  force a reference to the Region to stick around so the
4078         unmanaged object isn't collected (rendering our handle in the MSG
4079         stale).
4080
4081 2006-11-13  Chris Toshok  <toshok@ximian.com>
4082
4083         * XplatUIX11.cs: fix #79917 for window managers which support
4084
4085         using XStoreName on the raw utf8, and we need to convert to
4086         COMPOUND_TEXT if it's non-latin1.
4087
4088 2006-11-13  Chris Toshok  <toshok@ximian.com>
4089
4090         * Form.cs (set_DialogResult): we need to set closing to false if
4091         we're setting our result to None.  fixes bug #79908.
4092
4093 2006-11-13  Jackson Harper  <jackson@ximian.com>
4094
4095         * TextControl.cs: When formatting text, compute the adjusted tag
4096         lengths correctly, using FindTag for the end tag instead of trying
4097         to figure it out outselves.
4098         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4099         the item, ItemHeight doesn't work, because trees with large
4100         imagelists use those for their height
4101         * TreeView.cs: ActualItemHeight factors in the image height
4102         - compute left edge of checkboxes correctly
4103         - when expanding/collapsing move the bottom down one pixel, so we
4104         aren't moving part of the node
4105
4106 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4107
4108         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4109         stack in PaintEventStart so that it won't get disposed by the gc
4110         before reaching PaintEventEnd.
4111
4112 2006-11-13  Jackson Harper  <jackson@ximian.com>
4113
4114         * TextBoxBase.cs: Don't select the word if we are on a line with
4115         no text.
4116         - We don't need to position the caret on mouse up, since the mouse
4117         move handler should be doing this
4118         - When double clicking a blank line, the caret is advanced to the
4119         next line.
4120
4121 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4122
4123         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4124
4125 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4126
4127         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4128         Fixes part of bug #79910.
4129
4130 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4131
4132         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4133           (bug #79903). Some minor string updates to match ms.
4134
4135 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4136
4137         * FileDialog.cs: Don't add an extension if the filename
4138           already ends with that extension.
4139
4140 2006-11-10  Jackson Harper  <jackson@ximian.com>
4141
4142         * TreeView.cs: Use the currently highlighted node for the
4143         BeforeSelect event.
4144         * TextBoxBase.cs: There is no need to expand selection on
4145         MouseMove.
4146         - CanUndo means 'is there any undo operations', not 'is undo
4147         allowed on this textcontrol. Fixed ClearUndo unit test.
4148
4149 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4150
4151         * Button.cs: only perform click when button is Selectable (so as 
4152         not to activate default buttons when they're disabled)
4153         
4154         * Control.cs: Rewrite of the SelectNextControl and related 
4155         methods. HandleClick now selects next control if the current one
4156         is being disabled.
4157         
4158         * Form.cs: OnActivated selects next active control only if Load 
4159         has already occurred. If Load hasn't run, there's no point in 
4160         selecting here, Load might change the state of controls.
4161         
4162         * FocusTest.cs: Tests marked as working again for these fixes
4163
4164 2006-11-10  Chris Toshok  <toshok@ximian.com>
4165
4166         * XplatUIX11.cs: a couple of fixes.
4167
4168         - use XInternAtoms with almost all the atoms we need to register,
4169         instead of many, many calls to XInternAtom.  should help a bit on
4170         startup time, at the expense of making the code look a little
4171         worse.
4172
4173         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4174         isn't reparented (which seems to be a clue that we're running fon
4175         compiz) and they have an Owner form.  This fixes the tool windows
4176         in paint.net when running under compiz.
4177
4178         - when setting the opacity of a window, support both the case
4179         where the window has been reparented and also when it hasn't been.
4180         Since compiz/beryl doesn't seem to reparent windows, and these are
4181         the only window managers which support translucency, I'm not sure
4182         why we need the hwnd.reparented case at all.. but leave it in.
4183         now we get translucent windows in paint.net under compiz/beryl.
4184
4185 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4186
4187         * FileDialog.cs: Always return the value for FilterIndex that
4188           was set. Internally convert it to values that make sense.
4189
4190 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4191         
4192         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4193
4194 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4195
4196         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4197         signature still using false to make it compatible with MS but the 
4198         initial value is true. Fixes #79855.
4199
4200 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4201
4202         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4203           only available on Linux.
4204
4205 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4206
4207         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4208         reduce number of calls to redraw method during toolbar creation.
4209
4210 2006-11-09  Mike Kestner  <mkestner@novell.com>
4211
4212         * ListView.cs : raise SelectedIndexChanged when an item is selected
4213         programmatically via the Item.Selected property.  Gert's nice 
4214         ListViewSelectedIndexChanged test fixture now runs clean.
4215
4216 2006-11-09  Mike Kestner  <mkestner@novell.com>
4217
4218         * ListView.cs : raise SelectedIndexChanged when a selected item is
4219         removed from the item collection using Remove or RemoveAt.
4220
4221 2006-11-09  Mike Kestner  <mkestner@novell.com>
4222
4223         * ListView.cs : raise SelectedIndexChanged once per selected item
4224         for compat with MS.  Fixes #79849+.
4225
4226 2006-11-09  Chris Toshok  <toshok@ximian.com>
4227
4228         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4229         we need to (if we have any tab pages).  Fixes unit test.
4230
4231 2006-11-09  Chris Toshok  <toshok@ximian.com>
4232
4233         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4234         width is 0, not 3.  Fixes a unit test.
4235
4236 2006-11-09  Mike Kestner  <mkestner@novell.com>
4237
4238         * ListView.cs : use Implicit scrollbars so that focus isn't 
4239         stolen from the listview when they are clicked. Fixes #79850.
4240
4241 2006-11-09  Chris Toshok  <toshok@ximian.com>
4242
4243         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4244         have a root item.  Fixes #79879.
4245
4246 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4247
4248         * FileDialog.cs:
4249           - Fix ToString ()
4250           - An ArgumentException is now thrown if a wrong filter
4251             is applied (matches ms). The previous filter doesn't change
4252             anymore if an exception is thrown.
4253           - Changing the FileName property also affects FileNames
4254         * ColorDialog.cs: The length of the CustomColors array is always
4255           16. It doesn't matter if we use a smaller array or null to update
4256           or change the custom colors property.
4257         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4258           for RootFolder if we get a undefined value.
4259
4260 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4261
4262         * StatusBarPanel.cs: 
4263         - Width is set to MinWidth if Width is smaller than
4264         MinWidth. Fixes #79842.
4265         - MinWidth now always overrides Width (MSDN says MinWidth
4266         is set to Width when AutoSize = None, but they do not 
4267         behave like that).
4268         - Style has now the the correct default value.
4269         
4270 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4271  
4272         * TrackBar.cs: 
4273         - The control is completely invalidated on 
4274         Got/LostFocus to draw the focus rectangle correctly.
4275         - When AutoSize then height is always 45 (width for 
4276         vertical controls).
4277         
4278         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4279         on the mouse when moved and it doesn't move when grabbed
4280         until the mouse moves as well. Also fixed some wrong 
4281         calculations when clicking on the thumb (control thought
4282         click was outside of thumb and didn't grab it).
4283         Fixes some of the issues in #79718.
4284
4285 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4286
4287         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4288
4289 2006-11-08  Chris Toshok  <toshok@ximian.com>
4290
4291         * PropertyGridView.cs: only call ToggleValue if the item is not
4292         readonly.
4293
4294 2006-11-08  Jackson Harper  <jackson@ximian.com>
4295
4296         * TextBoxBase.cs: The RichTextBox and textbox have very different
4297         word selection methods.  Implement the textbox's simple word
4298         selection here, and let the RichTextBox override and provide it's
4299         own.
4300         - Don't do extra selection on mouseup
4301         * RichTextBox.cs: Use the documents word selection algorithm, I
4302         think ideally, this function will be pulled into the
4303         RichTextBox.cs code someday.
4304
4305 2006-11-08  Chris Toshok  <toshok@ximian.com>
4306
4307         * RootGridEntry.cs: new class to represent GridItemType.Root.
4308
4309         * CategoryGridEntry.cs: reformat, and add boilerplate.
4310         
4311         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4312         returns the UI parent anyway, and we need special handling to
4313         implement the GetTarget method in the face of it.  Also, implement
4314         Select().
4315
4316         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4317         a root grid item, and use that instead of PropertyGrid.grid_items.
4318         Also, make use of TypeConverters (and add limitted support for
4319         ICustomTypeDescriptors) when initially populating the grid.
4320         Arrays now show up more or less properly.
4321
4322 2006-11-08  Chris Toshok  <toshok@ximian.com>
4323
4324         * Application.cs: set the modal dialog to non modal after we close
4325         it.  Fixes bug #79866.
4326
4327 2006-11-08  Jackson Harper  <jackson@ximian.com>
4328
4329         * TextControl.cs: When combining lines carry over the line end
4330         style from the end line.
4331         - Invalidate the selected area when setting it, if it is visible.
4332         * TextBoxBase.cs: Only rich text box can do full line selects.
4333         - Make sure to set the cursor position when there is a click,
4334         otherwise two clicks in separate areas could cause a large chunk
4335         to be selected.
4336
4337 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4338
4339         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4340         Fixes #79863.
4341
4342 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4343
4344         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4345         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4346
4347 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4348
4349         * MenuAPI.cs: Ignore right click for menu actions and fixes
4350         menu border when clicked.  Fixes #79846.
4351
4352 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4353
4354         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4355         MouseState after create wParam for message, this fixes mouse button 
4356         equal none in mouse up events.
4357         
4358 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4359
4360         * Control.cs : Focus() now calls Select to set the Container's
4361         Active Control and to give it focus. To avoid infinite recursion
4362         (because ActiveControl also calls Focus at one point), a check 
4363         is made in Focus with the help of a new internal variable
4364         is_focusing.
4365
4366 2006-11-07  Mike Kestner  <mkestner@novell.com>
4367
4368         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4369         if there's a selection.  Fixes #79849.
4370
4371 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4372
4373         * PropertyGrid.cs: Avoid fixed height of help description label.
4374         Fixes part of bug #79829.
4375
4376 2006-11-07  Chris Toshok  <toshok@ximian.com>
4377
4378         * XplatUIX11.cs: fix #79790 again, by using the
4379         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4380
4381 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4382
4383         * ToolBar.cs: Fix left click checking.
4384
4385 2006-11-07  Chris Toshok  <toshok@ximian.com>
4386
4387         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4388
4389 2006-11-07  Chris Toshok  <toshok@ximian.com>
4390
4391         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4392         PropertyManager unit tests.
4393
4394         * PropertyManager.cs: make property_name internal.
4395
4396 2006-11-07  Chris Toshok  <toshok@ximian.com>
4397
4398         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4399         pass a unit test.  Also, don't set image_index to anything in
4400         response to setting the ImageList property.
4401
4402 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4403
4404         * ToolBar.cs: Ignore click events when mouse button is not a
4405         left button, only accepts other button for dropdown menus.  
4406         Fixes #79854.
4407
4408 2006-11-07  Chris Toshok  <toshok@ximian.com>
4409
4410         * DataGrid.cs: make the back and parent row buttons a little less
4411         ugly.
4412
4413 2006-11-07  Jackson Harper  <jackson@ximian.com>
4414
4415         * TextBoxBase.cs: When converting to Text don't put line breaks in
4416         for soft line breaks.
4417         * TextControl.cs: There is an initial "fake" line in the document,
4418         this is now a soft break line, so that an extra line feed doesn't
4419         get added to the end of documents.
4420
4421 2006-11-07  Chris Toshok  <toshok@ximian.com>
4422
4423         [ fix bug #79778 ]
4424         
4425         * CurrencyManager.cs: if the list is readonly, don't bother
4426         checking if IBindingList.AllowNew is true.
4427
4428         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4429         for non-DataRowView datasources..  or rather, make it not crash.
4430         (DataGridPaintRelationRow): make sure we limit the row painting to
4431         the area not covered by the row header, and make our cell width at
4432         least large enough to cover the relation area.  This allows grids
4433         that have relations but no rows to render correctly.
4434         (DataGridPaintRowContents): same type of changes here.
4435         (SetDataSource): move back to always calling
4436         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4437         navigating back through relations.
4438         (HitTest): handle the case where we have no cells but have
4439         relations.  Right now we generate a hit in cell 0 of whatever the
4440         row is, not sure if this is strictly correct, but it works for our
4441         purposes.
4442         
4443         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4444         bother doing anything.
4445
4446 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4447
4448         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4449         early version of StatusStrip.  Not responsible for eaten
4450         application or firstborn children.
4451
4452 2006-11-06  Chris Toshok  <toshok@ximian.com>
4453
4454         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4455         call GetTabRect with a -1 index.  Fixes #79847.
4456
4457 2006-11-06  Jackson Harper  <jackson@ximian.com>
4458
4459         * TreeNodeCollection.cs: Update scrollbars after clearing.
4460
4461 2006-11-06  Chris Toshok  <toshok@ximian.com>
4462
4463         * NumericUpDown.cs: fix the ToString method for some unit test
4464         love.
4465
4466 2006-11-06  Chris Toshok  <toshok@ximian.com>
4467
4468         * PropertyGrid.cs:
4469         - set the initial SelectedGridItem if we can.
4470
4471         - Exclude non-mergable properties only if we're merging > 1
4472         object.  Merging 1 object isn't really merging, obviously.
4473
4474         - Handle PropertySort.NoSort just like Alphabetical, which is
4475         wrong of course, but at least gets things on the screen.
4476         
4477         * PropertyGridView.cs:
4478         - Add method "FindFirstItem" which finds the first property grid
4479         item, so we can select it by default.
4480
4481         - make use of GridEntry.CanResetValue.
4482
4483         - Don't call RedrawBelowItemOnExpansion here anymore, the
4484         individual GridEntry's will do that.
4485
4486         - Remove the ITypeDescriptorContextImpl internal class.
4487         
4488         * GridEntry.cs:
4489         - this class needs to implement ITypeDescriptorContext, as it's
4490         what MS's PropertyDescriptorGridEntry does, which means we can
4491         remove the ITypeDescriptorContextImpl internal class from
4492         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4493
4494         - keep a reference to our PropertyGridView, and move the call to
4495         RedrawBelowItemOnExpansion here from PGV.  This means
4496         programmaticly setting Expanded actually does something visible.
4497
4498         - add a CanResetValue() function which takes into account our
4499         possibly multiple "selected_objects" in the merged case.  Shifting
4500         PropertyGridView to use this method fixes another unreported
4501         crasher found running the test for #79829.
4502
4503         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4504         is updated to reflect this.
4505
4506         * CategoryGridEntry.cs: the ctor takes the PGV now.
4507         
4508 2006-11-06  Jackson Harper  <jackson@ximian.com>
4509
4510         * TextControl.cs: These are 1 based.
4511         * TextBoxBase.cs: When setting the selected text, don't change the
4512         selected text tags, this is done by ReplaceText, just position the
4513         cursor at the end of the new text.
4514
4515 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4516
4517         * ListView.cs: Allow label edit only when, when LabelEdit is
4518           set to true.
4519
4520 2006-11-06  Jackson Harper  <jackson@ximian.com>
4521
4522         * TextControl.cs: If a suitable wrapping position isn't found,
4523         just wrap right in the middle of a word.
4524
4525 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4526
4527         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4528           bug #79820.
4529
4530 2006-11-06  Jackson Harper  <jackson@ximian.com>
4531
4532         * TreeView.cs: Can't use the VisibleCount property when setting
4533         scrollbar heights, because this doesn't take into account whether
4534         or not the horz scrollbar just came visible.
4535
4536 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4537
4538         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4539         activated.  Fixes #79369, #79832.
4540
4541 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4542
4543         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4544           had to remove support for links that point to a directory. FileInfo
4545           returns no usefull information (means, the directory they point to)
4546           for such links. Replaced some empty string ("") with String.Empty.
4547
4548 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4549
4550         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4551         NullReferenceException when attempting to remove node that is not in
4552         collection. Throw NullReferenceException when null is passed to 
4553         Remove. Allow first element of the collection to be removed. Fixes
4554         bug #79831.  In GetEnumerator ().Current return null if positioned 
4555         before the first element of the collection. In GetEnumerator ().Reset,
4556         position before first element of the collection.
4557
4558 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4559
4560         * PropertyGrid.cs: To match MS, remove default title and description
4561         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4562         buttons.
4563
4564 2006-11-04  Chris Toshok  <toshok@ximian.com>
4565
4566         * Theme.cs: add a Clamp method, just for kicks.
4567
4568         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4569
4570 2006-11-04  Chris Toshok  <toshok@ximian.com>
4571
4572         * Form.cs: if the form isn't visible, Close() does nothing.
4573
4574 2006-11-03  Chris Toshok  <toshok@ximian.com>
4575
4576         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4577         Hide it.
4578         (WndProc): don't Dispose after handling the WM_CLOSE message.
4579
4580         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4581         them as such, instead of using casts from Control to Form.  Also,
4582         don't Dispose of the modal dialog when we fall out of the loop -
4583         Close() it instead.
4584
4585         fixes bug #79813.
4586
4587 2006-11-03  Chris Toshok  <toshok@ximian.com>
4588
4589         * Control.cs (Dispose): only go through the dispose thing if we're
4590         @disposing, and we haven't already been disposed.  Fixes bug
4591         #79814.
4592
4593         * Form.cs: no reason to call "base.Dispose()" here instead of
4594         "Dispose()".
4595
4596 2006-11-03  Mike Kestner  <mkestner@novell.com>
4597
4598         * ComboBox.cs : use ToString instead of casts in AddItem for
4599         sorting functionality.  Fixes #79812.
4600
4601 2006-11-03  Chris Toshok  <toshok@ximian.com>
4602
4603         * Application.cs: pave the way for actually using the thread
4604         exception dialog.  it's ifdefed out at the moment.
4605
4606 2006-11-03  Chris Toshok  <toshok@ximian.com>
4607
4608         * ThreadExceptionDialog.cs: until we get a better layout, actually
4609         hide the details textbox and label when we shouldn't see them.
4610
4611 2006-11-03  Jackson Harper  <jackson@ximian.com>
4612
4613         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4614         multiline textboxes anymore.  This method also determines the
4615         width/height of a textboxes canvas area.
4616         - Sorta a revert of the last patch.  For multiline just position
4617         the controls, then bail.  This way the scrollbar width won't be
4618         altered.
4619
4620 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4621
4622         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4623         it dont need.  Fixes #79537.
4624
4625 2006-11-02  Jackson Harper  <jackson@ximian.com>
4626
4627         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4628         send the status after firing the DndOver event.
4629
4630 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4631
4632         * TrackBar.cs: Now orientation only switches height / width if
4633         the control's handle is created (Win32 does it like this). Also 
4634         fixed a typo in ToString() for a test to pass, changed the 
4635         exception thrown in set_LargeChange and set_SmallChange to 
4636         match Win32 behaviour, and added TrackBar tests to the unit 
4637         tests.
4638
4639 2006-11-02  Chris Toshok  <toshok@ximian.com>
4640
4641         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4642         not _NET_WM_STATE_NO_TASKBAR.
4643
4644 2006-11-02  Jackson Harper  <jackson@ximian.com>
4645
4646         * TextControl.cs: Increment count by one, since in the update view
4647         count - 1 is used.
4648
4649 2006-11-02  Jackson Harper  <jackson@ximian.com>
4650
4651         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4652         the mouse is in the client rectangle (duh).
4653
4654 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4655         
4656         * TrackBar.cs: Fixed trackbar jumping around when clicking
4657         on it - the trackbar was not detecting correctly at which
4658         side of the thumb the click was done. (fixes #79718)
4659
4660 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4661
4662         * ListBox.cs: scroll visible area when change SelectedIndex to
4663         a non visible area.  Fixes #79481.
4664
4665 2006-11-01  Jackson Harper  <jackson@ximian.com>
4666
4667         * TextControl.cs: When replacing the selection move the selection
4668         start/end/anchor to the end of the new text.
4669
4670 2006-11-01  Jackson Harper  <jackson@ximian.com>
4671
4672         * XplatUIWin32.cs: When setting the parent change the controls
4673         visibility to it's visibility flag, not to it's old parents
4674         visibility (.Visible walks the parent chain).
4675
4676 2006-11-01  Chris Toshok  <toshok@ximian.com>
4677
4678         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4679         XSetTransientForHint fix breaks paint .net's tool windows.  more
4680         work needed for that one.
4681
4682 2006-11-01  Chris Toshok  <toshok@ximian.com>
4683
4684         * ScrollBar.cs: throw ArgumentException instead of Exception in
4685         LargeChange/SmallChange setters.  fixes unit tests.
4686
4687 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4688
4689         * ContainerControl.cs: reverted rev.67183 (which was itself
4690         a reversion of rev.66853... eh).
4691         
4692         * Control.cs: Fixes Reflector hang by changing Focus() call
4693         to what it was before rev.66643 (calling Select() here sets 
4694         ActiveControl, which in some situations calls back Focus and 
4695         eventually does a stack overflow). Temp fix.    
4696         Changes to GetNextControl() to not look for children to select when
4697         parent cannot be selectable (so it looks for siblings instead)  
4698         
4699 2006-10-31  Mike Kestner  <mkestner@novell.com>
4700
4701         * CheckedListBox.cs : off by one error in returned index from
4702         ObjectCollection.Add.  Fixes #79758.
4703
4704 2006-10-31  Chris Toshok  <toshok@ximian.com>
4705
4706         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4707         calls for the textbox/spinner, to keep from recursing to the point
4708         where we crash.  Fixes #79760.
4709
4710 2006-10-31  Chris Toshok  <toshok@ximian.com>
4711
4712         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4713         null/"" value, just return.  matches ms's behavior and fixes some
4714         failing tests.
4715
4716 2006-10-31  Chris Toshok  <toshok@ximian.com>
4717
4718         * Control.cs (set_Capture): make a logic a little easier to
4719         follow.
4720
4721         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4722         if it's being destroyed.  A necessary fix surely, but a bandaid
4723         also, to fix the stuck capture problem in bug #78413.
4724
4725 2006-10-31  Chris Toshok  <toshok@ximian.com>
4726
4727         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4728         convention of clearing hwnd.ClientRect when we set the
4729         width/height (so it'll be recalculated by Hwnd).
4730
4731 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4732
4733         * ContainerControl.cs: reversed Contains check from
4734         ActiveControl due to hanging problems. This fix
4735         partly regresses #79667 (button does not have
4736         initial focus), so this might be a symptom for 
4737         a larger parenting problem (set_ActiveControl
4738         is being called but the child control does
4739         not have the parent set yet?)   
4740         
4741 2006-10-31  Mike Kestner  <mkestner@novell.com>
4742
4743         * MenuAPI.cs : fix keynav when menu is click activated.
4744
4745 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4746
4747         * ToolStrip*: Version 0.2.
4748
4749         * MenuStrip.cs: Version 0.1.
4750
4751         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4752
4753 2006-10-30  Chris Toshok  <toshok@ximian.com>
4754
4755         [ fixes the oversized notify icon issue in bug #79745 ]
4756         
4757         * NotifyIcon.cs: scale the icon down to the size we're given by
4758         the XplatUI layer (this would be faster if we did it once instead
4759         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4760         since it's never invoked.
4761
4762         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4763         pixels high by default, so let's hardcode our systray icon to that
4764         size.  The SYSTEM_TRAY protocol should really have a way for
4765         client apps to query for the correct icon size.. but oh well.  A
4766         couple of patches to deal with the screwy client_window ==
4767         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4768         instance, and also make sure we don't XSelectInput twice).
4769
4770 2006-10-30  Chris Toshok  <toshok@ximian.com>
4771
4772         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4773         recreating forms.  Control recreation is the bane of my existence.
4774         Fix it in a way that keeps everyone happy.
4775
4776 2006-10-30  Chris Toshok  <toshok@ximian.com>
4777
4778         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
4779         just non-CHILD ones.  otherwise sometimes scrollbars end up with
4780         client_windows not being resized to the proper size (ReportBuilder
4781         shows this extremely well).
4782
4783 2006-10-30  Chris Toshok  <toshok@ximian.com>
4784
4785         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
4786         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
4787         showing up in the gnome taskbar.  Fixes bug #79790.
4788
4789 2006-10-30  Chris Toshok  <toshok@ximian.com>
4790
4791         * ApplicationContext.cs: guard against a NRE.
4792
4793         * Application.cs: null out the old MainForm for the context, so we
4794         don't try to use it again once it's disposed.  Fixes bug #79783.
4795
4796 2006-10-30  Chris Toshok  <toshok@ximian.com>
4797
4798         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
4799         BindingContext, set the data source directly, otherwise do the
4800         lazy approach - the actual ListManager will be created when we get
4801         a BindingContext. Fixes bug #79700.
4802
4803 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4804
4805         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
4806           XplatUIX11.cs: Remove old 2 parameter SetVisible.
4807
4808         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
4809
4810 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4811
4812         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
4813         of SetVisible that allows a window to be shown, but not activated.
4814         This is needed on Windows for MenuStrip, and can probably be used
4815         with MainMenu and ComboBox to fix the focus stealing issues on
4816         Windows.
4817
4818         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
4819
4820 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
4821
4822         * PictureBox.cs: Fix the output of the ToString method.
4823
4824 2006-10-29  Chris Toshok  <toshok@ximian.com>
4825
4826         * Control.cs (get_TopLevelControl): fix bug #79781.
4827
4828 2006-10-29  Chris Toshok  <toshok@ximian.com>
4829
4830         * ListControl.cs (set_DataSource): throw Exception here, not
4831         ArgumentException, to match MS behavior.
4832
4833 2006-10-29  Chris Toshok  <toshok@ximian.com>
4834
4835         * Form.cs: remove the try-catch's around calls to GetWindowState.
4836         We can just check the return value.
4837
4838         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
4839         Instead return -1.
4840
4841         * XplatUI.cs: Add note about additional return value for
4842         GetWindowState.
4843
4844 2006-10-29  Chris Toshok  <toshok@ximian.com>
4845
4846         * Control.cs (CreateHandle): when we create our handle, we also
4847         create the handles of our child controls.  Fixes one of the
4848         Control unit tests (CH11).
4849
4850 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4851
4852         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
4853
4854 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4855
4856         * ThemeClearlooks.cs: A little speedup.
4857
4858 2006-10-27  Chris Toshok  <toshok@ximian.com>
4859
4860         * Control.cs: implement Control.FromChildHandle in a way that
4861         matches the docs (and fixes the failed test.)
4862
4863 2006-10-27  Chris Toshok  <toshok@ximian.com>
4864
4865         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
4866         comments).
4867
4868         * DataGrid.cs: implement ResetForeColor such that the tests
4869         succeed.
4870         
4871 2006-10-27  Chris Toshok  <toshok@ximian.com>
4872
4873         * ToolBarButton.cs: setting text/tooltiptext to null results in it
4874         being set to "".  Fixes bug #79759.
4875
4876 2006-10-27  Jackson Harper  <jackson@ximian.com>
4877
4878         * TextControl.cs: We need to clear the entire selection area when
4879         setting the start, otherwise multiline selections are still
4880         visible.
4881
4882 2006-10-26  Chris Toshok  <toshok@ximian.com>
4883
4884         * PropertyGridView.cs: 
4885
4886         - ifdef all the code specific to the double
4887         buffer case, and provide some alternatives in the non-doublebuffer
4888         code, which makes heavy use of XplatUI.ScrollWindow to move things
4889         around without having to invalidate (and cause flicker).  There
4890         are still some drawing problems in the non-doublebuffered case, so
4891         DOUBLEBUFFER is defined by default.
4892
4893         - Fix the way dropdowns are handled.  now we explicitly watch for
4894         the events which might cause the dropdown to close, and break out
4895         of the nested event loop there.  This gets rid of all Capture
4896         code, at the expense of the Msg special casing.  Seems to work,
4897         though, and fixes bug #79743.
4898
4899 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
4900         * Control.cs: SetIsRecreating now recreates implicitly added
4901         child controls as well. Finally fixes #79629. The flag passed to 
4902         SetIsRecreating has also been removed since it wasn't used.
4903         
4904 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4905
4906         * PageSetupDialog.cs: Clean some code, fix some bits, 
4907         add some checks, and add a printer sub-dialog.
4908
4909 2006-10-26  Chris Toshok  <toshok@ximian.com>
4910
4911         * PropertyGrid.cs: make set_SelectedObject call
4912         set_SelectedObjects, and move the duplicate logic to the
4913         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
4914
4915         * PropertyGridView.cs: hide the textbox when we get a
4916         SelectedObjectsChanged event.
4917
4918         Fixes bug #79748.
4919
4920 2006-10-26  Chris Toshok  <toshok@ximian.com>
4921
4922         * PropertyGridView.cs: deal with the type converter not supporting
4923         GetStandardValues() or GetStandardValues() returning null, which
4924         is does in the default case.  Fixes #79742.
4925
4926 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
4927
4928         * CheckedListBox.cs: nunit no longer crashes when selecting 
4929         Project/Edit menu option
4930         
4931 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
4932
4933         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
4934         is no menu selected. fixes #79739
4935
4936 2006-10-25  Chris Toshok  <toshok@ximian.com>
4937
4938         * PropertyGridView.cs: factor out the splitter invalidation code
4939         into the SplitterPercent setter, and for kicks implement the
4940         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
4941         amount in either direction.
4942
4943 2006-10-25  Chris Toshok  <toshok@ximian.com>
4944
4945         * PropertyGridView.cs: do some cleanup of the brush used to draw
4946         text - read only fields should be grayed out.  not sure how to do
4947         this with the textbox, though.  but the textbox's should also be
4948         readonly now at least.  Also, hide/show the textbox when resizing
4949         the control.
4950         
4951         * CursorConverter.cs: use System.Reflection when getting the
4952         properties of Cursors, as TypeDescriptor.GetProperties isn't
4953         returning static properties.
4954
4955 2006-10-25  Chris Toshok  <toshok@ximian.com>
4956
4957         * PropertyGridView.cs: factor out the up/down handling, and reuse
4958         it for page up/down.  also add End/Home support.
4959
4960 2006-10-25  Chris Toshok  <toshok@ximian.com>
4961
4962         * PropertyGridView.cs:
4963
4964         - ensure the selected grid item is visible in the scrolled area,
4965         fixes bug #79572.
4966
4967         - fix Keys.Down handling when you're on the last item in the
4968         propertygrid.
4969
4970 2006-10-25  Mike Kestner  <mkestner@novell.com>
4971
4972         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
4973         clicks too.  Fixes #79725.
4974
4975 2006-10-24  Chris Toshok  <toshok@ximian.com>
4976
4977         * PropertyGrid.cs: use property.Converter instead of
4978         TypeDescriptor.GetConverter(property.PropertyType), so we catch
4979         TypeConverters declared on the property as well as on the
4980         PropertyType.  Fixes bug #79678.
4981
4982 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
4983
4984         * MimeIcon.cs, Mime.cs:
4985           Fallback to the default platform handler if no shared mime info
4986           stuff exists (fixes #79693).
4987
4988 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
4989         * ContainerControl.cs: Incorrect contains check in ActiveControl 
4990         from previous fix (duh).
4991
4992 2006-10-20  Chris Toshok  <toshok@ximian.com>
4993
4994         * PropertyGridView.cs: the dropdown should be MIN(number of items
4995         in list, 15).  Fixes #79551.
4996
4997 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
4998         Fixes #79384, #79394, #79652, #79667
4999         * Application.cs: 
5000         
5001         - Modal windows are now destroyed in the proper order for windows
5002         
5003         * ContainerControl.cs:
5004         
5005         - ActiveControl setter has more conditions on when to return:
5006                 - if we're reselecting the active control, but it actually
5007                 didn't have focus (window hidden or some such), it runs
5008                 - if the active control being selected doesn't actually 
5009                 exist in the container, it returns
5010         
5011         * Form.cs
5012         
5013         - The ShowDialog now gets the current form as the owner when
5014         invoking without parameters, and correctly activates the owner 
5015         when returning
5016         
5017         * MessageBox.cs
5018         
5019         - MessageBox now catches the Escape key to exit
5020
5021 2006-10-20  Chris Toshok  <toshok@ximian.com>
5022
5023         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5024         most of bug #79676):
5025
5026         - you can navigate around the property grid with the arrow keys.
5027
5028         - the dropdown is sized properly when the pg has a vertical
5029         scrollbar.
5030
5031         - fix the indentation for subentries, and properly select the
5032         entire label rect.
5033
5034         - fix the gray bar's drawing (only draw it to the last element,
5035         not for the height of the control.  Also make sure we draw that
5036         last horizontal grid line.
5037
5038         - use the same mechanism the datagrid uses wrt the editing textbox
5039         when scrolling/resizing/etc.  Namely, we hide it first, do the
5040         operation, then show it again (if it's still visible).
5041         
5042         - aggressively remove a lot of unnecessary refreshes (and also
5043         calls to Invalidate(). call more limited variants, and only redraw
5044         what we need.)
5045         
5046         * PropertyGrid.cs:
5047
5048         - when we're populating the merged collection, fill in the UI
5049         parent with either the passed in item, or the category item we
5050         create.
5051
5052         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5053
5054         * GridItem.cs: drop some fully qualified names.
5055         
5056         * GridEntry.cs: add a "UIParent", which is basically the parent
5057         treenode.
5058
5059         * GridItemCollection.cs: add an IndexOf method.
5060
5061 2006-10-20  Mike Kestner  <mkestner@novell.com>
5062
5063         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5064         a working win32 NC invalidation mechanism, we can't invalidate
5065         menus.  [Fixes #79705]
5066
5067 2006-10-20  Mike Kestner  <mkestner@novell.com>
5068
5069         * ListBox.cs : don't update the VScrollbar if the list is empty,
5070         just hide it.  [Fixes #79692]
5071
5072 2006-10-20  Jackson Harper  <jackson@ximian.com>
5073
5074         * RichTextBox.cs: Handle some special chars better, and don't skip
5075         the entire group when we encounter a special char that we don't
5076         handle correctly.
5077
5078 2006-10-18  Chris Toshok  <toshok@ximian.com>
5079
5080         * PropertyGridView.cs: address a number of issues from bug #79676,
5081         mostly of the cosmetic variety.
5082
5083         - The highlight rectangle for indented items not extends all the
5084         way to the left.
5085
5086         - Indented items aren't indented so much.
5087
5088         - the dropdown is properly sized width-wise if the pg has a
5089         vertical scrollbar.
5090
5091 2006-10-18  Chris Toshok  <toshok@ximian.com>
5092
5093         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5094         systray stuff is rather convoluted to begin with.
5095
5096         systray icons are a single window for some reason (that I haven't
5097         figured out yet), and for them, client_window == whole_window.
5098         Given the way the tests are structured elsewhere to determine
5099         which paints are pending (client vs. nc), that situation will
5100         always yield PAINT, not NCPAINT.  So, if we have a pending
5101         nc_expose and no pending expose, remove the hwnd from the paint
5102         queue, and also set nc_expose_pending to false, to keep us from
5103         blocking further expose's adding the hwnd to the paint queue.
5104
5105         phew.  like i said, a rather convoluted change.  Fixes the
5106         notifyicon repaint issues in bug #79645.
5107
5108 2006-10-18  Chris Toshok  <toshok@ximian.com>
5109
5110         * Form.cs: when getting the backcolor of the form, don't get
5111         base.BackColor, as this allows parents to influence the background
5112         color.  This breaks mdi forms.  Instead, if the background_color
5113         is empty, return the default.
5114
5115 2006-10-18  Chris Toshok  <toshok@ximian.com>
5116
5117         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5118         to being private instead of internal static.
5119
5120         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5121         crap, it wasn't working for more deeply nested controls anyway,
5122         and we already have the is_recreating flag - use that instead.
5123         Before calling DestroyHandle in RecreateHandle, recurse through
5124         the control tree setting it to true.  this returns the recreate
5125         code to much of its original simplicity, while now guaranteeing we
5126         actually recreate everything we're supposed to.  This change gets
5127         fyireporting actually showing mdi children.
5128
5129 2006-10-17  Chris Toshok  <toshok@ximian.com>
5130
5131         * Form.cs: remove some debug spew, and collapse some duplicate
5132         code at the end of SetClientSizeCore.
5133
5134         * XplatUIX11.cs: 
5135         - add some more debug spew here too wrt Destroy handling.
5136         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5137         in Control's handling of WM_DESTROY.
5138         - Remove the handling of zombie window DestroyNotifies from the
5139         event loop - we don't need it.  Now the only DestroyNotifies we
5140         actually handle are ones generated by X.
5141         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5142         match gtk's (functioning) handling of this. This keep metacity
5143         from leaving droppings in the form of wm borders with no window
5144         contents all over the place.
5145
5146         * Control.cs:
5147         - add a bunch of debug spew wrt control recreation.
5148         - fix a bug where we weren't tracking Visible properly on
5149         recreated hwnds.
5150         - fixed the WM_PAINT double buffer handling to support re-entrant
5151         calls (yes, i know it's gross, but it's happening to us).
5152
5153 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5154         * ThemeWin32Classic.cs: changed drawing of selected days
5155         to make them look better.
5156
5157 2006-10-16  Chris Toshok  <toshok@ximian.com>
5158
5159         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5160         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5161
5162         * XplatUIX11.cs: move away from using hwnd.client_dc and
5163         hwnd.non_client_dc and on to a stack of dc's (and in window's
5164         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5165         without puking or not disposing of Graphics objects.
5166
5167         * XplatUIOSX.cs: same.
5168
5169         * XplatUIWin32.cs: same.
5170
5171 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5172
5173         * FileDialog.cs: Don't call on_directory_changed inside
5174           OnSelectedIndexChanged (it changes the SelectedIndex too).
5175           Instead move it to OnSelectionChangeCommitted.
5176
5177 2006-10-13  Chris Toshok  <toshok@ximian.com>
5178
5179         * XplatUIX11.cs: more Destroy work.  the current code does the
5180         following things, in order:
5181
5182         1. Enumerates all handles of all controls at or below the one
5183         being destroyed, in pre-order.  As it is doing this, it marks the
5184         handles as zombie and clears all references to them.
5185         
5186         2. calls XDestroyWindow on the window passed in.
5187
5188         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5189         list.
5190
5191 2006-10-13  Chris Toshok  <toshok@ximian.com>
5192
5193         * XplatUIX11.cs: set hwnd.zombie to true before calling
5194         SendMessage (WM_DESTROY).  this keeps us from marking the new
5195         window a zombie, and also keeps us from calling sendmessage at
5196         all.
5197
5198 2006-10-13  Jackson Harper  <jackson@ximian.com>
5199
5200         * TextControl.cs: Do not show the caret and selection at the same
5201         time.  Reduces ugliness by 35%.
5202
5203 2006-10-13  Chris Toshok  <toshok@ximian.com>
5204
5205         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5206         zombie after we do the recursive call, so we actually do call
5207         SendMessage on the children controls.
5208         (GetMessage): if we find a pending paint event for a zombie hwnd,
5209         remove the hwnd from the paint queue, or else it will always be
5210         there (and we'll effectively loop infinitely)
5211
5212 2006-10-13  Mike Kestner  <mkestner@novell.com>
5213
5214         * MenuItem.cs : add Selected format under keynav too.
5215         Fixes #79528.
5216
5217 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5218
5219         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5220         implementation and that of MS.
5221
5222 2006-10-13  Chris Toshok  <toshok@ximian.com>
5223
5224         * Control.cs (OnInvalidated) only futz with the invalid_region if
5225         the control is double buffered.  this fixes the apparent hang in
5226         the ListView unit tests.  Someone needs to make the
5227         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5228
5229 2006-10-13  Chris Toshok  <toshok@ximian.com>
5230
5231         * PropertyGridView.cs:
5232
5233         - do a little refactoring so that only one place calls
5234         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5235         else call that.  Also make it Refresh, since there are redraw bugs
5236         otherwise (we should take a look at that...)
5237
5238         - do a little more refactoring work to share the body of code
5239         involved with the drop down.  it was duplicated in the code
5240         dealing with the listbox handling and in the code dealing with the
5241         UITypeEditors.
5242
5243         - add a Capture to the dropdown form's control once it's
5244         displayed, and add a MouseDown handler that checks to make sure
5245         the position is inside the control.  If it's not, close the
5246         dropdown.  This fixes #78190.
5247
5248         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5249         if the value is different than the initial value.
5250         
5251 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5252
5253         * Control.cs: see #78650
5254         - Fixed GetNextControl for several cases:
5255                 - Changed FindFlatForward to return 
5256                 correct sibling control when more than one
5257                 control has same TabIndex as the currently 
5258                 focused one.
5259                 - Changed FindFlatBackward to loop children
5260                 from last to first and apply same logic as in
5261                 FindFlatForward
5262                 - Changed FindControlForward to search for
5263                 children when control is not a container
5264                 but has children, or search for siblings if
5265                 control is a container...
5266                 - Changed FindControlBackward   to continue
5267                 searching for child controls when hitting 
5268                 Panel-like parents
5269                 
5270         - Fixed Focus method to update ActiveControl
5271         (FocusTest.FocusSetsActive failure)
5272         
5273         * TabControl.cs:
5274         - Focus rectangle now refreshes when gaining
5275         or losing focus
5276         - Removed grab for Tab key on IsInputKey that 
5277         was keeping tab navigation from working (#78650)
5278
5279 2006-10-13  Chris Toshok  <toshok@ximian.com>
5280
5281         * PropertyGridView.cs:
5282         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5283         SelectedObjects.
5284
5285         - Deal with GridItem.Value == null a few places.
5286
5287         * PropertyGrid.cs: 
5288         - replace the PopulateGridItemCollection with a pair of methods
5289         which compute the intersection of all the properties in the
5290         SelectedObjects array.  Fixes #79615.
5291
5292         - Throw ArgumentException from set_SelectedObjects if there's a
5293         null in the array.
5294
5295         - Add GetTarget method which can be used to traverse up the
5296         GridItem.Parent chain.  It depends on the assumption that
5297         selected_objects for different GridEntries are always in the same
5298         order (a safe assumption).  Use this method and loop over all the
5299         selected objects in the entry when calling RemoveValueChanged and
5300         AddValueChanged.
5301         
5302         * GridEntry.cs: Make this handle multiple selected objects.
5303         .Value returns null if not all the selected objects share the same
5304         value.
5305
5306 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5307         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5308           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5309           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5310           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5311           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5312         add additional functionality.
5313
5314 2006-10-12  Mike Kestner  <mkestner@novell.com>
5315
5316         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5317         * HelpProvider.cs : new ToolTipWindow ctor sig.
5318         * ToolTip.cs : remove ToolTip param from Window sig since it is
5319         not used.
5320         * ToolBar.cs : add tooltip support.  Fixes #79565.
5321
5322 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5323
5324         * ComboBox.cs: move the events in set_SelectedIndex to 
5325         after the call to HighlightIndex in order to avoid 
5326         possible recursion and subsequent problems with the call
5327         to HighlightIndex and include a range check in 
5328         set_HighlightIndex. Fixes #79588
5329         
5330 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5331
5332         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5333         to ui thread's settings instead of sunday. 
5334         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5335
5336 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5337
5338         * DateTimePicker.cs
5339         * MonthCalendar.cs
5340         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5341         and implement missing functionality (selecting different parts 
5342         of the date and edit them individually with the keyboard).
5343         
5344 2006-10-11  Chris Toshok  <toshok@ximian.com>
5345
5346         * Control.cs (OnInvalidated): fix NRE relating to last change.
5347
5348 2006-10-11  Chris Toshok  <toshok@ximian.com>
5349
5350         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5351         atoms in _NET_WM_STATE here if the window is maximized.  We need
5352         to do this because we're *replacing* the existing _NET_WM_STATE
5353         property, so those atoms will be lost otherwise, and any further
5354         call to GetWindowState will return Normal for a window which is
5355         actually maximized.  Fixes #79338.
5356
5357 2006-10-11  Jackson Harper  <jackson@ximian.com>
5358
5359         * TextControl.cs: Special case for setting selection end to
5360         selection start, we basically kill the anchor.
5361         - some todo comments.
5362
5363 2006-10-11  Chris Toshok  <toshok@ximian.com>
5364
5365         * Control.cs: switch to using an "invalid_region" to track which
5366         parts of the image buffer need updating.  This is more code than
5367         the simple fix from r66532.  That version just attempted to always
5368         fill the entire buffer on redraw, which turns out to be
5369         inefficient when invalidating small rectangles.  This version
5370         simply adds the invalid rectangle to the invalid region.  When we
5371         get any WM_PAINT message we see if it can be filled using the
5372         image buffer, and if it can't (if the paint event's clip rectangle
5373         is visible in the invalid region) we first fill the image buffer.
5374         So, the image buffer is still a cache, we just fill it lazily.
5375
5376         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5377         need it any longer.
5378
5379 2006-10-11  Chris Toshok  <toshok@ximian.com>
5380
5381         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5382         well as size after calling XMoveResizeWindow.  This keeps us from
5383         ignoring future SetWindowPos calls.  Fixes the disappearing
5384         DateTimePicker in the ToolBarDockExample from bug #72499.
5385
5386 2006-10-11  Chris Toshok  <toshok@ximian.com>
5387
5388         * TextBoxBase.cs: reorder things a bit when it comes to
5389         resizing-causing-recalculation.  we were recalculating the
5390         document when our position was changed, which shouldn't happen.
5391         We only care about size changes.  Clear up some more redundant
5392         recalculation calls while I'm at it.  This makes the toolbar dock
5393         example snappy when you're just dragging toolbars around (since it
5394         causes a relayout whenever you move one.)
5395
5396 2006-10-11  Chris Toshok  <toshok@ximian.com>
5397
5398         * ToolBarButton.cs (get_Rectangle): this only returns
5399         Rectangle.Empty if Visible == false, or Parent == null.
5400         Parent.Visible doesn't matter.
5401
5402 2006-10-10  Chris Toshok  <toshok@ximian.com>
5403
5404         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5405         by .net 1.1, so switch to an internal method instead.
5406
5407 2006-10-10  Chris Toshok  <toshok@ximian.com>
5408
5409         * Control.cs (WM_PAINT): when a control is double buffered we draw
5410         initially to the ImageBuffer and then copy from there.  But when a
5411         parent control which has child controls is double buffered, the
5412         initial drawing doesn't encompass the entire ClientRectangle of
5413         the parent control, so we end up with uninitialized bits (this is
5414         easily seen by dragging the top toolbar in
5415         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5416         manually set the ClipRectangle of the paint_event (only the one we
5417         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5418         of the nastiness in bug #72499.
5419
5420         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5421         which we use in Control.cs's WM_PAINT handling.
5422
5423 2006-10-10  Jackson Harper  <jackson@ximian.com>
5424
5425         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5426
5427 2006-10-10  Chris Toshok  <toshok@ximian.com>
5428
5429         * Cursor.cs: Apply a slightly different patch to the one suggested
5430         in #79609.
5431
5432 2006-10-10  Jackson Harper  <jackson@ximian.com>
5433
5434         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5435         not the parent form.
5436         * TextControl.cs: use difference in old line count vs new count to
5437         calculate how many lines were added, this takes into account soft
5438         line breaks properly.
5439
5440 2006-10-10  Chris Toshok  <toshok@ximian.com>
5441
5442         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5443         rectangle located at 0,0 and the size of the text.  Use
5444         ClientRectangle instead.  This fixes rendering of non-left aligned
5445         link labels.
5446
5447 2006-10-10  Jackson Harper  <jackson@ximian.com>
5448
5449         * TextBoxBase.cs: When we set the selection start position the
5450         caret.
5451         * TextControl.cs: Need to update the caret when we decrement it to
5452         zero.
5453         - Make sure that the selection_visible flag gets reset to false if
5454         the selection isn't visible.  Before this you could get it set to
5455         visible by changing the selection start, then changing the end to
5456         equal the start.
5457
5458 2006-10-09  Jackson Harper  <jackson@ximian.com>
5459
5460         * TreeView.cs: Don't update scrollbars when we aren't visible.
5461         * TreeNodeCollection.cs: Only need to update scrollbars if being
5462         added to an expanded visible node or the root node.
5463
5464 2006-10-09  Chris Toshok  <toshok@ximian.com>
5465
5466         * XplatUIX11.cs (SendMessage): fix NRE.
5467
5468 2006-10-09  Jackson Harper  <jackson@ximian.com>
5469
5470         * TextBoxBase.cs: Implement horizontal autoscrolling.
5471         * TextControl.cs: Add a movement types that allows moving forward
5472         and backwards without wrapping.
5473
5474 2006-10-09  Mike Kestner  <mkestner@novell.com>
5475
5476         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5477         with focus "expansion" of labels.  Fixes #79532 and then some.
5478         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5479         when wrapping.
5480
5481 2006-10-09  Jackson Harper  <jackson@ximian.com>
5482
5483         * TextBoxBase.cs: Set the default max values to MaxValue since
5484         we use the scrollbar for autoscrolling and the default value is
5485         100.  If we don't do this the caret won't keep up with typing
5486         after about 18 characters.
5487         * TextControl.cs: Make sure the selection is offset by the
5488         viewport x.  This fixes selection when using auto scrolling.
5489
5490 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5491         
5492         * Form.cs: The active control should be selected after the 
5493         OnLoad so that any child control initialization that affects
5494         the selection is done. Fixes #79406
5495
5496 2006-10-06  Chris Toshok  <toshok@ximian.com>
5497
5498         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5499         to have no evil effects.
5500
5501         - Stop selecting StructureNotifyMask on non-toplevel windows.
5502
5503           The only way children should be resized is by using the SWF api,
5504           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5505           Toplevel windows can be interacted with via the window manager,
5506           and so we keep the input mask there.
5507
5508           The other event StructureNotifyMask gives us (that we care
5509           about) is DestroyNotify.  The code is already structured such
5510           that it assumes we won't be getting a DestroyNotify event for
5511           the window we pass to XDestroyWindow (which is what
5512           StructureNotifyMask is supposed to guarantee.)  So, that code
5513           shouldn't be affected by this either.
5514
5515         - Stop selecting VisibilityChangeMask altogether.
5516
5517           We weren't doing anything with the resulting events anyway.
5518         
5519         This vastly reduces the number of X requests and events we see
5520         when resizing/laying out a large ui.
5521
5522 2006-10-06  Chris Toshok  <toshok@ximian.com>
5523
5524         * ScrollableControl.cs (DisplayRectangle): we need to take into
5525         account the DockPadding regardless of whether or not auto_scroll
5526         == true.  rework this slightly to this effect, and fix bug #79606,
5527         and part of #72499 (you can now see the drag handles and drag
5528         toolbars around).
5529
5530 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5531
5532         * ListViewItem.cs: Collections of selected and checked items are now
5533         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5534         we mark the collection "dirty".
5535         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5536         to only clear SelectedItems when a new item is selected and MultiSelect
5537         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5538         event of ListViewItemCollection, and mark its list dirty whenever
5539         that event is fire. This allows us to return selected/checked items 
5540         in the same order as they are in the Items collection. This matches
5541         the MS behavior.
5542
5543 2006-10-06  Chris Toshok  <toshok@ximian.com>
5544
5545         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5546         right mouse clicks.  Fixes bug #79593.
5547
5548 2006-10-06  Chris Toshok  <toshok@ximian.com>
5549
5550         * Splitter.cs: doh, fix splitters that don't want to cancel the
5551         movement when you drag them.  Also, impose the limits on the
5552         values we send to the SplitterMovingEvent.  Fixes #79598.
5553
5554 2006-10-06  Jackson Harper  <jackson@ximian.com>
5555
5556         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5557         since we use this for auto scrolling also.
5558
5559 2006-10-05  Chris Toshok  <toshok@ximian.com>
5560
5561         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5562         beginning to think that most datagrid column types don't need this
5563         method.  Fixes bug #79392.
5564
5565 2006-10-05  Chris Toshok  <toshok@ximian.com>
5566
5567         * DataGrid.cs: move back to a more lazy scheme for creating the
5568         CurrencyManager, so we aren't updating it every time you set
5569         either DataSource or DataMember.  Also, don't call
5570         RecreateDataGridRows if the currency manager hasn't changed.
5571
5572 2006-10-05  Chris Toshok  <toshok@ximian.com>
5573
5574         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5575         emitted, SelectedIndex should already be updated.  Fixes bug
5576         #78929.
5577
5578 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5579
5580         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5581           ToolStripTextBox.cs: Initial commit.
5582         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5583
5584 2006-10-05  Jackson Harper  <jackson@ximian.com>
5585
5586         * TabControl.cs: We need to invalidate the tab control area when
5587         new ones are added (duh).
5588
5589 2006-10-03  Chris Toshok  <toshok@ximian.com>
5590
5591         * Form.cs (ProcessDialogKey): if the focused control is in this
5592         form and is a button, call its PerformClick method here.  Fixes
5593         #79534.
5594
5595 2006-10-04  Jackson Harper  <jackson@ximian.com>
5596
5597         * TabPage.cs: Ignore setting of Visible, and add an internal
5598         method for setting the controls visibility.  TabPage's Visible
5599         property is a little strange on MS, this seems to make us
5600         compatible, and fixes cases where people set all the tab pages to
5601         visible.
5602         * TabControl.cs: Use the new internal setting on tab pages
5603         visibility.
5604
5605 2006-10-03  Mike Kestner  <mkestner@novell.com>
5606
5607         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5608
5609 2006-10-03  Mike Kestner  <mkestner@novell.com>
5610
5611         * ListView.cs : use is_visible instead of Visible to check if 
5612         scrollbars should be placed/sized.  Also some max_wrap_width
5613         love for LargeIcon view.  [Fixes #79533]
5614
5615 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5616
5617         * TextControl.cs :
5618           Make set_TextAlign() do actually update the align. Fixed #78403.
5619
5620 2006-10-03  Chris Toshok  <toshok@ximian.com>
5621
5622         * DataGrid.cs: fix a crash when switching datasources if the
5623         vertical scrollbar is at someplace other than Value = 0.  Also,
5624         reduce the number of recalculation passes we do in SetDataSource
5625         from 2 to 1.
5626
5627 2006-10-03  Jackson Harper  <jackson@ximian.com>
5628
5629         * TextBoxBase.cs: Move the if value the same bail check up, we
5630         don't want to empty the document if it is already empty, this
5631         seems to severly mess up the caret.  TODO: I should probably fix
5632         the empty statement to update teh caret somehow.
5633
5634 2006-10-03  Chris Toshok  <toshok@ximian.com>
5635
5636         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5637         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5638         reflection, an internal row type, properties on said type, etc.)
5639         will work with our datagrid.  Fixes #79531.
5640
5641 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5642
5643         * FileDialog.cs: Don't crash if a path is not accessible
5644           (System.UnauthorizedAccessException). Fixes #79569.
5645         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5646           a ':' too. Return unknown icon for those paths/files.
5647
5648 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5649
5650         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5651         GetContainerControl returns null.
5652
5653 2006-10-02  Chris Toshok  <toshok@ximian.com>
5654
5655         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5656         call to XGetWindowAttributes instead of "handle".  fixes an X
5657         error using notifyicon after the NotifyIconWindow to Form base
5658         class switch.
5659
5660 2006-10-02  Chris Toshok  <toshok@ximian.com>
5661
5662         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5663         server grab and looping we need to do to get down to the most
5664         deeply nested child window.
5665         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5666         QueryPointer again after the WarpPointer so we can generate a
5667         proper (fake) MotionNotify event to be enqueued in the destination
5668         window's queue.
5669         (GetCursorPos): call QueryPointer.
5670
5671         Fixes #79556.
5672
5673 2006-10-02  Jackson Harper  <jackson@ximian.com>
5674
5675         * NotifyIcon.cs: Derive the notify icon from a form, so things
5676         like FindForm work on it.
5677         - Swallow the WM_CONTEXTMENU message, since that is generated on
5678         mouse down, and context menu is a mouse up kinda guy.  I believe
5679         the correct fix here is probably to make the notify icon entirely
5680         NC area, but this seems to work fine for anyone not manipulating
5681         WndProc.
5682
5683 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5684
5685         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5686           ToolStripItemCollection.cs, ToolStripLabel.cs,
5687           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5688           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5689           Initial implementation.
5690         * TextRenderer.cs: Provide padding to MeasureText.
5691
5692 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5693
5694         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5695         of ButtonBaseAccessibleObject. Fix bug #79552.
5696
5697 2006-10-02  Jackson Harper  <jackson@ximian.com>
5698
5699         * MdiWindowManager.cs: When maximizing use the containers client
5700         rect, not it's bounds, so nc area is accounted correctly.
5701         - Use the parent form's size for the menu position, since the
5702         client isn't always the full form size.
5703
5704 2006-10-01  Chris Toshok  <toshok@ximian.com>
5705
5706         * ScrollableControl.cs: make sure neither right_edge or
5707         bottom_edge are < 0, since they're used as LargeChange for the
5708         horiz/vert scrollbars respectively.  Fixes #79539.
5709
5710 2006-10-01  Chris Toshok  <toshok@ximian.com>
5711
5712         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5713         the xplatuix11 code can cause us to destroy/recreate our handle.
5714
5715         * XplatUIX11.cs
5716         (SystrayAdd):
5717         - this code can be invoked many times for the same Hwnd.  Make
5718           sure we only destroy the client window once (the first time this
5719           method is called).  This fixes bug #79544.
5720         - Remove the call to the improperly bound XSync.  why we had two
5721           bindings to this, I will never know, but this call resulted in
5722           events being discarded from the queue(!).
5723         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5724           not our current state but the state we wish to be in.  So, 0 if
5725           we don't want to be mapped.  Change it to 1.
5726         (SystrayRemove): The XEMBED spec makes mention of the fact that
5727         gtk doesn't support the reparent of client windows away from the
5728         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5729         The only avenue we have for removing systray icons is to destroy
5730         them.  We don't want the handle to go away for good, though, so
5731         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5732         #79545.
5733         
5734 2006-10-01  Chris Toshok  <toshok@ximian.com>
5735
5736         * Form.cs (WndProc): inline the native_enabled variable usage into
5737         the cases in which it's used.  Fixes #79536.
5738
5739 2006-09-29  Mike Kestner  <mkestner@novell.com>
5740
5741         * ListView.cs : toggle the selection state for ctrl clicks in 
5742         multiselect mode. [Fixes #79417]
5743
5744 2006-09-29  Mike Kestner  <mkestner@novell.com>
5745
5746         * ListView.cs : kill CanMultiSelect and refactor the selection
5747         code to support multiselection in the absence of mod keys. Steal
5748         arrow/home/end keys by overriding InternalPreProcessMessage to
5749         restore regressed keynav behavior.
5750         [Fixes #79416]
5751
5752 2006-09-29  Jackson Harper  <jackson@ximian.com>
5753
5754         * MdiClient.cs: Repaint the titlebars when the active window is
5755         changed.
5756
5757 2006-09-29  Chris Toshok  <toshok@ximian.com>
5758
5759         * Application.cs: when entering a runloop with a modal, make sure
5760         the hwnd is enabled.  Fixes #79480.
5761
5762 2006-09-29  Chris Toshok  <toshok@ximian.com>
5763
5764         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5765         when ListManager.CanAddRows == false, bump us back one.
5766
5767         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5768         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5769         using a datagrid, which is not right.
5770         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5771         is an IEditable, but call property_descriptor.SetValue regardless.
5772         fixes #79435.
5773
5774 2006-09-29  Chris Toshok  <toshok@ximian.com>
5775
5776         * DataGridBoolColumn.cs: we need to test equality in the face of
5777         possible null values (as is the case with the default NullValue).
5778         This patch keeps us from crashing in that case.
5779
5780 2006-09-29  Jackson Harper  <jackson@ximian.com>
5781
5782         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
5783         here, since it will get called for every node collection in the
5784         tree. This is now done in the treeview once the sorting is
5785         finished.
5786         * TreeView.cs: Recalculate the visible order, and update the
5787         scrollbars after sorting, set the top nope to the root so that the
5788         recalc actually works.
5789
5790 2006-09-29  Chris Toshok  <toshok@ximian.com>
5791
5792         * LinkLabel.cs: more handling of the default link collection in
5793         the face of LinkArea manipulation.  The default link collection
5794         contains 1 element (start=0,length=-1).  If the user sets LinkArea
5795         to anything and the links collection is the default, clear it.
5796         Then only add the link if its nonempty.  Fixes #79518.
5797
5798 2006-09-29  Chris Toshok  <toshok@ximian.com>
5799
5800         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
5801         piece correctly when we hit a '\n'.  Fixes #79517.
5802
5803 2006-09-29  Chris Toshok  <toshok@ximian.com>
5804
5805         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
5806         change the binding of gdk_init_check to take two IntPtr's, and
5807         pass IntPtr.Zero for both of them.  Fixes #79520.
5808
5809 2006-09-29  Mike Kestner  <mkestner@novell.com>
5810
5811         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
5812         [Fixes #78779]
5813
5814 2006-09-28  Jackson Harper  <jackson@ximian.com>
5815
5816         * XplatUIX11.cs: When translating NC messages make sure we go from
5817         whole window to screen, not client window to screen.
5818         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
5819         method doesn't exist
5820         - Skip over controls that aren't forms when arranging.
5821
5822 2006-09-28  Jackson Harper  <jackson@ximian.com>
5823
5824         * XplatUIWin32.cs: Clip the rect to the parent window.
5825         * XplatUIStructs.cs: Add clipping modes struct.
5826         * InternalWindowManager.cs: New private method that factors title
5827         bar heights in when calculating the pos of an NC mouse message.
5828         - Use SendMessage to force a paint when the form's size is changed
5829         instead of painting the decorations immediately.
5830         - Don't let the NC button click messages get to DefWndProc,
5831         because they will attempt to handle windowing themself, and this
5832         messes up z-order (it will put them in front of the scrollbars).
5833         * XplatUIX11.cs: Make sure that we don't reset window managers if
5834         we already have one (ie the window is an MDI window).
5835
5836 2006-09-28  Chris Toshok  <toshok@ximian.com>
5837
5838         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
5839         menu code really needs going over.
5840
5841 2006-09-27  Chris Toshok  <toshok@ximian.com>
5842
5843         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
5844         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
5845         window is maximizable.  So, we need to make sure that even if we
5846         clear the border/wm frame of those functions, they're still
5847         available (basically, we remove the decoration without removing
5848         the function).  Half the fix for #79338.
5849
5850 2006-09-27  Chris Toshok  <toshok@ximian.com>
5851
5852         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
5853         Fixes bug #79515.
5854
5855 2006-09-27  Chris Toshok  <toshok@ximian.com>
5856
5857         * Splitter.cs: reorder things a bit so that we don't actually
5858         draw/move the splitter until after calling OnSplitterMoving.  This
5859         lets users cancel/disallow the movement by explicitly setting
5860         event.SplitX/SplitY.  Fixes #79372.
5861
5862 2006-09-27  Jackson Harper  <jackson@ximian.com>
5863
5864         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
5865         because it is most likely on a window being destroyed, and that
5866         will give us an X11 error.
5867
5868 2006-09-27  Chris Toshok  <toshok@ximian.com>
5869
5870         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
5871         the dropdown button now toggles between showing and hiding the
5872         dropdown.  Also, get rid of dropdown_form_showing and just use
5873         dropdown_form.Visible.  We still don't do a grab, but I'll leave
5874         that part to someone who has handled Capture-fu before.
5875
5876 2006-09-27  Chris Toshok  <toshok@ximian.com>
5877
5878         * DataGrid.cs: return false if alt isn't pressed when '0' is
5879         pressed.  this keeps the '0' key from being swallowed, and fixes
5880         bug #79350.
5881
5882 2006-09-27  Chris Toshok  <toshok@ximian.com>
5883
5884         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
5885         Calling Refresh (in response to a scrollbar event) screws up the
5886         scrollbar painting.  Fixes bug #78923.
5887
5888 2006-09-27  Chris Toshok  <toshok@ximian.com>
5889
5890         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
5891         then insert into hashtable" blocks threadsafe.
5892
5893 2006-09-27  Chris Toshok  <toshok@ximian.com>
5894
5895         * MessageBox.cs (CreateParams): the styles should be |'ed with our
5896         baseclass's, since otherwise the
5897         ControlBox/MinimizeBox/MaximizeBox assignments above have no
5898         effect.  This gets the close button back in messageboxes.
5899
5900 2006-09-27  Chris Toshok  <toshok@ximian.com>
5901
5902         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
5903         flag, not just != 0.  this makes flags that are actually multiple
5904         bits (like WS_CAPTION) work.  fixes bug #79508.
5905
5906 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
5907
5908         * PageSetupDialog.cs: add support for getting and settings the 
5909         paper size, source and orientation.
5910
5911 2006-09-26  Chris Toshok  <toshok@ximian.com>
5912
5913         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
5914         and caption == "", we need to remove the resize handles as well as
5915         the title bar.
5916
5917         * Control.cs (set_Text): turns out that setting Text on a form
5918         should change the WM styles on the window, since if ControlBox ==
5919         false, the only way to get a window border is to have a non-""
5920         Text property.  check winforms/forms/text.cs for an example.  so,
5921         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
5922         update both window styles and title.  This fixes a lot of dialogs
5923         (including the preferences dialog in MonoCalendar.)
5924
5925 2006-09-26  Chris Toshok  <toshok@ximian.com>
5926
5927         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
5928         control isn't a Form), call Win32ShowWindow to hide the window,
5929         but don't update the control Visible property.  When we reparent
5930         back to a parent control, call SetVisible in order for the
5931         window's visibility to be reinstated.
5932
5933         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
5934         the FosterParent.
5935
5936         * Control.cs (ControlCollection.Remove): remove that value.Hide()
5937         call for good, since it breaks MonoCalendar (and other things I'm
5938         sure.) Also, set all_controls to null *after* the owner calls,
5939         which end up regenerating it.
5940         (ChangeParent): allow new_parent to be == null, passing
5941         IntPtr.Zero down to XplatUI.
5942
5943         this fixes #79294 the right way.
5944
5945 2006-09-26  Mike Kestner  <mkestner@novell.com>
5946
5947         * GridEntry.cs : internal SetParent method.
5948         * PropertyGrid.cs : attach to property changed on the proper
5949         target if we have a hierarchical grid with subobjects. Setup
5950         GridItem.Parent for hierarchical items.
5951         * PropertyGridView.cs : Set value on the correct target for
5952         hierarchical grids. [Fixes #78903]
5953
5954 2006-09-26  Chris Toshok  <toshok@ximian.com>
5955
5956         * Control.cs (ChildNeedsRecreating): this should return true if
5957         either we're being recreated and the child is in our list, or our
5958         parent is waiting for our recreation.
5959
5960 2006-09-26  Chris Toshok  <toshok@ximian.com>
5961
5962         * Control.cs (ControlCollection.Remove): reinstate the
5963         value.Hide() call as suggested in bug #79294.
5964
5965 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
5966
5967         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
5968         coordinates (versus a relative move).
5969
5970 2006-09-26  Chris Toshok  <toshok@ximian.com>
5971
5972         * Control.cs: rework child recreation a little bit.  It turns out
5973         that we race between the DestroyNotify the WM_DESTROY message.  If
5974         the parent gets its DestroyNotify before the child gets the
5975         WM_DESTROY message, the child ends up not recreating (since the
5976         parent finishes its recreation on DestroyNotify, and the child
5977         checks ParentIsRecreating.)
5978
5979         So, instead we store off a list of all the child controls which
5980         need to be recreated when the parent control starts to recreate
5981         itself.  Then, when child controls get their WM_DESTROY message we
5982         check to see if they're in the parent's pending recreation list,
5983         and if so, we recreate.  This removes all dependency on ordering
5984         from the code and fixes the initial MonoCalendar upgrade dialog.
5985         
5986 2006-09-26  Jackson Harper  <jackson@ximian.com>
5987
5988         * TextControl.cs: Use the Line to get the length of the line,
5989         since soft line breaks can change the end line.
5990
5991 2006-09-26  Chris Toshok  <toshok@ximian.com>
5992
5993         * Control.cs (ControlCollection.AddImplicit): don't add the
5994         control again if it's already in one of our lists.  This keeps us
5995         from adding controls over and over again for comboboxes when their
5996         handle gets recreated (as the combobox adds implicit controls in
5997         OnHandleCreated).  Fixes the X11 errors in bug #79480.
5998
5999 2006-09-26  Jackson Harper  <jackson@ximian.com>
6000
6001         * TextControl.cs: When deleting characters make sure that any
6002         orphaned zero lengthed tags get deleted.
6003         - Fix ToString for zero lengthed tags.
6004
6005 2006-09-25  Jackson Harper  <jackson@ximian.com>
6006
6007         * TextControl.cs: When getting a tag at the location there can be
6008         multiple tags at the same spot, these are 0-lengthed tags that
6009         appear when extra formatting has been stuck in a location.  We
6010         need to pull out the last of these 0 lengthed tags.
6011
6012 2006-09-25  Jackson Harper  <jackson@ximian.com>
6013
6014         * TextControl.cs: Fix print out in debug method.
6015         * TextBoxBase.cs: When text is set bail if we are setting to the
6016         previous value.
6017         
6018 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6019
6020         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6021           It is now possible to change the selected index in a FontXXXListBox
6022           with the up and down arrow keys from the FontXXXTextBoxes.
6023           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6024           FontXXXListBoxes to match ms.
6025
6026 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6027
6028         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6029         anyone can dispose it, anytime. All other properties returns enums, 
6030         structs or basic types so they don't need such tricks.
6031
6032 2006-09-22  Jackson Harper  <jackson@ximian.com>
6033
6034         * XplatUI.cs:
6035         * XplatUIWin32.cs:
6036         * Clipboard.cs:
6037         * DataFormats.cs:
6038         * XplatUIOSX.cs:
6039         * XplatUIDriver.cs: Update interface to add a primary selection
6040         flag, so the driver can use the primary selection buffer if
6041         needed.
6042         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6043
6044         * RichTextBox.cs: We need to supply the data object to paste now
6045         (so we can choose to supply CLIPBOARD or PRIMARY).
6046         * TextBoxBase.cs: Supply data object to paste (see above).
6047         - Middle click uses the primary selection data object.
6048         
6049 2006-09-21  Chris Toshok  <toshok@ximian.com>
6050
6051         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6052         of SetWMStyles.  It's still a rat's nest and is largely
6053         order-dependent which I dislike immensely.  This also fixes the X
6054         button disappearing from toplevel forms.
6055
6056 2006-09-21  Mike Kestner <mkestner@novell.com>
6057
6058         * ListBox.cs: move Jordi's click/dblclick raising code to the
6059         mouse up handler.
6060
6061 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6062
6063         * ListBox.cs: Fixes 79450
6064
6065 2006-09-21  Mike Kestner <mkestner@novell.com>
6066
6067         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6068         to deal with people updating the TreeNodeCollection after the tree
6069         is disposed.  "Fixes" 79330.
6070
6071 2006-09-20  Jackson Harper <jackson@ximian.com>
6072
6073         * TextControl.cs: Push the cursor record onto the undo stack
6074         before the delete action. This fixes 78651.
6075
6076 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6077
6078         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6079         CreateParams. Fixes 79329.
6080
6081 2006-09-19  Chris Toshok  <toshok@ximian.com>
6082
6083         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6084         things up a bit.  First, get rid of the NetAtoms array (and the NA
6085         enum), and just embed the atoms as static fields.  Also, add a
6086         couple of functions (StyleSet and ExStyleSet) to clean up all the
6087         bitmask testing of styles.
6088
6089         * X11Structs.cs: remove the NA enum, not needed anymore.
6090         
6091 2006-09-19  Chris Toshok  <toshok@ximian.com>
6092
6093         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6094         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6095         added cleanup to get MessageBox titles appearing again, which were
6096         broken by my earlier fix for caption-less/ControlBox-less windows.
6097
6098 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6099
6100         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6101           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6102           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6103           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6104           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6105           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6106           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6107           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6108           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6109           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6110           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6111             Inital import.
6112         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6113           ToolStripButton.cs: Stubs needed for above.
6114         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6115
6116 2006-09-15  Chris Toshok  <toshok@ximian.com>
6117
6118         * XplatUIX11.cs:
6119         - make the MessageQueues hashtable Synchronized.
6120         
6121         - SendMessage: if the Hwnd is owned by a different thread, use the
6122         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6123         thread.  Fixes bug #79201.
6124
6125 2006-09-15  Chris Toshok  <toshok@ximian.com>
6126
6127         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6128         ControlBox == false, we disallow maximize/minimize/close.  If the
6129         form Caption is "" we also disallow move (and get rid of the Title
6130         decoration).  Unfortunately, regardless of how things are set,
6131         we're stuck with the Title and WM menu.
6132
6133 2006-09-15  Chris Toshok  <toshok@ximian.com>
6134
6135         * Application.cs: add locking around the static message_filters
6136         ArrayList, part of #79196.
6137
6138 2006-09-15  Chris Toshok  <toshok@ximian.com>
6139
6140         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6141         Form.ControlBox == false, the window has no titlebar nor resize
6142         handles.  fixes bug #79368.
6143
6144 2006-09-15  Chris Toshok  <toshok@ximian.com>
6145
6146         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6147         >= 0.  Fixes bug #79370.
6148
6149 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6150         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6151         * Control.cs:
6152             Add properties: LayoutEngine, Margin, DefaultMargin.
6153             Add method: GetPreferredSize.
6154             Move layout logic from PerformLayout to layout engines. 
6155
6156 2006-09-13  Chris Toshok  <toshok@ximian.com>
6157
6158         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6159         fix for #79326 broke #78718, so this change addresses that.
6160
6161         - in SendWMDestroyMessages remove the call to
6162         CleanupCachedWindows, since we might be recreating the control and
6163         need to maintain the references to right Hwnd handles.  Also, set
6164         the zombie flag to true for each of the children in the hierarchy
6165         instead of calling hwnd.Dispose.  This will cause GetMessage to
6166         ignore all events for the window except for DestroyNotify.
6167
6168         - In GetMessage, ignore messages except for DestroyNotify for
6169         zombie hwnds.
6170         
6171         * Control.cs: revert the is_recreating fix from the last
6172         ChangeLog.  It's definitely "right", but it breaks switching from
6173         an MDI form to a non-MDI form.  Will need to revisit that.
6174
6175         * Hwnd.cs: add a zombie flag, which means "the
6176         client_window/whole_window handles are invalid, but we're waiting
6177         for the DestroyNotify event to come in for them".  Set the flag to
6178         false explicitly if setting WholeWindow/ClientWindow, and also
6179         when Disposing.
6180         
6181 2006-09-13  Chris Toshok  <toshok@ximian.com>
6182
6183         * XplatUIX11.cs: rework window destruction slightly.
6184
6185         - when destroying the windows associated with a control, we don't
6186         need 2 separate XDestroyWindow calls.  Just the one for the
6187         whole_window (or for client_window if whole_window is somehow
6188         IntPtr.Zero -- can this happen?) is enough.
6189
6190         - reworked SendWMDestroyMessages slightly, so we always dispose
6191         the child control hwnd's after sending the messages.
6192         
6193         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6194         the two places it was used (one was even using hwnd.Handle and the
6195         other hwnd.client_window.  ugh), adding another call in
6196         SendWMDestroyMessages.  We need this new call because now the
6197         DestroyNotify events in the queue will be ignored for the child
6198         controls (as their hwnd's were disposed, and the window id's
6199         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6200
6201         - this fixes bug #79326.
6202
6203 2006-09-13  Chris Toshok  <toshok@ximian.com>
6204
6205         * Control.cs: don't always set is_recreating to false at the end
6206         of RecreateHandle, since sometimes we're not done (and won't be
6207         until WndProc handles the WM_DESTROY message).  Also, set
6208         is_recreating to false in the WM_DESTROY handling code.  Part of
6209         the fix for bug #79326.
6210
6211 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6212
6213         * X11DesktopColors.cs: Start the droppage of debugging messages.
6214
6215         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6216
6217 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6218
6219         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6220
6221 2006-09-12  Chris Toshok  <toshok@ximian.com>
6222
6223         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6224         to create it using SetDataSource.  Fixes bug #79151.
6225
6226 2006-09-11  Chris Toshok  <toshok@ximian.com>
6227
6228         * XEventQueue.cs: add a DispatchIdle property.
6229
6230         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6231         either the queue is null, or the queue has DispatchIdle set to
6232         true.
6233         (DoEvents): set queue.DispatchIdle to false around the
6234         peek/translate/dispatch message loop in this method.  This keeps
6235         Application.Doevents from emitting idle events.  Part of the fix
6236         for #78823.
6237
6238 2006-09-11  Chris Toshok  <toshok@ximian.com>
6239
6240         * DataGrid.cs (set_DataSource): make this work for both the
6241         winforms/datagrid test and ReportBuilder.  It seems as though when
6242         we've created a ListManager (or maybe it's if we have a
6243         BindingContext?), when we set the DataSource it clears the
6244         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6245         #79333.
6246
6247 2006-09-11  Chris Toshok  <toshok@ximian.com>
6248
6249         * XplatUIX11.cs: deal with queue being null, which happens in all
6250         the Clipboard functions.  Fixes one of the two problems mentioned
6251         in #78612.
6252
6253 2006-09-11  Chris Toshok  <toshok@ximian.com>
6254
6255         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6256         button on various spots (including outside the menu) works closer
6257         to MS, and doesn't crash.  Fixes #79343.
6258
6259 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6260
6261         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6262         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6263         and the internal comparer is set. When a new ListViewItemSorter is set,
6264         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6265         was specified. No further processing is necessary if SortOrder is set
6266         to it's current value. If Sorting is modified to None, and View is
6267         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6268         (either custom or our internal ItemComparer) to null, on 1.0 profile
6269         only set item_sorter to null if its our internal IComparer. If Sorting
6270         is modified to Ascending or Descending, then use our internal IComparer
6271         if none is set, and if the current IComparer is our internal one then:
6272         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6273         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6274         Enum.IsDefined to verify whether a valid View value is specified in
6275         its setter. Automatically sort listview items when listview is
6276         created. In Sort, do nothing if ListView is not yet created, or if
6277         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6278         to None or ListViewItemSorter was set to null). Added Sort overload
6279         taking a bool to indicate whether the ListView should be redrawn when
6280         items are sorted (we use this in ListViewItemCollection to avoid double
6281         redraws). Modified our internal IComparer to take the sort order into
6282         account. In Add and AddRange methods of ListViewItemCollection, also
6283         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6284         view), but use overload with noredraw option to avoid double redraw.
6285         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6286         true when View is Tile, and do the same when attempting to set View to
6287         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6288         for selected/checked indices, as it involves overhead when sorting is
6289         done while these collections are not used all that often. Instead
6290         we'll build the indices on demand. Modified IList implementation of
6291         CheckedIndexCollection to use public methods if object is int.
6292         Modified CheckedListViewItemCollection to hide checked items if
6293         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6294         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6295         IList implementation in SelectedIndexCollection to use public methods
6296         if object is int. Modified SelectedListViewItemCollection to hide
6297         selected items if listview is not yet created.
6298         * ListViewItem.cs: CheckedIndices list no longer needs to be
6299         maintained separately (see ListView changes). Also clone font, fixes
6300         test failure.
6301
6302 2006-09-11  Mike Kestner  <mkestner@novell.com>
6303
6304         * ComboBox.cs: if we are updating the contents of the currently
6305         selected index, refresh the control or the textbox selection.
6306         [Fixes #79066]
6307
6308 2006-09-11  Mike Kestner  <mkestner@novell.com>
6309
6310         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6311         the 'specified' logic has been moved there.  This seems like a bug 
6312         in Control.cs, since our current SetBoundsCore completely ignores 
6313         the specified parameter.  Peter's commit seems to indicate that is 
6314         the way the MS control implementation works.  [Fixes #79325]
6315
6316 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6317
6318         * XplatUI.cs: Set default_class_name to be composed
6319         of current domain id. This allows MWF to be loaded in multiple
6320         domains on Win32.
6321
6322 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6323
6324         * X11Keyboard.cs: If we are unable to obtain the input method, do
6325         not call CreateXic to create the input context.   Should fix
6326         #78944/79276.
6327
6328 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6329
6330         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6331           Simplified gnome support by adding more pinvokes to get the
6332           icon for a file or mime type.
6333
6334 2006-09-08  Jackson Harper  <jackson@ximian.com>
6335
6336         * MenuAPI.cs: Deslect popup context menu items before closing the
6337         window, so that you don't see the previously selected item
6338         selected when you reopen the menu.
6339         * TextControl.cs: Update the cursor position even if we don't have
6340         focus.  This fixes typing in things like the ComboBox.  I'm not
6341         totally sure we should always set the visibility if we don't have
6342         focus, but couldn't find any corner cases where the cursor showed
6343         up when it shouldn't.
6344
6345 2006-09-08  Chris Toshok  <toshok@ximian.com>
6346
6347         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6348         our arrays are length 256.  & 0xff before indexing.  Fixes the
6349         crash in bug #78077.
6350         
6351 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6352
6353         * ThemeWin32Classic.cs: 
6354         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6355         is true. Handle that check box too.
6356
6357 2006-09-07  Chris Toshok  <toshok@ximian.com>
6358
6359         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6360         79244.
6361
6362 2006-09-07  Chris Toshok  <toshok@ximian.com>
6363
6364         * Control.cs: in set_BackColor only do the work if
6365         background_color != value.
6366
6367         * XplatUIX11.cs: move the clearing of invalid areas (both client
6368         and nc) to the same block of code where we set (nc_)expose_pending
6369         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6370         so things that cause invalidates from within OnPaint will trigger
6371         another call to OnPaint.  Fixes bug #79262.
6372
6373 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6374
6375         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6376         * FileDialog.cs: Fix typo
6377
6378 2006-09-07  Jackson Harper  <jackson@ximian.com>
6379
6380         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6381         for tab pages if they have any.
6382
6383 2006-09-06  Mike Kestner  <mkestner@novell.com>
6384
6385         * Splitter.cs: use the "current" rect when finishing drag handle
6386         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6387
6388 2006-09-06  Mike Kestner  <mkestner@novell.com>
6389
6390         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6391         support offset splitters. [Fixes #79298]
6392
6393 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6394
6395         * Mime.cs: Fixed a bug that could override the global mime type
6396           result.
6397
6398 2006-09-05  Jackson Harper  <jackson@ximian.com>
6399
6400         * TabControl.cs: Better calculation method for setting the slider
6401         pos. Prevents crashes on really wide tabs.
6402         - Draw Image on tab pages if an image list is used.
6403
6404 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6405
6406         * MonthCalendar.cs: When Font changes, the Size should be
6407         updated to fit the new font's space requirements.
6408
6409 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6410
6411         * ListBox.cs: If the items are cleared with Items.Clear set
6412           top_index to 0.
6413
6414 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6415
6416         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6417         fire DateChanged event instead of DateSelected event when
6418         the date was changed by keyboard interaction.
6419
6420 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6421
6422         * DateTimePicker.cs: Handle DateChanged for the associated
6423         month_calendar control, and set month_calendar.Font from 
6424         OnFontChanged method, as well as resize the height of the
6425         control when needed. Make PreferredHeight proportional.
6426
6427 2006-09-01  Chris Toshok  <toshok@ximian.com>
6428
6429         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6430         properties.
6431
6432         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6433
6434 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6435
6436         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6437           for decorations (Fixes #79219)
6438
6439 2006-09-01  Mike Kestner  <mkestner@novell.com>
6440
6441         * ComboBox.cs: first stab at sorting plus some selection handling
6442         fixes to bring us more in line with MS behavior.  Also switches back
6443         to index based selection.  Alternative patches for index-based 
6444         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6445         and latency@gmx.de on bug 78848.  I assume they were similar to this
6446         code I've had simmering in my tree forever.
6447         [Fixes #78848]
6448
6449 2006-09-01  Chris Toshok  <toshok@ximian.com>
6450
6451         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6452         when setting list position guard against ending up with a -1 index
6453         (the other part of the fix for #78812).  Should probably make sure
6454         we don't need the analogous fix in the ItemDeleted case.
6455
6456         * DataGrid.cs:
6457         - in SetDataSource, work around the fact that the way
6458         OnBindingContextChanged is invoked will cause us to re-enter this
6459         method.  I'll remove the hack once I investigate
6460         OnBindingContextChanged.
6461
6462         - fix the logic in set_DataSource and set_DataMember (basically
6463         what to do if the other of the two is null.)
6464         
6465         - in OnListManagerItemChanged, we need to take into account the
6466         edit row when deciding whether or not to call RecreateDataGridRows
6467         (part of the fix for #78812).
6468
6469 2006-09-01  Jackson Harper  <jackson@ximian.com>
6470
6471         * Splitter.cs: Don't do anything if there is no control to affect
6472         (prevents us from crashing in weird tet cases).
6473         * TreeView.cs: Bounding box for the mouse movement reverting
6474         focus/selection back to previously selected node.  This matches
6475         MS, and makes the tree a lot more useable.
6476         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6477         use clipping so they are not drawn.  This fixes when the control
6478         is set to have a transparent background, or if it was over an
6479         image.
6480
6481 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6482
6483         * MimeIcon.cs: Improved handling for reading default icons when
6484           using gnome (2.16 made it necessary). Check and read svg icons
6485           first, then 48x48 and then 32x32 icons.
6486
6487 2006-08-31  Chris Toshok  <toshok@ximian.com>
6488
6489         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6490         visible.
6491
6492         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6493         ProcessKeyPreview.  Fixes part of #77806.
6494
6495         * DataGrid.cs: big patch.
6496
6497         - revert the queueing up of DataSource/DataMember if inside
6498         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6499         its delayed databinding.  Instead, call SetDataSource in
6500         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6501         #78811.
6502
6503         - Also, it wasn't mentioned in #78811, but the test case exhibits
6504         behavior that was lacking in our datagrid implementation - Columns
6505         that have mapping names that don't exist in the datasource's
6506         properties aren't shown.  Yuck.  To fix this I added the bound
6507         field to the column style, and basically any calculation to figure
6508         out anything about columns uses a loop to find the bound columns.
6509         still need to investigate if I can cache an array of the bound
6510         columns or if the indices must be the same.
6511
6512         - When setting CurrentCell, we no longer abort if the cell being
6513         edited was in the add row.  This fixes the other part of #77806.
6514
6515         - The new code also fixes #78807.
6516         
6517         * ThemeWin32Classic.cs: perpetrate the same disgusting
6518         column.bound field hack, and only render bound fields.
6519
6520 2006-08-31  Chris Toshok  <toshok@ximian.com>
6521
6522         * DataGridColumnStyle.cs: add bound field.  this field is true if
6523         the datasource has a property corresponding to the mapping name.
6524
6525         * DataGridTableStyle.cs: set the bound field on the column styles
6526         depending on whether or not we have a column for that property.
6527
6528 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6529
6530         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6531           splitter control (fixes #79228)
6532
6533 2006-08-31  Chris Toshok  <toshok@ximian.com>
6534
6535         * DataGridColumnStyle.cs: we need to delay the assignment of
6536         property descriptor until the last possible moment due to the lazy
6537         databinding stuff in the datagrid.  Also, fix the exceptions
6538         thrown by CheckValidDataSource to match MS.
6539
6540 2006-08-31  Jackson Harper  <jackson@ximian.com>
6541
6542         * Form.cs: When activated select the active control, if there is
6543         no active control, we select the first control.
6544         * XplatUIX11.cs: If there is no focus control when we get a
6545         FocusIn event, find the toplevel form and activate it.  This
6546         occurs when you popup a window, it becomes the focus window, then
6547         you close that window, giving focus back to the main window.
6548
6549 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6550
6551         * MonthCalendar.cs: 
6552         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6553         as StringFormat with Center alignments in MonthCalendar,
6554         instead of creating new ones when drawing the control. 
6555         Also, draw the month name in bold style.
6556
6557 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6558
6559         * Control.cs:
6560           - PerformLayout(): It would seem MS performs the fill even if the 
6561             control is not visible (part of #79218 fix)
6562           - ResetBackColor(): Use the setter to reset the color, to allow
6563             overriders to catch the change.
6564         * Form.cs:
6565           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6566           - CreateHandle(): dito (part of $79218 fix)
6567           - Don't set an icon if we have a dialog
6568         * ScrollableControl.cs:
6569           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6570           - ScrollIntoView(): No need to scroll if control is already visible
6571             (resolves fixme and fixes #79218)
6572
6573 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6574
6575         * MonthCalendar.cs: Change proportions in SingleMonthSize
6576         to match the aspect of the original control.
6577
6578 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6579
6580         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6581           get updated when they get maximized.
6582
6583 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6584
6585         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6586
6587 2006-08-29  Chris Toshok  <toshok@ximian.com>
6588
6589         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6590
6591 2006-08-29  Jackson Harper  <jackson@ximian.com>
6592
6593         * TreeView.cs: Need to track selected node and highlighted node,
6594         they aren't always the same thing, when the mouse is down on a
6595         node it is hilighted, but not selected yet.
6596         - Do the HideSelection stuff right
6597         - Need to focus on rbutton mouse down. And redraw selection when
6598         right click is mouse upped.
6599
6600 2006-08-29  Mike Kestner  <mkestner@novell.com>
6601
6602         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6603         when SubItems.Count < Columns.Count.  [Fixes #79167]
6604
6605 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6606
6607         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6608
6609 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6610
6611         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6612           from X. Only send based on ConfigureNotify if we don't have the
6613           correct location in hwnd (if the window manager moved us)
6614
6615 2006-08-28  Mike Kestner  <mkestner@novell.com>
6616
6617         * ListView.cs: remove a TODO. 
6618         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6619         [Fixes ListView part of #79166]
6620
6621 2006-08-28  Mike Kestner  <mkestner@novell.com>
6622
6623         * ListView.cs: move wheel handler to parent since it is focused
6624         instead of the item_control now.  [Fixes #79177]
6625
6626 2006-08-28  Mike Kestner  <mkestner@novell.com>
6627
6628         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6629         when the control is focused. [Fixes #79171]
6630
6631 2006-08-28  Mike Kestner  <mkestner@novell.com>
6632
6633         * ListView.cs: size the item and header controls for empty and
6634         unscrollable views.
6635         * ThemeWin32Classic.cs: draw disabled backgrounds.
6636         [Fixes #79187]
6637
6638 2006-08-28  Chris Toshok  <toshok@ximian.com>
6639
6640         * Form.cs: remove unused "active_form" static field.
6641
6642         * Hwnd.cs: lock around accesses to static windows collection.
6643
6644         * Application.cs: lock threads in Exit ().
6645
6646 2006-08-28  Chris Toshok  <toshok@ximian.com>
6647
6648         * NativeWindow.cs: lock around accesses to window_collection.
6649         
6650 2006-08-28  Chris Toshok  <toshok@ximian.com>
6651
6652         * Control.cs: err, fix this the right way, by locking on controls
6653         when using it.  not by making it synchronized.
6654
6655 2006-08-28  Chris Toshok  <toshok@ximian.com>
6656
6657         * Control.cs: make the static "controls" field synchronized, as it
6658         gets updated from multiple threads.
6659
6660 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6661
6662         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6663           Prevent other threads from exiting when calling thread sets quit state.
6664         * XEventQueue.cs: Added PostQuitState property
6665
6666 2006-08-27  Chris Toshok  <toshok@ximian.com>
6667
6668         * AsyncMethodData.cs: add a slot for the window handle.
6669
6670         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6671         window (the destination control's window, not the foster window).
6672
6673         * Control.cs (BeginInvokeInternal): store the window's handle in
6674         the AsyncMethodData.
6675         
6676
6677 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6678
6679         * XplatUIX11.cs:
6680           - PostQuitMessage: Removed resetting S.D display handle, we might have
6681             another loop started after calling PostQuitMessage (Fixes #79119)
6682           - Created destructor to reset S.D handle
6683
6684 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6685
6686         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6687
6688 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6689
6690         * TextControl.cs (Insert): Update the caret position even if we don't
6691           have a handle yet, just don't call the driver in that case.
6692         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6693           to the end of the new selection text (Fixes #79184)
6694
6695 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6696
6697         * Form.cs (Activate): Only activate if the handle is created)
6698         * Control.c:
6699           - Mark window as invisible when it's disposed
6700           - Check if window handle is created when setting window visible, 
6701             instead of relying just on the is_created variable
6702           - Check if object is disposed when creating the control (Fixes #79155)
6703
6704 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6705
6706         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6707           when allowing layout again. Otherwise we re-generate the anchoring 
6708           distance to the border again and actually alter what the user wanted
6709           This is ugly, it'd be better if we used DisplayRectangle instead of
6710           ClientRectangle for Control.UpdateDistances, but that causes us to
6711           have other problems (initial anchoring positons would be wrong)
6712           (Fixes #78835)
6713
6714 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6715
6716         * Control.cs:
6717           - The size and location setters shouldn't go directly to 
6718             SetBoundsCore, but to SetBounds, which triggers layout on the
6719             parent, then calls SetBoundsCore. (Related to fix for #78835)
6720           - SetBounds: Moved actual location update code into this function
6721             from SetBoundsCore, to match MS. Added call to PerformLayout if
6722             we have a parent (to trigger resizing of anchored parents if the 
6723             child size has changed (see testcase for #78835) 
6724         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6725           new control code
6726         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6727
6728 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6729
6730         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6731           System.Drawing when a toplevel window gets closed; there might
6732           be other toplevel windows belonging to the same app (Fixes #78052)
6733
6734 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6735
6736         * FileDialog.cs: After reading FileDialog settings from mwf_config
6737           use Desktop prefix only if a real folder doesn't exist anymore.
6738         * FontDialog.cs: Added char sets.
6739           It is now possible to select the font, size or style with the
6740           textboxes.
6741
6742 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6743
6744         * PrintPreviewDialog.cs: Use assembly name constants.
6745
6746 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6747
6748         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6749           scrollbar from whacking it's buttons)
6750
6751 2006-08-24  Chris Toshok  <toshok@ximian.com>
6752
6753         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6754         in this patch (aggregating setting Left/Top/Width/Height to
6755         setting Bounds on the scrollbars), but the crux of the fix is in
6756         Recalculate, where we scroll by the remaining scroll_position if
6757         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6758         serious.
6759
6760 2006-08-24  Jackson Harper  <jackson@ximian.com>
6761
6762         * MdiClient.cs:
6763         * MdiWindowManager.cs: If the form is made a non-mdi window we
6764         need to remove the form closed event so that closing forms works
6765         correctly.
6766
6767 2006-08-24  Jackson Harper  <jackson@ximian.com>
6768
6769         * Control.cs: Make IsRecreating internal so that the driver can
6770         check it
6771         - Temporarily remove the Hide when controls are removed, its
6772         making a whole bunch of things not work because visibility isn't
6773         getting reset elsewhere correctly
6774         * Form.cs: Need to do a full handle recreation when the mdi parent
6775         is set.
6776         * XplatUIX11.cs: If we are recreating handles don't dispose the
6777         HWNDs.  What was happening is the handles were being recreated in
6778         SendWMDestroyMessages, but then flow continued on in that method
6779         and destroyed the new handles.
6780
6781 2006-08-23  Jackson Harper  <jackson@ximian.com>
6782
6783         * Form.cs: MdiClient is always at the back of the bus
6784         * Control.cs: When the order of items in the collection is changed
6785         we need to reset the all_controls array
6786         - do the same sorta setup thats done when adding a control when a
6787         control is set on the collection.
6788
6789 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6790
6791         * TextBoxBase.cs (get_Text): Return an empty array if our document
6792           is empty (fixes #79052)
6793
6794 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6795
6796         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
6797           on WM_SYSCHAR messages (fixes #79053)
6798
6799 2006-08-23  Chris Toshok  <toshok@ximian.com>
6800
6801         * DataGrid.cs: fix flickering when scrolling vertically.
6802
6803 2006-08-23  Chris Toshok  <toshok@ximian.com>
6804
6805         * DataGrid.cs (EndEdit): only invalidate the row header when we
6806         need to.
6807
6808 2006-08-23  Chris Toshok  <toshok@ximian.com>
6809
6810         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
6811         methods.  fixes the flicker when scrolling around.
6812
6813 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6814
6815         * FileDialog.cs: Making sure the control is created before we get a 
6816           chance to use it with BeginInvoke (Fixes #79096)
6817
6818 2006-08-23  Chris Toshok  <toshok@ximian.com>
6819
6820         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
6821         width to use when painting the rows.
6822
6823 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6824
6825         * TextBoxBase.cs:
6826           - Throw ArgumentException if a negative value is passed to SelectionLength
6827           - Update the selection end if start is moved. end needs to be always
6828             after start. (Fixes #79095)
6829           - Track selection length; MS keeps the selection length even if start
6830             is changed; reset on all other operations affection selection
6831
6832 2006-08-22  Jackson Harper  <jackson@ximian.com>
6833
6834         * TreeView.cs: Make sure both scrollbars get displayed and sized
6835         correctly when the other bar is visible.
6836         - Use the original clip rectangle for checking if the area between
6837         the two scrollbars is visible, not the viewport adjusted clipping
6838         rectangle.
6839
6840 2006-08-22  Jackson Harper  <jackson@ximian.com>
6841
6842         * Binding.cs: We don't use IsBinding because it requires the
6843         control to be created, which really shouldn't be necessary just to
6844         set a property on the control.
6845
6846 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6847
6848         * ComboBox.cs: Some CB.ObjectCollection methods must throw
6849         ArgumentNullReferenceException when the argument is null.
6850
6851 2006-08-21  Jackson Harper  <jackson@ximian.com>
6852
6853         * Timer.cs: Track the thread that the timer is started in (NOT
6854         CREATED), this way messages for it will only be triggered on its
6855         queue.
6856         * XEventQueue.cs: Track the timers here, this makes timers per
6857         thread, like MS.
6858         * XplatUIX11.cs: The timers are moved to the XEventQueue.
6859
6860 2006-08-19  Chris Toshok  <toshok@ximian.com>
6861
6862         * XplatUIX11.cs: after further communication with pdb, we get the
6863         best of both worlds.  SetZOrder working for un-Mapped windows, and
6864         no X errors for un-mapped windows.
6865
6866 2006-08-19  Chris Toshok  <toshok@ximian.com>
6867
6868         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
6869         as it was causing pdn toolbars to not have the correct stacking.
6870
6871 2006-08-18  Mike Kestner  <mkestner@novell.com> 
6872
6873         * ListView.cs : guard against negative ClientArea.Width in scrollbar
6874         calculation.  Not sure why control should ever be setting a negative
6875         width though.  Fixes #78931.
6876
6877 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6878
6879         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
6880         null items in ObjectCollection class.
6881         * ListBox.cs.: Likewise.
6882
6883 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
6884
6885         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
6886           as the base method in ThemeWin32Classic should work fine.
6887           Fixed bug #78607.
6888
6889 2006-08-18  Jackson Harper  <jackson@ximian.com>
6890
6891         * Binding.cs: When validating if the value entered doesn't convert
6892         properly reset to the old value.
6893         * RadioButton.cs: Don't fire click when we get focus.
6894
6895 2006-08-18  Jackson Harper  <jackson@ximian.com>
6896
6897         * FileDialog.cs: Paint the selection on the directory combobox the
6898         same way as on MS. 
6899
6900 2006-08-17  Jackson Harper  <jackson@ximian.com>
6901
6902         * ErrorProvider.cs: Don't allow the error control to be selected.
6903         * Control.cs: Don't send the SetFocus messages, the control
6904         activation will do this, and if we do it blindly here validation
6905         does not work.
6906
6907 2006-08-17  Jackson Harper  <jackson@ximian.com>
6908
6909         * Control.cs:
6910         * ContainerControl.cs: Make validation events fire in the correct
6911         order.  TODO: For some reason the first validation event is not
6912         getting fired.
6913
6914 2006-08-17  Mike Kestner  <mkestner@novell.com> 
6915
6916         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
6917
6918 2006-08-17  Mike Kestner  <mkestner@novell.com> 
6919
6920         * ComboBox.cs : implement scroll wheel support for popped-down
6921         state. Fixes #78945. 
6922
6923 2006-08-17  Jackson Harper  <jackson@ximian.com>
6924
6925         * TreeView.cs: Specify treeview actions (old patch that didn't get
6926         committed for some reason).
6927         - Don't let the mouse wheel scroll us too far.  Just want to make
6928         the bottom node visible, not scroll it all the ways to the top.
6929
6930 2006-08-17  Jackson Harper  <jackson@ximian.com>
6931
6932         * XplatUIX11.cs: Mouse wheel events go to the focused window.
6933
6934 2006-08-17  Mike Kestner  <mkestner@novell.com> 
6935
6936         * ComboBox.cs : don't do mouseover selection in simple mode.
6937
6938 2006-08-16  Jackson Harper  <jackson@ximian.com>
6939
6940         * Form.cs: Fire the closing events for all the mdi child windows
6941         when a window is closed.  If the cancel args are set to true, the
6942         main window still gets the event fired, but it doesn't not close.
6943         * MdiWindowManager.cs: Do this closing cleanup in a Closed
6944         handler, instead of when the button is clicked, so cancelling the
6945         close works correctly.
6946         * ComboBox.cs: Send the mouse down to the scrollbar.
6947
6948 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6949
6950         * ListBox.cs: When passing 'null' to SelectedItem,
6951         set SelectedIndex to -1, to unselect items. This is the
6952         observed behaviour in .Net.
6953
6954 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
6955
6956         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
6957           MS flags saying there won't be any. (fixes #78800)
6958         * Control.cs (HandleClick): Made virtual
6959
6960 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6961
6962         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
6963           cultures. Fixed bug #78399.
6964
6965 2006-08-16  Jackson Harper  <jackson@ximian.com>
6966
6967         * Form.cs: Use the MdiClients MdiChildren property to access
6968         MdiChildren instead of creating the array from the child controls.
6969         * MdiClient.cs: Maintain a separate array of the mdi children, so
6970         that insertion order is maintained when the Z-order is changed.
6971
6972 2006-08-16  Mike Kestner  <mkestner@novell.com> 
6973
6974         * ListView.cs : add an ItemComparer and default to it for sorting.
6975         Fixes #79076, but sorting needs a complete overhaul to be compat with
6976         MS.
6977
6978 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
6979
6980         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
6981
6982 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
6983
6984         * Hwnd.cs (Mapped): Properly traverse the tree
6985
6986 2006-08-15  Chris Toshok  <toshok@ximian.com>
6987
6988         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
6989         pass manager.Current.GetType() to ParseData.  It has to be the
6990         property type.  So, hold off doing the ParseData until we're in
6991         SetPropertyValue where we know the type.  This fixes the crash in
6992         #78821 but the textbox is still empty.
6993
6994 2006-08-15  Chris Toshok  <toshok@ximian.com>
6995
6996         * DataGrid.cs:
6997         - when we're scrolling, only call Edit() again if the
6998         current cell is still unobscured. Fixes bug #78927.
6999         - when handling mousedown on a cell, ensure the cell is visible
7000         before calling Edit.
7001         - remove the properties from DataGridRow, and remove the
7002         DataGridParentRow class altogether.
7003         
7004
7005 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7006
7007         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7008           fire OnTextChanged by ourselves. There's no point calling base,
7009           we don't set the base value anywhere else. Fixes #78773.
7010
7011 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7012
7013         * ListBox.cs: Call CollectionChanged when modifying
7014         an item from Items indexer, to update the actual items
7015         in the list box.
7016
7017 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7018
7019         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7020         to match .Net behaviour.
7021
7022 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7023
7024         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7025
7026 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7027
7028         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7029
7030 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7031
7032         * MessageBox.cs: Prevent potential NRE exception.
7033         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7034
7035 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7036
7037         * MessageBox.cs: Calculate the owner of a messagebox, also make
7038           it topmost. Fixes #78753
7039
7040 2006-08-14  Chris Toshok  <toshok@ximian.com>
7041
7042         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7043         programmatically move windows.  first, set the PPosition hint as
7044         well as the USPosition hint.  Second include some code from pdb
7045         that sets the window type to NORMAL when we set the transient for
7046         hint.  This is because, in the absence of a window type, metacity
7047         thinks any window with TransientFor set is a dialog, and refuses
7048         to let us move it programmatically.  fascists.
7049
7050 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7051
7052         * XplatUIX11.cs: When setting normal hints, take into consideration
7053           an different hints previously set so we don't delete them (fixes #78866)
7054
7055 2006-08-12  Chris Toshok  <toshok@ximian.com>
7056
7057         * ToolBarButton.cs: make Layout return a boolean, if something to
7058         do with the button's layout changed.
7059
7060         * ToolBar.cs:
7061         - add another parameter to Redraw, @force, which all existing
7062           calls set to true.
7063         - make the Layout function return a boolean which is true if the
7064           layout has actually changed.  Redraw now uses this (and @force)
7065           to determine when to invalidate.  At present the only place
7066           where @force can be false is the call from OnResize, when
7067           background_image == null.  So, resizing a toolbar when the
7068           layout doesn't change results in no drawing.
7069
7070 2006-08-12  Chris Toshok  <toshok@ximian.com>
7071
7072         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7073         the VScrollBar and HScrollbar reversed.  oops.
7074
7075         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7076         scrollbars.  we were assigning them twice (once in
7077         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7078         therefore causing two scrollbar resizes (and redraws?) to happen
7079         per grid resize.
7080
7081 2006-08-12  Chris Toshok  <toshok@ximian.com>
7082
7083         * ToolBarButton.cs: redraw the entire button if the theme tells us
7084         to.
7085
7086         * Theme.cs: add ToolBarInvalidateEntireButton.
7087
7088         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7089         buttons, just the border.
7090
7091         * ThemeNice.cs: redraw the entire toolbar button since we need to
7092         draw the highlight image.
7093
7094         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7095         we need to redraw the entire button (not just the border).
7096
7097 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7098
7099         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7100           for vertical bars. Fixes the mismatches shown by #78513
7101
7102 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7103
7104         * FileDialog.cs: If a saved/remembered path doesn't exist
7105           anymore, fall back to "Desktop".
7106
7107 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7108
7109         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7110           parent. It's apparently legal to not have one
7111         * XplatUIX11.cs:
7112           - SetZOrder: Don't try to set Z-Order on an unmapped window
7113           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7114             it unless the coordinates are negative
7115
7116 2006-08-10  Mike Kestner  <mkestner@novell.com>
7117
7118         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7119         when setting to null per msdn docs.  Fixes #78854.
7120
7121 2006-08-10  Chris Toshok  <toshok@ximian.com>
7122
7123         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7124         flickering by setting a clip rectangle on the Graphics when we
7125         need to redraw just a particular menuitem.  Also, rename "OnClick"
7126         to "OnMouseDown" to reflect what it actually is.
7127         
7128         * Form.cs: track the OnMouseDown change.
7129
7130 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7131
7132         * CommonDialog.cs: Properly inherit the CreateParams from the form
7133           and only change what we need. Fixes #78865
7134
7135 2006-08-10  Chris Toshok  <toshok@ximian.com>
7136
7137         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7138         flickering in flat mode (and most of the flickering in general) by
7139         only invalidating the button border (and not the entire rectangle)
7140         when the state changes.  A couple of cases still flicker:
7141         ToggleButtons, and the dropdown arrow case when the user mouse
7142         ups.
7143
7144 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7145
7146         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7147           for german keyboards. Numlock state shouldn't affect the behaviour
7148           of the Del key. Fixes bug #78291.
7149
7150 2006-08-10  Chris Toshok  <toshok@ximian.com>
7151
7152         * ListControl.cs: remove the items.Clear line from BindDataItems,
7153         as this is the first thing done by both subclasses in their
7154         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7155         passed -1, refresh the list.  This gets databinding working when
7156         the datasource is set on the list before the datasource is
7157         populated (as in wf-apps/ReportBuilder.)
7158
7159         * ComboBox.cs: remove the argument to BindDataItems.  This call
7160         should really go away, and be initiated by the ListControl code.
7161
7162         * ListBox.cs: same.
7163
7164 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7165
7166         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7167           if no data is in the document when the control is displayed
7168
7169 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7170
7171         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7172           yes (fixes #78806)
7173         * TextControl.cs: 
7174           - PositionCaret: Allow positioning of caret but don't call methods 
7175             requiring a handle if the window isn't created yet
7176           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7177           - owner_HandleCreated: Don't position the caret, just update it's 
7178             location. User might have already set a different position
7179
7180 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7181
7182         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7183           windows. Screws up the returned coordinates for child windows. 
7184           Fixes #78825. I'm hoping this doesn't break something, since the
7185           code was explicitly put in 8 months ago, but no bug was attached.
7186           Menus still seem to work properly.
7187
7188 2006-08-08  Chris Toshok  <toshok@ximian.com>
7189
7190         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7191         supposed to do - delay data binding until the EndInit call.  Also,
7192         make the table style collection's CollectionChangeAction.Refresh
7193         work properly.
7194
7195         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7196         (with action = Refresh) when a consituent table's MappingName is
7197         changed.
7198
7199 2006-08-08  Chris Toshok  <toshok@ximian.com>
7200
7201         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7202         Invalidate, since changing the text can change the size of the all
7203         toolbar buttons.
7204
7205 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7206
7207         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7208           we don't have it yet
7209
7210 2006-08-08  Chris Toshok  <toshok@ximian.com>
7211
7212         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7213         dialog, as this causes X errors later on, since we actually
7214         destroy the window.  Instead, .Hide() it.
7215
7216 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7217
7218         * ComboBox.cs: Added focus reflection for popup window
7219         * XplatUIX11.cs: 
7220           - Removed transient setting for non-app windows for now, not sure it
7221             was needed
7222           - Fixed logic checking if we have captions when deciding 
7223             override_redirect, WS_CAPTION is two bits and a 0 check was not
7224             sufficient
7225           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7226             complicated
7227         * Form.cs: 
7228           - AddOwnedForm: Don't just add the form to the list, call the property
7229             to ensure the driver is informed about the ownership as well
7230           - CreateHandle: Set the TopMost status in the driver if we have an owner
7231         * XplatUI.cs: Fixed debug statement
7232
7233 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7234         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7235           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7236           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7237           TrackBarRenderer.cs: Make constructor private.
7238         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7239         * ProfessionalColorTable.cs: Make properties virtual.
7240
7241 2006-08-06  Duncan Mak  <duncan@novell.com>
7242
7243         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7244         is not changing.
7245
7246 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7247         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7248           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7249           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7250           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7251           Initial import of new 2.0 classes.
7252
7253 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7254         * Application.cs: Add 2.0 VisualStyles properties.
7255
7256 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7257         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7258           XplatUIX11.cs: Create property to allow access to existing private
7259           variable "themes_enabled"
7260
7261 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7262
7263         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7264         file size, as otherwise our class libraries fail using windows. Fixes
7265         bug #78759.
7266
7267 2006-08-04  Jackson Harper  <jackson@ximian.com>
7268
7269         * Form.cs:
7270         * XplatUIX11.cs: Move the toolwindow window manager creation into
7271         the X11 driver, this way on win32 we can let windows create/handle
7272         the toolwindows.
7273
7274 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7275
7276         * PrintDialog.cs: Remove some redundant checks, add some others,
7277         clean some code, and move the focus to the text boxes when the
7278         values are incorrect.
7279
7280 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7281
7282         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7283
7284 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7285
7286         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7287           handled correctly. Fixes bug #79001.
7288
7289 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7290
7291         * PrintDialog.cs: The "Copies" numeric up down must have
7292         set the Minimum property to 1; only if the value is bigger
7293         than 1, activate "Collate" check box. This is the behaviour of .Net.
7294         Also modify the Document elements only if it is not null.
7295
7296 2006-08-03  Jackson Harper  <jackson@ximian.com>
7297
7298         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7299         length. (We have a larger array then actual node count).
7300                 
7301 2006-08-03  Jackson Harper  <jackson@ximian.com>
7302
7303         * ComboBox.cs: Don't show selection by default.
7304         - The SelectAll isn't needed here, since the focus code should do
7305         that
7306         - DDL style lists to manual selection drawing, so when they
7307         get/lose focus they have to invalidate.
7308
7309 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7310
7311         * TextBoxBase.cs: Don't always show all selections by default.
7312
7313 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7314         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7315           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7316           Fixed various typos.
7317
7318 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7319
7320         * Control.cs: Removing the controls in a ControlCollection with
7321           Clear now hides the controls as expected. Fixes bug #78804. 
7322
7323 2006-08-03  Jackson Harper  <jackson@ximian.com>
7324
7325         * Control.cs: Revert previous focus patch, it breaks reflector.
7326
7327 2006-08-03  Jackson Harper  <jackson@ximian.com>
7328
7329         * ComboBox.cs: Cleanup selection and focus with the combobox.
7330         This also eliminates some duplicated keyboard code, since now
7331         everything is handled by the main class.
7332         - Make list selection work on mouse up instead of down, to match
7333         MS.
7334
7335 2006-08-02  Jackson Harper  <jackson@ximian.com>
7336
7337         * Control.cs: Setting focus needs to go through the whole
7338         selection mechanism.
7339
7340 2006-08-02  Chris Toshok  <toshok@ximian.com>
7341
7342         * PrintPreviewDialog.cs: change MinimumSize to use
7343         base.MinimumSize so it works.
7344
7345 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7346
7347         * TextControl.cs:
7348           - UpdateCaret: Added sanity check in case caret isn't defined yet
7349           - Line.Delete: Now updating selection and caret markers if we're
7350             transfering a node (Properly fixes #78323)
7351           - SetSelectionEnd: Added sanity check
7352         * TextBoxBase.cs: Removed broken attempt to fix #78323
7353
7354 2006-08-01  Chris Toshok  <toshok@ximian.com>
7355
7356         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7357         Close() call is handled in Form, not here.
7358
7359 2006-08-01  Chris Toshok  <toshok@ximian.com>
7360
7361         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7362         layout/rendering.
7363
7364         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7365         for sizes < 100% zoom.  The code now aggressively attempts to keep
7366         from calling document.Print (), and tries not to use the scaling
7367         g.DrawImage whenever possible (it still does if you scale to >
7368         100%, since usually that involves huge images).
7369
7370         * PrintPreviewControl.cs: hook up the close button.
7371
7372 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7373         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7374           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7375           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7376           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7377           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7378           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7379           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7380           Removed [Serializable] for 2.0 Event Handlers.
7381
7382 2006-07-31  Jackson Harper  <jackson@ximian.com>
7383
7384         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7385         * TextControl.cs: Uncomment out the body of this method.
7386
7387 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7388
7389         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7390           standard cursors.
7391
7392 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7393
7394         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7395           that embed TextBox and need selections visible even if textbox is not
7396           focused to enforce that behaviour.
7397         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7398           selection drawing
7399
7400 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7401
7402         * TextControl.cs:
7403           - Added new SetSelectionStart/SetSelectionEnd overloads
7404           - Fixed viewport width assignment to be accurate
7405           - Adjusted alignment line shift calculations to allow cursor on right
7406             aligned lines to be always visible at the right border (like MS)
7407         * TextBoxBase.cs:
7408           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7409           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7410           - CalculateScrollBars: Use ViewPort size instead of window size, to
7411             properly consider space occupied by the border and scrollbars 
7412             (Fixes #78661)
7413           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7414             calculations; no longer leaves artifacts
7415           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7416             calculation bugs (Still missing right/center align calculations)
7417
7418 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7419
7420         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7421           use of both scroll rect and clip rect, as they do the same.
7422
7423 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7424
7425         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7426           in the event handler (fixes #78912)
7427
7428 2006-07-31  Chris Toshok  <toshok@ximian.com>
7429
7430         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7431         grid.ListManager.Count, since grid.ListManager might be null.
7432         This of course begs the question "why are we drawing rows for a
7433         grid with no list manager (and therefor no rows)?"  Fixes the
7434         crash in bug #78929.
7435
7436 2006-07-31  Chris Toshok  <toshok@ximian.com>
7437
7438         * RelatedPropertyManager.cs: Don't always chain up to the parent
7439         ctor.  instead, call SetDataSource if the parent's position is !=
7440         -1.  Fixes the crash in #78822.
7441
7442 2006-07-31  Chris Toshok  <toshok@ximian.com>
7443
7444         * DataGrid.cs (get_ListManager): use field instead of property
7445         accessors for datasource and datamember.
7446         (RowsCount): make internal again.
7447         (OnMouseDown): end edits before resizing columns/rows.
7448         (OnMouseUp): restart edits after resizing columns/rows.
7449
7450 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7451
7452         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7453           This fixes the situation where the last set cursor is displayed
7454           whenever the mouse is over scrollbars.
7455
7456 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7457
7458         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7459         Document properties, as well as initial values.
7460
7461 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7462
7463         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7464           and ClientEdge results in a 3-pixel border, which is
7465           wrong.
7466
7467 2006-07-28  Jackson Harper  <jackson@ximian.com>
7468
7469         * TreeNodeCollection.cs: Fix the clear method.
7470         - Fix the Shrink also
7471
7472 2006-07-27  Jackson Harper  <jackson@ximian.com>
7473
7474         * TreeView.cs: Make sure the visible order is computed when we
7475         attempt to size the scrollbars (for trees that mess with the
7476         scrolling when they shouldn't.
7477         - Make sure to give the scrollbars valid values.
7478
7479 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7480
7481         * XplatUIX11.cs: Move motion compression code to where it
7482           has less performance impact
7483
7484 2006-07-26  Jackson Harper  <jackson@ximian.com>
7485
7486         * UpDownBase.cs: When the control is selected make the child
7487         controls non selectable, so that a click on them won't do a
7488         focus/unfocus cycle.
7489         - Don't give focus to the text box when the spinner is selected.
7490         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7491
7492 2006-07-26  Chris Toshok  <toshok@ximian.com>
7493
7494         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7495         satisfied with this solution.  If the bitmaps are small, we should
7496         just cache them in the PrintPreviewDialog and draw them here.
7497         Also, the layout is broken for the 2-up and 3-up cases.
7498
7499         * Theme.cs: add PrintPReviewControlPaint.
7500
7501         * PrintPreviewDialog.cs: first pass implementation.
7502
7503         * PrintPreviewControl.cs: first pass implementation.  No
7504         scrollbars yet.
7505
7506         * PrintDialog.cs: only validate fields if that particular portion
7507         of the UI is enabled.  Also, set the document's controller to a
7508         PrintControllerWithStatusDialog wrapping the document's print
7509         controller.
7510
7511         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7512         bring up a SaveFileDialog (i hope we don't want to match the
7513         behavior of the crappy windows file entry) and set the
7514         PrinterSettings.PrintFileName accordingly.
7515
7516 2006-07-26  Jackson Harper  <jackson@ximian.com>
7517
7518         * ContainerControl.cs: Add a field that disables auto selecting
7519         the next control in a container when the container is activated.
7520         * UpDownBase.cs: Don't select the text box when the up down is
7521         selected.
7522
7523 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7524
7525         * XEventQueue.cs: Added methods for peeking (used for compression
7526           of successive events)
7527         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7528           mouse move events (fixes #78732)
7529
7530 2006-07-25  Jackson Harper  <jackson@ximian.com>
7531
7532         * UpDownBase.cs: Use an internal class for the textbox so that we
7533         can control focus.  the updown control should always have focus,
7534         if either the text area or the buttons are clicked.
7535         - Send the key messages to the textbox, since it never actually
7536         has focus
7537         - Activate and decativate the textbox caret.
7538
7539 2006-07-24  Jackson Harper  <jackson@ximian.com>
7540
7541         * Control.cs: Use the directed select when selecting a control,
7542         this way the container controls override will get called and the
7543         whole ActiveControl chain will get triggered.  TODO: probably need
7544         to make sure this gets done everywhere instead of the old
7545         Select(Control).
7546         * ContainerControl.cs: Implement the directed Select method to
7547         find and activate the correct child control.    
7548         
7549 2006-07-22  Mike Kestner  <mkestner@novell.com>
7550
7551         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7552         menu handling code so that clicks without a grab work too.
7553         [Fixes #78914]
7554
7555 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7556
7557         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7558           Added some small optimizations.
7559
7560 2006-07-21  Matt Hargett  <matt@use.net>
7561
7562         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7563
7564 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7565
7566         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7567           tests pass and match MS in some strange border cases.
7568
7569 2006-07-21  Chris Toshok  <toshok@ximian.com>
7570
7571         * ThemeWin32Classic.cs: handle drawing of the relation links and
7572         parent row buttons.
7573
7574         * Theme.cs: change args to DataGridPaintParentRow.
7575
7576         * DataGrid.cs: Don't use controls for the relation links and
7577         parent buttons, so we have to handle all their interactions in
7578         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7579         when we're navigating through child tables, so we can reinstate
7580         selection, expanded state, current cell, etc.
7581
7582 2006-07-20  Chris Toshok  <toshok@ximian.com>
7583
7584         * ToolBar.cs: When we redraw a button, for whatever reason,
7585         there's no reason to redraw the entire toolbar.  Also, don't call
7586         Control.Refresh from within Redraw, as it's much heavier than
7587         Invalidate (which is really what we want).
7588
7589 2006-07-20  Chris Toshok  <toshok@ximian.com>
7590
7591         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7592         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7593         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7594         traces from within a debug IBindingList datasource
7595         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7596         to work in a similar fashion.
7597
7598 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7599
7600         * ListBox.cs: Don't call Sort () when setting 
7601         the Sorted property to false (avoid an unnecessary sort).
7602
7603 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7604
7605         * ListControl.cs: DataSource should throw an ArgumentException
7606         instead of a normal exception when the argument is not of the 
7607         correct type.
7608
7609 2006-07-20  Mike Kestner  <mkestner@novell.com>
7610
7611         * Control.cs: add InternalPreProcessMessage to allow us to steal
7612         key events before MWF gets its paws on them.  Adapted from a
7613         suggestion by eno.
7614         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7615         up/down/left/right navigation. Override the new internal control
7616         method to steal the events since they never make it to WndProc.
7617         * ToolBarButton.cs: don't worry about pushed when setting hilight
7618         since the drawing code prefers pushed to hilight. Invalidate on 
7619         Hilight changes. Fixes #78547 and #78525.
7620
7621 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7622
7623         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7624           the canvas size. Fixes #78868
7625
7626 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7627
7628         * Splitter.cs: Track requested split position until first layout
7629           is performed. Fixes #78871
7630
7631 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7632
7633         * Application.cs: Removed code that forces 1.x for the version
7634           number if the version started with 0. Not sure why that code was
7635           there and I couldn't find any bugs that indicated we needed it.
7636           Fixes #78869
7637
7638 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7639
7640         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7641           ResetDefaults(), just write some output to the console until it's
7642           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7643
7644 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7645
7646         * PropertyGridView.cs: set StartPosition of drop down forms
7647         so they appear in correct initial spot.  Fixes #78190.
7648
7649 2006-07-19  Mike Kestner  <mkestner@novell.com>
7650
7651         * ThemeWin32Classic.cs: use parent background color when drawing
7652         flat toolbars.  Restructure the conditionals to make sure non-flat
7653         non-Divider toolbars are filled too.  Fixes #78837.
7654
7655 2006-07-19  Mike Kestner  <mkestner@novell.com>
7656
7657         * ListBox.cs: Sort on collection changes even if the handle
7658         isn't created yet.  Fixes #78813.
7659
7660 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7661
7662         * ListControl.cs: DisplayMember should never be null,
7663         and now we assign String.Empty when null is passed to it (this
7664         is the .Net way).
7665
7666 2006-07-17  Mike Kestner  <mkestner@novell.com>
7667
7668         * ListViewItem.cs: restructure Font and subitem Font handling 
7669         to hold a specific font and refer back to owner on null.
7670         Fixes #78761.
7671
7672 2006-07-17  Mike Kestner  <mkestner@novell.com>
7673
7674         * ToolBar.cs: bandaid for side-effect of previous patch which was
7675         discarding explicit heights for non-AutoSize toolbars.  Need to
7676         extend my format tester to deal with AutoSize=false. Fixes #78864.
7677
7678 2006-07-15  Jackson Harper  <jackson@ximian.com>
7679
7680         * LabelEditTextBox.cs:
7681         * TreeView.cs: Use a new LabelEdit class for node editing, this
7682         class automatically 'closes' itself when it gets the enter key or
7683         loses focus.
7684         - Use the client rectangle when setting the trees scrollbars, so
7685         border style is taken into account.
7686         
7687 2006-07-14  Jackson Harper  <jackson@ximian.com>
7688
7689         * TreeNode.cs:
7690         * TreeView.cs: Make the editing work similar to MSs, firing the
7691         events correctly and ending edits correctly.
7692
7693 2006-07-14  Mike Kestner  <mkestner@novell.com>
7694
7695         * ToolBarButton.cs:
7696         * ToolBar.cs: layout restructuring and redraw enhancements to support
7697         formatting changes gracefully, like setting TextAlign, ImageList, 
7698         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7699         of the MS controls.  Things like flat toolbars ignoring button size
7700         but becoming constant sized at the largest button's size.  Normal
7701         toolbars with an image set cannot be shrunk smaller than the image,
7702         but text can be clipped/ignored.
7703         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7704         is zero.  Seems like DrawString should be smart enough to not put
7705         anything on screen though. Also trim labels and ellipsize at the char
7706         boundary, not word.
7707         Fixes #78711 and #78483.
7708
7709 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7710
7711         * FolderBrowserDialog.cs: Disable "New Folder" button and
7712           "New Folder" contextmenu menuitem if a folder like "My Computer"
7713           is selected.
7714
7715 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7716
7717         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7718         * FolderBrowserDialog.cs:
7719           - Use MWFConfig to store and read size and position settings
7720           - Added code to create a new folder (button or context menu).
7721             Use TreeView labeledit to change the name of the new folder.
7722
7723 2006-07-14  Jackson Harper  <jackson@ximian.com>
7724
7725         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7726         when the tree is scrolled we end editing.
7727
7728 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7729
7730         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7731           Down arrows
7732
7733 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7734
7735         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7736         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7737         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7738         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7739         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7740         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7741         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7742         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7743         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7744         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7745         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7746         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7747         ListViewItemSelectionChangedEventHandler.cs,
7748         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7749         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7750         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7751         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7752         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7753         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7754         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7755         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7756         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7757         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7758         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7759         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7760         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7761         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7762         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7763         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7764         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7765         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7766         WebBrowserNavigatingEventHandler.cs, 
7767         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7768
7769 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7770
7771         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7772         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7773         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7774         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7775         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7776         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7777         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7778         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
7779         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
7780         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
7781         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
7782         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
7783         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
7784         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
7785         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
7786         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
7787         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
7788         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
7789         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
7790         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
7791         ListViewItemStates.cs, MaskFormat.cs: Added
7792
7793 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
7794
7795         * PropertyGridView.cs: Fix keyboard navigation of drop down.
7796         Patch from eno for bug 78558.
7797         
7798 2006-07-13  Jackson Harper  <jackson@ximian.com>
7799
7800         * TreeView.cs: When an edit is finished make sure that the
7801         selected node is visible.
7802         - When setting the top/bottom use the scrollbars is_visible, so
7803         everything will be set correctly even if the tree isn't visible
7804         yet.
7805
7806 2006-07-13  Jackson Harper  <jackson@ximian.com>
7807
7808         * ComboBox.cs: Revert the item->index part of my previous patch.
7809         * TreeView.cs: Use LostFocus instead of Leave for detecting when
7810         the edit box has lost focus (duh).
7811         - Just make the edit box not visible when we get return, that will
7812         take the focus, which will call EndEdit
7813         * TreeNode.cs When we start editing, notify the treeview.
7814
7815 2006-07-12  Jackson Harper  <jackson@ximian.com>
7816
7817         * ComboBox.cs: Clear out old items before setting the item list.
7818         This prevents databound controls from having their items added
7819         twice.
7820         - Switch the combobox to use indices whereever possible instead of
7821         using Item's.  This allows usto navigate through lists that have
7822         more then one item with the same string value (ie a, b, b, a).
7823         - Scroll the listboxes scrollbar when a non visible item is
7824         highlighted
7825         - Allow keypress to cycle through all the possible values. For
7826         example if you have b1, b2, b3 and hold down the B key all the
7827         values will be cycled through.
7828         
7829 2006-07-12  Jackson Harper  <jackson@ximian.com>
7830
7831         * TextBoxBase.cs:
7832         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
7833         this using the internal methods.
7834         * Control.cs: Add OnGotFocusInternal.  A new method that allows
7835         controls to "override" OnGotFocus and change focus behavior if
7836         needed.
7837         - Same thing for LostFocus
7838         * ComboBox.cs: Pass off focus to the text control properly.
7839
7840 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
7841
7842         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
7843         * FolderBrowserDialog.cs: Almost a complete rewrite.
7844           - Better support for Environment.Specialfolders
7845           - Added support for MWFVFS
7846           - Made setting SelectedPath work
7847
7848 2006-07-12  Jackson Harper  <jackson@ximian.com>
7849
7850         * Control.cs: Optimze getting all the controls.
7851
7852 2006-07-11  Jackson Harper  <jackson@ximian.com>
7853
7854         * ContainerControl.cs: Override SETFOCUS in the container control,
7855         so that it is not selected on mouse click.
7856
7857 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
7858
7859         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
7860           Hopefully we will have a better way once all of focus is complete.
7861
7862 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
7863
7864         * ThemeWin32Classic.cs: Commented out some debug code and fixed
7865           a compile error with csc.
7866
7867 2006-07-11  Jackson Harper  <jackson@ximian.com>
7868
7869         * Control.cs: When hiding a control only select the next control
7870         if the current control was focused.
7871         - Don't handle enter/leave when setting/killing focus, this is
7872         done by the container control.
7873         - Remove is_selected, it's not needed anymore.
7874         - Add utility methods for selecting a child control, and for
7875         firing the Enter/Leave events.
7876         * ContainerControl.cs: When a control is activated fire the
7877         enter/leave events.
7878         - Don't wrap when processing the tab key, so that focus can be
7879         moved outside of the container.
7880         - Use the correct active control
7881
7882 2006-07-11  Jackson Harper  <jackson@ximian.com>
7883
7884         * ComboBox.cs: Remove some debug code that was blinding me.
7885         * UpDownBase.cs: These controls actually aren't implicit, they are
7886         visible to the user.
7887
7888 2006-07-10  Chris Toshok  <toshok@ximian.com>
7889
7890         * DataGrid.cs: move back to the is_adding boolean field.  god i
7891         hate this is_editing/is_adding/is_changing stuff.
7892
7893 2006-07-10  Chris Toshok  <toshok@ximian.com>
7894
7895         * DataGridTableStyle.cs: just check if the property type is bool.
7896         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
7897         Don't use CanRenderType.
7898
7899         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
7900         if our text == NullText.  Remove CanRenderType.
7901
7902         * DataGridBoolColumn.cs: nuke CanRenderType.
7903
7904         * DataGrid.cs: reenable some code to end the current edit inside
7905         of set_CurrentCell.  This fixes the other 1.1.16 regression.
7906         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
7907         Also, remove the visible_row_count arg from CalcRowHeaders, since
7908         we don't need to worry about the actual height of the area.
7909
7910 2006-07-10  Chris Toshok  <toshok@ximian.com>
7911
7912         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
7913         mode, just return.
7914
7915         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
7916         the real sense of the IsInEditOrNavigateMode property (true =
7917         navigate, false = edit).  Also, update OnKeyPress to reflect this.
7918
7919         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
7920         column style exists, we still need to set its property descriptor
7921         to match up with our list manager.
7922
7923 2006-07-10  Chris Toshok  <toshok@ximian.com>
7924
7925         * ThemeWin32Classic.cs: implement the new row/header painting
7926         approach.  The parent row painting will likely go away and
7927         replaced with label controls, but the rest seems to work ok (and
7928         efficiently).
7929
7930         * Theme.cs: change the way we draw datagrid rows.  we don't draw
7931         the row headers as a block now.  Instead we draw them in the
7932         normal draw-row loop.  Add some calls for drawing parent rows and
7933         relation rows.
7934
7935         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
7936         a default table style.  Set the defaults from ThemeEngine.Current,
7937         not SystemColors.  Fix lots of misc issues with property setters.
7938
7939         * DataGrid.cs: move loads of style information out of this class
7940         as it's being duplicated with DataGridTableStyle.  keep track of a
7941         special DataGridTableStyle for the properties we used to mirror
7942         here.  Switch all the style properties to access this table style
7943         instead of instance fields of this class.  Also add a internal
7944         class to represent parent rows (more needs to be stored here, like
7945         the selection state from the parent table, as well as the
7946         expansion state.)  Also, for datasources with relations, do the
7947         right thing for collapse/expand, and add support for the
7948         navigation/parent row buttons.
7949
7950         Lastly, fix the crash in the 1.1.16 build.
7951
7952         * GridTableStylesCollection.cs: make the explicit interface
7953         implementations call the class's methods as opposed to duplicating
7954         them.
7955
7956         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
7957         0 so the text doesn't jump around when we move the cursor.
7958
7959 2006-07-10  Jackson Harper  <jackson@ximian.com>
7960
7961         * TextBoxBase.cs:
7962         * ListBox.cs: Match MS's ToString (this makes debugging focus
7963         stuff infinitely easier).
7964
7965 2006-07-10  Jackson Harper  <jackson@ximian.com>
7966
7967         * Control.cs (SelectNextControl): When checking the control's
7968         parent use this instead of ctrl.parent so that null can be passed
7969         to SelectNextControl. (I have unit tests for this).
7970         - Remove unused var.
7971
7972 2006-07-10  Chris Toshok  <toshok@ximian.com>
7973
7974         * CurrencyManager.cs: correct one regression, the removal of the
7975         finalType field.  Also, add a MonoTODO on CanAddRows, implement
7976         Refresh() correctly, and fix some event emission in
7977         ListChangedHandler.
7978
7979 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
7980
7981         * FileDialog.cs: Don't use brackets for new folders if they exist
7982           under *nix. Instead use -(number of existing folders +1).
7983
7984 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
7985
7986         * FileDialog.cs:
7987           - Fixed really nasty bug #78771
7988           - Don't block the whole GUI when reading directories with a lot of
7989             entries. Use an other thread instead and call BeginInvoke to
7990             update the ListView in MWFFileView
7991
7992 2006-07-07  Chris Toshok  <toshok@ximian.com>
7993
7994         * Control.cs (Dispose): release any Capture when disposing.
7995
7996 2006-07-07  Chris Toshok  <toshok@ximian.com>
7997
7998         * LinkLabel.cs (Select): if we chain up to the parent, set
7999         focused_index to -1 so we'll search for the first available link
8000         the next time the user tabs into us.  Also, if the direction is
8001         backward and focused_index == -1, start the search from the last
8002         element.
8003
8004 2006-07-07  Chris Toshok  <toshok@ximian.com>
8005
8006         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8007         is beyond the end of the text, don't do anything.
8008         (CreateLinkPieces): set our ControlStyles.Selectable based on
8009         whether or not we have any links.
8010         (Link.Invalidate): use a loop instead of foreach.
8011         (Link.set_Start): null out owner.sorted_links so it'll be
8012         recreated by CreateLinkPieces.
8013
8014 2006-07-06  Chris Toshok  <toshok@ximian.com>
8015
8016         * LinkLabel.cs: revert the SetStyle change.
8017
8018 2006-07-06  Chris Toshok  <toshok@ximian.com>
8019
8020         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8021         (OnEnableChanged): s/Refresh/Invalidate
8022         (OnGotFocus): if we have a focused index already, refocus it (so
8023         if we mouse out/in to the window it'll focus the right link).
8024         (OnKeyDown): move the tab handling out of here.
8025         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8026         when we lose focus.
8027         (OnMouseDown): don't Capture here - Control handles it.  Also,
8028         focus the active link.
8029         (OnMouseUp): don't deal with Capture.
8030         (OnPaintBackgroundInternal): remove.
8031         (OnTextAlignChanged): CreateLinkPieces before calling the
8032         superclass's method.
8033         (OnTextChanged): call CreateLinkPieces before calling superclass's
8034         method.
8035         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8036         move around.
8037         (Select): implement this, moving the selection between different
8038         links, and call parent.SelectNextControl if we don't have another
8039         link to focus in the given direction.
8040         (CreateLinkPieces): call Invalidate instead of Refresh.
8041         
8042 2006-07-06  Chris Toshok  <toshok@ximian.com>
8043
8044         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8045         new LinkLabel internals.
8046
8047         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8048         over pieces looking for active/focused/etc links.  also, deal with
8049         runs of text (and links) with embedded \n's in them, and use
8050         MeasureCharacterRanges instead of MeasureString to figure out the
8051         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8052         two-step.
8053
8054 2006-07-04  Jackson Harper  <jackson@ximian.com>
8055
8056         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8057         XKB or key auto repeat, do it manually.  Without key auto repeat,
8058         when a key is held down we get key press, key release, key press,
8059         key release, ... with auto repeat we get key press, key press, key
8060         press ..., and then a release when the key is actually released.
8061
8062 2006-07-03  Jackson Harper  <jackson@ximian.com>
8063
8064         * TabControl.cs:
8065         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8066         rules, they are always control color regardless of the background
8067         color.
8068
8069 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8070
8071         * FileDialog.cs: Added internal class MWFConfig.
8072           Removed Registry support and replaced it with support for the new
8073           MWFConfig class. See MWFConfig comments for more information.
8074
8075 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8076
8077         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8078           rectangle. Added some patches from eno from bug #78490 and fixed
8079           the arrow position for small up and down CPDrawScrollButtons.
8080
8081 2006-06-30  Jackson Harper  <jackson@ximian.com>
8082
8083         * InternalWindowManager.cs: Remove some debug code.
8084         * Form.cs: When an MdiParent is set to null, the window is
8085         "detatched" and becomes a normal window.
8086         * MdiClient.cs: Don't bring the new child form to the front until
8087         it is activated (setting it as active does this), this makes the
8088         previously active forms titlebar get redrawn as inactive.
8089
8090 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8091
8092         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8093           with later controls
8094
8095 2006-06-29  Mike Kestner  <mkestner@novell.com>
8096
8097         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8098         arrow in keynav state.  Fixes #78682.
8099
8100 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8101
8102         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8103           order (fixes #78393)
8104
8105 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8106
8107         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8108           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8109           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8110           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8111           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8112           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8113           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8114           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8115           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8116           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8117           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8118           values)
8119
8120 2006-06-28  Mike Kestner  <mkestner@novell.com>
8121
8122         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8123
8124 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8125
8126         * PropertyGrid.cs,
8127           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8128           item lines from other area (It also makes BackColor consistent and
8129           compatible with .NET). Fixed bug #78564.
8130
8131 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8132
8133         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8134         Patch from Eno for #78555.
8135
8136 2006-06-27  Chris Toshok  <toshok@ximian.com>
8137
8138         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8139
8140         * DataGridColumnStyle.cs: same.
8141
8142         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8143         
8144         * DataGridDrawingLogic.cs: nuke.
8145
8146 2006-06-27  Chris Toshok  <toshok@ximian.com>
8147
8148         * DataGridTableStyle.cs: clean up the constructors, and build the
8149         list of child relations for this table.  I have no idea if this is
8150         where we should be doing it (it probably isn't), but since we're
8151         already iterating over the properties..
8152
8153         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8154         struct and array for keeping track of row information, similar to
8155         what's shown in a hack on
8156         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8157
8158         * Theme.cs: be consistent about the naming of DataGrid methods,
8159         prefering ColumnWidths and RowHeights over columnsWidths and
8160         RowsHeights.
8161
8162         * ThemeWin32Classic.cs: same, and also add support for variable
8163         sized rows (and the +/- expansion icons for related rows).
8164
8165 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8166
8167         * TextBoxBase.cs: Applied Eno's patch from #78660
8168
8169 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8170
8171         * Form.cs (ScaleCore): We don't want to scale our form if it's
8172           state is minimized or maximized, but we still need to scale our
8173           child windows. Also, added try/finally block to ensure layout
8174           gets reset (Fixes #78697)
8175
8176 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8177
8178         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8179
8180 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8181
8182         * Form.cs: Fixed c+p error and added check to resize form if minimum
8183           size is bigger than current size (Fixes #78709)
8184
8185 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8186
8187         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8188
8189 2006-06-26  Mike Kestner  <mkestner@novell.com>
8190
8191         * ComboBox.cs: only do Keypress handling in the combo when there  
8192         are items in the collection. Fixes #78710.
8193
8194 2006-06-26  Chris Toshok  <toshok@ximian.com>
8195
8196         * Binding.cs: make this work bi-directionally.  also, clear up
8197         other mixups between Push/Pull Data (e.g. we're supposed to pull
8198         data when validating).
8199
8200         * BindingManagerBase.cs: trim some fully qualified collection
8201         types.
8202
8203         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8204
8205 2006-06-23  Chris Toshok  <toshok@ximian.com>
8206
8207         * PropertyManager.cs: It appears (according to the unit tests)
8208         that PropertyManager doesn't use
8209         PropertyDescriptor.AddValueChanged to track propery value changes
8210         in its datasource, but uses the same scheme as Binding, where it
8211         looks for a <Property>Changed event and binds to it.
8212
8213         Also, according to the docs, IsSuspended always returns false for
8214         a property manager with a non-null datasource.
8215
8216 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8217
8218         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8219           need to update the actual DialogResult. (Fixes #78613)
8220
8221 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8222
8223         * Form.cs (ShowDialog): Release any captures before running the
8224           new message pump (fixes #78680)
8225
8226 2006-06-22  Mike Kestner  <mkestner@novell.com>
8227
8228         * ListView.cs: Layout column widths properly in details mode even 
8229         if HeaderStyle.None is set.  Fixes #78691.
8230
8231 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8232
8233         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8234
8235 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8236
8237         * Control.cs (ContainsFocus): Using new driver method to get focused
8238           window, instead of trying to use internal tracking var, which can
8239           recursion issues (Fixes #78685)
8240         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8241           XplatUIWin32.cs: Added GetFocus method to return focused window
8242
8243 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8244
8245         * ColorDialog.cs: when the mouse button is pressed inside the color
8246         matrix, don't let the cursor move out of it until the button is
8247         released, which is the behavior on windows. Changed 'colours' by
8248         'colors' to use the same word consistently.
8249
8250 2006-06-21  Chris Toshok  <toshok@ximian.com>
8251
8252         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8253         child relation and back, using a stack).  Also, remove
8254         GetDataSource and the code that calls it - it's not needed.  Also,
8255         track CurrencyManager.ListName's removal.
8256
8257 2006-06-21  Chris Toshok  <toshok@ximian.com>
8258
8259         * CurrencyManager.cs: push some of the original type checking from
8260         BindingContext.CreateBindingManager to here, and remove some of
8261         the finalType stuff.  Need more tests to make sure I've got the
8262         ListName part right, and we might need more in SetDataSource.
8263
8264         * PropertyManager.cs: add a ctor that takes just the datasource,
8265         and no property name.  Make SetDataSource work with a null
8266         property_name, and make Current return the data_source if the
8267         property descriptor is null.  this makes 'string foo = "hi";
8268         BindingContext[foo].Current' return "hi" as it should.
8269
8270         * RelatedCurrencyManager.cs: make this code more generic - there's
8271         no reason the parent manager has to be CurrencyManager, and
8272         there's no reason to pass the DataRelation.  It suffices to use a
8273         BindingManagerBase and PropetyDescriptor.
8274
8275         * RelatedPropertyManager.cs: make a similar change here.
8276         
8277         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8278         flower I knew it could be.
8279
8280 2006-06-20  Chris Toshok  <toshok@ximian.com>
8281
8282         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8283         data in the source has changed and we need to update the control,
8284         so s/PullData/PushData.
8285
8286         * CurrencyManager.cs: Refresh is meant to update the control from
8287         data in the datasource.  So, s/PullData/PushData.
8288
8289         * BindingContext.cs: add more ugliness (we weren't handling the
8290         case where data_source = DataTable and data_member = column_name).
8291
8292         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8293         from the perspective of the datasource.  PullData pulls from the
8294         control, PushData pushes to the control.
8295
8296 2006-06-20  Chris Toshok  <toshok@ximian.com>
8297
8298         * BindingContext.cs: rewrite the CreateBindingManager code to
8299         handle navigation paths more or less properly.  This could
8300         definitely stand some more work, in particular to push the
8301         recursion up to the toplevel.  But that relies on fixes in other
8302         places (System.Data comes to mind).
8303
8304         Also, move to a flat hashtable (and encode the twolevel nature of
8305         the dictionary into the hash key).  This lets us implement the
8306         IEnumerable.GetEnumerator method.
8307
8308         * RelatedCurrencyManager.cs: new class.  Update our view based on
8309         our relation and our parent CurrencyManager's position.
8310
8311         * CurrencyManager.cs: split out some logic from the ctor into
8312         SetView, so it can be called from the new RelatedCurrencyManager
8313         subclass.
8314
8315         * RelatedPropertyManager.cs: new class.  Update our datasource
8316         based on the position of our parent CurrencyManager.
8317
8318         * PropertyManager.cs: split out some logic from the ctor into
8319         SetDataSource, so it can be called from the new RelatedDataSource
8320         subclass.  Also, make the Current getter return the value
8321         of the PropertyDescriptor, not the data_source.
8322
8323         * Binding.cs: no need to duplicate the string splitting code here.
8324
8325 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8326
8327         * Control.cs:
8328           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8329             of the control is not altered, even though  we might be changing the
8330             internal state of the control (#78458)
8331           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8332             OnEnabledChanged, to allow easy altering of any child window state
8333           - OnEnabledChanged: Added code to enable/disable driver window state
8334           - OnParentEnabledChanged: Instead of firing the event, call 
8335             OnEnabledChanged, which will fire the event and also a) set driver
8336             window state and pass the enabled state to any grandchildren (#78458)
8337
8338 2006-06-19  Jackson Harper  <jackson@ximian.com>
8339
8340         * InternalWindowManager.cs: We don't set the cursor explicitly
8341         thats done via the response to NCHITTESTs.
8342         - Don't need to adjust for titlebar heights anymore, the
8343         coordinates are coming in the correct coordinates now (see peters
8344         last patch).
8345
8346
8347 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8348
8349         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8350           being translated relative to whole window, instead of client window.
8351           That caused broken offsets on mouseclick (and caused gas for our
8352           InternalWindowManager)
8353
8354 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8355
8356         * TextControl.cs:
8357           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8358           - Undo(): Added replay of cursor move on DeleteChars action; added
8359             calling Undo() again if a recorded cursor move is invalid (to
8360             ensure that some action is performed on Undo)
8361         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8362
8363 2006-06-16  Jackson Harper  <jackson@ximian.com>
8364
8365         * MdiClient.cs: Instead of just sizing maximized windows when
8366         there is a resize we also have to adjust the Y of minimized
8367         windows, so they stay pinned to the bottom of the mdi container.
8368         - Eliminate separate tracking of the active control, we can just
8369         get this from the controls collection.
8370         - Paint the decorations for the newly activated titlebar so we get
8371         a pretty blue bar.
8372         * InternalWindowManager.cs:
8373         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8374         even if they are a tool window.
8375         
8376 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8377
8378         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8379           undo buffer, these can happen when text was deleted and the cursor
8380           was recorded first. Since we will also have a recorded cursor
8381           after the delete this is not an issue. (Fixes #78651)
8382
8383 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8384
8385         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8386           instead properly track control states internally (allows us to
8387           remove is_selected from Control)
8388
8389 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8390
8391         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8392         whose width is not a multiple of 8.
8393
8394 2006-06-13  Jackson Harper  <jackson@ximian.com>
8395
8396         * MdiClient.cs:  Only maximize the next child if the current one
8397         is maximized.
8398
8399 2006-06-13  Chris Toshok  <toshok@ximian.com>
8400
8401         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8402         modified.  Also, guard against grid or grid_drawing being null in
8403         Invalidate.
8404
8405         * DataGrid.cs: Reformat tons of getters/setters.  In the
8406         DataMember setter, just call SetNewDataSource instead of
8407         duplicating some of its functionality.  In SetNewDataSource, don't
8408         check ListManager for null, since the property getter creates the
8409         object if needed.
8410
8411         * DataGridTableStyle.cs: don't set TableStyle or call
8412         SetDataGridInternal on the column here, it's done in
8413         GridColumnStylesCollection.Add.
8414
8415         * GridColumnStylesCollection.cs: fix all the explicit interface
8416         implementations to just call our methods.  Nuke AddInternal() and
8417         move the body of it to Add().  Also, add a call to
8418         column.SetDataGridInternal to Add().
8419
8420         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8421         base()+duplicate code.  Also, use the Format property instead of
8422         format to generate an Invalidate ala MS.  Lastly, create the
8423         textbox here, unconditionally.
8424         (set_Format): call Invalidate.
8425         (get_TextBox): no need to call EnsureTextBox.
8426         (Commit): remove the message box.
8427         (Edit) remove the call to EnsureTextBox.
8428         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8429         (EnterNullValue): no need to check textbox for null.
8430         (HideEditBox): no need to check textbox for null.
8431         (SetDataGridInColumn): add the textbox to the grid's controls.
8432         (EnsureTextBox): nuke.
8433         
8434 2006-06-13  Jackson Harper  <jackson@ximian.com>
8435
8436         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8437         and redraw the buttons when needed. Unhook when the window is
8438         unmaximized.
8439         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8440         needs this so that it can redraw its buttons when the menu is
8441         repainted.
8442         * InternalWindowManager.cs:
8443         * Form.cs: The method order has changed for DrawMaximizedButtons,
8444         so that it can be a PaintEventHandler.
8445         
8446 2006-06-13  Jackson Harper  <jackson@ximian.com>
8447
8448         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8449         window is activated and maximized, even if it wasn't before.
8450         - When  a new window is activated repaint the decorations of the
8451         old one, so that it no longer has the Active "look" (the blue
8452         titlebar).
8453         * InternalWindowManager.cs: Open up CreateButtons to base classes
8454         so they can recreate the buttons on state changes.
8455         - If a window is maximized give it all three buttons
8456         * MdiWindowManager.cs: Create the titlebar buttons when the state
8457         is changed, this is needed because a toolwindow will not have all
8458         three buttons until it is maximized.
8459
8460 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8461
8462         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8463           Fixed bug #78609.
8464
8465 2006-06-12  Jackson Harper  <jackson@ximian.com>
8466
8467         * KeysConverter.cs: Make sure we handle the Ctrl special case
8468         if its the only key.
8469         
8470 2006-06-12  Jackson Harper  <jackson@ximian.com>
8471
8472         * Theme.cs: Add a method to get the size of a managed window
8473         toolbar button.
8474         * InternalWindowManager.cs: Remove the ButtonSize property, this
8475         should be retrieved from the theme.
8476         * MdiWindowManager.cs: Get the button size from the theme
8477         * ThemeWin32Classic.cs: Make the method to get the managed window
8478         titlebar button size public.
8479         - Handle the different button sizes of maximized toolwindows
8480         (should match any maximized window).
8481         - Get the titlebar height from the theme, not the WM (which gets
8482         it from the theme).
8483
8484 2006-06-12  Jackson Harper  <jackson@ximian.com>
8485
8486         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8487         event down to the mdi window manager.
8488         - Expose some extra stuff to base classes
8489         - Make sure to end the Capture on an NC Mouse up, so that we can
8490         get double clicks properly, and the sizing doens't stick.
8491         - When doing PointToClient contain it in the workable desktop
8492         area, this prevents windows from changing size when the cursor is
8493         pulled outside of the working area while sizing.
8494         * MdiWindowManager.cs: When we get a double click maximize the
8495         window.
8496         - Reset the cursor after handling mode changes.
8497
8498 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8499
8500         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8501           current desktop, instead of just assuming a 0, 0 origin. This
8502           is needed for our internal window manager, to know the top
8503           margin of the desktop
8504
8505 2006-06-12  Chris Toshok  <toshok@ximian.com>
8506
8507         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8508         we need this to get rid of the selected background in the bool
8509         column.
8510         (CancelEditing): move the ConcedeFocus call to above the Abort
8511         call.  Also, set is_changing to false and invalidate the row
8512         header if we were changing before.
8513         (ProcessKeyPreviewInternal): remove, since noone outside this
8514         class calls it anymore.  Roll the code into ProcessKeyPreview.
8515         (EndEdit): remove the internal version.
8516         (InvalidateCurrentRowHeader): make private.
8517
8518         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8519         Keys.Escape handling (and with it the last call to
8520         DataGrid.EndEdit from outside the class.)
8521
8522
8523 2006-06-12  Chris Toshok  <toshok@ximian.com>
8524
8525         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8526         (OnKeyPress): set isedit to true.
8527         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8528         already handled by the grid.
8529
8530         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8531         right.  ugh.
8532         (set_DataSource): SetDataSource always returns true, so stop
8533         putting it in an if statement.
8534         (EndEdit): get rid of some {}'s
8535         (ProcessGridKey): return true in case Keys.Escape.
8536         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8537         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8538         PositionChanged, stopped connecting to CurrentChanged.
8539         (GetDataSource): simplify this a bunch.
8540         (SetDataSource): change return type from bool to void.
8541         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8542         to this, and make sure we don't set ListManager.Position inside
8543         set_CurrentCell.
8544         (OnListManagerItemChanged): if we're passed an actual index,
8545         redraw that row.
8546
8547         * CurrencyManager.cs (set_Position): don't call PullData here.
8548
8549 2006-06-09  Jackson Harper  <jackson@ximian.com>
8550
8551         * TreeNode.cs:  Recalculate the visible order before doing the
8552         Expand/Collapse Below calls, because those calls generate an
8553         expose.
8554         - Reduce calls to the TreeView property, which is mildly expensive
8555         by using a local var.
8556         * Form.cs: Layout the MDI child windows when creating the parent
8557         form.
8558         - Don't use the internal constructor anymore
8559         * MdiClient.cs: use the parent form width/height (if available)
8560         when laying out the child windows, we do this because the
8561         mdiclient isn't docked yet when the initial layout is done.
8562         - Don't need an internal constructor anymore.
8563
8564 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8565
8566         * FileDialog.cs: handle access errors when trying to create a folder
8567         or changing to a directory. No need to initialize out parameters.
8568
8569 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8570
8571         * FileDialog.cs: Append a number when creating a new folder if the
8572           folder already exists (use parenthesis instead of square brackets)
8573
8574 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8575
8576         * FileDialog.cs:
8577           - Disabled registry support for windows and added better registry
8578             error checking for other systems (need to investigate why it
8579             works perfectly on my system)
8580           - If a folder already exist show an error MessageBox instead of
8581             trying to create an indexed name.
8582           - Fixed a non intentional typo.
8583
8584 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8585
8586         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8587
8588 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8589
8590         * FileDialog.cs: When creating a new folder don't crash if the
8591           folder already exists.
8592
8593 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8594
8595         * FileDialog.cs: Allmost a complete rewrite.
8596           - added a "virtual" file system that handles the differences
8597             between unix and windows file systems (especially the directory
8598             structure). Moved most of the directory and file handling code
8599             into the vfs.
8600             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8601             UnixFileSystem and FSEntry.
8602           - Recently used folder/directory, size, location and used file names
8603             (file name ComboBox) are now stored in the registry and get read
8604             before the dialog shows up (fixes part 6 of bug #78446).
8605           - Creation of new folders/directories is now possible (context menu
8606             or ToolBar). Added TextEntryDialog for this that fills in the gap
8607             until ListView.LabelEdit works.
8608           - Fixed cursor handling (bug #78527) and focus handling for
8609             PopupButtonPanel
8610           - Various "Search in" ComboBox enhancements. The content of the
8611             dropdown listbox now almost matches ms.
8612           - Changed the behaviour when the user switches to SpecialFolder
8613             Recent to show the ListView in View.Details.
8614           - Beside using the ToolBar to change the View property of the
8615             file ListView it is now possible to use the context menu too.
8616
8617 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8618
8619         * ComboBox.cs: Don't create a new ObjectCollection when an item
8620           gets inserted. Just insert the item in the existing object_items
8621           ArrayList.
8622
8623 2006-06-08  Jackson Harper  <jackson@ximian.com>
8624
8625         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8626         that the treeview and root node checks are done also, this fixes a
8627         regression i caused in the unit tests.
8628
8629 2006-06-07  Wade Berrier <wberrier@novell.com> 
8630
8631         * RichTextBox.cs: More ISO8859-1 -> unicode
8632
8633 2006-06-07  Mike Kestner  <mkestner@novell.com>
8634
8635         * ComboBox.cs : use items to hold highlight/selection so that
8636         collection insertions don't require synchronization.
8637
8638 2006-06-07  Jackson Harper  <jackson@ximian.com>
8639
8640         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8641         routine.  We now always keep the sized edge at the cursor instead
8642         of computing movement and adjusting rects.  There is one buglet
8643         with this method though when the cursor is moved over area that
8644         the window can not expand too (such as the toolbars on the desktop).
8645
8646 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8647
8648         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8649         here. Fixes crash on startup in AlbumSurfer.
8650
8651 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8652
8653         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8654           values
8655
8656 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8657
8658         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8659         statement to avoid calling XNextEvent which will block if another thread
8660         took the event that we were expecting. Fixes bug #78605.
8661
8662 2006-06-07  Mike Kestner  <mkestner@novell.com>
8663
8664         * ListView.cs : isolated checkbox clicking from the selection logic.
8665         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8666
8667 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8668
8669         * Form.cs: Check that the value passed to Form.DialogResult
8670         is a valid enum value.
8671
8672 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8673
8674         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8675         Computer'. Clicking it in the network view goes to 'My Computer'.
8676         Added CIFS filesystem type. Display the mount point of filesystems.
8677         Avoid duplicate mount points (happens for me with CIFS);
8678
8679 2006-06-06  Jackson Harper  <jackson@ximian.com>
8680
8681         * InternalWindowManager.cs: Draw the maximized windows buttons
8682         when resizing.
8683
8684 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8685
8686         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8687         all other dialogs. Fixes bug #78585.
8688
8689 2006-06-06  Mike Kestner  <mkestner@novell.com>
8690
8691         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8692         Only invalidate checkbox on checkstate changes to avoid flicker.
8693         * ListBox.cs : avoid unselect/select when clicking selected item.
8694         avoid reselection flicker for already multiselected items.
8695         Fixes #78382.
8696
8697 2006-06-06  Jackson Harper  <jackson@ximian.com>
8698
8699         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8700         the parent form so that the menu is removed if needed.
8701
8702 2006-06-06  Mike Kestner  <mkestner@novell.com>
8703
8704         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8705         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8706
8707 2006-06-06  Mike Kestner  <mkestner@novell.com>
8708
8709         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8710
8711
8712 2006-06-06  Jackson Harper  <jackson@ximian.com>
8713
8714         * Control.cs: Use the property (instead of the field) to get the
8715         default cursor so it is instantiated correctly.
8716         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8717         resizes so we need to manually repaint the window decorations here.
8718         - Set the titlebar button locations as soon as they are created,
8719         otherwise they are not set correctly on win32.
8720         
8721 2006-06-06  Chris Toshok  <toshok@ximian.com>
8722
8723         * CurrencyManager.cs (set_Position): call PullData before
8724         OnCurrentChanged.
8725         (AddNew): after calling IBindingList.AddNew, update our
8726         listposition, and call OnCurrentChanged/OnPositionChanged (without
8727         calling PullData).
8728         (OnCurrentChanged): remove the call to PullData from here.
8729         (OnItemChanged): remove the call to PushData from here.
8730         (OnPositionChanged): change the test from == null to != null to
8731         match the other methods.
8732         (ListChangedHandler): the grossest part of the patch.  Implement
8733         this such that it passes the unit tests in CurrencyManagerTest and
8734         the output more or less matches that of MS's implementation.
8735  
8736 2006-06-06  Mike Kestner  <mkestner@novell.com>
8737
8738         * ListView.cs : only update check state on single click.
8739         * ThemeWin32Classic.cs : fix focus drawing for details view without
8740         fullrowselect.  Fixes #78454.
8741         * XplatUIX11.cs : fix for double click emission.
8742
8743 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8744
8745         * PropertyGridView.cs : Applied Atsushi's patch to fix
8746         font dialog bug  (#78197).
8747
8748 2006-06-05  Jackson Harper  <jackson@ximian.com>
8749
8750         * TreeNode.cs: Compute the next node for expanding/collapsing
8751         correctly. We now factor in nodes without a NextNode
8752         correctly. (Fixes somes cases in nunit-gui).
8753         * InternalWindowManager.cs: Set the bounds when updating the
8754         virtual position of a tool window.
8755         
8756 2006-06-05  Chris Toshok  <toshok@ximian.com>
8757
8758         * DataGrid.cs: rename cached_currencymgr to list_manager.
8759         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8760         some.
8761         (CurrentRow, CurrentColumn): single accessors so we can make the
8762         cursor movement code a lot easier to understand.
8763         (CurrentRowIndex): implement this in terms of CurrentRow.
8764         (BeginEdit): clean this up a bit.
8765         (CancelEditing): sort out the is_editing/is_changing/is_adding
8766         stuff a little.
8767         (EndEdit): minor changes.
8768         (OnKeyDown): add a comment about a (most likely) unnecessary
8769         check.
8770         (OnMouseDown): cancel editing when we click on a row header.  And
8771         use the CurrentRow setter, not CurrentCell.
8772         (ProcessDialogKey): directly call ProcessGridKey.
8773         (UpdateSelectionAfterCursorMove): factor out this common block of
8774         code (it's used everywhere that we move the cursor by updating row
8775         or column).
8776         (ProcessGridKey): pretty substantial overhaul.  Use the
8777         CurrentRow/CurrentColumn properties to make the code a lot more
8778         readable.  Only use the CurrentCell property when we have to
8779         modify both row and column at once.  Tab behavior is still broken,
8780         and Delete is untested.
8781         (Select): if we have no selected rows, set selection_start to
8782         @row.
8783         (EditCurrentCell): rename EditCell this.  It was only ever invoked
8784         with CurrentCell as the arg, so drop the arg and rename it.
8785
8786         * DataGridColumnStyle.cs: clean up the constructors a little, and
8787         drop CommonConstructor().
8788
8789         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
8790         actually get notified when the user hits it.
8791         (ProcessKeyMessage): *substantially* simplify this method.
8792         There's no reason (that I can see) for the textbox to be making
8793         calls into the datagrid at all.  Remove all of them but the ones
8794         for Enter handling.  those will take some more work.
8795
8796         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
8797         calling HideEditBox.
8798         (HideEditBox): if we have an active textbox, render it invisible
8799         without causing a re-layout of the datagrid.
8800
8801 2006-06-05  Mike Kestner  <mkestner@novell.com>
8802
8803         * ListView.cs : fix NRE crasher when focuseditem is cleared by
8804         collection changes by resetting it to Items[0].  Fixes #78587.
8805
8806 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8807
8808         * MessageBox.cs: if the height of the text is larger than the icon_size,
8809         use that. Fixes bug #78575.
8810
8811 2006-06-05  Jackson Harper  <jackson@ximian.com>
8812
8813         * TreeView.cs: Fix line drawing when scrolling.  To do this each
8814         node is basically responsible for drawing its entire horizontal
8815         area.  When drawing a node it draws its parent node lines if
8816         needed.
8817         - Adjust the clip area to the viewport rectangle
8818         - Fix Left/Right key handling to match MS. (It expand/collapses
8819         and moves to parents/first child but does not move selection to
8820         sibling nodes).
8821         - Fix SetTop to work with new bound calculation code
8822         - When scrollbars are no longer needed we need to reset scrolling
8823         vars and recalculate the visible order so the redraw is correct
8824         * TreeNode.cs: We can't expand/collapse nodes with no children.
8825
8826 2006-06-03  John Luke  <john.luke@gmail.com> 
8827
8828         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
8829         so the colors work without dev packages
8830         
8831 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
8832
8833         * Control.cs 
8834           - Select: Implemented to just use activate. Seems to match MS 
8835             behaviour closest. Documented to only do actual control walking 
8836             based on it's parameters if in a container control so I moved 
8837             the code there.
8838           - Removed selection check logic from our internal Select() method
8839         * ContainerControl.cs:
8840           - Select: Moved selection logic from Control here, since MS documents
8841             that containers obey the bool arguments. No longer calling base
8842
8843 2006-06-02  Jackson Harper  <jackson@ximian.com>
8844
8845         * TreeView.cs: If the selected node isn't changed when we get
8846         focus update the previously selected node so that we see the
8847         selection box.
8848
8849 2006-06-02  Mike Kestner  <mkestner@novell.com>
8850
8851         * ComboBox.cs: restructure grab and general mouse event handling.
8852         Make the composite control raise mouse events like it was a single
8853         control for leaves/enters/motion/up/down events.  fix dropdown list
8854         coordinate mangling and refactor it into the scrollbar subclass to
8855         reduce code duplication.  Fixes #78282 #78361 and #78457.
8856
8857 2006-06-02  Mike Kestner  <mkestner@novell.com>
8858
8859         * ScrollBar.cs: remove Capture setting/clearing, as it happens
8860         automatically in the Control.WndProc.
8861
8862 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8863
8864         * FileDialog.cs: fix crash when running SharpChess, which sets the
8865         FilterIndex to 2 with only one Filter.
8866
8867 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8868
8869         * ToolBar.cs: add SizeSpecified property.
8870         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
8871         try to figure out our real size, otherwise fallback to what the
8872         container says.
8873
8874 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
8875
8876         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
8877         * Control.cs (WndProc): MS always calls the DefWndProc to pass
8878           up the event
8879
8880 2006-06-01  Mike Kestner  <mkestner@novell.com>
8881
8882         * ListView.cs: revamp the focus management in ListView.  It still
8883         causes churn of LostFocus/GotFocus emissions on clicks, but it's
8884         better than not handling focus at all.  Will revisit when pdb feels
8885         the general focus handling is solid.  Fixes #78526.
8886
8887 2006-06-01  Jackson Harper  <jackson@ximian.com>
8888
8889         * TreeView.cs: Set the default border style in the constructor.
8890         - Move painting to use OnPaintInternal instead of capturing
8891         WM_PAINT, this is the correct way of doing things
8892         - UpdateBelow shouldn't invalidate the scrollbar area
8893         - Cap the top on update below in case the node was above the top
8894         of the viewport rectangle.
8895         - ExpandBelow and Collapse below need to obey Begin/End Update.
8896         * TreeNode.cs: Make is_expanded internal so the treenode
8897         collection can change it without firing the whole event chain.
8898         * TreeNodeCollection.cs: When clearing all the child nodes make
8899         sure to recalc the visible order.
8900         - Improve algo for remove the top node
8901
8902 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
8903
8904         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
8905           SendMessage directly calling window procedures, which in turn might
8906           call SetFocus()
8907
8908 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
8909
8910         * Control.cs: Don't handle WM_SETFOCUS if the same window already
8911           has focus (works around X11 sending a FocusIn after our SetFocus)
8912         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
8913
8914 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
8915
8916         * Mime.cs: Fix for the NET_2_0 build.
8917           NameValueCollection needs StringComparer now.
8918
8919 2006-05-31  Chris Toshok  <toshok@ximian.com>
8920
8921         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
8922         return (via an out parameter) the starting X of the column.
8923         (UpdateVisibleColumn): track change to FromPixelToColumn.
8924         (HitTest): add a ColumnResize case here.
8925         (DrawResizeLine): new function, probably poorly named.
8926
8927         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
8928         only need to keep one reference.
8929         (set_ListManager): same.
8930         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
8931         Also, add support for HitTestType.ColumnResize.
8932         (OnMouseMove): add column resize behavior here, and change the
8933         cursor to the correct one as we move around the datagrid.
8934         (OnMouseUp): terminate the column resize if we're resizing.
8935         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
8936         for the current cell.
8937         (ConnectListManagerEvents): use cached_currencymgr.
8938         (DisconnectListManagerEvents): fill this in, using
8939         cached_currencymgr.
8940         (SetCurrentCell): remove cached_currencymgr_events handling.
8941         (SetDataMember): only call DisconnectListManagerEvents if
8942         cached_currencymgr is != null.
8943         (SetDataSource): same.
8944         (OnListManagerCurrentChanged): cached_currencymgr_events ->
8945         cached_currencymgr.
8946
8947 2006-05-31  Jackson Harper  <jackson@ximian.com>
8948
8949         * BindingManagerBase.cs: Remove somedebug code that creeped into
8950         SVN.
8951         * TreeNode.cs: We get the indent level dynamically right now, so
8952         don't track it as a member.
8953         * TreeNodeCollection.cs: Make sure all nodes added to the list
8954         have parents, treeviews/topnodes setup properly.
8955         - Don't attempt to track indent level.
8956
8957 2006-05-30  Jackson Harper  <jackson@ximian.com>
8958
8959         * BindingContext.cs: Create the currency manager tables here.
8960         This allows us to more easily create null tables (when bad data
8961         members are used), and more easily create related currency
8962         managers.
8963         * CurrencyManager.cs: All the table creation stuff is done by the
8964         binding context now.
8965         - Current should throw an exception if listposition is -1.
8966         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
8967         been bound yet.
8968
8969 2006-05-30  Mike Kestner  <mkestner@novell.com>
8970
8971         * ListView.cs: allow reexpansion of zero-width column headers.
8972         Fixes #78528.
8973
8974 2006-05-28  Chris Toshok  <toshok@ximian.com>
8975
8976         * CurrencyManager.cs (get_Current): after the late binding
8977         listposition = -1 fix, we need to guard against it here and return
8978         null, otherwise we raise an exception (which is swallowed
8979         elsewhere, and breaks datagrid databinding.)
8980
8981 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
8982
8983         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
8984           than WM_SYSKEY, don't throw if get something unexpected (#78507)
8985
8986 2006-05-26  Jackson Harper  <jackson@ximian.com>
8987
8988         * ControlPaint.cs:
8989         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
8990         values, it's faster and it's all we care about (we don't care if
8991         the names aren't equal).
8992         * KeyboardLayouts.cs: Eliminate some dead code.
8993         - Lazy init things
8994         * X11Keyboard.cs: Lazy init keyboard detection.
8995         - Cleanup access modifiers a little.
8996
8997 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
8998
8999         * XplatUIX11.cs: Once again, attempting to get layout just right.
9000
9001 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9002
9003         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9004           the sizes of each link section, that will result in sizes that
9005           match DrawString's layout (Fixes #78391)
9006
9007 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9008
9009         * FileDialog.cs: If AddExtension property is true autocomplete the
9010           extensions in SaveFileDialog correctly. Fixes bug #78453.
9011           Set MyNetwork and MyComputer to "C:\" for windows. This should
9012           fix part 8 of bug #78446 for now.
9013
9014 2006-05-26  Chris Toshok  <toshok@ximian.com>
9015
9016         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9017         invalidate the current row header if we need to, but presumably
9018         we'll invalidate the row corrsponding to the bounds or
9019         editingControl.
9020         (GridHScrolled): switch back to this method, as it's part of the
9021         public api.  *sigh*.
9022         (GridVScrolled): same.
9023         (OnMouseWheel): hack up something that more or less works.  Call
9024         GridHScrolled/GridVScrolled directly, instead of duplicating much
9025         of their code here.
9026         (EnsureCellVisibility): reinstate a bunch of this code, since we
9027         can't just set the scrollbar Value and expect to do all the work
9028         in the ValueChanged handler.  Also, Call Update() after scrolling
9029         in one direction so the other XplatX11.ScrollWindow call has the
9030         proper stuff in the proper places.
9031         (EditCell): set is_editing to true before calling .Edit.
9032
9033         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9034         don't bother comparing first.
9035         (OnKeyPress): call grid.ColumnStartedEditing before calling
9036         base.OnKeyPress.  this will set is_changing and invalidate the row
9037         header if necessary.
9038         (ProcessKeyMessage): for WM_CHAR messages, call
9039         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9040         and WM_KEYDOWN.
9041         
9042         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9043         it's done in the DataGrid.
9044         (NextState): call grid.ColumnStartedEditing, which takes care of
9045         invalidating the row header (and setting is_changing).
9046
9047         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9048         here.  it's done in the DataGrid.
9049
9050 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9051
9052         * Control.cs: allow changing the cursor when the mouse position is
9053         out of bounds but Capture is set.
9054         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9055         linklabel but released somewhere else.
9056
9057 2006-05-25  Jackson Harper  <jackson@ximian.com>
9058
9059         * TreeView.cs: When we get focus if there is no selected node make
9060         it the top node
9061         - Remove some uneeded setup code from Draw.
9062         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9063         a new node is inserted make the new node the top.
9064         * XplatUIX11.cs:
9065         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9066         be used (should be faster).
9067         
9068 2006-05-25  Chris Toshok  <toshok@ximian.com>
9069
9070         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9071         problem with the last commit.
9072
9073 2006-05-25  Chris Toshok  <toshok@ximian.com>
9074
9075         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9076         need the invalidate call here, while scrolling right-to-left via
9077         the left arrow key (i.e. moving the editing cell while scrolling).
9078
9079         * DataGrid.cs (.ctor): remove the initialization of
9080         ctrl_pressed/shift_pressed.  We no longer track them using key
9081         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9082         to using ValueChanged handlers on the scrollbars instead of
9083         Scrolled event handlers.  This simplifies a bunch of the scrolling
9084         code.
9085         (GridHValueChanged): rename from GridHScrolled, and change it to
9086         work with the new event args.
9087         (GridVValueChanged): same.
9088         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9089         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9090         selected cell.
9091         (ProcessGridKey): correct all the keyboard navigation stuff I
9092         could find.  Ctrl up/down/left/right/home/end work now.
9093         (EnsureCellVisibility): correct method name spelling.  Also,
9094         simplify this a touch by not explicitly calling the
9095         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9096         scrollbar value.
9097         (OnKeyUpDG): no need for this method now.
9098         
9099 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9100
9101         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9102         Fixes bug #78392.
9103
9104 2006-05-25  Chris Toshok  <toshok@ximian.com>
9105
9106         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9107         r61019.
9108
9109 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9110
9111         * Application.cs: Moved setting of is_modal and closing to before
9112           we create the control, to allow the event handlers called as a
9113           result of creation affect closing. Also removed Gonzalo's previous
9114           change to setting DialogResult, the behaviour has been moved to 
9115           Form.ShowDialog()
9116         * Form.cs: 
9117           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9118             handle it instead
9119           - ShowDialog(): If no dialog result is set, we need to return Cancel
9120           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9121             the close is cancelled
9122
9123 2006-05-25  Jackson Harper  <jackson@ximian.com>
9124
9125         * StatusBar.cs: We only need to update the sizes of the other
9126         panels when we have auto size contents.  Also we are only updating
9127         the contents of the panel, not the borders, so compensate for the
9128         border width (TODO: get this width from the theme somehow).
9129         * TreeView.cs: Scrollable is true by default
9130         - Use invalidate instead of refresh where needed
9131         - Factor the scrollable value into scrollbar updating
9132         - Update the scrollbars if the Scrollable property is altered
9133         - Update the selected node if its ImageIndex is changed
9134         - Handle null nodes in UpdateNode (mainly so we don't have to
9135         check if selected is null when updating it
9136         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9137         are factored into the visible count
9138         - Use VisibleCount for clarity in the code
9139         - When the font is changed we need to recurse through all the
9140         nodes and invalidate their sizes
9141         
9142 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9143
9144         * Application.cs: set the DialogResult to fixed when the main form is
9145         hidden or destroyed while being modal.
9146
9147 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9148
9149         * Theme.cs: Use Tangoified messagebox icons. 
9150
9151         (GetSizedResourceImage): Also cope with width = 0 and do not
9152         trigger a warning in that case (0 means "give me your icon from
9153         the resouce, no special size needed).
9154
9155 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9156
9157         * Application.cs: Leave runloop if the the main modal form is 
9158           hidden (fixes #78484)
9159
9160 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9161
9162         * BindingContext.cs : reject null datasource in Contains() and
9163           Item[].
9164         * CurrencyManager.cs : check data_member validity when data_source
9165           is dataset. When it is late binding, the initial position is -1.
9166
9167 2006-05-24  Jackson Harper  <jackson@ximian.com>
9168
9169         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9170         inserted nodes that aren't visible.  This changes the
9171         max_visible_order which confuses scrollbar settings.
9172         - Use the enumerator to get the prev node instead of duplicating
9173         code.
9174         * TreeView.cs: Use new method for setting scrollbar values
9175         - Don't set the bounds every time the scrollbar is updated
9176         - When updating below the root node use an invalidate instead of a
9177         refresh to prevent the child controls (scrollbars) from being
9178         refreshed. (UpdateBelow still needs to be reworked anyways).
9179         - Reenable SetBottom now that visible orders are set correctly,
9180         added some debug code incase we ever get bad values there again.
9181         - Set the scrollbar max to 2 less then the max value, this
9182         compensates for the max value being one above the node count, and
9183         for scrollbars adding one extra "notch".
9184         - When drawing image nodes if there is an imagelist we draw the
9185         first image in the list if the supplied image index is out of the
9186         image list's bounds.
9187         
9188 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9189
9190         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9191           we receive a size change from the WM (Fixes #78503)
9192
9193 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9194
9195         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9196           rectangle (Fixes #78501)
9197
9198 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9199
9200         * ButtonBase.cs: 
9201           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9202             as a bitfield.
9203           - Fixed MouseMove to no longer switch pressed state unless the left
9204             mouse button is pressed. Atsushi provided the original patch (#78485)
9205           
9206 2006-05-24  Jackson Harper  <jackson@ximian.com>
9207
9208         * ScrollBar.cs: New internal methods that allow us to change a
9209         couple values on the scrollbar (the most common case is maximum
9210         and large change) without getting multiple invalidates.
9211
9212 2006-05-24  Chris Toshok  <toshok@ximian.com>
9213
9214         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9215         (Edit): save off the original state in oldState, and set
9216         grid.is_editing to true.
9217         (OnKeyDown): abort editing if escape is pressed.  also, call
9218         NextState if space is pressed.
9219         (OnMouseDown): call NextState.
9220         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9221         here.  Also, only invalidate the row header once (on the initial
9222         is_changing switch) to save on redraws.
9223
9224 2006-05-24  Chris Toshok  <toshok@ximian.com>
9225
9226         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9227         if the value in the cell is different than it was before.  This
9228         keeps us from triggering a layout when we move around a datarid
9229         with a highlighted cell.
9230         (Edit): suspend layout when creating/positining the text box, and
9231         resume passing false so we don't ever actually re-layout.
9232         (ReleaseHostedControl): same.
9233         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9234
9235         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9236         control-key sequences should go to the datagrid - remove that
9237         lock.  Also, modify the conditions under which we move between
9238         cells when moving the cursor within a cell, and remove the "this"
9239         and "base" from field accesses.  We weren't even consistent, given
9240         they all were in the base class.
9241
9242 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9243
9244         * Binding.cs : (.ctor)
9245           An obvious NRE fix for BindingTest.CtorNullTest().
9246
9247 2006-05-23  Chris Toshok  <toshok@ximian.com>
9248
9249         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9250         them between lines.  This fixes some quirks editing cells in the
9251         datagrid.
9252
9253 2006-05-23  Jackson Harper  <jackson@ximian.com>
9254
9255         * TreeView.cs: Use begin/end update when doing expand/collapse all
9256         so that we don't get flicker on the scrollbar.
9257
9258 2006-05-23  Jackson Harper  <jackson@ximian.com>
9259
9260         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9261         treenode calculations to be independant of the painting code. To
9262         do this nodes track a visible order which is calculated by the
9263         treeview.
9264         - Call new methods for expanding/collapsing nodes.  These methods
9265         use scrollwindow so we don't have to update everything below the
9266         node.
9267         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9268         need to update nodes when drawing anymore or calculate scrollbar
9269         stuff.
9270         - Added new methods for expanding/collapsing nodes. These methods
9271         use ScrollWindow so as to not have to redraw all the nodes below.
9272         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9273         we add/remove nodes or sort.
9274         - Handle removing the selected and the top node properly.
9275
9276 2006-05-23  Chris Toshok  <toshok@ximian.com>
9277
9278         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9279         maybe this should actually happen in the datagrid code?
9280         (EndEdit): no need to invalidate anything, given that
9281         ReleaseHostedControl causes the datagrid to relayout, which
9282         invalidates everything anyway.
9283
9284         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9285         in SetCurrentCell).
9286         (set_SelectionBackColor): call InvalidateSelection instead of
9287         Refresh.
9288         (set_SelectionForeColor): same.
9289         (BeginEdit): Flesh this out a bit.
9290         (CancelEditing): only do any of this if we're editing/adding.
9291         (EndEdit): same.
9292         (OnMouseDown): there's no need to cancel editing here, it's done
9293         in SetCurrentCell.
9294         (SetCurrentCell): only invalidate the current row header if it's a
9295         different row than the new one.
9296         (ShiftSelection): fix this to work like MS does.
9297         (ResetSelection): factor out the invalidation of selected_rows to
9298         InvalidateSelection.
9299         (SetDataSource): cancel any editing that's going on.
9300
9301         * DataGridColumnStyle.cs
9302         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9303         call the non-interface version.
9304
9305         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9306         header rectangle with the clip rectangle so we don't redraw the
9307         entire header for just a small area.  Gets rid of the last flicker
9308         when horizontally scrolling.
9309         (DataGridPaintRow): same.
9310
9311 2006-05-23  Mike Kestner  <mkestner@novell.com>
9312
9313         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9314         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9315         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9316         Critical bug report.
9317
9318 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9319
9320         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9321           and this fixes #78493
9322
9323 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9324
9325         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9326         size is not found.  
9327         
9328         * FileDialog.cs: Do not change the background for the side bar as
9329         it wont work nicely with the theme, and also reduces the artifacts
9330         in rendering the icons (which I want to fix too).
9331
9332         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9333         resources, not resgen resources. 
9334
9335         (PlatformDefaultHandler): Pull images using the new API.
9336
9337 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9338
9339         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9340           a reference to the hwnd and will not remove it unless there are
9341           no pending exposures (fixes #78341)
9342         * XplatUI.cs: Improved debug
9343
9344 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9345
9346         * MenuAPI.cs : don't handle OnClick event when it was not the left
9347           button. Fixed bug #78487.
9348
9349 2006-05-23  Mike Kestner  <mkestner@novell.com>
9350
9351         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9352         prefer submenus to the top menu for item lookup, to avoid popping down
9353         top-row items.
9354
9355 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9356
9357         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9358           Graphics.FillRectangle as the visual results are really bad (even
9359           on win). We now draw perfect arrows (and perfect shadows when the
9360           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9361           Pen.DashPattern to draw the dots of each line.
9362
9363 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9364
9365         * FileDialog.cs: Update the filename combobox when navigating through
9366           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9367
9368 2006-05-22  Mike Kestner  <mkestner@novell.com>
9369
9370         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9371         Fixes #78463.
9372
9373 2006-05-22  Mike Kestner  <mkestner@novell.com>
9374
9375         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9376         requests. Fix a misspelled parameter and a copy paste exception error
9377         in Select.
9378
9379 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9380
9381         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9382           to get the same width/height (5/13) on X11 as the default font has on
9383           win32. This means that our DefaultFont emSize is smaller than the 
9384           the MS SWF equivalent (even thought the width/height stays the same)
9385
9386 2006-05-20  Jackson Harper  <jackson@ximian.com>
9387
9388         * MdiClient.cs:
9389         * MdiWindowManager.cs:
9390         * InternalWindowManager.cs: Make sure to use the border width from
9391         the theme.
9392
9393 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9394
9395         * PrintDialog.cs: Implements printer details
9396
9397 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9398
9399         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9400           Fixes part 1 and 2 of bug #78446
9401
9402 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9403
9404         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9405           instead of sticking to the first ever calculated value
9406
9407 2006-05-19  Mike Kestner  <mkestner@novell.com>
9408
9409         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9410         PointToClient, since Capture is set. Fixes #78344.
9411
9412 2006-05-19  Mike Kestner  <mkestner@novell.com>
9413
9414         * ListView.cs: match MS behavior in Details view where items are not
9415         drawn if Columns.Count == 0. 
9416         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9417         Use a separate pen to draw the check, since changing the width affects
9418         the box as well.  Fixes #78454.
9419
9420 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9421
9422         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9423         exception should throw the name of the invalid argument.
9424
9425         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9426         there are no files listed. 
9427
9428 2006-05-18  Jackson Harper  <jackson@ximian.com>
9429
9430         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9431         up.
9432
9433 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9434
9435         * Control.cs: Brought back our old UpdateZOrder method as a private
9436           function and switched our calls from UpdateZOrder to the new one.
9437           This fixes the Paint.Net canvas disappearing bug.
9438
9439 2006-05-18  Jackson Harper  <jackson@ximian.com>
9440
9441         * Theme.cs:
9442         * ThemeWin32Classic.cs:
9443         * InternalWindowManager.cs: Move the drawing into the theme,
9444         expose everything the theme should need from the window manager.
9445
9446 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9447
9448         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9449           from the call to NativeWindow to avoid walking up the parent chain
9450           further than needed (speeds up setting cursors and avoids setting
9451           the wrong cursor if a parent has another cursor defined)
9452         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9453           the icon as hotspot, not what's contained as hotspot in the icon
9454           file. This fixes the perceived drawing offset seen with Paint.Net
9455         
9456 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9457
9458         * XplatUIX11.cs: 
9459           - Store the calculated rectangle in Hwnd object and use it when 
9460             setting the client size
9461           - Force Toolwindows to always be type Dock, to ensure they're on top
9462
9463 2006-05-18  Mike Kestner  <mkestner@novell.com>
9464
9465         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9466         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9467         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9468         Substantial refactoring to remove confusing nested classes. Coding
9469         standard and Get+Set->property refactorings.  Shift to index based
9470         highlighting in ComboListBox instead of constantly using IndexOf and
9471         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9472         in FileDialog growth.  Draw borders manually since Simple mode needs
9473         to look like two independent controls.  Make listbox border
9474         conditional to DropDownStyle.  Improved OwnerDraw support.
9475
9476 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9477
9478         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9479         Don't set the disposed graphics to null, so we can throw the "right"
9480         exception if the graphics is reused later (added a flag to avoid 
9481         double disposing). Some behaviours are different under 2.0 and are
9482         filled under bug #78448.
9483
9484 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9485
9486         * Control.cs: When double-buffering is enabled, we need to reset
9487           our graphics context between paint calls. Otherwise, any 
9488           transformations and other alterations on the context will 
9489           become cumulative (#77734)
9490
9491 2006-05-18  Mike Kestner  <mkestner@novell.com>
9492
9493         * ListView.cs: do focused item selection like MS on clicks. 
9494         Rework focus handling for ItemControl so LostFocus invalidates as
9495         well.
9496         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9497         the ListView ItemControl has focus.
9498
9499 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9500
9501         * XplatUIX11.cs: If client_window ends up being width or height zero
9502           due to border settings, move it off window inside whole_window (#78433)
9503
9504 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9505
9506         * Mime.cs: Shrink the mime file cache correctly.
9507
9508 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9509
9510         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9511
9512 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9513
9514         * XplatUIX11.cs (AddExpose): More sanity checks
9515
9516 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9517
9518         * XplatUIX11.cs:
9519           - AddExpose: Don't add expose ranges outside the size of our
9520             window
9521           - Cast opacity values to Int32 to avoid crashes with certain
9522             values
9523           - Added disabled code paths that protect against illegal cross-
9524             thread painting (Developers.exe)
9525
9526 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9527
9528         * ProgressBar.cs: Invalidate the control when it's resized
9529           since block size is based on control size. (#78388)
9530
9531 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9532
9533         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9534         of setting the incoming argument to the "reset" value, we set the
9535         this.datamember to string.empty (before we were invalidating the
9536         incoming data).   
9537
9538         Fixes 78420
9539
9540 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9541
9542         * Form.cs: Only apply transparency settings after the form
9543           is created. (Fixes #77800)
9544
9545 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9546
9547         * ApplicationContext.cs: Grab the HandleDestroyed event so
9548           we know when to fire OnMainFormClosed 
9549
9550 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9551
9552         * Application.cs: Introduced sub-class to allow tracking of
9553           threads and centralized triggering of the event mess for
9554           ThreadExit, AppExit, etc..  (#76156)
9555
9556 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9557
9558         * MimeIcon.cs:
9559           - Do not return a null icon index value for a mime subclass.
9560             Instead try the main mime type class too.
9561           - Seems that some newer distributions don't have a link to some
9562             gnome default icons anymore. So check the default gnome dir too.
9563           
9564
9565 2006-05-16  Jackson Harper  <jackson@ximian.com>
9566
9567         * MdiClient.cs: Don't paint the parent background image if we have
9568         our own background image.
9569
9570 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9571
9572         * Control.cs:
9573           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9574             controls, all filled controls are supposed to overlap (#78080)
9575           - UpdateZOrder is supposed to update the control's z-order in the
9576             parent's z-order chain. Fixed to behave like that
9577           - BringToFront: Removed obsolete code
9578           - SendToBack: Simplyfied
9579           - SetChildIndex: Trigger layout calculations when Z-order changes
9580             since layout is done by z-order
9581
9582 2006-05-16  Chris Toshok  <toshok@ximian.com>
9583
9584         [ fixes bug #78410 ]
9585         * DataGrid.cs (set_AlternatingBackColor): use
9586         grid_drawing.InvalidateCells instead of Refresh().
9587         (set_BackColor): call grid_drawing.InvalidateCells.
9588         (set_BackgroundColor): use Invalidate instead of Refresh.
9589
9590         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9591         invalidate the cell area.
9592
9593 2006-05-15  Chris Toshok  <toshok@ximian.com>
9594
9595         [ fixes bug #78011 ]
9596         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9597         on to DataGridPaintRow.
9598         (DataGridPaintRow): take a clip argument, and only draw the cells
9599         which intersect it.  same with the not_usedarea.
9600
9601         * Theme.cs (DataGridPaintRow) add @clip parameter.
9602
9603         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9604         XplatUI.ScrollWindow.
9605         (ScrollToRow): same.
9606
9607         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9608         with last column which was causing a gray swath to appear with the
9609         XplatUI.ScrollWindow code.
9610
9611 2006-05-15  Chris Toshok  <toshok@ximian.com>
9612
9613         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9614         use XplatUI.ScrollWindow.
9615         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9616
9617 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9618
9619         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9620
9621 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9622
9623         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9624           file since there are no equivalent X11 cursors
9625
9626 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9627
9628         * MonthCalendar.cs : DateTimePicker should reflect selected date
9629           on mouse*up*, not mouse*down*. Fixed originally reported part of
9630           bug #76474.
9631
9632 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9633
9634         * TabControl.cs : When argument index is equal or more than tab
9635           count, just ignore. Fixed bug #78395.
9636
9637 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9638
9639         * Control.cs: Dispose all child controls when control is diposed (#78394)
9640
9641 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9642
9643         * ColorDialog.cs: Finally it is possible to select the color with
9644           the text boxes
9645
9646 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9647
9648         * PrintDialog.cs: Fix typo
9649
9650 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9651
9652         * PrintDialog.cs: PrintDialog is not resizable
9653         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9654           color. Made some ToolBar drawing methods protected virtual.
9655
9656 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9657
9658         * PrintDialog.cs: Implementation of the PrintDialog
9659
9660 2006-05-12  Chris Toshok  <toshok@ximian.com>
9661
9662         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9663         thumb, instead use MoveThumb.  This has the side effect of making
9664         most of the other thumb moving machinery use MoveThumb as well.
9665         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9666         need to actually invalidate the rectangle where the new thumb will
9667         go.
9668         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9669         We force an Update() after, so it's not as fast as it could be,
9670         but at least there's zero flicker and no droppings.
9671         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9672         (UpdateThumbPos): add another argument (dirty), which says whether
9673         or not to calculate/add dirty regions which we later invalidate.
9674         For cases where we know we're going to use MoveThumb, we pass
9675         false for this.  Otherwise, pass true.
9676
9677 2006-05-12  Jackson Harper  <jackson@ximian.com>
9678
9679         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9680         the status bar.
9681         
9682 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9683
9684         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9685           and GetClipRegion methods and UserClipWontExposeParent property.
9686         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9687           overriding UserClipWontExposeParent property, setting to false, since
9688           Win32 handles the required expose messages to draw our clipped parent
9689           areas internally
9690         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9691           PaintEventStart to set the user clip region if set.
9692         * Control.cs: 
9693           - Now internally tracking the Region for the control since we need to
9694             store it if the handle is not yet created and only set it when it
9695             becomes created. Before setting the region forced handle creation
9696           - Added code to draw the parents underneath a user-clipped region
9697         * Hwnd.cs: Added UserClip property
9698
9699 2006-05-12  Chris Toshok  <toshok@ximian.com>
9700
9701         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9702         (set_Maximum): same.
9703         (set_Minimum): same.
9704         (set_SmallChange): same.
9705         (OnMouseUpSB): remove the call to refresh when releasing the
9706         thumb.  We shouldn't need it.
9707         
9708 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9709
9710         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9711         AutoSize set to None, we do not need to relayout everything, we
9712         just need to invalidate the current region.
9713
9714         (Draw): Do not draw the entire ClientArea, just redraw the
9715         clip area being passed.
9716
9717         * MdiClient.cs: Make MdiClient constructor with the Form argument
9718         internal. 
9719
9720 2006-05-12  Jackson Harper  <jackson@ximian.com>
9721
9722         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9723         parents background image,  but strangely not their own.
9724         - (DrawStatusBarPanel): Take into account horizontal alignment
9725         when drawing the strings and icons.
9726
9727 2006-05-12  Mike Kestner  <mkestner@novell.com>
9728
9729         * ListBox.cs: avoid invalidations for focus when the collection is
9730         empty. 
9731
9732 2006-05-12  Chris Toshok  <toshok@ximian.com>
9733
9734         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9735         invalidate the entire thumb area.  Call InvalidateDirty which
9736         limits the redraw to the thumb itself and surrounding pixels.
9737
9738         * XplatUIX11.cs (ScrollWindow): optimize copying.
9739         
9740 2006-05-12  Chris Toshok  <toshok@ximian.com>
9741
9742         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9743         Figure out the positioning/layout in a single pass instead of
9744         multiple recursive invocations.  Speeds up the initial display of
9745         the data grid.  Also, make many things private that were
9746         originally public but unused outside this class.
9747
9748 2006-05-11  Jackson Harper  <jackson@ximian.com>
9749
9750         * MdiClient.cs: Improved layout code.
9751
9752 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9753
9754         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9755           not SelectedObject.
9756
9757 2006-05-11  Chris Toshok  <toshok@ximian.com>
9758
9759         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9760         union of that will always be {0,0,width,height}.
9761
9762 2006-05-11  Jackson Harper  <jackson@ximian.com>
9763
9764         * Form.cs: Match MS's DefaultSize for forms (they must have
9765         changed the size in sp2).
9766
9767 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9768
9769         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9770
9771 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9772
9773         * TextControl.cs : Fixed bug #78109. This incorrect position
9774           comparison caused crash on automatic line split.
9775         * TextBoxBase.cs : reduce duplicate code.
9776
9777 2006-05-10  Jackson Harper  <jackson@ximian.com>
9778
9779         * MdiClient.cs: Active form is only sent to the back when using
9780         the Next form functionality, when a form is clicked the current
9781         active shouldn't be sent to the back.
9782         - Layout the mdi windows when the container is first made visible.
9783         * Form.cs: Give the MdiClient a ref to the containing form when we
9784         create it.
9785         
9786 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9787
9788         * LinkLabel.cs : link_font could be uninitialized, so populate one
9789           before actual use. Fixed bug #78340.
9790
9791 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9792
9793         * XplatUIX11.cs : clipboard format native value is IntPtr.
9794           Fixed bug #78283.
9795
9796 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9797
9798         * Control.cs: 
9799           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
9800             which is passed up the parent chain by DefWndProc
9801           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
9802             to DefWndProc (#77956)
9803         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
9804
9805 2006-05-10  Jackson Harper  <jackson@ximian.com>
9806
9807         * MdiClient.cs: We need to remove the controls from the mdi
9808         collection, when we close the window.
9809         * MdiWindowManager.cs: Special handling of closing mdi windows.
9810         * InternalWindowManager.cs: Make the close method virtual so the
9811         mdi window manager can handle it specially.
9812
9813 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
9814
9815         * DataGrid.cs:
9816           - Recalculate grid when the data source has changed
9817           - Matches styles provided by user from all data sources types
9818         * DataGridTableStyle.cs: For columns that provided by the user set the
9819         with the preferred value is there was unassigned.
9820         * CurrencyManager.cs: throw OnItemChanged event
9821
9822 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
9823
9824         * PictureBox.cs: Don't animate until handle is created. Start animation
9825           when handle is created.
9826
9827 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9828
9829         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
9830           current codebase.
9831         * XEventQueue.cs: We don't need to provide the extra info
9832
9833 2006-05-10  Jackson Harper  <jackson@ximian.com>
9834
9835         * MdiClient.cs: If the mdi clients parent form has a background
9836         image set, we draw that background image for the mdi area's
9837         background.
9838
9839 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9840
9841         * TextBoxBase.cs: Set IBeam cursor (#78347)
9842
9843 2006-05-10  Mike Kestner  <mkestner@novell.com>
9844
9845         * ToolBar.cs: fix some text padding issues with ButtonSize
9846         calculation. Update the default size to match MS documentation.
9847         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
9848         button size. Fixes #78296.
9849
9850 2006-05-10  Mike Kestner  <mkestner@novell.com>
9851
9852         * ListBox.cs: use is_visible for scrollbar positioning in case the
9853         control isn't on screen yet.  Fix off by one with Right vs Width
9854         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
9855         
9856 2006-05-10  Jackson Harper  <jackson@ximian.com>
9857
9858         * X11Dnd.cs: Drop to a control with another control on top of it.
9859         * ToolBar.cs: Work on a copy of the buttons list, so that it can
9860         be modified in click handlers. TODO: Look for similar problems in
9861         other controls.
9862
9863 2006-05-09  Jackson Harper  <jackson@ximian.com>
9864
9865         * Form.cs: Window managers need the old window state when setting
9866         window state now.
9867         * InternalWindowManager.cs: Allow the base mdi window manager to
9868         handle more of the MDI only stuff (like maximize buttons).
9869         * MdiWindowManager.cs: Fix some snafus in changing the window
9870         state.  Add all the menu functionality, for both popup and
9871         maximized menus.
9872         * MdiClient.cs: When a new form is selected the currently
9873         activated form is sent to the back, this matches MS.
9874         - Implement a new method to activate the next mdi child window.
9875
9876 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
9877
9878         * Control.cs: 
9879           - Added new InternalCapture method to allow controls to prevent
9880             the capture behaviour on the click handlers
9881           - Switched to use InternalCapture
9882         * ComboBox.cs:
9883           - Using InternalCapture to prevent mouse captures from being released
9884             on mouse button release (Fixes #78100)
9885         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
9886           returns Form borders if a caption is present. (Fixes #78310)
9887
9888 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
9889
9890         * TreeNode.cs: Changed serialization .ctor to not require every field
9891           to be present. (#78265)
9892         * OwnerDrawPropertyBag.cs: Added serialization .ctor
9893
9894 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
9895
9896         * MimeIcon.cs: for is faster than foreach for strings.
9897
9898 2006-05-05  Mike Kestner  <mkestner@novell.com>
9899
9900         * CheckedListBox.cs: update check handling code to not use selected.
9901         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
9902         behavior for visual feedback, motion response, shift/ctrl handling,
9903         and properly deal with all 4 selection modes. Updates to bounds
9904         handling logic.  Add scroll wheel support. [Fixes #77842]
9905
9906 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
9907
9908         * ListView.cs:
9909           - Moved adding of Implicit controls into .ctor. That way, subsequent
9910             creation of the controls will not cause them to think they are 
9911             toplevel windows (fixes #78200 header problem)
9912           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
9913           - Switched visibility setting of header control to use internal field
9914             to avoid triggering handle creation
9915           - Now checking if handle is created before causing a refresh when items
9916             are added (This makes us now match handle creation time with MS)
9917         * Splitter.cs: Removed loading of private splitter cursor, switched to
9918           Cursors version now that that is loading the right ones
9919         * Cursors.cs: Load proper splitter cursors from resources
9920         * Cursor.cs: Added second method of loading resource cursors for the 
9921           VS.Net users amongst us
9922
9923 2006-05-05  Mike Kestner  <mkestner@novell.com>
9924
9925         * ListView.cs: give header_control a minimum size based on the
9926         ListView size.
9927
9928 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
9929
9930         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
9931           window seems to do that with metacity, so set that type. (#78120)
9932
9933 2006-05-05  Mike Kestner  <mkestner@novell.com>
9934
9935         * ListViewItem.cs: fix Details mode checkbox layout bug.
9936         * ThemeWin32Classic.cs: draw a ListView column header for unused space
9937         at the end of the header, if it exists. [Fixes for #78200]
9938
9939 2006-05-04  Jackson Harper  <jackson@ximian.com>
9940
9941         * MdiClient.cs: Add a helper property to get the container form.
9942         * MdiWindowManager.cs: We have to make sure to use the menu origin
9943         when drawing the icons and buttons, this fixes maximized window
9944         icons/buttons on win32.
9945         * InternalWindowManager.cs: Reset the restore captions when a
9946         window goes from Maximized to Minimized and vice versa. Move the
9947         DrawMaximizedButtons into the MdiWindowManager source, tool
9948         windows can't be maximized. NOTE: This could use a little
9949         refactoring if time ever permits.
9950         
9951 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
9952
9953         * TextBox.cs: Add MWFCategoryAttributes
9954         * TextBoxBase.cs: Add MWFCategoryAttributes
9955         * Form.cs: Add MWFCategoryAttributes
9956
9957 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
9958
9959         * Control.cs: Add MWFCategoryAttributes
9960         * ScrollableControl.cs: Add MWFCategoryAttributes
9961
9962 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
9963
9964         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
9965           Divider is true. Fix a little glitch in PropertyToolBar
9966           drawing code
9967
9968 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
9969
9970         * Control.cs:
9971           - Dispose: Call base.Dispose, this causes the disposed event
9972             to be fired (and probably other, more important stuff)
9973           - SetVisibleCore: Set is_visible to true after creating the
9974             window so that the window still gets created invisible (if
9975             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
9976             to generate a WM_ACTIVE message
9977         * Form.cs: Call Dispose when we want to destroy the window, instead of
9978           just destroying the handle (Dispose will do that for us)
9979         * XplatUIX11.cs:
9980           - RootWindow also needs a queue, so we can properly process the
9981             property change events from RootWindow (like Activate)
9982           - Generatic synthetic WM_ACTIVE message when the active window is
9983             being destroyed
9984
9985 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
9986
9987         * LinkLabel.cs: Trigger a recalc of our label dimensions when
9988           bounds are changed
9989
9990 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
9991
9992         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
9993           for determining width and height (image might not be assigned if
9994           we're drawing an imagelist)
9995
9996 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
9997
9998         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
9999         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10000           height from system
10001         * Theme.cs: No longer returns hardcoded menu height, instead calls
10002           new driver method
10003         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10004           on MS (# 78257)
10005
10006 2006-05-01  Mike Kestner  <mkestner@novell.com>
10007
10008         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10009
10010 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10011
10012         * TextBoxBase.cs: Removed Fixme
10013         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10014
10015 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10016
10017         * XplatUIX11.cs:
10018           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10019             the rectangle relative to the parent, considering borders. We
10020             don't really want that.
10021           - ScrollWindow: Fixed warning to be more understandable
10022         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10023           scrollbars and scroll only the visible area
10024         * RichTextBox.cs: Removed debug output
10025
10026 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10027
10028         * NumericUpDown.cs (Text): Just use base
10029         * UpDownBase.cs: Ensure txtView is created before using it
10030
10031 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10032
10033         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10034           casting to IntPtr to avoid 64bit overflow errors
10035
10036 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10037
10038         * Control.cs:
10039           - AllowDrop: Don't force handle creation.
10040           - CreateHandle: Added call to tell driver if we're allowed to drop
10041
10042 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10043
10044         * FileDialog.cs: Remember the last directory not only for the
10045           current instance but also for new FileDialog instances.
10046
10047 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10048         
10049         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10050           broke sending async messages
10051
10052 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10053
10054         * XplatUIX11.cs:
10055           - ScrollWindow: Fixed method. We finally generate expose events again
10056             for scrolled areas. This was causing 'garbage' when scrolling
10057             textbox and other controls that used ScrollWindow
10058           - Switched from using the regular queue for paint events to the MS 
10059             model of 'generating' paint events when the queue is empty.
10060             We use the new XQueueEvent.Paint subclass to store which windows
10061             need painting.
10062           - AddExpose now takes the x/y/width/height of the exposed area
10063             and inserts the window into the paint queue if not already there
10064           - InvalidateWholeWindow: Switched to use new AddExpose method
10065           - UpdateMessageQueue: Added which queue to monitor for paint events
10066           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10067             the unlikely case nothing above handles it. We reset the expose
10068             pending states to get them off the queue.
10069           - GetMessage: Now pulls a paint event if no other events are in the
10070             queue
10071           - Invalidate: Switched to new AddExpose method
10072           - PeekMessage: Updated to understand pending paint events
10073           - UpdateWindow: Fixed logic bug. We were only updating if the window
10074             didn't need updating. Also switched to sending WM_PAINT directly,
10075             like MS does.
10076         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10077           and random access Remove(). The random access is needed to handle
10078           UpdateWindow() where a WM_PAINT is sent directly without accessing
10079           the queue.
10080         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10081           allow for better feedback when scrolling. Scrollbars are small and
10082           the immediate update should make it 'feel' more responsive without
10083           slowing things down. ScrollBar still needs it's invaliate logic
10084           updated to not always invalidate the whole bar on certain changes.
10085
10086 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10087
10088         * Control.cs:
10089         (BackColor): if the control does not support a transparent background,
10090         return the default backcolor when the parent backcolor is transparent.
10091
10092 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10093
10094         * Application.cs: Updated to new StartLoop/GetMessage API
10095         * RichTextBox.cs: Provide some output on RTF parsing errors
10096         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10097           new queue_id argument to GetMessage and PeekMessage to allow faster
10098           handling of per-thread queues in drivers.
10099         * Hwnd.cs: Added Queue tracking and property
10100         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10101         * XEventQueue.cs: Added thread trackingA
10102         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10103         * XplatUIX11.cs:
10104           - Implemented new per-thread queue
10105           - GetMessage: Fixed return/break behaviour on several cases. We were
10106             returning stale messages in some cases, instead of just processing
10107             the next message
10108
10109 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10110
10111         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10112
10113 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10114
10115         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10116           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10117
10118 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10119
10120         * PropertyGridView.cs: Fix drop down width.
10121
10122 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10123
10124         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10125           a mess in DrawToolBar, so I removed one of them.
10126
10127 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10128
10129         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10130           needed (clip). Otherwise we get artifacts.
10131
10132 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10133
10134         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10135           dimension is fixed
10136         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10137           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10138         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10139           if it matches the scale base font (avoids unneeded scaling)
10140
10141 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10142
10143         * X11DesktopColors.cs: One gtk_init_check should be enough
10144
10145 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10146
10147         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10148           match MS behaviour
10149
10150 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10151
10152         * TextBoxBase.cs: 
10153           - Generate OnTextChanged for Backspace even if we're only deleting
10154             the current selection
10155           - When setting the Text property, only select all text if the
10156             control does not have focus when it is being set. Otherwise
10157             just place the cursor at the beginning of the control
10158
10159 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10160
10161         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10162           Added a little helper to draw PropertyGrid ToolBar with a different
10163           border and a different BackColor.
10164         * PropertyGrid.cs: Some background parts didn't get painted with the
10165           correct background color. Added a class that helps us to draw the
10166           correct border for PropertyGridView and a class that helps us to
10167           draw ToolBars with a different backcolor
10168         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10169
10170 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10171
10172         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10173         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10174
10175 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10176
10177         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10178           into the palette entries. Also, since we're working on a copy
10179           we needed to copy the palette back onto the bitmap.
10180         * Cursor.cs: Same fix as XplatUIWin32.cs.
10181
10182 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10183
10184         * ImageListStreamer.cs: Need to read the var (or we're off)
10185
10186 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10187
10188         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10189           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10190           TextBoxBase.cs: Unused var fixes
10191         * AxHost.cs: Small 2.0 fix
10192         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10193           as it seems that is what at least Metacity expects. This will make
10194           icons show up on 64bit platforms. We still have some 64bit size
10195           issues, though, since the startup app window size still won't match.
10196
10197 2006-04-25  Mike Kestner  <mkestner@novell.com>
10198
10199         * *.cs: cleanup newly reported exception var unused warnings.
10200
10201 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10202
10203         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10204           ms
10205
10206 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10207
10208         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10209           image. The image position is always the same, no matter if the
10210           button is pressed or not.
10211
10212 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10213
10214         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10215           selection and set the correct filename for SaveFileDialog.
10216           Patch by Emery Conrad.
10217
10218 2006-04-24  Mike Kestner  <mkestner@novell.com>
10219
10220         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10221         check for item.X outside the ClientRect instead of item.Y. Fixes
10222         #78151.
10223
10224 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10225
10226         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10227         trust that value blindly and do some sanity check. Fixes bug #77814.
10228
10229 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10230
10231         * ImageListStreamer.cs: save the mask as a 1bpp image.
10232
10233 2006-04-21  Mike Kestner  <mkestner@novell.com>
10234
10235         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10236         pass Checked and Indeterminate to the Theme Engine. Improve
10237         encapsulation with ListBox.
10238         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10239         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10240         nested types.  Move all CheckState functionality to CheckedListBox.
10241         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10242         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10243         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10244         single base list. Fix scrollbar sizing and placement to mirror MS.
10245         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10246         used.
10247         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10248         for CheckedListBox by using new DrawItemState info.  Center the
10249         checkboxes on the items. Use new StringFormat property.
10250
10251 2006-04-18  Jackson Harper  <jackson@ximian.com>
10252
10253         * Form.cs: MdiChildren don't do default locations the same way as
10254         regular forms.  This prevents a crash when trying to position the
10255         mdi windows.
10256
10257 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10258
10259         * PropertyGridTextBox.cs: Formatting, copyright
10260         * PropertiesTab.cs: Formatting
10261         * PropertyGrid.cs: Formatting
10262         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10263           click toggling of values
10264           
10265 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10266
10267         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10268         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10269           every time a control is created
10270         * Application.cs: Removed obsolete EnableRTLMirroring method
10271
10272 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10273
10274         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10275         SelectedIndex to -1. Fixes bug #78121.
10276
10277 2006-04-17  Jackson Harper  <jackson@ximian.com>
10278
10279         * Binding.cs: Handle null values for Current and BindingContext.
10280         This occurs when binding is a little delayed.
10281         * CurrencyManager.cs: return null for Current when there are no
10282         items in the list.
10283         - Hookup to the listchanged event on the DataView and update
10284         bindings when the list is changed.  This fixes late binding of
10285         controls.
10286
10287 2006-04-17  Jackson Harper  <jackson@ximian.com>
10288
10289         * X11Dnd.cs:
10290         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10291         Ringenbach.
10292
10293 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10294
10295         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10296           place
10297         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10298           with the correct ButtonState
10299
10300 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10301
10302         * XplatUIX11.cs: Improved distinguishing between window types to
10303           tell the WM a type closer to what the app wants (Fixes #78107)
10304
10305 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10306
10307         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10308           GrabHandle
10309
10310 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10311
10312         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10313           drawing code to reflect the size grip changes
10314
10315 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * ImageListStreamer.cs: fix handling of the mask that follows the main
10318         bitmap when deserializing and serialize it properly. The generated mask
10319         should better be a 1bpp image, but I'll do that later.
10320
10321 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10322
10323         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10324           path doesn't fit into some of our Current.Places
10325
10326 2006-04-13  Jackson Harper  <jackson@ximian.com>
10327
10328         * ComboBox.cs: Use borders instead of drawing our own decorations,
10329         try to obey correct rules for heights.
10330         * Theme.cs:
10331         * ThemeNice.cs:
10332         * ThemeClearLooks.cs:
10333         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10334         this is now handled by borders.
10335         - Remove unused DrawListBoxDecorationSize method.
10336         
10337 2006-04-13  Mike Kestner  <mkestner@novell.com>
10338
10339         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10340         reported by Alex.
10341
10342 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10343
10344         * ThemeWin32Classic.cs: 
10345           - Fixed CPDrawStringDisabled
10346           - Corrected drawing of disabled menu items
10347           - Fixed drawing of disabled radio buttons (bug #78095)
10348           - Draw check in a disabled CheckBox with color ControlDark 
10349
10350 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10351
10352         * Form.cs: Use the provided width when calculating the menu size;
10353           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10354           and ClientSize.Width won't be updated yet
10355         * Application.cs: Use Visible instead of Show() to make form visible,
10356           this way we create the handle later and menusize is considered
10357
10358 2006-04-12  Mike Kestner  <mkestner@novell.com>
10359
10360         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10361         reporting.
10362
10363 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10364
10365         * TextBox.cs: Implemented context menu
10366
10367 2006-04-12  Mike Kestner  <mkestner@novell.com>
10368
10369         * ListView.cs: implement box selection. fixes #77838.
10370         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10371
10372 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10373
10374         * XplatUIX11.cs: Added setting of window type when transient window
10375           is created (metacity would move it otherwise)
10376         * X11Structs.cs: Added WINDOW_TYPE atoms
10377         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10378           background (the control is Opaque but still wants transparent
10379           backgrounds)
10380
10381 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10382
10383         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10384           that set Opaque but don't mean it (like all ButtonBase-derived
10385           controls) to still draw their background
10386         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10387           the background
10388
10389 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10390
10391         * Control.cs (PaintControlBackground): Set the graphics object
10392           on our PaintEvent to null to prevent it from being disposed
10393           when the PaintEvent gets disposed
10394
10395 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10396
10397         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10398         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10399
10400 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10401
10402         * Control.cs: 
10403           - Added transparency check to BackColor property. Transparent
10404             backgrounds are only allowed if the control styles permit it
10405           - Added recursive painting of parent control background and
10406             foreground if a control with a transparent backcolor is drawn
10407             (Thanks to Tim Ringenback for providing his 'hack' as a base
10408              for this patch) Fixes #77985 and #78026.
10409           - Added Opaque style check before calling OnPaintBackground, no
10410             need to draw the background if the control is opaque
10411           - Removed ControlAccessibleObject owner variable (inherited from
10412             base, no need to define again)
10413           - Added some documentation links explaining the drawing events
10414             and styles
10415
10416 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10417
10418         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10419           that the affected control is the located at the left border of our
10420           parent (Fixes #77936)
10421
10422 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10423
10424         * TextBoxBase.cs: When rendering disabled or readonly controls,
10425           draw the background with 'Control' instead of 'Window' color as
10426           long as the user hasn't specifically set a color
10427
10428 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10429
10430         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10431           since that won't be updated if the user types text (only if it's
10432           programatically set)
10433
10434 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10435
10436         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10437           layout changes do to app-triggered resizes will have the proper
10438           display rectangle for layout
10439
10440 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10441
10442         * ThemeWin32Classic.cs:
10443           - Make use of the SystemBrushes and SystemPens wherever possible
10444           - Corrected some highlight colors
10445           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10446             drawing
10447         * Theme.cs: Added Empty field to CPColor struct
10448
10449 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10450
10451         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10452           is displayed when calculating the display rectangle. Thanks to Mike
10453           for teaching me the err of my ways.
10454
10455 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10456
10457         * ScrollableControl.cs:
10458           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10459             (instead of 0,0) and we now return the real width/height instead of
10460             just the clientrectangle, adjusted for padding. The rectangle is
10461             now cached and created by the new CalculateDisplayRectangle method.
10462           - Created new CalculateDisplayRectange method, which basically does
10463             what get_DisplayRectangle() did originally, but now using the 
10464             right edge instead of DisplayRectangle to determine the size of
10465             our scrollbars
10466           - get_Canvas(): Fixed it to properly calculate canvas for 
10467             right/bottom controls which seem to be placed to the right/bottom
10468             of any controls that have a fixed location
10469           - Removed TODO that's taken care of
10470           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10471             and SetDisplayRectLocation according to new MSDN2 docs
10472           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10473             event when that is called, this is added for compatibility
10474           - ScrollControlIntoView(): Implemented.
10475           - Switched scrollbars to be implicit, they shouldn't be selectable
10476         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10477           call it when the active control is set/changed
10478         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10479         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10480           implicit_control variable (used for native Win32 message generation)
10481         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10482           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10483         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10484         * XplatUIStructs.cs: Added ScrollBarCommands enum
10485
10486 2006-04-10  Jackson Harper  <jackson@ximian.com>
10487
10488         * ButtonBase.cs:
10489         * CheckedListBox.cs:
10490         * ComboBox.cs:
10491         * DataGrid.cs:
10492         * DataGridView.cs:
10493         * Form.cs:
10494         * GroupBox.cs:
10495         * ListBox.cs:
10496         * PrintPreviewControl.cs:
10497         * ProgressBar.cs:
10498         * PropertyGrid.cs:
10499         * Splitter.cs:
10500         * StatusBar.cs:
10501         * TrackBar.cs:
10502         * UpDownBase.cs: Fixup base event overrides.
10503         
10504 2006-04-06  Mike Kestner  <mkestner@novell.com>
10505
10506         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10507         all user-initiated value changes to min <= value <= max-thumbsz+1.
10508         (set_Value): check for vert/horiz when calculating new thumb position.
10509         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10510         like MS does.
10511         (OnMouseMoveSB): refactor the thumb dragging code and refine
10512         invalidation logic to reduce flicker.
10513         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10514         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10515         (UpdateThumbPosition): small code readability cleanup
10516
10517 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10518
10519         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10520           different
10521
10522 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10523
10524         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10525
10526 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10527
10528         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10529         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10530           This dramatically reduces the number of Pen.Dispose calls. 
10531           Where possible call ResPool methods only once instead of calling it
10532           over and over again (for example for the same color).
10533
10534 2006-04-06  Mike Kestner  <mkestner@novell.com>
10535
10536         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10537         Also remove an unused private field on the collection. Fixes #77972.
10538
10539 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10540
10541         * ThemeNice.cs: Added ToolBar drawing code
10542
10543 2006-04-06  Mike Kestner  <mkestner@novell.com>
10544
10545         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10546         I'm assuming that means we need to look up the toplevel for the
10547         provided control. Fixes the crash trace in #77911 but exposes another
10548         crash in some strange reflection usage in NDocGui.
10549
10550 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10551
10552         * ThemeNice.cs: Gave it a little silver touch and added Images
10553           method
10554         * FontDialog.cs: FontDialog is not resizable
10555         * FileDialg.cs: Added SizeGripStyle.Show
10556
10557 2006-04-05  Jackson Harper  <jackson@ximian.com>
10558
10559         * KeyboardLayouts.cs: Remove warning.
10560
10561 2006-04-05  Jackson Harper  <jackson@ximian.com>
10562
10563         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10564         all of our controls instead of Paint +=.
10565         * ListBox.cs:
10566         * ListView.cs:
10567         * MenuAPI.cs:
10568         * MessageBox.cs:
10569         * NotifyIcon.cs:
10570         * ProgressBar.cs:
10571         * ScrollBar.cs:
10572         * Splitter.cs:
10573         * StatusBar.cs:
10574         * TabControl.cs:
10575         * TextBoxBase.cs:
10576         * ToolBar.cs:
10577         * TrackBar.cs:
10578         * UpDownBase.cs:
10579         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10580         use OnPaintInternal. Remove Width/Height and Visible checks in
10581         paint handler, this is done at a higher level now.
10582         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10583         * PaintEventArgs.cs: Add a handled flag so controls that don't
10584         want anymore painting after OnPaintInternal can make sure OnPaint
10585         isn't called.
10586
10587 2006-04-05  Mike Kestner  <mkestner@novell.com>
10588
10589         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10590         state of the form, so that we don't process events when Modal dialogs
10591         are up. Fixes #77922.
10592
10593 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10594
10595         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10596           checking is done.
10597
10598 2006-04-05  Mike Kestner  <mkestner@novell.com>
10599
10600         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10601
10602 2006-04-05  Mike Kestner  <mkestner@novell.com>
10603
10604         * ListView.cs (HeaderMouseMove): null guarding for the over column
10605         when setting up the drag_to_index.  Fixes #78015.
10606
10607 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10608
10609         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10610           in the taskbar. Transient windows seem to accomplish that.
10611
10612 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10613
10614         * Form.cs:
10615           - Re-enabled CreateParams.X/Y code for FormStartPosition
10616           - Added code for manual placement when creating the Control
10617           - Incomplete patch to treat MDI forms differently when
10618             setting the ClientSizeCore. (Still need to figure out handling
10619             x/y coords there)
10620         * XplatUIX11.cs:
10621           - When we're explicitly setting the X/Y position of a non-Child
10622             window, let the WM know. Metacity really wants this.
10623
10624 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10625
10626         * ThemeNice.cs: Added CPDrawButton
10627
10628 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10629
10630         * ThemeNice.cs: Changed the color for focused buttons and activated
10631           the arrows for small scroll buttons.
10632
10633 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10634
10635         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10636           anymore. Changed some method modifiers to protected (virtual)
10637         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10638           changes
10639         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10640           Updated drawing of menus, buttons and progressbars; added
10641           CPDrawBorder3D 
10642
10643 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10644
10645         * ImageListStreamer.cs: implemented serialization/deserialization
10646         of the images.
10647
10648 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10649
10650         * ThemeWin32Classic.cs:
10651           - Removed all the DrawFrameControl stuff; CPDrawButton,
10652             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10653             inside the methods
10654           - Updated and corrected the drawing code of CPDrawButton,
10655             CPDrawCheckBox and CPDrawRadioButton to better match ms
10656           - Updated theme checkbox and radiobutton code to use the CP*
10657             methods
10658
10659 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10660
10661         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10662           bug is fixed
10663
10664 2006-03-31  Jackson Harper  <jackson@ximian.com>
10665
10666         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10667         sometimes.
10668         * UpDownBase.cs: Don't CreateGraphics manually, use a
10669         Refresh. Ideally we would invalidate the correct areas here.
10670
10671 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10672
10673         * XplatUIX11.cs: 
10674           - We now track the mapping state of windows. If a window (or 
10675             one of it's parents) is not mapped we no longer permit
10676             WM_PAINT messages to be generated since we'd otherwise get 
10677             lots of BadMatch X errors. Jackson did all the work figuring
10678             out the problem.
10679           - Destroying the caret if the window it's contained in is 
10680             destroyed. Can't use regular DestroyCaret method since it
10681             might fall into a drawing function (trying to remove the
10682             caret) and with that generate new BadMatch errors. Again,
10683             Jackson tracked this down.
10684           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10685             make sure we send the messages to all windows. (The old code
10686             would send the WM_DESTROY to the window, and then all child
10687             windows would be 'gone' because the WM_DESTROY handle lookup
10688             would no longer find the destroyed window)
10689         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10690         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10691
10692 2006-03-31  Jackson Harper  <jackson@ximian.com>
10693
10694         * ScrollableControl.cs: Dont recalc if we are not visible.
10695
10696 2006-03-31  Mike Kestner  <mkestner@novell.com>
10697
10698         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10699         the visibility branch.
10700
10701 2006-03-31  Jackson Harper  <jackson@ximian.com>
10702
10703         * ScrollBar.cs: Cap values when incrementing/decrementing.
10704
10705 2006-03-31  Mike Kestner  <mkestner@novell.com>
10706
10707         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10708         * ToolTip.cs: guard against timer expirations with no active control.
10709         Not sure why it happened.
10710
10711 2006-03-31  Mike Kestner  <mkestner@novell.com>
10712
10713         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10714         text.
10715         * ToolTip.cs: Position the tooltip based on where the cursor is at
10716         popup time, not at MouseEnter time.  Add a Down state so that we don't
10717         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10718         positioning offset. Lookup DisplaySize at positioning time, since it
10719         can theoretically change during invocation.
10720         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10721         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10722
10723 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10724
10725         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10726           Fixes behaviour when the Text property of the box is String.Empty
10727
10728 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10729
10730         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10731           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10732           a window)
10733
10734 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10735
10736         * FileDialog.cs: Visual enhancement for the popup buttons in 
10737           PopupButtonPanel
10738
10739 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10740
10741         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10742           code
10743
10744 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10745
10746         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10747           highlighted menu items to match ms
10748
10749 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10750
10751         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10752
10753 2006-03-30  Mike Kestner  <mkestner@novell.com>
10754
10755         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10756         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10757         go active to account for HotLight to Selected transition.
10758         * MenuItem.cs: add internal Selected prop. Fill out the Status
10759         property by calculating it from item info. Add HotLight,
10760         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10761
10762 2006-03-30  Mike Kestner  <mkestner@novell.com>
10763
10764         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10765
10766 2006-03-29  Jackson Harper  <jackson@ximian.com>
10767
10768         * Form.cs: Implement TODO.
10769
10770 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10771
10772         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10773           missing proper dialog setup in the constructor
10774
10775 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10776
10777         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10778         * Control.cs:
10779           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
10780           - Fixed ResetBindings and removed TODO
10781           - Added check for cross-thread calls to get_Handle()
10782           - Added Marshaller attribute for set_Font to satisfy class status
10783         * FontDialog.cs: Removed TODOs that seemed implemented
10784         * UpDownBase.cs: Removed unneeded TODO and Fixme
10785         * MessageBox.cs: Implemented support for Default button and removed TODO
10786         * FileDialog.cs: Removed obsolete TODO
10787         * DomainUpDown.cs: Removed obsolete TODO
10788         * ButtonBase.cs: Removed obsolete TODO
10789         * XplatUIWin32.cs: Removed obsolete TODO
10790         * Form.cs:
10791           - Removed obsolete TODO
10792           - Calling CheckAcceptButton when the acceptbutton is changed to allow
10793             internal status updates
10794           - Making sure the active control is selected when the control is created
10795         * CurrencyManager.cs: Removed obsolete TODO
10796
10797 2006-03-29  Mike Kestner  <mkestner@novell.com>
10798
10799         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
10800         of PrintPreviewDialog and RichTextBox.
10801
10802 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10803
10804         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
10805           DarkDark, Light and LightLight colors for a specific color
10806         * ThemeWin32Classic.cs:
10807           - Use Button drawing code to draw RadioButtons and CheckBoxes with
10808             Appearance = Button 
10809           - Make use of the new ResPool helper CPColor
10810           - Draw ProgressBar and StatusBar with correct 3D borders
10811
10812 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10813
10814         * ColorDialog.cs: Return selected color. Fixes bug #77940.
10815
10816 2006-03-28  Mike Kestner  <mkestner@novell.com>
10817
10818         * ListView.cs: fix Icon layout to plan for scrollbar widths when
10819         calculating col/row counts.
10820
10821 2006-03-28  Mike Kestner  <mkestner@novell.com>
10822
10823         * ColumnHeader.cs:
10824         * ListView.cs:
10825         * ListViewItem.cs:
10826         * Menu.cs: 
10827         switch to explicit interface method implementation for some methods
10828         corcompare identifies as inconsistent with MS.
10829
10830 2006-03-28  Mike Kestner  <mkestner@novell.com>
10831
10832         * MainMenu.cs: 
10833         * Menu.cs:
10834         add a few missing methods from the class status output.
10835
10836 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
10837
10838         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
10839           correct.
10840
10841 2006-03-28  Mike Kestner  <mkestner@novell.com>
10842
10843         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
10844
10845 2006-03-27  Mike Kestner  <mkestner@novell.com>
10846
10847         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
10848         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
10849
10850 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
10851
10852         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
10853
10854 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10855
10856         * ThemeWin32Classic.cs:
10857           - GroupBox: Inserted a little gap between the text and the lines
10858             on the right side
10859           - Made the code in CPDrawBorder3D more readable
10860           - Corrected the drawing location of the up and down arrows in 
10861             CPDrawScrollButton
10862
10863 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10864
10865         * ControlPaint.cs: Corrected line widths in DrawBorder for
10866           ButtonBorderStyle Inset and Outset
10867
10868 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10869
10870         * ThemeWin32Classic.cs:
10871           - Rewrote the totally broken CPDrawBorder3D method. That was
10872             one of the main problems for the terrific ThemeWin32Classic
10873             look
10874           - Updated and corrected Button drawing
10875           - Correct the dimensions of the SizeGrip to match ms ones
10876           - Removed a small drawing glitch in DrawComboBoxEditDecorations
10877         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
10878           Border3DStyle.Sunken to match ms.
10879
10880 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10881
10882         * ThemeWin32Classic.cs: First small part of the "de-uglify
10883           ThemeWin32Classic" effort, SizeGrip
10884
10885 2006-03-24  Jackson Harper  <jackson@ximian.com>
10886
10887         * XplatUIX11.cs: Give a max idle time of one second, this matches
10888         MS and forces an Idle event every second when there are no other
10889         events in the queue.
10890
10891 2006-03-24  Mike Kestner  <mkestner@novell.com>
10892
10893         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
10894         * ListView.Item.cs: fix layout issues with null image lists and images
10895         smaller than checkbox size.
10896         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
10897         mode like MS does.  It's weird, but consistent.  ;-)
10898         Fixes #77890.
10899
10900 2006-03-24  Mike Kestner  <mkestner@novell.com>
10901
10902         * ListView.cs: Scroll wheel support for the item control.  Fixes
10903         #77839.
10904
10905 2006-03-23  Jackson Harper  <jackson@ximian.com>
10906
10907         * ScrollableControl.cs: Special case negative sized areas, not
10908         zero.
10909         * MonthCalendar.cs: Save the rect of the clicked date so we can
10910         use it for invalidation.
10911         - Try to cut down on the number of invalidates
10912         - Invalidate the rect the mouse is over and was over when moving
10913         the mouse, so we get the focus box following the cursor.
10914
10915 2006-03-23  Mike Kestner  <mkestner@novell.com>
10916
10917         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
10918         focus rectangle drawing. Fixes #77835.
10919
10920 2006-03-23  Mike Kestner  <mkestner@novell.com>
10921
10922         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
10923         the if and else if and reverting back to the original == check on the
10924         None conditional.
10925
10926 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
10927
10928         * FontDialog.cs: Update the example panel if the selected index of
10929           the fontListBox changes.
10930
10931 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
10932
10933         * FileDialog.cs: Make FileDialog remember which directory it was in
10934           last in the same execution.
10935
10936 2006-03-22  Mike Kestner  <mkestner@novell.com>
10937
10938         * FileDialog.cs: make the DropDownMenu on the toolbar display
10939         RadioChecks since they are mutually exclusive and that's what MS does.
10940
10941 2006-03-22  Mike Kestner  <mkestner@novell.com>
10942
10943         * Theme.cs: add Color param to CPDrawMenuGlyph.
10944         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
10945         checks and radio marks and arrows are visible on highlighted items.
10946         * ControlPaint.cs: update to use new Theme signature.
10947
10948 2006-03-22  Mike Kestner  <mkestner@novell.com>
10949
10950         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
10951         is active. Fixes #77870.
10952
10953 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
10954
10955         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
10956           to be focused/selected after startup
10957
10958 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
10959
10960         * ColorDialog.cs: 
10961           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
10962             CustomColors and ShowHelp properties
10963           - Some internal rewrites to get better results when using the
10964             ColorMatrix
10965
10966 2006-03-22  Mike Kestner  <mkestner@novell.com>
10967
10968         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
10969         HoverSelection.  Fixes #77836.
10970
10971 2006-03-22  Mike Kestner  <mkestner@novell.com>
10972
10973         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
10974         ToggleButtons.  (De)Sensitize the Back button around a stack count of
10975         1, not 0.  Update ButtonSize based on a pixel count of the win32
10976         control.  Adjust the toolbar size/location for new button size.
10977
10978 2006-03-22  Jackson Harper  <jackson@ximian.com>
10979
10980         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
10981         true.
10982         * ScrollBar.cs: When doing increments and decrements we need to
10983         set the Value property so that ValueChanged gets raised. A
10984         possible optimization here would be to make an internal SetValue
10985         that doesn't invalidate immediately.
10986         * ToolTip.cs: Tooltips get added to their container (when
10987         supplied) so they get disposed when the container is disposed.
10988         - Don't create tooltips for String.Empty. This prevents all these
10989         little 2-3 pixel windows from showing up when running nunit-gui
10990         and driving me mad.
10991         * Form.cs: Don't set topmost when setting the owner if the handles
10992         haven't been created yet.  The topmost set will happen when the
10993         handles are created.
10994
10995 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
10996
10997         * XplatUIX11.cs:
10998           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
10999           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11000             visible (to allow them to recalculate their sizes)
11001
11002 2006-03-21  Mike Kestner  <mkestner@novell.com>
11003
11004         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11005         methods. Removed a ton of redundant code.  Still not really happy with
11006         the border rendering, but I think that's mainly because of the
11007         ControlDarkDark being black instead of a dark grey. Depending on how 
11008         close we want to be, we might want to revisit those color choices.
11009         Among the new features added during the refactor were DropDownArrow
11010         pressed rendering, Disabled image rendering.  Proper flat appearance
11011         boundary rendering.  Removed the Divider and Wrapping dividers since I
11012         can't figure out any combination of themes and conditions to make the
11013         MS control draw a horizontal line on a toolbar despite what the
11014         Divider property docs indicate.
11015         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11016         conditions and incorrect layout.  Updated to coding standard.
11017         * ToolBarButton.cs: refactored layout and positioning code from
11018         ToolBar to here.  Invalidate wherever possible instead of forcing
11019         redraws of the whole toolbar. 
11020         (Known remaining issues: explicit ButtonSize smaller than provided
11021         images.)
11022
11023 2006-03-21  Mike Kestner  <mkestner@novell.com>
11024
11025         * ContextMenu.cs (Show): use the position parameter instead of just
11026         showing at the MousePosition.
11027
11028 2006-03-21  Jackson Harper  <jackson@ximian.com>
11029
11030         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11031         control handle this.
11032         * TreeNodeCollection.cs: If we are clearing the root node we need
11033         to reset top_node so calcs can still happen.
11034         * ThemeWin32Classic.cs: This is a Flags so we need to check
11035         properly.
11036         
11037 2006-03-21  Jackson Harper  <jackson@ximian.com>
11038
11039         * DataGrid.cs: Create columns when the binding context has been
11040         changed.
11041         * X11Structs.cs: Keysyms are uints.
11042         - Add size to fix build.
11043
11044 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11045
11046         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11047           XplatUIOSX.cs: 
11048           - Added ResetMouseHover method to allow controls to retrigger
11049             hovering if they need it more than once
11050           - Implemented MouseHoverTime and MouseHoverSize properties
11051         * Timer.cs: Start() must reset the interval
11052         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11053           properties
11054
11055 2006-03-21  Jackson Harper  <jackson@ximian.com>
11056
11057         * X11Keyboard.cs: improved layout detection. Move the nonchar
11058         tables into this file.
11059         * KeyboardLayouts.cs: Move the tables into resource files.
11060
11061 2006-03-21  Mike Kestner  <mkestner@novell.com>
11062
11063         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11064
11065 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11066
11067         * Mime.cs: Various speed optimizations. Looking up mime types
11068           is now 2 times faster than before
11069
11070 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11071
11072         * CreateParams.cs: Added internal menu field
11073         * Control.cs: 
11074           - Switched call order for UpdateBounds; now we always call
11075             the one that also takes ClientSize, and we're calculating the 
11076             client size via driver method in the others. The previous
11077             method of tracking client size by difference wasn't working
11078             for forms where even the starting client size wouldn't match
11079             the overall form size (due to borders) (Part of fix for #77729)
11080           - CreateParams(): Do not use parent.Handle unless the handle is
11081             already created. Causes havoc with Nexxia and throws off our
11082             creation of controls
11083         * XplatUIX11.cs:
11084           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11085           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11086             method (consolidates code)
11087           - Changed RequestNCRecalc to use new PerformNCCalc method
11088           - Added calls to RequestNCRecalc when menus and borders are changed
11089             to allow app to set NC size. (Part of fix for #77729) This matches
11090             when MS send a WM_NCRECALC on Win32 windows.
11091           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11092             (Part of fix for #77729). This matches what MS does, they also
11093             send that message when the form is made visible.
11094           - XException.GetMessage: Improved usability of X errors by including
11095             a translation of the window into Hwnd and Control class
11096           - Improved debug info for window creation, reparenting and destruction
11097           - Created helper method WindowIsMapped() [Currently not used]
11098         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11099         * Form.cs:
11100           - CreateParams: Now setting our menu on the new internal menu field
11101           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11102             avoid calculating the same property twice
11103         * Hwnd.cs:
11104           - Improved usability of ToString() for debugging purposes
11105           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11106             determine the height of the menu, instead of just the font. This
11107             required to also create a graphics context and to keep a bmp 
11108             around (for performance reasons)
11109
11110 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11111
11112         * MenuAPI.cs: Added OnMouseUp method
11113         * Form.cs:
11114           - Now remembering the requested client size, avoids size errors
11115           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11116             instead of base if the menu is active. This is required due to
11117             control now capturing and releasing on down/up and it would
11118             prematurely release our menu capture
11119
11120 2006-03-17  Jackson Harper  <jackson@ximian.com>
11121
11122         * KeyboardLayouts.cs: Add the czech layouts.
11123
11124 2006-03-16  Jackson Harper  <jackson@ximian.com>
11125
11126         * Control.cs: Use the viewport space when sizing not the controls
11127         client size, so things like ScrollableControl that effect the
11128         viewport size (when scrollbars are added) are computed correctly.
11129         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11130         of ManagerEntrys.
11131         - Handle creating BindingManagers for null data sources.
11132         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11133         source, otherwise when rows are added they are added to the 'fake'
11134         datasource and we will crash when trying to set the position in
11135         those rows.
11136         - Use Implicit scrollbars on the datagrid so they arent
11137         selectable.
11138         
11139 2006-03-16  Jackson Harper  <jackson@ximian.com>
11140
11141         * Binding.cs:
11142         * InternalWindowManager.cs:
11143         * MdiWindowManager.cs:
11144         * X11Keyboard.cs: I really want Mike to love me again (fix
11145         compiler warnings).
11146
11147 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11148
11149         * DataGrid.cs:
11150           - OnMouseDown: Switch to editing mode when clicking on the cell
11151                          even if we're clicking on the cell that's currently 
11152                          selected
11153           - ProcessGridKey: Left/Right now wrap like MS.Net does
11154           - ProcessGridKey: Tab now knows to add a new row when tab is
11155                             pressed in the cell of the last column of the 
11156                             last row
11157           - ProcessGridKey: Enter now adds another row  if pressed in the last
11158                             row and selectes the new row, same column cell
11159           - ProcessGridKey: Home/End navigate columns, not rows, like 
11160                             originally implemented
11161           - Broke ProcessKeyPreview code out into an extra Internal method
11162             so it can be called from the edit code
11163         * DataGridTextBox.cs (ProcessKeyMessage):
11164           - Switched to accept Tab keypresses
11165           - Added F2 handling to allow jumping to the end of the edited cell
11166           - Added logic to allow moving caret left/right inside edited cell
11167             and making the edited cell jump when the caret hits cell borders
11168           - Tab and Enter are now passed to the datagrid after being handled
11169         * TextBoxBase.cs:
11170           - Removed capture code now that Control handles it
11171           - set_SelectionStart now ensures caret is visible
11172
11173 2006-03-16  Jackson Harper  <jackson@ximian.com>
11174
11175         * TrackBar.cs: Debackwards the increment/decrement for handling
11176         mouse clicks on the bar with vertical trackbars.
11177         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11178         bottom to match MS.
11179
11180 2006-03-16  Mike Kestner  <mkestner@novell.com>
11181
11182         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11183         consistent with the MS control. Fix a bug in
11184         SelectedListViewItemCollection.Clear that was pissing me off for the
11185         better part of a day because the collection was being altered
11186         underneath us as we walked the list.
11187
11188 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11189
11190         * Control.cs: Not sure how we could miss this so long, but it seems
11191           that MS.Net has Capture set all the way from before calling 
11192           OnMouseDown through sending the mouse events until after
11193           OnMouseUp. This will fix DataGrid's selection being set to end
11194           at the location of the MouseUp.
11195
11196 2006-03-15  Jackson Harper  <jackson@ximian.com>
11197
11198         * BindingContext.cs: Check the binding after its added so that it
11199           can initialize the binding managers and hookup to events.
11200         * Binding.cs: Data members seem to sometimes include rows/cols in
11201           the format Row.Column we now take this into account.
11202           - Hookup to the position changed event so we can update the
11203           control when the position has changed in the data set.
11204         * CurrencyManager.cs: Take into account the row/col naming
11205           convention when creating dataset tables.
11206         * BindingContext.cs: Using a newer better way of storing
11207           datasource/datamember pairs.  Hopefully this better matches MS for
11208           looking up binding managers.
11209
11210
11211 2006-03-15  Jackson Harper  <jackson@ximian.com>
11212
11213         * BindingContext.cs: The currency manager needs the data member
11214         name, if the member is a data set we use the name to find the
11215         correct table.
11216         * CurrencyManager.cs: When creating the list prefer an IList over
11217         an IListSource.
11218         - Attempt to create a DataTable from a DataSet (TODO: might need
11219         some better error checking here, although MS doesn't seem to have much)
11220         - If we have a DataTable create a view and use it as our list.
11221
11222 2006-03-15  Mike Kestner  <mkestner@novell.com>
11223
11224         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11225         keyboard navigation. Support Up/Down/Left/Right selection correctly
11226         for all 4 View modes.
11227         * ListViewItem.cs: add internal row/col fields for icon layouts.
11228
11229 2006-03-15  Jackson Harper  <jackson@ximian.com>
11230
11231         * TabControl.cs: Redraw the tabs when we resize so their newly
11232         calculated sizes are drawn on screen.
11233         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11234         composite characters.
11235         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11236         - filter events so that composite characters can be created
11237         patches by peter
11238         * X11Structs.cs: Add XIMProperties enum.
11239
11240 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11241
11242         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11243           unless it's created
11244
11245 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11246
11247         * Control.cs (PerformLayout): We don't need to consider visiblity
11248           for anchoring, only for docking. This fixes 'whacky' alignment
11249           in listbox and other controls that use implicit scrollbars after
11250           the previous PerformLayout patch
11251         * ListBox.cs: Switched to use implicit scrollbars
11252           
11253 2006-03-14  Mike Kestner  <mkestner@novell.com>
11254
11255         * ToolBar.cs: 
11256         * VScrollBar.cs:
11257         - chain up the "new event" overrides to base and use
11258         OnEvent to raise them.  Part of fix for bug #76509.
11259
11260 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11261
11262         * FileDialog.cs: Do not select an item in the parent directory
11263           on backspace
11264
11265 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11266
11267         * Control.cs (PerformLayout): It would seem that we considered
11268           invisible windows for our layout. Not quite the right thing
11269           to do. Now we don't any longer, thereby fixing bug #76889.
11270
11271 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11272
11273         * Control.cs (CanFocus): I goofed. A control can have focus 
11274           even though it's not selectable. Made it match MS docs.
11275
11276 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11277
11278         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11279           center by default (fixes #76895)
11280         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11281           all uses of Border3DSides.All with the explicit ORd together
11282           Left|Right|Top|Bottom because I assume that nobody was aware 
11283           that All also implies a center fill. Most places I checked had
11284           a fill right above.
11285         * ProgressBarStyle.cs: Added
11286
11287 2006-03-13  Mike Kestner  <mkestner@novell.com>
11288
11289         * ListView.cs: fix breakage in drag shadow header positioning 
11290         from Peter's csc compilation fix.
11291
11292 2006-03-13  Mike Kestner  <mkestner@novell.com>
11293
11294         * ListView.cs: fix NRE produced by backspacing twice in a focused
11295         FileDialog.
11296
11297 2006-03-13  Mike Kestner  <mkestner@novell.com>
11298
11299         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11300
11301 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11302
11303         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11304           be changed
11305         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11306           the allowed size before making programmatic size changes
11307
11308 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11309
11310         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11311           set, metacity is broken and will still use the emty sizes in 
11312           the struct. (Fix for #77089)
11313
11314 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11315
11316         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11317           WindowExStyles and marked both enums as Flags
11318         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11319           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11320           to match WindowStyles split
11321         * XplatUIX11.cs:
11322           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11323           - Updated to match WindowStyles split
11324         * XplatUIWin32.cs:
11325           - Fixed FosterParent creation, was using ExStyle on the Style field
11326             (This should help with Popup focus issues)
11327           - Updated to match WindowStyles split
11328
11329 2006-03-13  Jackson Harper  <jackson@ximian.com>
11330
11331         * MdiWindowManager.cs: Use the system menu height. Fixes some
11332         strange sizing issues.
11333
11334 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11335
11336         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11337         * TextBoxBase.cs:
11338           - Scroll to caret after inserting text (#77672)
11339           - Make scroll range one pixel higher, fixes off-by-one error (and
11340             makes underlines visible on the last line)
11341
11342 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11343
11344         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11345           the keyboard state from being stuck with keys in 'pressed' state when
11346           focus is switched away via keyboard
11347         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11348           reset the keyboard if no X11 KeyUp events are expected to come
11349         * X11Structs.cs: Switched type of Visible to bool to match driver
11350
11351 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11352
11353         * TextControl.cs:
11354           - Switched caret to be just 1 pixel wide, matches MS and looks less
11355             clunky
11356           - Moved caret display 1 pixel down from the top of the control
11357             to improve view
11358           - InsertCharAtCharet: Update the selection start if moving the caret
11359             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11360           - No longer always creating the caret when the caret methods are
11361             called. Only the actual ShowCaret/HideCaret will do that now
11362           - Only setting caret visible if the owner control has focus
11363           - UpdateView: Added invalidation-shortcut logic for center and right 
11364             aligned text. Previously we'd update all according to the left
11365             logic which caused drawing errors. Also fixed height of invalidated
11366             areas, now properly invalidating the whole area (was off-by-one)
11367           - owner_HandleCreated: Always generate the document when the
11368             handle is created; this ensures that 
11369         * TextBoxBase.cs:
11370           - Fixed situation where caret would disappear under the right
11371             window border, also improved scrolling behaviour on left-
11372             aligned textboxes
11373           - Fixed right-aligned textboxes to have a border to the
11374             right instead of the caret being under the right border
11375         * XplatUIX11.cs:
11376           - Switched from 'nested' to simple visible/not visible tracking 
11377             for caret (part of fix for #77671)
11378           - No longer passing through translated FocusIn/FocusOut messages
11379             since we were notifying too often and the wrong windows. Instead
11380             we just notify our focussed window of receiving or loosing focus
11381         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11382           counting for caret to simple visible yes/no behaviour (part of 
11383           fix for #77671)
11384
11385 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11386
11387         * Mime.cs: Remove debug code...
11388
11389 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11390
11391         * MimeGenerated.cs: Removed
11392         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11393           and subclasses) from /usr/(local/)share/mime and
11394           $HOME/.local/share/mime.
11395
11396 2006-03-10  Jackson Harper  <jackson@ximian.com>
11397
11398         * MdiWindowManager.cs: Recalc the NC area when a window is
11399         maximized/restored so that the menu area is drawn on forms that
11400         don't have a menu.
11401
11402 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11403
11404         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11405           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11406           us to force a WM_NCCALCRESIZE message being sent. This is needed
11407           for MDI maximizing.
11408
11409 2006-03-10  Jackson Harper  <jackson@ximian.com>
11410
11411         * Form.cs: We need to use the ActiveMenu when calculating menu
11412         height.
11413         - Fix nullref when the window manager hasn't been created yet.
11414         * Control.cs: Fix nullref when we try to bring a control to the
11415         front that has no parent.
11416         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11417         height.
11418         - Add a dummy item to the maximized menu so it always has the
11419         correct height. Otherwise when there are no menus we don't get our
11420         icon and buttons.
11421         
11422
11423 2006-03-10  Jackson Harper  <jackson@ximian.com>
11424
11425         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11426         stuff.
11427         * Form.cs: Make the window_state internal so the window managers
11428         can track it.
11429         - When an MDI child is maximized let its window manager create the
11430         main menu (so it can add its icon).
11431         - Notify the window managers of state changes
11432         - Let the window manager paint its buttons and handle button
11433         clicks on the menu when it is maximized.
11434         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11435         window manager, since tool windows don't use it, only mdi windows.
11436         - Tell the main form that we don't want it to handle NCPAINT
11437         itself to avoid extra painting.
11438         - Handle clicks on a maximized windows menu.
11439         - Handle window state changes
11440         - Handle minimize/maximize clicks correctly by setting the window state.
11441         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11442         when clicking on the forms icon).
11443         - New method to create a forms maximized menu. This is its normal
11444         menu + an icon.
11445         - Handle window state changes.
11446         - Handle sizing of maximized windows.  Maximized windows are just
11447         drawn bigger then the parent visible area. All controls are still
11448         there, they are just outside the visible area (this matches windows).
11449         * MdiClient.cs: No scrollbars when a child window is maximized.
11450         - Let the children windows figure out how big they should be when
11451         sizing maximized windows.
11452         - Implement a version of ArrangeIconicWindows somewhat similar to
11453         Windows version.  There are some little differences, but I don't
11454         think any app will rely on the layout of minimized mdi windows.
11455
11456 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11457
11458         * Padding.cs: Several fixes to allow compiling with csc 2.0
11459
11460 2006-03-09  Jackson Harper  <jackson@ximian.com>
11461
11462         * Menu.cs:
11463         * MenuItem.cs: Cheap hack so we can add items to the list without
11464         the events being raised.  This allows adding mdi items during
11465         drawing. TODO: Should probably find a better time to add the items.
11466
11467 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11468
11469         * ThemeWin32Classic.cs:
11470           - CheckBox_DrawText: Added logic to not wrap if not enough space
11471             is available (Fix for bug #77727)
11472           - RadioButton_DrawText: Added logic not to wrap if not enough
11473             space is available (Fix for bug #77727). Also removed some
11474             duplicate code, DrawString always drawing the regular text
11475             before hitting the if statement.
11476
11477 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11478
11479         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11480
11481 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11482
11483         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11484         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11485           methods. Moved the new 2.0 properties into alphabetical order with
11486           other properties and added MonoTODO tags
11487
11488 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11489
11490         * AutoScaleMode.cs: Added. Fix build.
11491
11492 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11493
11494         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11495           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11496           and was requiring premature handle creation for calls from above
11497         * Form.cs, Control.cs: Removed handle arguments from calls to
11498           CalculateClientRect()
11499
11500 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11501
11502         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11503           drag_column.column_rect is MarshalByRef and can't be used that way
11504
11505 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11506
11507         * AxHost.cs: Added deserialization constructor for 
11508           AxHost+State (fixes 77743)
11509
11510 2006-03-09  Mike Kestner  <mkestner@novell.com>
11511
11512         * ListView.cs: 
11513         - Added column drag reordering for details view.
11514         - fixed behavior when mouse is dragged off column and
11515         AllowColumnReorder is false.
11516         * ColumnHeader.cs: clone the format too in Clone.
11517         * Theme.cs: add DrawListViewHeaderDragDetails method.
11518         * ThemeWin32Classic.cs:
11519         - impl new method for drawing drag column shadows and targets.
11520         - support column offset for details mode in DrawListViewItem.
11521
11522 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11523
11524         * TextControl.cs: Reset the char_count when the document is cleared
11525           (Fixes bug reported on mono-winforms mailing list)
11526
11527 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11528
11529         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11530           of calling base we simply process the key ourselves, since both
11531           DefWindowProc and the handled method would set m.Result. 
11532           (Fixes #77732)
11533
11534 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11535
11536         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11537           method also moves the window; instead implemented a copy of
11538           Control.ScaleCore (Part of fix for #77456)
11539         * TextBoxBase.cs: 
11540           - Created new CreateGraphicsInternal method to allow providing
11541             a graphics context when no handle is created without triggering
11542             handle creation. (Part of fix for #77456)
11543           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11544         * TextControl.cs: 
11545           - Switched Constructor to require TextBoxBase instead of Control (to
11546             allow uncast access to CreateGraphicsInternal)
11547           - Safeguarded use of owner.Handle property. No longer accessing it
11548             unless the handle is already created.
11549           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11550           - Now triggering a recalc when owning control becomes visible
11551         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11552           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11553           premature handle creation (Part of fix for #77456)
11554         * Control.cs:
11555           - We now only destroy our double-buffering buffers when the
11556             control is resized or disposed, but not when visibility
11557             changes. (The code even re-created them twice every time)
11558           - Now requiring a redraw of the buffer on visibility changes
11559             (fixes bug 77654 part 2)
11560           - Not passing OnParentVisibleChanged up unless the control
11561             is visible
11562           - CanFocus: Fixed to match MS documentation
11563           - Focus: Fixed to return actual focus state and to check if
11564             setting focus is legal before setting it
11565
11566 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11567
11568         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11569           when to draw focus rectangle by looking at parent focus and
11570           selected state instead. This fixes TabPages on Linux sometimes
11571           having none or multiple focus rectangles.
11572         * XplatUIX11.cs (SetFocus): 
11573           - Don't set the focus if the same window already has focus
11574           - Use SendMessage instead of PostMessage (like it's Win32
11575             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11576             to match MS behaviour
11577         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11578           are not selectable.
11579
11580 2006-03-07  Jackson Harper  <jackson@ximian.com>
11581
11582         * PictureBox.cs: Revert line I accidently committed last week.
11583
11584 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11585
11586         * Control.cs: 
11587           - Added new IsRecreating and ParentIsRecreating properties to
11588             allow testing if RecreateHandle has been called on ourselves
11589             or one of our parents
11590           - WndProc(WM_DESTROY): If our control handle is being recreated
11591             we immediately need to create the handle when receiving the
11592             destroy, that way our child windows find a valid parent handle
11593             when they themselves are being recreated upon WM_DESTROY receipt
11594             (fix for bug #77654 part 1)
11595         * XplatUIX11.cs:
11596           - DestroyWindow: WM_DESTROY must be sent to our own window before
11597             notifying any child windows. MS documents that child windows
11598             are still valid when WM_DESTROY is received. (Control now relies on
11599             this behaviour)
11600           - Added some fine-grain debug options
11601
11602 2006-03-06  Jackson Harper  <jackson@ximian.com>
11603
11604         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11605         box and base calculations off this.
11606         * MdiChildContext.cs:
11607         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11608         anymore.
11609         
11610 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11611
11612         * Splitter.cs: In situations where the affected control is added
11613           to the parent's control list after the splitter, we would not
11614           populate affected. Now we try populating it on mousedown, if
11615           it's not already set, and force it to be re-set whenever our
11616           parent changes.
11617
11618 2006-03-03  Matt Hargett  <matt@use.net>
11619
11620         * Control.cs: implement Control.Padding
11621         * Padding.cs: -Padding.All returns -1 when constructing with the
11622         implicit default ctor
11623         -Padding.ToString() matches MS.NET
11624         * ContainerControl.cs: implement
11625         ContainerControl.AutoScaleDimensions
11626         * ListControl.cs: implement ListControl.FormattingEnabled
11627         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11628         * ButtonBase.cs:
11629         * TabPage.cs: Implement UseVisualStyleBackColor.
11630         * PictureBox.cs: Implement PictureBox.InitialImage.
11631
11632 2006-03-03  Mike Kestner  <mkestner@novell.com>
11633
11634         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11635         event declarations to proxy to base event.
11636         * ListViewItem.cs: update to use ItemControl.
11637         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11638         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11639         column header label rendering for 0 width columns.
11640
11641 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11642
11643         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11644           that causes the control to be created. Fixes #77476.
11645
11646 2006-03-02  Jackson Harper  <jackson@ximian.com>
11647
11648         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11649         expose_pending.
11650
11651 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11652
11653         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11654           passed in for the EventArgs (fixes #77690)
11655
11656 2006-03-01  Jackson Harper  <jackson@ximian.com>
11657
11658         * ScrollBar.cs: Refresh afterbeing resized.
11659
11660 2006-02-28  Mike Kestner  <mkestner@novell.com>
11661
11662         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11663         Clean up a tracker compile warning.
11664         * MenuItem.cs: add internal PerformPopup method.
11665         [Fixes #77457]
11666
11667 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11668
11669         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11670           implicit expose) when the text is set to null
11671
11672 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11673
11674         * RichTextBox.cs (FlushText): When newline is true, we always
11675           need to split the line, even if no text is on it and we may
11676           never eat newlines. (Fixes #77669)
11677
11678 2006-02-28  Mike Kestner  <mkestner@novell.com>
11679
11680         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11681         and set Selected instead.
11682         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11683         collections.
11684
11685 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11686
11687         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11688
11689 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11690
11691         * FontDialog.cs:
11692           - Got rid of the panel. All controls are now directly added to
11693             the dialog form
11694           - It is now possible to set a font with the Font property
11695           - MinSize and MaxSize property do now what they should
11696           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11697           - Searching and selecting a font with the font textbox works now,
11698             the same applies to the style and size textbox
11699           - Draw the correct 3D border in the example panel
11700           - Fixed a little mem leak (unused fonts didn't get disposed)
11701           - Many other internal updates/rewrites...
11702           - Fix typo
11703
11704 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11705
11706         * TextControl.cs: 
11707           - InsertRTFFromStream: Added 'number of characters inserted' argument
11708           - set_SelectedRTF: Now using the number of characters to calculate
11709             the new location for the selection and cursor (x/y cannot be used
11710             due to potentially already wrapped text)
11711
11712 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11713
11714         * TextControl.cs: Added property and implemented means to allow 
11715           disabling recalculation of a document (can be used to speed up
11716           multiple inserts and is needed to make RTF inserts predictable, see
11717           bug #77659)
11718         * RichTextBox.cs: Using the new NoRecalc property of Document to
11719           keep x/y insert locations predictable. Also makes it faster inserting
11720           large chunks of RTF
11721
11722 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11723
11724         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11725           it's easier for a child control to handle the other messages without
11726           having to duplicate the special functionality
11727         * TextBoxBase.cs
11728           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11729             code to handle processing the key ourselves, in order to get 
11730             access to the result of KeyEventArgs.Handled. We now only call 
11731             ProcessKey if they key hasn't been handled already. Fixes #77526.
11732           - set_Text: If null or empty string is given, just clear the 
11733             document. Fixes part of #77526
11734
11735 2006-02-27  Jackson Harper  <jackson@ximian.com>
11736
11737         * SizeGrip.cs: Paint the background color before painting the grip
11738         so things look right.
11739         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11740
11741 2006-02-27  Mike Kestner  <mkestner@novell.com>
11742
11743         * ListView.cs:
11744           - Restructure layout and invalidation model to remove a ton of
11745           flicker from the control and speed up performance in general.
11746           - Add manual column resize, flickers like crazy, but I already have
11747           some ideas on how I'll fix that. (#76822)
11748           - Merge the three Icon-based views into a single layout method.
11749           - Move item selection interaction logic from the item since 
11750           interaction with the collections is more appropriate to the view.
11751           - Deselection on non-item clicks.
11752         * ListViewItem.cs:
11753           - Encapsulate most of the layout. Add some internal props to trigger
11754           layout.  Move to a model where Items invalidate themselves instead
11755           of just invalidating the whole control every time something changes.
11756           - Invalidate on Text/Caption changes.
11757           - switch to an offset based layout model to avoid having to absolute
11758           position every element on item moves.
11759           - correct checkbox layout to conform to MS layout.
11760         * ThemeWin32Classic.cs:
11761           - refactor some column header drawing code.
11762           - fix string justification for column headers (#76821)
11763           - make SmallIcon labels top justified for compat with MS impl.
11764         * ThemeClearlooks.cs:
11765           - adjust to new ListViewItem internal checkbox bounds api.
11766
11767 2006-02-27  Jackson Harper  <jackson@ximian.com>
11768
11769         * Control.cs:  Change where implicit controls fall in the zorder.
11770         They are now on top of all children.
11771         - Synced AddImplicit code with Add
11772         - Removed unused enumerator.
11773         * SizeGrip.cs: Remove the TODO as its been TODONE.
11774
11775 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11776
11777         * TextControl.cs(Insert): Combine the last lines unless the insertion
11778           string ends with \n\n, otherwise we leave one line too many (Fixes
11779           something I noticed with the testapp for #77526; the bug itself was
11780           already fixed in the previous checkin)
11781
11782 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
11783
11784         * RichTextBox.cs:
11785           - SelectionColor and SelectionFont methods no longer set absolute
11786             styles. Instead, the keep font or color respectively (This 
11787             resolves a long-standing FIXME in the code)
11788           - When flushing RTF text, the insert code now considers text trailing
11789             behind the insertion point (Fixes the bug where when replacing
11790             the selected text via SelectedRTF the remainder of the line behind 
11791             the selection would stay on the first insertion line)
11792         * TextBoxBase.cs:
11793           - AppendText now updates the selection points after inserting text
11794           - AppendText now ensures that the last tag (sometimes 0-length) of
11795             the document is used for the style information (Fixes part of 
11796             bug #77220)
11797         * TextControl.cs:
11798           - Created new FontDefiniton class to allow describing partial style
11799             changes
11800           - StreamLine() now takes a lines argument, to allow it to decide
11801             whether an encountered zero-length tag is the last in the document
11802             (which must be kept to not loose the font/color contained in it,
11803             for later appends)
11804           - Created Combine() and Split() methods for Marker structs, to 
11805             support marker updates due to reformatted documents (soft line
11806             wraps)
11807           - Implemented Document.CaretTag setter
11808           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
11809             of the last line (Not the cause, but also exposed by bug #77220)
11810           - Added LineTag argument to InsertString method, to allow callers
11811             to force a certain tag to be used (required to force use of the
11812             trailing zero-length tag of a document)
11813           - Now updating markers in Combine(), to avoid stale tag markers
11814           - Added some method descriptions to aid maintenance
11815           - Implemented new FormatText concept, allowing additive/subtractive
11816             formatting by only specifying the components that are to be 
11817             changed. This was needed for resolving the RTB.SelectedColor/
11818             RTB.SelectedFont fixmes
11819           - Added Break() support method to allow breaking up linetags (used
11820             for partial formatting)
11821           - Added GenerateTextFormat() method. It is used for partial 
11822             formatting and allows to generate a full font/color from given
11823             attributes and an existing tag.
11824
11825 2006-02-26  Jackson Harper  <jackson@ximian.com>
11826
11827         * XplatUIX11.cs:  Use the correct caption height.
11828         - Translate hittest coordinates to screen coords to match MS.
11829         * XplatUIWin32.cs: When we create MDI windows we need to reset
11830         some of the style flags, so we get a nice blank window, and can
11831         draw all the decorations ourselves.
11832         - Set a clipping rectangle on the non client paint event, the
11833         window manager drawing code needs one.
11834         * Form.cs: The window manager needs to know when the window state
11835         has been updated.
11836         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
11837         don't need to factor in border and title sizes in these
11838         methods. TODO: Remove the args and fix the call points.
11839         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
11840         properly.
11841         - Let the driver set the cursors.
11842         - Improve active window handling
11843         - Correct sizes for title bars and buttons.
11844         - Match MS drawing better
11845         * MdiWindowManager.cs: We don't need to handle border style
11846         updates specially anymore.
11847         - Check for scrollbars when windows are done moving
11848         - Handle Active properly.
11849         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
11850         correctly. I am spewing the exception though, so we don't hide the
11851         bugs.
11852         
11853 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
11854
11855         * DataGridViewRowPostPaintEventArgs.cs,
11856           DataGridViewCellPaintingEventArgs.cs,
11857           DataGridViewRowCollection.cs,
11858           DataGridViewRowPrePaintEventArgs.cs,
11859           DataGridViewCell.cs: Clear a few warnings and implement a few
11860           exceptions that should be thrown.
11861
11862 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
11863
11864         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
11865           'inheriting' our parent's (non-default) cursor. (Part of
11866            the fix for #77479)
11867
11868 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
11869
11870         * XplatUIX11.cs: Fixed cast to make csc happy
11871
11872 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
11873
11874         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
11875           it's for the client area (part of fix for #77479 and needed
11876           for MDI window cursor handling)
11877         * XplatUIX11.cs
11878           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
11879             the appropriate default cursors and also passing the message
11880             up the parent chain 
11881           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
11882             for non-client areas
11883
11884 2006-02-15  Jackson Harper  <jackson@ximian.com>
11885
11886         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
11887         is a real MDI window
11888
11889 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
11890
11891         * X11DesktopColors.cs: Instead of checking the desktop session
11892           string for "KDE" check if it starts with "KDE"
11893
11894 2006-02-10  Jackson Harper  <jackson@ximian.com>
11895
11896         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
11897         systems).
11898
11899 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
11900
11901         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
11902           errors
11903         * ColorDialog.cs:
11904           - Got rid of the panel. All controls are now directly added to
11905             the dialog form
11906           - Changed to mono coding style
11907
11908 2006-02-10  Jackson Harper  <jackson@ximian.com>
11909
11910         * InternalWindowManager.cs: We don't need the set visibility to
11911         false hack anymore now that peter has written beautiful shutdown
11912         code.
11913
11914 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
11915
11916         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
11917           where already explicitly destroyed
11918
11919 2006-02-10  Jackson Harper  <jackson@ximian.com>
11920
11921         * MdiClient.cs: Handle the case where windows are too high or to
11922         the left and we need scrollbars.
11923
11924 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
11925
11926         * MimeIcon.cs: Added some icons
11927         * FileDialog.cs:
11928           - Fixed bug #77477
11929           - Got rid of the panel. All controls are now directly added to
11930             the dialog form
11931           - Changed to mono coding style
11932           - On Linux "My Computer" and "My Network" will now show some
11933             more usefull information. A new class, MasterMount, gathers
11934             this information from /proc/mount. Updated MWFFileView to make
11935             use of this information
11936           - Fixed a bug that caused FileDialog to crash when
11937             ".recently_used" file had a zero size
11938           - FilterIndex does now what it should
11939           - Some Refactoring
11940         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
11941             FileDialog changes
11942
11943 2006-02-09  Jackson Harper  <jackson@ximian.com>
11944
11945         * ComboBox.cs: Don't touch if null.
11946
11947 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
11948
11949         * Cursor.cs: 64bit safeness fix
11950         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
11951
11952 2006-02-09  Jackson Harper  <jackson@ximian.com>
11953
11954         * Form.cs: If a form is made into an MDI form update the styles so
11955         all the props can get set correctly.
11956         - Kill the mdi_container when we dont need it anymore.
11957         * InternalWindowManager.cs: Add missing NOT
11958
11959 2006-02-08  Jackson Harper  <jackson@ximian.com>
11960
11961         * InternalWindowManager.cs: Respek clipping when drawing MDi
11962         decorations.
11963
11964 2006-02-08  Jackson Harper  <jackson@ximian.com>
11965
11966         * Hwnd.cs: Add bits to track non client expose events.
11967         * XplatUIX11.cs: Track non client expose events on the hwnd. This
11968         gives us a proper invalid rect and will allow for some nice
11969         optimizations with NC client drawing
11970         - MDI windows are children windows, so move their style handling
11971         into the child window block.
11972         * InternalWindowManager.cs: Remove a state reset that was
11973         getting invoked at the wrong time. Fixes managed windows getting
11974         into a 'stuck' captured state.
11975
11976 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
11977
11978         * TextControl.cs (Document.ctor): Now initializing 
11979           selection_anchor. Fixes #77493
11980
11981 2006-02-07  Jackson Harper  <jackson@ximian.com>
11982
11983         * TrackBar.cs: The increment/decrements were backwards.
11984
11985 2006-02-07  Mike Kestner  <mkestner@novell.com>
11986
11987         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
11988         to the instance itself.
11989
11990 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
11991
11992         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
11993           on ulongs and pointers, the size differs between 32bit and 64bit
11994           systems. 
11995
11996 2006-02-07  Mike Kestner  <mkestner@novell.com>
11997
11998         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
11999         for 64 bit platforms to work around a metacity bug. 
12000
12001 2006-02-07  Jackson Harper  <jackson@ximian.com>
12002
12003         * TrackBar.cs: Process the input keys we need, and hookup to
12004         KeyDown instead of using WndProc, so we get key messages.
12005
12006 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12007
12008         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12009           machine we're on. 
12010         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12011           we need to translate the XdndVersion atoms array before sending it
12012
12013 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12014
12015         * XplatUIX11.cs: 
12016           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12017             number of bits for the property, not the number of bytes. The
12018             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12019             but would not crash since it specified 8 bits instead of 4 bits)
12020           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12021             defined as XID -> long in the C headers)
12022           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12023             references since those are now IntPtr to begin with
12024           - Switched all Atom.XXX 'int' casts to IntPtr casts
12025           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12026           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12027           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12028         * X11Structs.cs:
12029           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12030           - Changed atom in HoverStruct to be IntPtr
12031         * X11DnD.cs:
12032           - Removed local DllImports, switched code to use those from XplatUIX11
12033           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12034
12035 2006-02-06  Mike Kestner  <mkestner@novell.com>
12036
12037         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12038         method signatures in the import region.  There may still be some
12039         lingering struct marshaling issues, as I didn't drill down into those.
12040         Yet.
12041
12042 2006-02-06  Jackson Harper  <jackson@ximian.com>
12043
12044         * ComboBox.cs: Dont manually set the top_item, this is computed
12045         when the scrollbar position is set.
12046
12047 2006-02-06  Mike Kestner  <mkestner@novell.com>
12048
12049         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12050         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12051         usage of Atom needs to be mapped to IntPtr for example.  And there are
12052         likely other int/long issues to be addressed.
12053
12054 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12055
12056         * FileDialog.cs: One more...
12057
12058 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12059
12060         * FileDialog.cs: Next try
12061
12062 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12063
12064         * FileDialog.cs: First part of fix for #77464
12065
12066 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12067
12068         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12069           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12070           AcceptButton border drawing.
12071
12072 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12073
12074         * Form.cs: Moved positioning of form after auto scaling is applied,
12075           otherwise it would possibly use wrong form size.
12076
12077 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12078
12079         * Control.cs (RecreateHandle): No need to re-create any child
12080           controls, the child windows will get destroyed automatically by
12081           the windowing system or driver, and re-created when the handle
12082           is being accessed the first time. Fixes #77456
12083         * Form.cs: No longer setting the form to closing if the handle is 
12084           being recreated. This seems like the right thing to do, don't
12085           have a bug or testcase for this, though.
12086
12087 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12088
12089         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12090           controls to avoid unwanted side effects
12091
12092 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12093
12094         * Control.cs: 
12095           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12096             control. Fixes #77416.
12097           - DefaultSize is 0,0 for control
12098         * TextBoxBase.cs: 
12099           - DefaultSize is 100, 20
12100           - SetBoundsCore: Now enforcing the height, no matter if the provided
12101             height is more or less than the preferred one, as long as AutoSize
12102             is on
12103         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12104
12105 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12106
12107         * Control.cs:
12108           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12109             call unless both performLayout is true *and* we have a pending
12110             layout change
12111           - ResumeLayout: MS does not completely nest Suspend and Resume,
12112             they bottom out at 0, fixed our code to match that.
12113           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12114             SetBoundsCore, we were updating even when we shouldn't. This fixes
12115             swf-anchors mis-anchoring when resizing the app fast and lots.
12116           - UpdateDistances: Now only setting the left and top distance if 
12117             we have a parent and are not suspended, this is based on
12118             a suggestion by Don Edvaldson in bug #77355.
12119           - OnVisibleChanged: Fixed logic when to create the control. We may
12120             not create the control if we have no parent or if it's not visible;
12121             switched to using Visible property instead of is_visible field 
12122             since the property also considers parent states. This fixes a bug
12123             when starting Paint.Net
12124
12125 2006-02-02  Jackson Harper  <jackson@ximian.com>
12126
12127         * Form.cs: If the forms handle hasn't been created yet don't call
12128         into xplatui to make it top most, just set the topmost flag on the
12129         form in CreateParams
12130         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12131
12132 2006-02-01  Jackson Harper  <jackson@ximian.com>
12133
12134         * ScrollableControl.cs: Refactored the Recalculate method a
12135         little, this wasn't handling all the variants of bottom and right
12136         bars needed to be added and added/removed based on their
12137         counterparts being added/removed (which changes the drawable
12138         size). Also we special case client widths and heights of 0 and
12139         don't add the scrollbar for those.
12140
12141 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12142
12143         * XplatUIX11.cs: 
12144           - Added method to get AbsoluteGeometry(); currently unused, but might
12145             be used in the future, if we try again to figure out toplevel
12146             coordinates with some more crappy window managers
12147           - Added FrameExtents() method to retrieve the WM set decoration size
12148           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12149             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12150         * Hwnd.cs: 
12151           - Added whacky_wm tracking var for metacity
12152           - Added logic to have default menu height if the actual menu height
12153             has not yet been calculated (part of fix for #77426)
12154         * Form.cs: Keep track whether client size has been set and re-set 
12155           it if a menu is added/removed afterwards (Fixes #77426)
12156
12157 2006-01-31  Jackson Harper  <jackson@ximian.com>
12158
12159         * Control.cs: When a new Site is set on the component attempt to
12160         pull the AmbientProperties from it.
12161
12162 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12163
12164         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12165           in the background of the owning form. Fixes #77332
12166
12167 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12168
12169         * MimeIcon.cs: Fix for #77409
12170
12171 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12172
12173         * XplatUIX11GTK.cs: Initial import
12174
12175 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12176
12177         * FixedSizeTextBox: fixes class signature
12178
12179 2006-01-30  Jackson Harper  <jackson@ximian.com>
12180
12181         * FixedSizeTextBox.cs: New internal class that represents a
12182         textBox that will not be scaled.
12183         * TreeView.cs:
12184         * ComboBox.cs:
12185         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12186         standard TextBox.
12187                 
12188 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12189
12190         * XplatUIX11.cs: Retrieve default screen number instead of
12191           assuming 0. Attempted fix for #77318
12192
12193 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12194
12195         * XplatUIWin32.cs: 
12196           - GetWindowPos: When a window is parented by FosterParent, use 
12197             the desktop instead of FosterParent as the base to get coordinates
12198           - CreateWindow: Don't make FosterParent the parent window for Popups
12199             if we don't want a taskbar entry, Popups automatically don't get one
12200         * Hwnd.cs: Need to call remove to actually remove the key from the
12201           hash table
12202
12203 2006-01-30  Mike Kestner  <mkestner@novell.com>
12204
12205         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12206
12207 2006-01-30  Jackson Harper  <jackson@ximian.com>
12208
12209         * TreeView.cs:
12210         * TreeNode.cs: Raise events no matter how the treenode is
12211         checked. Patch by Don Edvalson.
12212
12213 2006-01-30  Jackson Harper  <jackson@ximian.com>
12214
12215         * TreeNode.cs: Signature fix.
12216
12217 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12218
12219         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12220
12221 2006-01-20  Mike Kestner  <mkestner@novell.com>
12222
12223         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12224         event forwarding when menus are active.
12225         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12226         Most of the patch is pdb's with a little rework.
12227
12228 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12229
12230         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12231           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12232           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12233         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12234         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12235           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12236           the PaintWindowDecorations method
12237         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12238         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12239         * MenuAPI.cs: Made tracker window invisible
12240         * XplatUIWin32.cs:
12241           - Removed GetMenuDC and ReleaseMenuDC methods
12242           - Implemented the client=false path for PaintEventStart and
12243             PaintEventEnd
12244
12245 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12246
12247         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12248         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12249           styles
12250         * Form.cs: 
12251           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12252             the style
12253           - CreateParams: Reworked the styles to match MS look'n'feel,
12254             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12255             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12256
12257 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12258
12259         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12260           window is not mapped, since otherwise every form that's being 
12261           created is considered minimized, which is wrong.
12262         * Form.cs: Catching the exception and returning our internal value
12263           instead
12264
12265 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12266
12267         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12268           SetWindowMinMax() to have means to tell the driver about the minimum,
12269           maximum and maximized state window sizes. (Part of the fix for #76485)
12270         * Form.cs:
12271           - Implemented tracking of minimum and maximum window size, now calling
12272             new SetWindowMinMax() driver method to tell the driver (Part of the
12273             fix for #76485)
12274           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12275             (Completes fix for #76485)
12276           - Calling new SetWindowMinMax driver method when the handle for a 
12277             form is created, to make sure the driver knows about it even if
12278             the values have been set before the window was created
12279           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12280             to avoid messing up our anchoring calculations (partial fix
12281             for #77355)
12282         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12283         * XplatUIX11.cs:
12284           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12285           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12286             (and presumably other freedesktop.org compliant WMs). Left the
12287             assumption unmapped=minimized, needed for SetVisible to work.
12288           - Now setting the window state when creating windows
12289           - Fixed SetVisible to consider/set the window state when mapping
12290             a Form. We cannot set the state before it's mapped, and we cannot
12291             use Form.WindowState once it's mapped (since it would ask the
12292             driver and get 'normal'. Therefore, we grab the state before
12293             mapping, map, and then set state.
12294           - Implmemented SetWindowMinMax method; Metacity does not seem to
12295             honor the ZoomHints, though.
12296         * XplatUIWin32.cs:
12297           - Removed MINMAXINFO (moved to XplatUIStructs)
12298           - Added SetWindowMinMax stub (on Win32 the only way to set that
12299             information is in response to the WM_GETMINMAXINFO message, which
12300             is handled in Form.cs)
12301           - Added logic to SetVisible to set the proper window state when a 
12302             form is made visible (fixes #75720)
12303
12304 2006-01-26  Jackson Harper  <jackson@ximian.com>
12305
12306         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12307         same way we handle them with Invoke.
12308
12309 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12310
12311         * Form.cs:
12312           - Added tracking of window state so CreateParams can return
12313             the appropriate style
12314           - Moved setting of WS_CAPTION style in CreateParams to allow
12315             styles without caption
12316         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12317           control if the TextBox property is accessed. Fixes #77345
12318         * Control.cs:
12319           - get_Created: now uses is_disposed and is_created to determine
12320             return value (suggested by Jackson)
12321           - CreateHandle: No longer exits if the handle is being recreated
12322           - RecreateHandle: If the handle is not yet created call the 
12323             appropriate method to create either control or handle. If the
12324             control is already created CreateHandle will simply exit instead
12325             of just creating the handle
12326         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12327           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12328           is called.
12329         * XplatUIX11.cs: 
12330           - When DestroyWindow is called, instead of waiting for the 
12331             DestroyNotification from X11, we directly post it to the WndProc
12332             and immediately dispose the hwnd object.
12333             Same applies to DestroyChildWindows, and this obsoletes the
12334             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12335             child windows before our own, to avoid X11 errors.
12336           - Removed the direct sending of WM_PAINT on UpdateWindow
12337         * XplatUIWin32.cs:
12338           - Reworked DoEvents and GetMessage to allow access to internal queue
12339             even when trying non-blocking access to the queue.  Fixes #77335. 
12340             Based on a patch suggestion by Don Edvalson. The new private
12341             GetMessage can now also be used as a backend for a PeekMessage
12342             frontend version.
12343         * XplatUI.cs: Improved debug output for CreateWindow
12344
12345 2006-01-25  Jackson Harper  <jackson@ximian.com>
12346
12347         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12348
12349 2006-01-24  Jackson Harper  <jackson@ximian.com>
12350
12351         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12352         when we have a MaxDropItems lower then the selected index.
12353
12354 2006-01-24  Jackson Harper  <jackson@ximian.com>
12355
12356         * Control.cs: Don't allow selection of non visible controls, allow
12357         selection of controls without parents.
12358
12359 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12360
12361         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12362         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12363
12364 2006-01-23  Jackson Harper  <jackson@ximian.com>
12365
12366         * UpDownBase.cs: Make the textbox handle all the selection and
12367         tabbing. This fixes tabing to updown controls.
12368
12369 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12370
12371         * TextBoxBase.cs: fixes exception thown the object was null
12372
12373 2006-01-23  Jackson Harper  <jackson@ximian.com>
12374
12375         * ButtonBase.cs: Just use the base CreateParams. They set
12376         visibility and enabled correctly.
12377         * ComboBox.cs:
12378         * TrackBar.cs:
12379         * MonthCalendar.cs: Lets let the base set as much of the
12380         createparams as possible so we don't have duplicate code all over
12381         the place.
12382
12383 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12384
12385         * ThemeGtk.cs: Added TrackBar and some experimental code to
12386           get double buffering back
12387
12388 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12389
12390         * DataGrid.cs: Allows row number set internally higher than the last
12391         when creating a new row. Restores the editing functionality.
12392
12393 2006-01-20  Mike Kestner  <mkestner@novell.com>
12394
12395         * MimeIcon.cs: delay Image creation until the icons are accessed
12396         instead of creating 190 scaled images on GnomeHandler startup.
12397
12398 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12399
12400         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12401           first call base before processing the event. Fixes #77279
12402
12403 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12404
12405         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12406           that the stride for the GDI bitmap would match the stride of
12407           a DIB or a Cursor.
12408
12409 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12410
12411         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12412
12413 2006-01-19  Jackson Harper  <jackson@ximian.com>
12414
12415         * ComboBox.cs: Hookup the text controls keydown event so we get
12416         those when the text control has the focus.
12417
12418 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12419
12420         * Label.cs: Now using the base events instead of defining new ones;
12421           this allows us to just call the base properties without having to
12422           duplicate all base property logic 
12423
12424 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12425
12426         * Label.cs: A label by default is not a tabstop (Fixes one of our
12427           failing nunit tests)
12428
12429 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12430
12431         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12432         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12433
12434 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12435
12436         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12437           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12438           This fixes #77218
12439         * XplatUIWin32.cs: 
12440           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12441             constructor creates images that can't be saved. Part of the fix
12442             for #76103
12443           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12444           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12445             bug fix for handling window state in forms properly)
12446
12447 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12448
12449         * ThemeGtk.cs: Simplify ScrollBar drawing
12450
12451 2006-01-18  Jackson Harper  <jackson@ximian.com>
12452
12453         * Splitter.cs: Set the default dock style for the splitter control
12454         in the constructor.
12455
12456 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12457
12458         * ThemeGtk.cs: Corrected StateType and ShadowType for
12459           gtk_paint_box
12460
12461 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12462
12463         * Control.cs: Make use of Theme.DoubleBufferingSupported
12464         * ThemeGtk.cs:
12465           - Added drawing for flat style buttons
12466           - Added ScrollBar drawing
12467
12468 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12469
12470         * ThemeClearlooks.cs: Removed some unneeded code.
12471         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12472
12473 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12474
12475         * LinkLabel.cs: We need to update the hover drawing when
12476           leaving the control as well.
12477
12478 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12479
12480         * DataGrid.cs: Clicking on non empty areas in the columns
12481            area was giving an exception
12482
12483 2006-01-17  Jackson Harper  <jackson@ximian.com>
12484
12485         * ThemeWin32Classic.cs:
12486         * ListView.cs: Do not draw/clip the headers when the header style
12487         is None.
12488
12489 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12490
12491         * DataGrid.cs: Fixes 77260
12492         
12493 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12494
12495         * DataGrid.cs: Clicking on a column on a empty grid was giving
12496           an exception
12497
12498 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12499
12500         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12501           or any keypress will crash the grid.
12502
12503 2006-01-17  Mike Kestner  <mkestner@novell.com>
12504
12505         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12506         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12507         invisible/previously-visible items.
12508         [Fixes #76909]
12509
12510 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12511
12512         * ThemeClearlooks.cs:
12513         - Added CL_Draw_Button method; now other theme controls that are 
12514           not derived from button or do not have a button can draw buttons
12515           too
12516         - Updated ComboBox drawing
12517         - Beautified RadioButton drawing
12518         - Corrected drawing of bottom and left tabs
12519         - Beautified DateTimePicker and MonthCalendar
12520         - Added CPDrawButton and CPDrawRadioButton
12521
12522 2006-01-16  Jackson Harper  <jackson@ximian.com>
12523
12524         * ComboBox.cs: Set the initial value of the scrollbar to the
12525         current index. Reduce the numbers of refreshs and IndexOfs called.
12526
12527 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12528
12529         * FileDialog.cs: When the file listview is focused hitting the
12530           backspace key moves the fileview to the parent directory
12531
12532 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12533
12534         * Form.cs: 
12535           - Added RecreateHandle call when changing taskbar visibility to 
12536             trigger reparenting in Win32 driver (Fixes #75719)
12537           - If a window has minimize or maximize buttons, it cannot have
12538             a help button
12539         * XplatUIWin32.cs:
12540           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12541             the toplevel form with FosterParent (A toolwindow not on the
12542             taskbar) (Fixes #75719)
12543           - Made FosterParent a toolwindow
12544
12545 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12546
12547         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12548
12549 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12550
12551         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12552           is currently over that control, make sure that tooltip_window.Text
12553           gets updated
12554
12555 2006-01-13  Mike Kestner  <mkestner@novell.com>
12556
12557         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12558
12559 2006-01-13  Jackson Harper  <jackson@ximian.com>
12560
12561         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12562         value passed.  Also redraw the selected node when we recieve
12563         focus, so tabbing between trees works correctly.
12564
12565 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12566
12567         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12568           ~/.gconf/%gconf-tree.xml, so use
12569           .gconf/desktop/gnome/interface/%gconf.xml
12570
12571 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12572
12573         * TextControl.cs: Draw text in gray if control is disabled
12574
12575 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12576
12577         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12578           make sure it's always visible. Fixes #76680.
12579
12580 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12581
12582         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12583
12584 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12585
12586         * PageSetupDialog.cs: Added.
12587         * PrintDialog.cs: Attributes.
12588         * PrintPreviewControl.cs: Updates.
12589         * PrintPreviewDialog.cs: Updates.
12590         
12591 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12592
12593         * Control.cs: Undid my selection check fix, since it's not needed
12594         * TextBoxBase.cs:
12595           - Now considering the presence of hscroll/vscroll when sizing
12596             vscroll/hscroll respectively. Fixed bug #77077
12597           - Added Left/Up/Down/Right to IsInputKey list to prevent
12598             ContainerControl from stealing them. This fixes what I broke
12599             with my last checkin.
12600
12601 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12602
12603         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12604           I finally understand how the property can be set without a setter :-)
12605
12606 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12607
12608         * Application.cs:
12609           - Switched RunLoop to use static Message.Create to create a 
12610             Message object
12611           - Added PreProcessMessage call in runloop for keyboard events; this
12612             is part of the fix for #77219, I overlooked this originally in the
12613             MSDN doc for PreProcessMessage
12614         * Control.cs:
12615           - Removed call to PreProcessMessage from handling of keyboard 
12616             messages; it's supposed to be done in the message pump
12617           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12618             per MSDN documentation.
12619           - IsInputChar: All chars are input chars by default; removed the 
12620             parent calling chain, MS does not document that
12621           - PreProcessMessage: If IsInputChar is true, we want to return false
12622             to allow dispatching of the message
12623           - When selecting the next control, now also check that we're not
12624             selecting ourselves again and therefore return a false positive.
12625         * TextBoxBase.cs:
12626           - Tried to match return values for IsInputKey and ProcessDialogKey
12627             to what MS returns; moved processing of our special keys outside
12628             ProcessDialogKey since MS does not seem to return true on those.
12629           - Moved code that previously was in ProcessDialogKey into new private
12630             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12631           - Reworked handling of WM_CHAR to not have to duplicate code from
12632             Control.cs anymore, instead we simply call down to base.
12633            
12634 2006-01-12  Jackson Harper  <jackson@ximian.com>
12635
12636         * ComboBox.cs: We always need to refresh the text area when
12637         EndUpdate is called. Fixes the combobox in the file dialog.
12638         * Control.cs: Don't create the creator_thread until the controls
12639         handle is created.  Also in InvokeRequired we check if the
12640         creator_thread is null. This gives the effect of InvokeRequired
12641         returning true if the controls handle is not created yet, and
12642         matches MS.
12643
12644 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12645
12646         * XplatUI.cs:
12647           - Added StartLoop() driver method. This is used to allow drivers to
12648             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12649             loop for a particular thread
12650           - Added EndLoop() driver method. This is called once the message
12651             pump for the thread is shut down
12652           - Added SupportsTransparency method to allow the driver to indicate
12653             opacity support for windows
12654         * Form.cs:
12655           - Removed TODO attribute, completed AllowTransparency property
12656           - Added documented logic to Opacity
12657         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12658           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12659           versions of CompatibleTextRendering
12660         * X11Structs.cs: Added opacity atom to our atom enumeration
12661         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12662           of a form might be set before it's reparented by the WM, and we need
12663           the opacity value without calling up to Form)
12664         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12665           SupportsTransparency() driver methods
12666         * Application.cs: Now calling StartLoop and EndLoop driver methods
12667         * XplatUIX11.cs:
12668           - Added opacity atom registration
12669           - Added StartLoop()/EndLoop() methods. They're empty right now but
12670             will need to get implemented when we switch to a per-thread queue
12671           - Implemented SupportsTransparency() method
12672           - Implemented SetWindowTransparency() method
12673           - Added support for setting the opacity value when a window is
12674             reparented (since the opacity needs to be set on the WM frame)
12675         * XplatUIOSX.cs, XplatUIWin32.cs:
12676           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12677
12678 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12679
12680         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12681
12682 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12683
12684         * FileDialog.cs: Added ToolTip for MWFFileView
12685         * MimeIcon.cs: Rewrote GnomeHandler.
12686           - Get currently used gnome icon theme from
12687             ($HOME)/.gconf/%gconf-tree.xml
12688           - Make use of inherited icon themes
12689           - Support SVG icon themes like Tango via librsvg
12690
12691 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12692
12693         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12694         builds. 
12695         
12696         * Application.cs: Move the use_compatible_text_rendering outside
12697         the NET_2_0 define.  If we ever need to use the
12698         use_compatible_text_rendering on the individual controls they will
12699         access the variable from the common shared code paths.
12700
12701 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12702
12703         * XplatUI.cs:
12704           - Added more granular debug options
12705           - Added method to print both window text and id
12706           - Switched debug output to use new Window() debug method
12707           - Added IsEnabled() driver method
12708           - Added EnableWindow() driver method
12709         * Form.cs:
12710           - Removed end_modal; no longer needed, new loop handles termination
12711             via 'closing' variable
12712           - If form is modal, setting DialogResult will now initiate loop
12713             termination via 'closing' variable
12714           - Added support for is_enabled/WS_DISABLED to CreateParams
12715           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12716             does all the work
12717           - Removed code that's now in RunLoop from ShowDialog()
12718           - Added various documented sanity checks to ShowDialog()
12719           - Added handling of WM_DESTROY message; we set 'closing' on getting
12720             the message to indicate the message pump to terminate
12721           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12722             send by the Application.ExitThread method. (We send the message
12723             to destroy the window after all other events have been
12724             processed through the queue, instead of destroying the handle 
12725             directly)
12726           - Moved code from Close() method to WM_CLOSE handler; added logic
12727             to only send close-related events if the form is not displayed
12728             modal
12729         * Splitter.cs (..ctor): Fixed typo in resource name
12730         * Control.cs:
12731           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12732             brush now
12733           - set_Cursor: Now only setting calling into XplatUI if the handle for
12734             the control is already created; this avoids implict handle creation
12735             or crashes if it's not created
12736           - set_Enabled: Now setting the enabled state via the new driver method
12737             instead of just tracking it
12738           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12739           - CreateControl: Reordered event firing and method calls to more
12740             closely fire events in the order MS does. Now setting the
12741             enabled state in the driver when creating the control.
12742           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12743             match MS order
12744         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12745           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12746         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12747         * Hwnd.cs:
12748           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12749           - Added EnabledHwnd property to easily allow a driver to find the
12750             handle of the first enabled window in the parent chain (this is
12751             used by drivers to pass up input events of disabled windows)
12752         * XplatUIDriver.cs: Added IsEnabled() method
12753         * Application.cs:
12754           - Removed crude and obsolete exiting tracking variable
12755           - Removed internal ModalRun(); replaced by RunLoop()
12756           - Implemented private CloseForms() method to allow closing all 
12757             windows owned by a particular (or all) threads
12758           - Exit() now properly closes all windows without forcing the message
12759             pump to quit
12760           - Removed obsolete InternalExit() method
12761           - Changed Run() methods to use new RunLoop() message pump
12762           - Implemented new RunLoop() method for both modal and non-modal forms
12763         * CommonDialog.cs:
12764           - get_CreateParams: Added setting of WS_DISABLED
12765           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12766             invoked via Form.ShowDialog()
12767         * NativeWindow.cs: We don't remove the window from the collection when
12768           the handle is destroyed; there might still be messages for it in the
12769           queue (mainly the resulting WM_DESTROY); instead it will be removed
12770           when Control calls InvalidateHandle in the WM_DESTROY handler
12771         * XplatUIX11.cs:
12772           - CreateWindow: Added logic to handle the WS_DISABLED window style
12773           - EnableWindow: Implemented based on Hwnd.Enabled
12774           - GetMessage: Reset PostQuitState so the method can be called again
12775           - Implemented support for disabled windows (passing messages to the
12776             first enabled parent) in handling all input messages
12777           - Added optimizations for handling Expose events
12778           - Implemeted new driver method IsEnabled()
12779           - Now always resetting paint pending tracking vars when we start paint
12780           - Re-implemented UpdateWindow via just sending a WM_PAINT message
12781         * XplatUIOSX.cs: Added IsEnabled method stub
12782         * XplatUIWin32.cs: Implemented new IsEnabled() method
12783
12784 2006-01-11  Jackson Harper  <jackson@ximian.com>
12785
12786         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12787         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
12788         variables a little.
12789         * ColorDialog.cs: Clear out the old form before adding the new
12790         panel.  
12791
12792 2006-01-11  Jackson Harper  <jackson@ximian.com>
12793
12794         * X11Dnd.cs: Make sure to add all the text formats when adding
12795         strings to the data object.
12796         * TreeNodeCollection.cs: When adding to a sorted tree we need to
12797         do some redrawing too.  Also change the UpdateNode to an
12798         UpdateBelow so the newly added node gets painted.
12799         
12800 2006-01-11  Miguel de Icaza  <miguel@novell.com>
12801
12802         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12803         LinkLabel.cs, PropertyGrid.cs: Implement the
12804         UseCompatibleTextRendering property for 2.x
12805
12806         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
12807
12808 2006-01-11  Jackson Harper  <jackson@ximian.com>
12809
12810         * TreeView.cs: Use the property for setting the selected node so
12811         the correct events get raised.
12812         * TreeNode.cs: Update the tree when the fore/back colours of a
12813         node are set.
12814
12815 2006-01-10  Jackson Harper  <jackson@ximian.com>
12816
12817         * TreeView.cs: Allow setting SelectedNode to null.
12818
12819 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12820
12821         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
12822
12823 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12824
12825         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
12826
12827 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12828
12829         * PrintDialog.cs: Added attributes and set default property values.
12830
12831 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12832
12833         * PrintControllerWithStatusDialog.cs: 
12834         Added PrintControllerWithStatusDialog.
12835
12836 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12837
12838         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12839         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
12840
12841 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12842
12843         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
12844
12845 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
12846
12847         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
12848         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
12849
12850 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12851
12852         * MimeIcon.cs: Added internal class SVGUtil.
12853
12854 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12855
12856         * FileDialog.cs: Don't crash if there are two files with the
12857           same name but different locations.
12858
12859 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
12860
12861         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
12862         dates across multiple month grids. Used to not highlight entire 
12863         month, but does now.
12864         
12865 2006-01-06  Jackson Harper  <jackson@ximian.com>
12866
12867         * MonthCalendar.cs: Removed DoEvents call to prevent a running
12868         message loop. Change timer intervals to numbers that seem more
12869         natural.
12870
12871 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
12872
12873         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
12874           object for location info since screen object is now implemented.
12875
12876 2006-01-05  Jackson Harper  <jackson@ximian.com>
12877
12878         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
12879         * AsyncMethodResult.cs: We no longer use a WeakReference for the
12880         AsyncMethodResult, this is because we ALWAYS want the
12881         ManualResetEvent to get set.
12882         * Control.cs: When disposing use an async invoke to call shutdown
12883         code, so that thigns don't block on the finalizer thread.  Also
12884         check if we even have a message loop before trying to send
12885         messages, if we don't then don't bother sending messages.
12886         - No more weak references for async methods
12887         * XplatUIDriver.cs: No more weak references for async methods.
12888
12889 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12890
12891         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
12892           returns two FontFamily with the same name
12893
12894 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
12895
12896         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
12897           drawing disabled text. Instead using the ColorGrayText color
12898
12899 2006-01-04  Jackson Harper  <jackson@ximian.com>
12900
12901         * TreeNode.cs: redraw the node when its image index is changed.
12902
12903 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
12904
12905         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
12906           time I checked there are no others like it.
12907
12908 2006-01-04  Jackson Harper  <jackson@ximian.com>
12909
12910         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
12911         this gives the behavoir I was looking for.
12912         * Control.cs: Special case Invoking EventHandlers, this matches MS
12913         and fixes part of bug #76326.
12914
12915 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12916
12917         * ThemeClearlooks.cs, FileDialog.cs:
12918           - Reflect the latest Theme class changes
12919           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
12920             with DateTime
12921             
12922 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
12923
12924         * Theme.cs: Cache UI resource images and resize them if needed
12925
12926 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
12927
12928         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
12929           is called. This fixes the crash in Nexxia when setting the font
12930           attributes in the chat. [However, RTF needs a look-over to make sure
12931           that all SelectionXXX methods handle the special case that selection
12932           is empty and therefore the change must be applied to all text starting
12933           at the cursor/selection start]
12934
12935 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
12936
12937         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
12938           XplatUIOSX.cs: Added SendMessage and PostMessage methods
12939         * X11Keyboard.cs: Switched to new way of calling PostMessage
12940
12941 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
12942
12943         * Theme.cs: Added theme interface for images to allow the theme to
12944           control what images are used for things like FileDialog, MessageBox
12945           icons, etc.
12946         * MessageBox.cs: Now uses the new Theme icon/image interfaces
12947
12948 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
12949
12950         * FileDialog.cs:
12951           - Removed some dead code
12952           - Opening a recently used file does work now
12953           - Small UI enhancements
12954           - Refactoring
12955
12956 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
12957
12958         * FileDialog.cs: Forgot too add __MonoCS__
12959
12960 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
12961
12962         * FileDialog.cs: We are able to read recently used files now let's
12963           go on and write them.
12964
12965 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
12966
12967         * FileDialog.cs: Breathe some life into "last open"/"recently used"
12968           button
12969         * MimeIcon.cs: Do a check for the top level media type also
12970
12971 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
12972
12973         * ThemeClearlooks.cs:
12974           - Added CPDrawStringDisabled
12975           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
12976             some chars if the text doesn't fit into text_rect
12977           - DrawListViewItem: If View = View.LargeIcon center the image;
12978             rewrote the drawing of ListViewItem.Text if View = 
12979             View.LargeIcon
12980
12981 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
12982
12983         * MimeIcon.cs: Use default KDE icon theme if there is no
12984           "48x48" directory for the current icon theme, fixes #77114
12985         * Mime.cs: Disable not working and actually not used code. 
12986         * ThemeWin32Classic.cs:
12987           - Replace "new SolidBrush" in GetControlBackBrush and
12988             GetControlForeBrush with ResPool.GetSolidBrush
12989           - Changed DrawListViewItem from private to protected virtual
12990         * FileDialog.cs:
12991           - Added form.MaximizeBox = true
12992           - Don't throw an exception if there is a broken symbolic link
12993
12994 2005-12-23  Jackson Harper  <jackson@ximian.com>
12995
12996         * TabControl.cs: Give the panels focus, keyboard navigation is
12997         fixed so this works correctly now.
12998         - We need these key events also.
12999         * ToolBar.cs: Remove some of the poor mans double buffering.
13000         
13001 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13002
13003         * ComboBox.cs: The internal TextBox now returns the focus.
13004
13005 2005-12-23  Jackson Harper  <jackson@ximian.com>
13006
13007         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13008
13009 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13010
13011         * Control.cs: Removed debug code
13012         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13013           implicit children
13014
13015 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13016
13017         * Control.cs: When creating the control, update the Z-order after
13018           all it's children are created, too. (Fixes nexxia not showing
13019           picturebox bug)
13020
13021 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13022
13023         * Control.cs: Do not update the anchoring distances if layout is
13024           suspended, instead do it once layout is resumed
13025
13026 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13027
13028         * Control.cs: 
13029           - After many hours of debugging, for both Jackson and
13030             myself, it turns out that it helps to set the parent of a control
13031             if you want to actually see it onscreen. In the spirit of that
13032             discovery, we're now setting the parent of the control and
13033             it's children when the control's handle is created. This fix
13034             will make Lutz Roeder's Reflector run happily. 
13035           - now just creating the handle instead of the whole control when
13036             getting a graphics context for the control.
13037
13038 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13039
13040         * ScrollableControl.cs: When calculating the canvas, don't consider
13041           the scrollbar widths. Instead, predict if horizontal scrollbar
13042           will affect canvas when deciding on vertical display and vice versa.
13043
13044 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13045
13046         * RichTextBox.cs: Set default RTF font for documents that don't
13047           have a font table (Fixes #77076)
13048
13049 2005-12-22  Jackson Harper  <jackson@ximian.com>
13050
13051         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13052         clipboard. This prevents a NullRef in that case.
13053         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13054         clipboard. PRIMARY is for the currently selected text only. (We
13055         should implement PRIMARY at some point.
13056
13057 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13058
13059         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13060           a Unicode function with a structure that was defined in Ansi way.
13061           This fixes #76942.
13062
13063 2005-12-21  Jackson Harper  <jackson@ximian.com>
13064
13065         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13066         on. Because thats how it rolls. (and this avoids it using ambient
13067         colours).
13068         * ThemeWin32Classic.cs: Use the proper back color for filling.
13069         * Menu.cs: Use the system menu bar color for drawing menu
13070         bars. Using the window back color will bring ambient colours into
13071         the picture.
13072
13073 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13074
13075         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13076           Bitmaps were created and not disposed.
13077
13078 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13079
13080         * Control.cs (CreateControl): Don't do anything if the control is
13081           already created, otherwise we'd fire the OnCreated event more than
13082           once
13083
13084 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13085
13086         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13087           will always match. Instead return -1. Fixes #76464.
13088
13089 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13090
13091         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13092           neither the beginning nor the end of the line (Fixes bug #76479)
13093
13094 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13095
13096         * Control.cs:
13097           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13098             where handle is invalid
13099           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13100             instead of slower linear search
13101         * NativeWindow.cs: Don't remove the window from the hashtable until
13102           after the driver has destroyed it (since the driver might use
13103           Control.FromHandle to lookup the control object
13104         * Hwnd.cs: Added DestroyPending property to track if a window is 
13105           already destroyed as far as the driver is concerned and only hasn't
13106           yet notified the control
13107         * XplatUIX11.cs:
13108           - Activate(): Check if the window is still valid before using the 
13109             handle
13110           - Implemented DestroyChildWindow() method to mark child windows as
13111             destroyed when a window is destroyed. This prevents situations 
13112             where we might call an X method based on queued events for a
13113             window that already has been destroyed but we haven't yet pulled
13114             the destroy method from the queue.
13115           - Added a call to the new DestroyChildWindow() method to the drivers
13116             DestroyWindow code. Also now marking the destroyed window itself
13117             as pending
13118
13119 2005-12-20  Jackson Harper  <jackson@ximian.com>
13120
13121         * StatusBar.cs:
13122         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13123         anymore. Just do them when needed, also track the rects of panels
13124         so that we can optimize refreshing more in the future.
13125
13126 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13127
13128         * ColorDialog.cs: Fixed focus drawing in small color controls
13129
13130 2005-12-19  Jackson Harper  <jackson@ximian.com>
13131
13132         * InternalWindowManager.cs:
13133         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13134         moving windows works properly.
13135
13136 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13137
13138         * Control.cs: 
13139           - Removed call to InitLayout() from SetBoundsCore(); doc says
13140             it's only called when a control is added to a container
13141           - Split InitLayout logic, moved to separate UpdateDistances() method
13142             since we need to perform those calculations more often than just
13143             when adding the control to a container. (Needed to fix #77022)
13144           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13145           - Reduced the OnBindingContextChanged events count, don't send them
13146             unless the control is created, we still aren't totally matching
13147             MS, but I can't quite figure out some of their rules
13148
13149 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13150
13151         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13152           stripes
13153
13154 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13155
13156         * ThemeClearlooks.cs:
13157           - Updated ProgressBar drawing
13158           - Corrected drawing of ScrollBars and scroll buttons
13159           - Some temporary fixes for minor pixel artefacts
13160
13161 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13162
13163         * Control.cs:
13164           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13165             cause events to be sent in the same order as MS does.
13166           - Added ChangeParent() method to trigger various OnXXXChanged events
13167             that need to be fired when a parent changes (This is a reworking
13168             of the patch from r54254, with the X11 errors fixed)
13169           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13170             since on MS we get OnLayoutChanged events when calling Clear()
13171           - Changed Enabled property to consider parent state as well, if a
13172             parent is not enabled, the control will not be either
13173           - Changed Parent property to simply call Controls.Add() since that
13174             now does all the work required, this way we avoid code duplication
13175           - Threw in a few OnBindingsContextChanged calls to try and match
13176             when MS sends them. We seem to send a few too many, though.
13177           - Added call to CreateControl when adding the control to a parent.
13178             We were never calling CreateControl. Still needs some work, in
13179             some places we treat HandleCreated and ControlCreated as equal, 
13180             which is wrong
13181           - Removed obsolete commented out code from UpdateZOrder()
13182
13183 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13184
13185         * ThemeClearlooks.cs: Updated TrackBar drawing.
13186
13187 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13188
13189         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13190
13191 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13192
13193         * FileDialog.cs: Add the Help button and the open readonly
13194           checkbox only if needed
13195
13196 2005-12-16  Jackson Harper  <jackson@ximian.com>
13197
13198         * Control.cs: Make sure we have an active menu before trying to
13199         process commands on it. Prevents menu-less forms from crashing
13200         when Alt is pressed.
13201         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13202         Dieter Bremes.
13203         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13204         2.0 build.
13205
13206 2005-12-16  Jackson Harper  <jackson@ximian.com>
13207
13208         * InternalWindowManager.cs: Don't translate tool windows screen
13209         coordinates. This fixes windows 'bouncing' around when being moved.
13210
13211 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13212
13213         * TextBoxBase.cs:
13214           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13215             not quite MS compatible, MS uses that number only for single line
13216             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13217             the limit at 2GB)
13218           - Now enforcing the MaxLength limit when entering characters
13219           - Added argument to internal Paste() method to track if it's called
13220             from programatically or via keyboard, since keyboard driven pastes
13221             need to enforce max-length
13222           - Added logic to Paste to only paste as many chars as MaxLength 
13223             allows
13224         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13225         * TextControl.cs:
13226           - Added Length property to return number of characters in document
13227           - Added private CharCount property which only tracks actual chars
13228             in the document (no linefeeds) and fires event when CharCount
13229             changes
13230           - Added tracking of character count to all methods that alter it
13231           - Added LengthChanged event to allow applications to subscribe
13232             to any changes to the document
13233
13234 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13235
13236         * TextBox.cs: 
13237           - Removed local password_char field (moved to TextBoxBase)
13238           - Now setting the document's password var when password is
13239             set
13240         * TextBoxBase.cs:
13241           - Added password_char field (needed here so MultiLine can
13242             access it)
13243           - Added logic to MultiLine property setter to set the document's
13244             variable when password display is allowed
13245           - Removed debug code and made some debug code conditional
13246         * TextControl.cs:
13247           - Added RecalculatePasswordLine() method to handle special password
13248             char only lines
13249           - Added PasswordChar property, also added related tracking vars
13250           - Draw() method now uses local text var for grabbing text to draw,
13251             this var is set to line.text unless we're doing password display,
13252             then it is set to the pre-generated all-password-chars line
13253           - Added calling RecalculatePasswordLine() method for password lines
13254
13255 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13256
13257         * Hwnd.cs: 
13258           - Added Reparented property to allow tracking of Window Manager
13259             reparenting actions (which affect X/Y calculations of toplevel 
13260             windows)
13261           - Made ToString() print window handles in hex
13262         * XplatUIX11.cs:
13263           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13264             determine if X/Y needs offsetting
13265           - AddConfigureNotify(): Fixed offset calculations
13266           - Now adds ReparentNotify messages into the queue
13267           - Now processes ReparentNotify messages and causes a 
13268             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13269             is reparented (as most likely it's X/Y coordinates are changed
13270             due to that)
13271
13272 2005-12-14  Jackson Harper  <jackson@ximian.com>
13273
13274         * XplatUIX11.cs: Tool windows still need to respek focus.
13275
13276 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13277
13278         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13279           have a working release
13280
13281 2005-12-13  Jackson Harper  <jackson@ximian.com>
13282
13283         * Form.cs: Update styles after setting the border style regardless
13284         of whether or not the window is using a window manager.
13285
13286 2005-12-13  Jackson Harper  <jackson@ximian.com>
13287
13288         * Form.cs: We now hook into an internal window manager instead of just an
13289         MDI subsystem, this is so we can have properly behaving tool windows.
13290         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13291         * InternalWindowManager.cs: New internal class that acts as a
13292         window manager for tool windows and as a base for mdi windows.
13293         * MdiWindowManager.cs: New class that acts as a window manager for
13294         mdi windows.
13295
13296 2005-12-12  Jackson Harper  <jackson@ximian.com>
13297
13298         * Control.cs: Updates so we match behavoir for for implicit
13299         controls. Fixes explosions in MDI.
13300
13301 2005-12-12  Jackson Harper  <jackson@ximian.com>
13302
13303         * Control.cs: Implement Invalidate (Region).
13304
13305 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13306
13307         * Control.cs: 
13308           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13309             the same events as MS does. MS fires events for each property 
13310             except, for unknown reasons, Cursor, when the control is reparented. 
13311             I can't seem to totally match add/remove since MS also fires some 
13312             VisibleChanged events, which makes no sense. Consolidated the
13313             parenting code into a separate method so it can be called from
13314             both Add and Remove. set_Parent no longer needs any special logic
13315             as it calls the parent's add method which implicitly fires
13316             all events
13317           - Removed some obsolete code and debug output
13318           - Enabled state is inherited from parents, if this is enabled
13319
13320 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13321
13322         * Form.cs: Removed commented out code
13323
13324 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13325
13326         * Control.cs:
13327           - Added internal version of Invoke, with additional argument 
13328             indicating if we're calling it from a Dispose() handler. That
13329             way we can avoid BeginInvoke throwing an exception if we're
13330             calling for an already destroyed window.
13331           - Added a dispose argument to BeginInvokeInternal, and made the
13332             check if a valid window handle chain exists conditional on
13333             it not being a dispose call
13334           - Removed code in DestroyHandle to destroy our children. Since we
13335             now handle the WM_DESTROY message we will catch all our children
13336             being destroyed.
13337           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13338         * Form.cs:
13339           - Added a field to track the application context of the form.
13340           - No need to set closing variable as response to WM_CLOSE, instead
13341             we destroy the window. We also call PostQuitMessage if the form
13342             has an application context (which makes it the main app form,
13343             which, when closed terminates the app)
13344         * XplatUI.cs:
13345           - Dropped Exit() method, it's naming was confusing
13346           - Added PostQuitMessage() which causes GetMessage to return false
13347             once the message queue is empty
13348         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13349           PostQuitMessage()
13350         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13351           no longer a valid XplatUI method, but left it in since it's used
13352           internally. Added empty PostQuitMessage() method.
13353         * MenuAPI.cs: Replaced call to Exit() with call to
13354           PostQuitMessage, even though this is probably no longer needed.
13355         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13356         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13357         * Application.cs:
13358           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13359           - Removed old debug code that would call XplatUI for exception
13360             display, enabled standard exception handling (Still not enabled
13361             though, until NativeWindow's ExternalExceptionHandler define
13362             is removed
13363         * NativeWindow.cs:
13364           - Added internal method to allow control to update NativeWindow
13365             after a window has been destroyed
13366           - Added handling of already destroyed windows when calling i
13367             DestroyWindow
13368           - Added removal of handle from list on ReleaseHandle
13369         * XplatUIX11.cs:
13370           - Dropped GetMessageResult var and related code
13371           - Added PostQuitState to field to track if PostQuitMessage has been
13372             called
13373           - Dropped Exit() method
13374           - Added PostQuitMessage() method
13375           - GetMessage now will return false if PostQuitState is set and no
13376             more messages are in the queue.
13377           - Expose handler will no longer generate WM_PAINT messages if we are
13378             in PostQuitState since it's very likely any windows have already
13379             been destroyed, and since Hwnd won't get updated until we have
13380             processed the DestroyNotify we'd be causing X errors.
13381         
13382 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13383
13384         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13385           Thanks to Mike for pointing out the err of my ways.
13386
13387 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13388
13389         * Control.cs(PreProcessMessage): Moved menu handling back, but
13390           after all other key handling, to match MS (who handles Menu in
13391           DefWndProc)
13392         * Menu.cs (WndProc): Removed my brainfart
13393
13394 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13395
13396         * Control.cs(PreProcessMessage): Removed special menu handling 
13397         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13398
13399 2005-12-07  Mike Kestner  <mkestner@novell.com>
13400
13401         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13402         state according in tracker.
13403         * Menu.cs : promote tracker field to base class and provide a tracker
13404         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13405         has a tracker. Unparent items that are removed from the collection.
13406         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13407         * Theme*.cs: add always_show_hotkeys field to support configurability
13408         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13409         pressed.
13410
13411 2005-12-07  Jackson Harper  <jackson@ximian.com>
13412
13413         * MdiChildContext.cs: Use Control.ResetCursor.
13414         * Control.cs: ResetCursor needs to set the property so that the
13415         correct XplatUI call gets made.
13416
13417 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13418
13419         * Control.cs: More fixes to make our key events match MS. We
13420           were not setting the modifier state on KeyData, and we were
13421           not generating any events when Alt was pressed with a key
13422           since handling of WM_SYSxxx was missing for the OnKey methods.
13423
13424 2005-12-07  Jackson Harper  <jackson@ximian.com>
13425
13426         * MdiChildContext.cs: reenable the sizing code.
13427         - When the mouse leaves a window reset its cursor.
13428
13429 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13430
13431         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13432
13433 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13434
13435         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13436           widths of Fixed3D borders
13437
13438 2005-12-07  Jackson Harper  <jackson@ximian.com>
13439
13440         * MdiClient.cs: Fix warnings. Earn Mike's love.
13441
13442 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13443
13444         * ThemeClearlooks.cs:
13445           - Adjusted mouse over button color
13446           - Added first parts of CheckBox drawing
13447           - Added correct color for selected text background
13448           - Fixed ComboBox drawing
13449           - Added CPDrawBorder3D and CPDrawBorder
13450
13451 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13452
13453         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13454
13455 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13456
13457         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13458           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13459           alert users via sound. We could add an enum arg with different
13460           types of alerts in the future
13461
13462 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13463
13464         * Control.cs: Fix behaviour problems pointed out by Mike
13465
13466 2005-12-05  Mike Kestner  <mkestner@novell.com>
13467
13468         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13469         prop setters.  Calls parent.Refresh for now, but could be maybe be
13470         optimized with an internal method on StatusBar at some point.
13471         [Fixes #76513]
13472
13473 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13474
13475         * RichTextBox.cs: Implemented get_SelectionColor
13476
13477 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13478
13479         * ThemeClearlooks.cs:
13480           - Removed dead code
13481           - Draw black button border only if button is Form.AcceptButton
13482           - Draw correct button color for pressed RadioButton if the mouse 
13483             has entered the button
13484           - Updated ProgressBar drawing!
13485           - Updated CPDrawSizeGrip drawing
13486           - Updated StatusBarPanel drawing
13487
13488 2005-12-05  Mike Kestner  <mkestner@novell.com>
13489
13490         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13491         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13492
13493 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13494
13495         * ThemeClearlooks.cs: Initial check-in, activate with
13496           export MONO_THEME=clearlooks
13497         * ThemeEngine.cs: Added ThemeClearlooks
13498
13499 2005-12-03  Mike Kestner  <mkestner@novell.com>
13500
13501         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13502         [Fixes #76897]
13503
13504 2005-12-02  Jackson Harper  <jackson@ximian.com>
13505
13506         * Form.cs: If the child form has no menu the default main menu is
13507         used as the active menu.
13508
13509 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13510
13511         * ListBox.cs: Check if any items exist before trying to resolve 
13512           coordinates into items
13513
13514 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13515
13516         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13517           as the second color for the background hatch
13518
13519 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13520
13521         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13522         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13523           sure that what we pass to FormatText is always 1-based. Fixes #76885
13524
13525 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13526
13527         * NumericUpDown.cs (EndInit): When we are done initializing,
13528         reflect any updates on the UI.
13529
13530 2005-12-02  Jackson Harper  <jackson@ximian.com>
13531
13532         * ImplicitHScrollBar.cs:
13533         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13534         their container controls.
13535         * TreeView.cs: Use the new implicit scrollbars.
13536
13537 2005-12-02  Jackson Harper  <jackson@ximian.com>
13538
13539         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13540         can play with it.
13541         * TreeNodeCollection.cs: If we remove the topnode we need to
13542         update topnode to the next node in line.
13543         - When clearing nodes go through the same process as removing
13544         them, so they get depareneted and checked if they are top node.
13545
13546 2005-12-01  Jackson Harper  <jackson@ximian.com>
13547
13548         * TreeView.cs: When imagelists are used the image area is
13549         selectable as well as the text.
13550         - If there are no selected nodes select the first one.
13551         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13552         so don't do it more then we need to.
13553
13554 2005-12-01  Jackson Harper  <jackson@ximian.com>
13555
13556         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13557         that arrows can be scaled.
13558
13559 2005-12-01  Jackson Harper  <jackson@ximian.com>
13560
13561         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13562         fail. Patch by Dieter Bremes
13563
13564 2005-11-30  Jackson Harper  <jackson@ximian.com>
13565
13566         * Form.cs: Property is 2.0 only
13567         * PrintDialog.cs: Signature fix.
13568
13569 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13570
13571         * TextControl.cs: 
13572           - No longer artificially moves text 2 pixels down (now that we have
13573             borders this is no longer needed)
13574           - Added calcs for left, hanging and right indent
13575
13576 2005-11-23  Mike Kestner  <mkestner@novell.com>
13577
13578         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13579
13580 2005-11-30  Jackson Harper  <jackson@ximian.com>
13581
13582         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13583         get cloned as part of CloneMenu ().
13584         * Menu.cs: Make sure the parent of the items get set correctly
13585         when they are added.  And the owners are notified of the changes.
13586         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13587         we can change the menu being displayed/handled by the form without
13588         changing the menu assosciated with the form.
13589         - Don't let Mdi children draw/handle menus.
13590         
13591 2005-11-30  Jackson Harper  <jackson@ximian.com>
13592
13593         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13594         a MenuChanged event. Just to make the API a little more
13595         consistent.
13596         * MainMenu.cs:
13597         * MenuItem.cs: Use the new OnMenuChanged
13598         * MdiChildContext.cs: Handle menu merging.
13599         * Form.cs: Implement MergedMenu.
13600         
13601 2005-11-30  Jackson Harper  <jackson@ximian.com>
13602
13603         * Menu.cs: We were misusing Add. Add goes behind the specified
13604         index according to the docs, and does not replace the specified
13605         index. So I added an Insert method.
13606
13607 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13608
13609         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13610           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13611           is for Jackson
13612         * RichTextBox.cs: Added calls to base for DnD events
13613
13614 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13615
13616         * TextControl.cs:
13617           - Fixed drag-selection related crash; style fixes
13618           - Implemented undo class
13619             o Implemented method to capture document state for specified
13620               range in document tree
13621             o Implemented method to restore captured document state
13622             o Implemented cursor tracking
13623             o Implemented basic undo stack
13624           - Added undo cursor tracking to methods altering cursor location
13625           - Added undo tracking to selection deletion (still missing
13626             other text-altering hookups)
13627         * RichTextBox.cs:
13628           - Added SelectionLength property
13629           - Implemented CanPaste()
13630           - Implemented Paste()
13631           - Added missing protected methods
13632           - Fixed RTF->Document conversion; now uses font index 0 and color 
13633             index 0 as the default font for the parsed text
13634           - Fixed RTF<->Document font size translation
13635           - Fixed RTF generation, now properly handles cross-tag boundaries
13636             for single line selection
13637           - No longer always appends blank line to generated RTF
13638           - Removed TODOs
13639           - Added missing attributes
13640           - Hooked up undo-related methods
13641         * TextBoxBase.cs:
13642           - Implemented Copy()
13643           - Implemented Paste()
13644           - Implemented Cut()
13645           - Fixed caret mis-behaviour on backspace across line-boundaries
13646
13647 2005-11-29  Jackson Harper  <jackson@ximian.com>
13648
13649         * MdiClient.cs: Add a method for activating mdi children. Very
13650         basic right now. I imagine someday it might need more girth.
13651         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13652         children windows names are added to the menu item.
13653         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13654         mdilist. This happens regardless of whether or not there are any
13655         mdi windows to see in the list, and according to my tests happens
13656         before the items are even added. Also happens if there isn't even
13657         an mdi client to get windows from.
13658
13659 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13660
13661         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13662         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13663
13664 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13665
13666         * DataGridTableStyle.cs:
13667           - Create always the styles for the missing columns even if they are
13668             provided by the user (not default table style)
13669         * DataGrid.cs:
13670           - Fixes bug 76770
13671           - Fixes SetDataBinding (always re-attach source)
13672           - Fixes SetNewDataSource (only clear styles if they are not for 
13673             this source)
13674          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13675             and remove properly
13676
13677 2005-11-29  Jackson Harper  <jackson@ximian.com>
13678
13679         * FileDialog.cs: Implement missing bits, remove some dead
13680         code.
13681         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13682         creation of the panel so that the options set on the dialog are
13683         seen when the panel is created.
13684         * TreeView.cs: raise a click when items are clicked.
13685         
13686 2005-11-29  Jackson Harper  <jackson@ximian.com>
13687
13688         * MdiClient.cs: Pass some signature methods through to base.
13689
13690 2005-11-28  Jackson Harper  <jackson@ximian.com>
13691
13692         * ListView.cs: Raise the click event when items are clicked.
13693
13694 2005-11-28  Jackson Harper  <jackson@ximian.com>
13695
13696         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13697         a nullref.
13698
13699 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13700
13701         * ThemeNice.cs: - Removed 1 pixel bitmaps
13702           - Use SmoothingMode.AntiAlias where it makes sense
13703             (ScrollButton arrow for example)
13704           - Enhanced Button focus drawing
13705           - Fixed ComboBox drawing (no artefacts anymore, focus
13706             rectangle is back again, reduced size of ComboButton, etc.)
13707           - Fixed RadioButton focus drawing for Appearence.Button
13708           - Slight ScrollButton redesign
13709           - Some LinearGradientBrush size fixes
13710           - GroupBoxes have now rounded edges
13711           - Fixed StatusBar drawing
13712
13713 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13714
13715         * ThemeNice.cs: - Remove dead code
13716           - use correct background colors for menus, etc.
13717           - Fake pixel drawing with 1 pixel bitmaps
13718
13719 2005-11-24  Jackson Harper  <jackson@ximian.com>
13720
13721         * MdiClient.cs: Size the scrollbars when resizing the window.
13722         - Resize the maximized windows when the client is resized
13723         * Form.cs: Make the child context available
13724         
13725 2005-11-23  Jackson Harper  <jackson@ximian.com>
13726
13727         * MdiChildContext.cs: Don't size windows if they are maximized.
13728
13729 2005-11-23  Mike Kestner  <mkestner@novell.com>
13730
13731         * ContextMenu.cs: use MenuTracker.
13732         * Control.cs: remove menu handle usage.
13733         * Form.cs: remove menu handle usage.
13734         * Hwnd.cs: remove menu handle usage.
13735         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13736         motion and clicks to the new Tracker handlers.
13737         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13738         and handle usage.
13739         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13740         Killed the MENU and MENUITEM data types and associated collections
13741         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13742         MenuTracker class that exposes the leftovers from the old MenuAPI
13743         static methods. Restructured Capture handling so that only one grab is
13744         done for the entire menu hierarchy instead of handing off grabs to
13745         submenus. Tracker now has an invisible control to Capture when active.
13746         * MenuItem.cs: add sizing accessors, kill Create
13747         and handle usage.
13748         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13749         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13750         MENU(ITEM). remove menu handle usage, use Menu directly.
13751         * XplatUIDriver.cs: remove menu handle usage.
13752         * XplatUIOSX.cs: remove menu handle usage.
13753         * XplatUIWin32.cs: remove menu handle usage.
13754         * XplatUIX11.cs: remove menu handle usage.
13755
13756 2005-11-22  Jackson Harper  <jackson@ximian.com>
13757
13758         * Hwnd.cs: Don't compute the menu size for
13759         DefaultClientRectangle.
13760         - Reenable menu sizes being computed for GetClienRectangle.
13761         * Form.cs: Remove comment of trechery
13762         
13763 2005-11-22  Jackson Harper  <jackson@ximian.com>
13764
13765         * Hwnd.cs: The adjustments for the menu bar are made when it is
13766         attached to the form.
13767
13768 2005-11-19  Jackson Harper  <jackson@ximian.com>
13769
13770         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13771         (just like on windows).
13772
13773 2005-11-19  Jackson Harper  <jackson@ximian.com>
13774
13775         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13776         use real buttons anymore because they are in non client area. The
13777         one TODO here is that I need to somehow invalidate a section of
13778         the non client area.
13779
13780 2005-11-18  Jackson Harper  <jackson@ximian.com>
13781
13782         * Control.cs: Put the enum check back in now that MDI doesnt have
13783         to use this to set border styles.
13784         * Form.cs: Only set mdi child windows borders if the handle has
13785         been created.
13786         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
13787         this directly on to the driver.
13788         - Get the move start position before adjusting for the titlebar
13789         height, this fixes the windows "skipping" when they are first
13790         moved.
13791
13792 2005-11-18  Jackson Harper  <jackson@ximian.com>
13793
13794         * XplatUIX11.cs: Just compute the mdi borders separately as they
13795         don't totally match up with normal form borders.
13796
13797 2005-11-18  Jackson Harper  <jackson@ximian.com>
13798
13799         * Control.cs: Set WS_ styles for borders, so that the driver does
13800         not have to retrieve the control instance to figure out what kind
13801         of borders it should have.
13802         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
13803         driver can know its an mdi child easily.
13804         * XplatUIX11.cs: Get the border styles and whether the window is
13805         MDI from the Styles and ExStyles params instead of having to get a
13806         control. This prevents a chicken and egg problem.       
13807
13808 2005-11-18  Jackson Harper  <jackson@ximian.com>
13809
13810         * MdiClient.cs: Fix typo so scrollbars show up correctly.
13811
13812 2005-11-18  Jackson Harper  <jackson@ximian.com>
13813
13814         * MdiClient.cs: Calculate when to add and remove scrollbars
13815         correctly.
13816         * MdiChildContext.cs: Adjust the y position to take the titlebar
13817         into account.
13818         - No height for FormBorderStyle.None
13819
13820 2005-11-18  Jackson Harper  <jackson@ximian.com>
13821
13822         * Control.cs: Allow non enum values to be used for
13823         InternalBorderStyle.  MDI does this to set a special border style.
13824         - New utility methods for converting points to/from client coords
13825         - Add the newly created control to the Controls collection before
13826         updating its style. This way UpdateStyle can walk the control
13827         heirarchy to find the control if needed.
13828         so I don't need to create a new Point object all the time.
13829         * Form.cs: Let MDI windows handle their border styles.
13830         - Set styles on MDI windows so the correct title style is derived.
13831         * MdiChildContext.cs: Move all the painting and window handling
13832         into the non client area.
13833         - Use correct sizing and put correct buttons on frames based on
13834         the FormBorderStyle.
13835         - Notify the mdi client about scrolling
13836         - Need to handle the buttons ourselves now, because they are all
13837         in non client areas and we can't add controls there.
13838         * MdiClient.cs: Halfway to scrolling, this implementation is
13839         somewhat broken though, we need to check to make sure other
13840         windows aren't causing scrolling before removing the bars. Also
13841         the bars need to be drawn on top, maybe I can switch implicit
13842         controls to be on top.
13843         * Hwnd.cs: caption_height and tool_caption_height are now
13844         properties of an hwnd, this way they can be set by the driver
13845         based on the type of window they are.  In X11 the window manager
13846         handles the decorations so caption_height is zero unless its an
13847         MDI window.
13848         - Add 3 pixel borders for MDI windows (0xFFFF).
13849         - Get rid of some code duplication, have DefaultClientRectanle
13850         just call GetClientRectangle.
13851         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
13852         Hwnd now.
13853         - Set border styles differently for mdi windows.
13854         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
13855         Hwnd now.
13856         
13857 2005-11-15  Mike Kestner  <mkestner@novell.com>
13858
13859         * Menu.cs: when adding an item to the collection, if item is already 
13860         parented, remove it from the parent.
13861
13862 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
13863
13864         * X11DesktopColors.cs: Added KDE support
13865
13866 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
13867
13868         * XplatUIWin32.cs: 
13869           - Clipboard methods now can translate Rtf format
13870           - No longer removes clipboard contents whenever a new format is added
13871             to allow placing multiple formats on the clipboard
13872         * Clipboard.cs: Clipboard now supports getting a IDataObject and
13873           will place all formats contained in it onto the clipboard. Also
13874           now cleans the clipboard before placing a new object onto it
13875         * RichTextBox.cs:
13876           - Implemented set_Rtf
13877           - Implemented set_SelectedRtf
13878           - Created InsertRTFFromStream() method to allow single code base
13879             for all properties and methods that insert RTF into document
13880           - Removed debug output
13881         * TextControl.cs:
13882           - Fixed Delete(int) to fix up line numbers
13883           - Fixed ReplaceSelection to combine start and end line
13884           - Fixed serious DeleteChars bug that would leave the document tree
13885             broken
13886           - Improved DumpTree with several logic checks to detect broken
13887             document trees
13888           - Removed debug lines
13889           - Fixed Caret.WordForward/WordBack moving code, now always also 
13890             updates caret.tag (fixes crash when word-selecting across tag
13891             boundaries via keyboard)
13892           - Added Insert() method for inserting multiline text into documents
13893           - Fixed DeleteChars() calculation errors that would cause a broken
13894             tag chain with multiple tag lines
13895           - DeleteChars() no longer crashes on multi-tag lines if not all tags
13896           - Split() no longer moves caret if split is at caret location
13897           - ReplaceSelection() now updates the cursor and re-displays it
13898           - ReplaceSelection() now uses new Insert() method to avoid code
13899             duplication
13900           - FormatText() can now handle formatting partial lines
13901         * TextBoxBase.cs:
13902           - Append now uses new TextControl.Insert() method (this avoids 
13903             duplicate code)
13904           - Implemented Ctrl-X (Cut) (
13905           - Implemented Ctrl-C (Copy)
13906           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
13907             regeneration when pasting text; roundtripping Copy&Paste within
13908             edit control still fails due to some calculation bugs in GenerateRTF)
13909           - The Delete key will now remove the current selection if it is visible
13910         * TextBox.cs: Removed debug lines
13911         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
13912           driver to be initialized and can't therefore be done via a static ctor)
13913
13914 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
13915
13916         * TextControl.cs: Added backend code for finding char arrays and strings
13917         * TextBoxBase.cs:
13918           - Added mouse wheel scroll support
13919           - Added support for VScroll and HScroll events
13920         * RichTextBox.cs:
13921           - Implemented all seven Find() variants
13922           - Implemented GetCharFromPosition()
13923           - Implemented GetCharIndexFromPosition()
13924           - Implemented GetLineFromIndex()
13925           - Implemented GetPositionFromCharIndex();
13926           - Implemented SaveFile for PlainText and UnicodeText
13927           - Fixed set_Font, now setting a new font applies that font to
13928             the whole document
13929           - Implemented generic Document to RTF converter
13930           - Implemented SaveFile for RichText format (still missing unicode
13931             conversion for non-ansi chars)
13932           - Implemented get_Rtf
13933           - Implemented get_SelectedRtf
13934
13935 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
13936
13937         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
13938           to allow any captures to be released before triggering OnClick. This
13939           way a click handler may capture the mouse without interference.
13940         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
13941           This way we send them even though X may not allow a grab (if the window
13942           isn't visible, for example)
13943
13944 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
13945
13946         * DataGridViewRowEventArgs.cs: DataGridView implementation
13947         * DataGridViewElement.cs: DataGridView implementation
13948         * DataGridViewComboBoxCell.cs: DataGridView implementation
13949         * DataGridViewDataErrorContexts.cs: DataGridView implementation
13950         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
13951         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
13952         * ImageLayout.cs: DataGridView implementation
13953         * DataGridViewComboBoxColumn.cs: DataGridView implementation
13954         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
13955         * DataGridViewSelectionMode.cs: DataGridView implementation
13956         * IDataGridViewEditingControl.cs: DataGridView implementation
13957         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
13958         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
13959         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
13960         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
13961         * DataGridViewColumnSortMode.cs: DataGridView implementation
13962         * DataGridView.cs: DataGridView implementation
13963         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
13964         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
13965         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
13966         * Padding.cs: DataGridView implementation
13967         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
13968         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
13969         * DataGridViewRowEventHandler.cs: DataGridView implementation
13970         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
13971         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
13972         * DataGridViewButtonCell.cs: DataGridView implementation
13973         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
13974         * DataGridViewEditMode.cs: DataGridView implementation
13975         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
13976         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
13977         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
13978         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
13979         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
13980         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
13981         * DataGridViewCellEventHandler.cs: DataGridView implementation
13982         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
13983         * DataGridViewCellStyleConverter.cs: DataGridView implementation
13984         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
13985         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
13986         * DataGridViewColumnEventArgs.cs: DataGridView implementation
13987         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
13988         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
13989         * QuestionEventArgs.cs: DataGridView implementation
13990         * IDataGridViewEditingCell.cs: DataGridView implementation
13991         * DataGridViewTriState.cs: DataGridView implementation
13992         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
13993         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
13994         * DataGridViewColumnCollection.cs: DataGridView implementation
13995         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
13996         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
13997         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
13998         * DataGridViewColumn.cs: DataGridView implementation
13999         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14000         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14001         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14002         * DataGridViewRow.cs: DataGridView implementation
14003         * DataGridViewImageCellLayout.cs: DataGridView implementation
14004         * DataGridViewImageCell.cs: DataGridView implementation
14005         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14006         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14007         * DataGridViewHeaderCell.cs: DataGridView implementation
14008         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14009         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14010         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14011         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14012         * QuestionEventHandler.cs: DataGridView implementation
14013         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14014         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14015         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14016         * DataGridViewCell.cs: DataGridView implementation
14017         * DataGridViewCellEventArgs.cs: DataGridView implementation
14018         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14019         * DataGridViewCellStyle.cs: DataGridView implementation
14020         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14021         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14022         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14023         * TextFormatFlags.cs: DataGridView implementation
14024         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14025         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14026         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14027         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14028         * DataGridViewButtonColumn.cs: DataGridView implementation
14029         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14030         * HandledMouseEventArgs.cs: DataGridView implementation
14031         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14032         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14033         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14034         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14035         * DataGridViewRowCollection.cs: DataGridView implementation
14036         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14037         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14038         * DataGridViewHitTestType.cs: DataGridView implementation
14039         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14040         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14041         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14042         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14043         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14044         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14045         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14046         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14047         * DataGridViewContentAlignment.cs: DataGridView implementation
14048         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14049         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14050         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14051         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14052         * DataGridViewPaintParts.cs: DataGridView implementation
14053         * DataGridViewCellCollection.cs: DataGridView implementation
14054         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14055         * DataGridViewImageColumn.cs: DataGridView implementation
14056         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14057         * DataGridViewElementStates.cs: DataGridView implementation
14058         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14059         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14060         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14061         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14062         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14063         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14064         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14065         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14066         * DataGridViewTextBoxCell.cs: DataGridView implementation
14067         * DataGridViewBand.cs: DataGridView implementation
14068         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14069         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14070         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14071         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14072         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14073         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14074         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14075         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14076         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14077         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14078         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14079
14080 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14081
14082         * ThemeWin32Classic.cs: 
14083           - Draw the outside focus rectangle around buttons
14084           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14085             doesn't use end caps for every dash of a line anymore. This
14086             workaround ignores the forecolor.
14087
14088 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14089
14090         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14091           endian safe.
14092
14093 2005-11-07  Jackson Harper  <jackson@ximian.com>
14094
14095         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14096
14097 2005-11-07  Jackson Harper  <jackson@ximian.com>
14098
14099         * ScrollableControl.cs: Calculate the maximum and change vars
14100         (more) correctly so that scrollbars appear as a sensible size.
14101
14102 2005-11-04  Jackson Harper  <jackson@ximian.com>
14103
14104         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14105         collection.
14106         * TreeView.cs: When the tree is sorted null out the top_node so
14107         that it is recalculated.
14108         - Use dotted lines instead of dashed lines to match MS better.
14109
14110 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14111
14112         * ListView.cs: 
14113           - Implements key search for items. Useful when browsing files with FileDialog
14114           - When changing view mode or when clear the items reset scrollbar positions
14115
14116 2005-11-04  Jackson Harper  <jackson@ximian.com>
14117
14118         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14119         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14120         as to what the method may do as there is no real way of creating a
14121         derived CurrencyManager and calling the method. 
14122
14123 2005-11-03  Jackson Harper  <jackson@ximian.com>
14124
14125         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14126         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14127         method which seems to just be used internally to refresh the tabs.
14128
14129 2005-11-03  Jackson Harper  <jackson@ximian.com>
14130
14131         * TabControl.cs: Implement the remove method. Fix some broken
14132         comments.
14133
14134 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14135
14136         * DateTimePicker.cs:
14137           - Added missing DateTimePickerAccessibleObject class
14138           - Added missing events
14139           - Added OnFontChanged method
14140         * Form.cs: Added missing attributes
14141         * TreeView.cs: Added missing attributes
14142
14143 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14144
14145         * GridItemCollection.cs: Fix signatures
14146
14147 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14148
14149         * XplatUI.cs: Updated build rev/date
14150         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14151           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14152         * Application.cs: Trigger context-specific ExitThread events
14153
14154 2005-11-03  Jackson Harper  <jackson@ximian.com>
14155
14156         * Menu.cs:
14157         * MainMenu.cs:
14158         * GridTableStylesCollection.cs:
14159         * Timer.cs:
14160         * TabPage.cs:
14161         * HelpProvider.cs:
14162         * StatusBar.cs:
14163         * MonthCalendar.cs: Signature fixes
14164
14165 2005-11-03  Jackson Harper  <jackson@ximian.com>
14166
14167         * TreeNodeCollection.cs: Remove should not be virtual.
14168         * TreeView.cs: Implement the last of the missing methods.
14169
14170 2005-11-03  Jackson Harper  <jackson@ximian.com>
14171
14172         * TreeNodeConverter.cs: Implement to get off my class-status back.
14173
14174 2005-11-03  Jackson Harper  <jackson@ximian.com>
14175
14176         * TreeView.cs: Hookup the bits for drag and drop.
14177         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14178         that nodes can be moved from tree to tree easily this just causes
14179         all sorts of problems.
14180         * TreeNodeCollection: Don't need to give treenodes an index and
14181         treeview anymore when they are added, these are computed on the
14182         fly. Also make sure to remove a node before its added.
14183
14184 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14185
14186         * TextControl.cs:
14187           - Added CaretSelection enum
14188           - Added comparison methods to Marker struct, makes selection code
14189             more readable
14190           - Added SelectionStart and SelectionEnd as 'moveable' location for
14191             the CaretDirection enum and handler
14192           - Added selection_prev variable to track optimized invalidation for
14193             word and line selection
14194           - Added SelectionVisible property (returns true if there is a valid 
14195             selection)
14196           - Switched CaretHasFocus to only display the caret if there is no
14197             visible selection
14198           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14199             using the direct character index; should be much faster
14200           - Added various conditional debug statements
14201           - Fixed invalidation calculation for selection ranges
14202           - Added ExpandSelection() method to support word and line selection
14203           - Switched SetSelectionToCaret to use new Marker compare overloads
14204           - Added central IsWordSeparator() method to determine word 
14205             separators/whitespace and FindWordSeparator() to streamline common
14206             usage of IsWordSeparator()
14207         * TextBoxBase.cs:
14208           - Removed unneeded grabbed variable, it was just mirroring
14209             Control.Capture
14210           - No longer firing OnTextChanged event when Text setter is called,
14211             since the base will fire the event for us
14212           - Added handling of Ctrl-Up/Down selection
14213           - Added handling of Shift-Cursorkey selection
14214           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14215             words
14216           - Added handling of Shift and Ctrl-Shift-Home/End selection
14217           - Removed some debug output
14218           - Added handling for single/double/tripple-click to place caret/
14219             select word/select line respectively (Fixes bug #76031)
14220           - Added support for drag expansion of word/line selection
14221         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14222           current selection
14223
14224 2005-11-02  Jackson Harper  <jackson@ximian.com>
14225
14226         * X11Dnd.cs: If the drag is going to and from a MWF window just
14227         copy the data instead of sending it out through the X Selection
14228         mechanism.
14229
14230 2005-11-02  Jackson Harper  <jackson@ximian.com>
14231
14232         * X11Dnd.cs:
14233         * XplatUIX11.cs: When in a drag we don't want motion notify
14234         messages to get passed on to the other controls. This prevents
14235         mouse move messages from showing up in the drag source.
14236
14237 2005-11-02  Jackson Harper  <jackson@ximian.com>
14238
14239         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14240         the correct button is release to end a drag.
14241         * XplatUIX11.cs: Make the button state internal so the drag system
14242         can access it.  Dragging needs to know about all button releases,
14243         not just left button.
14244
14245 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14246
14247         * Form.cs (Icon): If the icon is null, reset the icon to the
14248         default value. 
14249
14250         * Cursor.cs: When writing the AND-mask bitmap do not include the
14251         number of colors, but hardcode those to two (black and white),
14252         fixes the loading of color cursors (Paint Dot Net).
14253
14254         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14255         turn off autoscaling.
14256
14257         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14258
14259 2005-11-02  Jackson Harper  <jackson@ximian.com>
14260
14261         * X11Dnd.cs: Make sure to send a status message if the pointer
14262         enters a control that can not accept a drop, otherwise the cursor
14263         isn't updated correctly. Also tried to compress the lines of code
14264         a bit.
14265
14266 2005-11-02  Jackson Harper  <jackson@ximian.com>
14267
14268         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14269         set actions correctly.  This isn't perfect as XDND and win32 have
14270         some differences on how you allow actions. I'll clear this up by
14271         adding a path for drag from MWF to MWF windows.
14272         * XplatUIX11.cs: Hook into the dnd system.
14273
14274 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14275
14276         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14277         previously shown but they are no longer need it. Very obvious when 
14278         browsing files with FileDialog.
14279
14280 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14281
14282         * Control.cs: We always need to call OnPaintBackground. We pretty much
14283           ignore AllPaintingInWmPaint and always do the painting there, whether 
14284           it's set or not, since we always ignore the WM_ERASEBKGND message 
14285           (which we don't generate on X11). This fixes #76616.
14286         * Panel.cs: Removed unneeded background painting. This happens properly
14287           in Control.cs already
14288
14289 2005-10-31  Mike Kestner  <mkestner@novell.com>
14290
14291         * Menu.cs: Add items to collection before setting their index.
14292         * MenuItem.cs : add range checking with ArgumentException like MS.
14293         [Fixes #76510]
14294
14295 2005-10-31  Jackson Harper  <jackson@ximian.com>
14296
14297         * ListBox.cs: Invalidate if the area is visible at all not just
14298         contained in the visible rect. Fixes unselection of semi visible
14299         items.
14300
14301 2005-10-31  Jackson Harper  <jackson@ximian.com>
14302
14303         * Control.cs: Consistently name the dnd methods. Make them
14304         internal so we can override them to match some MS behavoir
14305         internally.
14306         * Win32DnD.cs: Use the new consistent names.
14307
14308 2005-10-31  Jackson Harper  <jackson@ximian.com>
14309
14310         * TreeView.cs: Don't draw the selected node when we lose focus.
14311
14312 2005-10-31  Jackson Harper  <jackson@ximian.com>
14313
14314         * X11Dnd.cs: We still need to reset the state even though a full
14315         reset isn't being done, otherwise status's still get sent all over
14316         the place.
14317
14318 2005-10-31  Jackson Harper  <jackson@ximian.com>
14319
14320         * Control.cs: Make the dnd_aware flag internal so the dnd
14321         subsystem can check it. Catch exceptions thrown in dnd handlers to
14322         match MS behavoir.
14323         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14324         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14325         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14326         flags to reduce the number of dnd enters/status's sent.
14327
14328 2005-10-31  Jackson Harper  <jackson@ximian.com>
14329
14330         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14331
14332 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14333
14334         * PictureBox.cs: Fixes 76512
14335
14336 2005-10-28  Jackson Harper  <jackson@ximian.com>
14337
14338         * X11Dnd.cs: Early implementation to support winforms being a drag
14339         source for data on X11. Also restructured the converters so they
14340         can go both ways now.
14341         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14342         
14343 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14344
14345         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14346           clipboard requests
14347
14348 2005-10-27  Jackson Harper  <jackson@ximian.com>
14349
14350         * TreeNode.cs: Implement serialization so my DnD examples will work.
14351
14352 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14353
14354         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14355           TreeView.cs: Don't dispose objects that are not owned.
14356           
14357 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14358
14359         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14360           should retrieve the current cursor and report that, but XplatUI
14361           doesn't (yet) have an interface for that (and I'm not sure I even
14362           can, on X11)
14363         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14364           until any message loop processing is done (and the WM_SETCURSOR
14365           replaces the cursor to the proper one)
14366         * XplatUIX11.cs: 
14367           - Fixed override behaviour, we can't set the cursor globally on X11, 
14368             just for our windows.
14369           - Invalidating the System.Drawing X11 display handle when we are
14370             shutting down
14371         * Control.cs: Fix to make csc happy
14372
14373 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14374
14375         * TextBoxBase.cs: 
14376           - get_Text: Add last line (without trailing newline) to returned
14377             value (Fixes 76212)
14378           - get_TextLength: Count last line in returned length
14379           - ToString: Call Text property instead of duplicating code
14380
14381 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14382
14383         * ImageList.cs: Dispose ImageAttributes objects.
14384
14385 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14386
14387         * ImageList.cs: Use attribute constructors with less arguments where
14388           possible.
14389
14390 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14391
14392         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14393           Use typeof instead of strings when assembly is referenced. Added
14394           some more comments.
14395
14396 2005-10-21  Jackson Harper  <jackson@ximian.com>
14397
14398         * ListView.cs: Raise a double click event. Also tried to somewhat
14399         fix when the selectedindexchanged event is raised. Its still
14400         broken though.
14401
14402 2005-10-21  Jackson Harper  <jackson@ximian.com>
14403
14404         * TreeView.cs: New method to invalidate the plus minus area of a
14405         node without invalidating the whole node (maybe this can be used
14406         in some more places).
14407         * TreeNodeCollection.cs: When adding to an empty node we need to
14408         invalidate its plus minus area so the little block shows up.
14409         
14410 2005-10-21  Jackson Harper  <jackson@ximian.com>
14411
14412         * TreeView.cs: Make sure that when we invalidate a node the bounds
14413         are big enough to cover the selected box and the focus
14414         rectangle. Use a different colour for the lines connecting nodes
14415         so they show up with all themes.
14416
14417 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14418
14419         * NativeWindow.cs: Don't call anything that could call into the driver,
14420           we might be on a different thread.
14421
14422 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14423
14424         * Control.cs(Dispose): Since Dispose might run on a different thread,
14425           make sure that we call methods that could call into the driver via
14426           invoke, to avoid thread issues
14427
14428 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14429
14430         * XplatUI.cs: Removed finalizer
14431         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14432           not allowing to be called on the finalizer thread.
14433
14434 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14435
14436         * ImageList.cs:
14437           - Reverted r51889 and r51891.
14438           - Added ImageListItem class that stores unmodified image items and image
14439             properties required to create list images until handle is created.
14440           - Added AddItem and moved image creation logic to AddItemInternal.
14441           - Added CreateHandle method that creates images based on unmodified items.
14442           - Added DestroyHandle that changes state to store unmodified items.
14443           - Add and AddStrip methods no more create handle.
14444           - ReduceColorDepth has no return value.
14445           - Dispose destroys handle.
14446           - Modified other methods to reflect the above changes.
14447           - Implemented key support.
14448           - Added profile 2.0 members and attributes.
14449           - Added private Reset and ShouldSerialize methods that provide the same
14450             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14451             them as they are private.
14452           - Added some more comments about implementation details.
14453
14454 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14455
14456         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14457
14458 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14459
14460         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14461
14462 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14463
14464         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14465         * DataGridColumnStyle.cs: Remove debug message
14466
14467 2005-10-20  Jackson Harper  <jackson@ximian.com>
14468
14469         * TreeView.cs: We can always get input keys regardless of whether
14470         or not editing is enabled. They are used for navigation.
14471
14472 2005-10-20  Jackson Harper  <jackson@ximian.com>
14473
14474         * TreeNode.cs: Use the viewport rect for determining if a node
14475         needs to be moved for visibility. Don't use Begin/End edit. This
14476         calls a full refresh when its done.
14477         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14478         rect property internal so the treenodes can see it. When clicking
14479         on a node we need to ensure that its visible because it might just
14480         be partly visible when clicked.
14481
14482 2005-10-20  Jackson Harper  <jackson@ximian.com>
14483
14484         * TreeNodeCollection.cs: Remove debug code.
14485
14486 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14487
14488         * Datagrid.cs: Implements column sorting in Datagrid
14489         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14490
14491 2005-10-20  Jackson Harper  <jackson@ximian.com>
14492
14493         * TreeNodeCollection.cs: Remove items properly. Update the correct
14494         area after removing them.
14495
14496 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14497
14498         * Datagrid.cs: Should not call base.OnPaintBackground
14499
14500 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14501
14502         * XplatUIX11.cs (GetMessage):
14503           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14504             window instead of client window
14505           - Now properly calculates NC_xBUTTONUP message coordinates
14506           - ScreenToMenu now properly calculates it's coordinates of whole 
14507             window, since menus are in the whole window, not in the client
14508             window
14509           - Added WholeToScreen coordinate translation method
14510
14511 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14512
14513         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14514           want to return a message, loop back to the beginning of the function
14515           and grab the next real message to process instead.
14516
14517 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14518
14519         * Splitter.cs: Properly set limits if no filler control is used
14520
14521 2005-10-19  Jackson Harper  <jackson@ximian.com>
14522
14523         * ColorDialog.cs: Don't show the help button if it is not enabled
14524         instead of disabling it (this is what MS does). Don't create the
14525         panel until the dialog is run, otherwise the vars (such as
14526         ShowHelp) are not set yet.
14527
14528 2005-10-19  Jackson Harper  <jackson@ximian.com>
14529
14530         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14531         are reduced when adding nodes.
14532         * TreeNode.cs:
14533         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14534         tree.
14535         
14536 2005-10-19  Jackson Harper  <jackson@ximian.com>
14537
14538         * FolderBrowserDialog.cs: End editing our treeview so the window
14539         actually gets refreshed.
14540
14541 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14542
14543         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14544           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14545           inside of WM_PAINT
14546
14547 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14548
14549         * MenuAPI.cs: Returns after Hidding window
14550         * XplatUIX11.cs: Added TODO found while debugging menu issues
14551
14552 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14553
14554         * XplatUIX11.cs: Do not re-map the whole window when it's size
14555           becomes non-zero unless it's supposed to be actually visible
14556
14557 2005-10-18  Jackson Harper  <jackson@ximian.com>
14558
14559         * TreeView.cs: We don't need to keep a count anymore.
14560         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14561         use the Grow method.
14562
14563 2005-10-18  Jackson Harper  <jackson@ximian.com>
14564
14565         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14566         implement it manually here.
14567
14568 2005-10-18  Jackson Harper  <jackson@ximian.com>
14569
14570         * ImageList.cs: Dont kill the list when the colour depth is
14571         changed, just change the colour depth of all the images.
14572         - Same goes for setting the image size. Just resize them all
14573         instead of killing the list softly.
14574
14575 2005-10-18  Jackson Harper  <jackson@ximian.com>
14576
14577         * Control.cs: Don't invalidate empty rectangles.
14578
14579 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14580
14581         * ListViewItem.cs:
14582           - Adds checked item to the Checked/Item lists (where empty before)
14583           - Do not add items to the Selected lists if they are already present
14584         * ListView.cs:
14585           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14586           - When deleting items make sure that we delete them for the Selected
14587           and Checked list also.
14588
14589 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14590
14591         * Label.cs: Dispose objects no longer used
14592         * ThemeWin32Classic.cs: Dispose objects no longer used
14593
14594 2005-10-18  Jackson Harper  <jackson@ximian.com>
14595
14596         * TabControl.cs: Don't refresh the whole control when the tabs are
14597         scrolled, we just need to refresh the tab area.
14598
14599 2005-10-17  Jackson Harper  <jackson@ximian.com>
14600
14601         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14602         after handle when we need it.
14603
14604 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14605
14606         * Control.cs: When the parent size changes, recalculate anchor 
14607           positions. Partial fix for #76462
14608
14609 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14610
14611         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14612           drawn. Fixes #76462
14613
14614 2005-10-17  Jackson Harper  <jackson@ximian.com>
14615
14616         * MonthCalendar.cs: Don't create the numeric up down until our
14617         handle is created. Otherwise our handle is created in the
14618         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14619         yet.
14620
14621 2005-10-17  Jackson Harper  <jackson@ximian.com>
14622
14623         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14624         correctly.
14625
14626 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14627         * TreeNode.cs : small logical fix (was using local var instead of field)
14628         
14629 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14630
14631         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14632
14633 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14634
14635         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14636
14637 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14638
14639         * Control.cs: 
14640           - Re-implemented anchoring code. My first version was really broken.
14641             This fixes bug #76033. Unlike the previous implementation we will
14642             no longer have round errors since all numbers are calculated from
14643             scratch every time. Removed various anchor-related obsolete vars.
14644           - InitLayout no longer causes layout event firing and layout to be 
14645             performed
14646
14647 2005-10-16  Jackson Harper  <jackson@ximian.com>
14648
14649         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14650         which was broken).
14651
14652 2005-10-16  Jackson Harper  <jackson@ximian.com>
14653
14654         * TabControl.cs: Remove debug code.
14655
14656 2005-10-16  Jackson Harper  <jackson@ximian.com>
14657
14658         * XEventQueue.cs: Increase the default queue size (very simple
14659         apps needed to grow the queue).
14660         * Hwnd.cs: No finalizer so we don't need to suppress
14661         finalization. Compute the invalid area manually so a new rectangle
14662         does not newto be created.
14663         * ScrollableControl.cs: Don't set any params (otherwise visibility
14664         isn't set correctly).
14665         * MdiChildContext.cs: New constructor takes the mdi parent so it
14666         doesn't have to be computed and avoids a crash on windows. Draw
14667         the window icon properly, and allow the text to be seen.
14668         * Form.cs: Use new MdiChildContext constructor. Make sure the
14669         child context isn't null in wndproc.
14670         * TabControl.cs: Don't set focus, this is muddling keyboard
14671         behavoir. Expand the tab rows when a window size increase will
14672         allow extra tabs to be seen. Don't allow tabs smaller than the
14673         width of a window to be scrolled out of view.
14674         * TreeNode.cs:
14675         * TreeView.cs: Use measure string to calculate a nodes width, the
14676         width is cached and only updated when the text or the font is
14677         changed. Don't check for expand/collapse clicks on the first level
14678         nodes if root lines are disabled.
14679         
14680 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14681
14682         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14683
14684 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14685
14686         * DataGridBoolColumn.cs: fixes warning
14687
14688 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14689
14690         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14691         to match more to match more precisely the MS Net behavior
14692
14693 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14694
14695         * Hwnd.cs: Added field to track if window is mapped
14696         * XplatUIX11.cs: 
14697           - Unmap windows if they become 0-size, re-map when 
14698             they are >0 again; fixes #76035
14699           - Re-set our error handler after initializing X11Desktop
14700             to override any error handlers Gtk or whatever was called
14701             may have set.
14702
14703 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14704
14705         * CheckedListBox.cs: Removed unused vars
14706         * ListView.cs: Fixed signatures
14707         * RichTextBox.cs: Removed unused vars
14708         * TextBoxBase.cs: Removed unused vars
14709         * XplatUIWin32.cs: Removed unused vars
14710         * XplatUIX11.cs: Removed unused vars
14711         * XplatUI.cs: Updated version and date to latest published
14712
14713 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14714
14715         * Cursor.cs: Added private .ctor to work around a bug in
14716           resourceset (Thanks to Geoff Norton for the help on this)
14717         * SplitterEventArgs.cs: Made fields accessible so we don't
14718           waste boatloads of objects and can reuse the same one
14719           in Splitter
14720         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14721           any captions and borders when generating screen coordinates
14722         * Splitter.cs: Reimplemented control, now fully complete, uses
14723           rubberband drawing, supports and obeys all properties, has
14724           proper cursors
14725
14726 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14727
14728         * Form.cs (Form): Setup default values for autoscale and
14729         autoscale_base_size;  Make these instance variables, not static
14730         variables. 
14731
14732         (OnLoad): on the first load, adjust the size of the form.
14733
14734 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14735
14736         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14737           width argument to DrawReversibleRectangle()
14738         * XplatUIWin32.cs, XplatUIX11.cs: 
14739           - Implemented width for DrawReversibleRectangle()
14740           - Added logic to DrawReversibleRectangle that recognizes a zero
14741             width or height and only draws a line in that situation
14742         
14743 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14744
14745         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14746         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14747         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14748           method (it uses our FosterParent window to get a graphics context)
14749
14750 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14751
14752         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14753           and SetWindowBackground methods
14754         * Control.cs:
14755           - Setting proper ControlStyles
14756           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14757             EraseWindowBackground, instead we draw the window background
14758             ourselves in PaintControlBackground. This behaviour is
14759             required to match MS, where, when OnPaintBackground is not
14760             called, the background is not drawn.
14761           - Removed unneeded Refresh() in set_Text
14762         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14763         * XplatUIX11.cs:
14764           - Created DeriveStyles method to translate from CreateParams to
14765             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14766             matches FormBorderStyle enum values)
14767           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14768             style calculations into single DeriveStyles method
14769           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14770             from redrawing the whole window on any resize or expose.
14771           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14772             all styles were applied to our whole/client window appropriately
14773           - Removed EraseWindowBackground() and SetWindowBackground() methods
14774           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14775             no longer clear/redraw the background through X
14776           - Removed handling of erase_pending bit, we have no use for it (or
14777             so it seems)
14778         * XplatUIOSX.cs:
14779           - Removed generation and handling of WM_ERASEBKGND message
14780           - Removed EraseWindowBackground() and SetWindowBackground() methods
14781           - Removed handling of hwnd.ErasePending flag
14782         * XplatUIWin32.cs:
14783           - Removed EraseWindowBackground() and SetWindowBackground() methods
14784           - We no longer call EraseWindowBackground on PaintEventStart, we 
14785             ignore the fErase flag, erasing is handled in Control in the
14786             background handler
14787         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
14788           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
14789           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
14790           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
14791           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
14792           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
14793           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
14794
14795 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
14796
14797         * PropertyGrids.cs: Get sub properties
14798         * PropertyGridView.cs: Fix drawing code
14799
14800 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14801
14802         * ListBox.cs: Fixes 76383
14803
14804 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14805
14806         * DataGridTextBoxColumn.cs: Sets location and size before attachment
14807         * ThemeWin32Classic.cs: Fixes border drawing and calculations
14808         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
14809
14810
14811 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14812
14813         * ComboBox.cs: Fixes border drawing
14814
14815 2005-10-10  Miguel de Icaza  <miguel@novell.com>
14816
14817         * MimeIcon.cs: Ignore errors if the file can not be read.
14818
14819 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14820
14821         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
14822          - Fixed border calculations
14823          - Fixed horizontal scrolling in single column listboxes
14824          - Fixed drawing issues
14825
14826 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
14827
14828         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
14829           FormBorderStyle enum
14830         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
14831           code to determine FormBorderStyles from CreateParams
14832         * Form.cs:
14833           - Fixed bug where we'd set the wrong window styles if we were
14834             not creating an MDI window
14835           - Added call to XplatUI.SetBorderStyle when form borders are set
14836         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
14837         * Hwnd.cs:
14838           - Removed obsolete edge style
14839           - Switched from BorderStyle to FormBorderStyle
14840         
14841 2005-10-10  Jackson Harper  <jackson@ximian.com>
14842
14843         * Form.cs: Use the property to get the window handle instead of
14844         accessing it directly. Prevents a null reference exception.
14845
14846 2005-10-10  Jackson Harper  <jackson@ximian.com>
14847
14848         * TreeView.cs: Don't adjust the rect given to DrawString now that
14849         our libgdiplus draws correctly.
14850
14851 2005-10-08  Jackson Harper  <jackson@ximian.com>
14852
14853         * TreeView.cs: Don't try to find the clicked on node if there are
14854         no nodes in the tree.
14855
14856 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14857
14858         * RichTextBox.cs:
14859
14860           restore
14861
14862 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14863
14864         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
14865           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
14866           ErrorProvider.cs:
14867           Use ResPool for brushes and dispose System.Drawing objects that
14868           are not used anymore.
14869
14870 2005-10-07  Jackson Harper  <jackson@ximian.com>
14871
14872         * MdiChildContext.cs: Use the new borders instead of drawing them
14873         ourselves.
14874
14875 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
14876
14877         * Calling UpdateBounds after changing the window's BorderStyle 
14878         since the style can change the ClientSize
14879
14880 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14881
14882         * Control.cs: Made PaintControlBackground virtual
14883         * Panel.cs: Overriding PaintControlBackground instead of using paint
14884           event; paint event method was interfering with 'real' users of the
14885           event.
14886
14887 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
14888
14889         * ThemeWin32Classic.cs: remove border drawing since it is handled
14890         by the base control class now and was causing double border drawing.
14891
14892 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14893
14894         * Panel.cs: Redraw our background on paint. Not a pretty solution,
14895           but it does seem to match MS behaviour. This fixes bug #75324
14896
14897 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14898
14899         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
14900           somewhat hackish looking
14901
14902 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
14903
14904         * TextBoxBase.cs:
14905           - We now accept Enter even if AcceptEnter is false, if the containing
14906             form does not have an AcceptButton configured (fixes bug #76355)
14907           - Calculations are now fixed to no longer use Width/Height, but
14908             ClientSize.Width/Height, since we now support borders (this was
14909             a result of fixing borders and therefore bug #76166)
14910           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
14911             true (fixes bug #76354)
14912         
14913 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14914
14915         * Control.cs: 
14916           - Defaulting BorderStyle and setting it in XplatUI when our window 
14917             is created
14918           - Added enum check to InternalBorderStyle setter
14919         * XplatUIX11.cs: 
14920           - Added drawing of window borders
14921           - Now properly calculates WM decorations offset for toplevel 
14922             windows (fixes bug #74763)
14923         * XplatUIWin32.cs: 
14924           - Implemented BorderStyles for windows (we're letting win32 draw 
14925             the border for us)
14926           - Fixed the signature for SetWindowLong
14927         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
14928           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
14929           setting borders
14930         * UpDownBase.cs: Remove drawing of borders, this is handled by
14931           the driver, outside the client area
14932         * ListView.cs: Removed bogus border calculations. The control should
14933           be oblivious to borders, since those are not part of the client
14934           area. 
14935         * X11DesktopColors.cs: Commented out (currently) unneeded variables
14936         * ThemeWin32Classic.cs: Removed border calculations from ListView 
14937           drawing code
14938
14939 2005-10-06  Jackson Harper  <jackson@ximian.com>
14940
14941         * MdiChildContext.cs: Clear out the old virtual position remove
14942         all the unneeded calls to CreateGraphics.
14943
14944 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
14945
14946         * TextControl.cs: Use proper color for highlighted text; fixes #76350
14947
14948 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
14949
14950         * Form.cs: 
14951           - Added loading and setting of our new default icon
14952           - Only set icon if window is already created
14953
14954 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
14955
14956         * Label.cs:
14957           - Do not explicitly set the foreground and background colors, to
14958             allow inheriting from parents (fixes #76302)
14959           - Use Control's InternalBorderStyle property to deal with borders
14960
14961 2005-10-06  Jackson Harper  <jackson@ximian.com>
14962
14963         * MdiChildContext.cs: Use the new xplatui function to draw a
14964         reversible rect.
14965
14966 2005-10-06  Jackson Harper  <jackson@ximian.com>
14967
14968         * Form.cs: Add the parent before creating the child context cause
14969         we need the parent when setting up the child.
14970
14971 2005-10-06  Jackson Harper  <jackson@ximian.com>
14972
14973         * FolderBrowserDialog.cs: redo the tree population code so a
14974         second thread isn't used. Should be a lot faster and more stable
14975         now.
14976
14977 2005-10-05  Jackson Harper  <jackson@ximian.com>
14978
14979         * TreeView.cs: There are no expand/collapse boxes if the node has
14980         no children.
14981
14982 2005-10-05  Jackson Harper  <jackson@ximian.com>
14983
14984         * X11DesktopColors.cs: Get menu colours for the gtk theme.
14985
14986 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
14987
14988         * FileDialog.cs: Fix InitialDirectory
14989
14990 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
14991
14992         * ComboBox.cs:
14993                 - Fixes changing between styles
14994                 - Fixes simple mode
14995                 - Fixes last item crashing when navigating with keyboard
14996
14997 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
14998
14999         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15000
15001 2005-10-05  Jackson Harper  <jackson@ximian.com>
15002
15003         * TreeView.cs: If updating the root node do a full refresh.
15004         * TreeNode.cs: The root node should be expanded by default. Also
15005         added a utility prop to tell if we are the root node.
15006         * TreeNodeCollection.cs: Only refresh if the node we are being
15007         added to is expanded. Also added a comment on a potential
15008         optimization.
15009         
15010 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15011
15012         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15013           in dispose method. Fixes #76330
15014
15015 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15016
15017         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15018
15019                 - Implements vertical and horizontal scrolling using XplatUI
15020                 - Fixes keyboard navagation
15021                 - Fixes EnsureVisible
15022                 - Drawing fixes
15023                 - Handles and draws focus properly
15024
15025
15026 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15027
15028         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15029           Create handle. NET_2_0: Destroy handle when value is null.
15030
15031 2005-10-03  Jackson Harper  <jackson@ximian.com>
15032
15033         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15034         revert and a new patch to prevent the thumb from refreshing so
15035         much.
15036
15037 2005-10-02  Jackson Harper  <jackson@ximian.com>
15038
15039         * ScrollBar.cs: Don't update position if it hasn't actually
15040         changed. This occurs when you hold down the increment/decrement
15041         buttons and the thumb gets to the max/min.
15042
15043 2005-10-01  Jackson Harper  <jackson@ximian.com>
15044
15045         * Form.cs:
15046         * MdiChildContext.cs:
15047         * MdiClient.cs: Implement ActiveMdiChild in Form.
15048
15049 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15050
15051         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15052
15053 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15054
15055         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15056           be found
15057
15058 2005-09-30  Jackson Harper  <jackson@ximian.com>
15059
15060         * ListBox.cs: Don't do a full refresh unless some data has
15061         actually changed.
15062
15063 2005-09-30  Jackson Harper  <jackson@ximian.com>
15064
15065         * TreeView.cs: Make sure that the checkboxes size is factored in
15066         even when not visible.
15067
15068 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15069
15070         * FileDialog.cs: Fix Jordi's build break
15071
15072 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15073
15074         * FileDialog.cs: 
15075                 - Use standard the Windows colours for the combobox as espected
15076                 - Dispose objects that use resouces when no longer need them
15077
15078 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15079
15080         * X11DesktopColors.cs: Initial incomplete implementation
15081         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15082
15083 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15084
15085         * Theme.cs: 
15086           - Switched Theme color names to match the names defined in 
15087             System.Drawing.KnownColors. Life's hard enough, no need to make 
15088             it harder.
15089           - Added setters to all theme color properties so themes can set
15090             their color schemes. The setters also propagate the color changes
15091             to System.Drawing.KnownColors via reflection
15092         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15093           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15094           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15095           use the new, more logical theme color names
15096         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15097           post-NT colors
15098         * ThemeWin32Classic.cs:
15099           - Removed code to set the old classic Windows colors. Instead it
15100             now relies on the colors returned by System.Drawing.KnownColors
15101             which will be either modern static colors (Unix) or colors
15102             read from the user's configuration (Win32)
15103           - Updated to use the new, more logical theme color names
15104           - Switched DataGrid drawing code to use only Theme colors instead of
15105             a mix of System.Drawing.KnownColors and Theme colors
15106           - DrawFrameControl(): Removed code that fills the button area, the
15107             fill would overwrite any previous fill done by a control. This
15108             fixes bug #75338 
15109           - Added DrawReversibleRectangle() stub
15110         * ScrollableControl.cs: Set visible state to false when scrollbars
15111           are removed (pdn fix)
15112         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15113           DrawReversibleRectangle() method to allow drawing primitive 
15114           'rubber bands'
15115         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15116
15117 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15118
15119         * ImageList.cs: Add(Icon): Create handle.
15120
15121 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15122
15123         * ListView.cs:
15124         * ThemeWin32Classic.cs:
15125                 - Fixes detail mode
15126                 - Sets clippings
15127                 - Issues with drawing
15128
15129 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15130
15131         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15132           source has to be the ImageList.
15133
15134 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15135
15136         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15137
15138 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15139
15140         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15141
15142 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15143
15144         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15145
15146 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15147         * GridItem.cs: Fixed TODOs
15148         * GridItemCollection.cs: Added ICollection interface
15149
15150 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15151
15152         * ImageList.cs: Resize icons when needed.
15153
15154 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15155
15156         * ListViewItem.cs
15157                 - Fixes GetBounds and returns on screen rects
15158         * ListView.cs:
15159                 - Fixes vertical and horzintal scrolling of items
15160         * ThemeWin32Classic.cs:
15161                 - Fixes drawing
15162                 
15163 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15164
15165         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15166
15167 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15168
15169         * ImageList.cs: Added comments about handle creation. Moved Handle,
15170           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15171           Handle is created in Add methods.
15172
15173 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15174          
15175         * DataGridDrawingLogic.cs: 
15176                 - Takes rows into account on Colum calculations
15177                 - Returns the column when clickig
15178         * DataGrid.cs:
15179                 - Fixes default HitTestInfo values
15180                 - Fixes HitTestInfo.ToString
15181                 - Fixes ResetBackColor          
15182         
15183 2005-09-28  Jackson Harper  <jackson@ximian.com>
15184
15185         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15186         sizing or cursor changes). Also added some temp code to draw the
15187         titlebars text (Makes dev a little easier).
15188
15189 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15190
15191         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15192
15193 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15194          
15195         * ListBox.cs: Fixes bug 76253
15196
15197 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15198
15199         * ImageList.cs: Added comments about the current implementation. Added
15200           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15201           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15202           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15203           with Bitmap.LockBits for better performance. Revised the whole file to
15204           match MS.NET behaviour and provide better performance. Non-public
15205           interface members are calling public members even when they throw
15206           NotSupportedException for better maintainability. Moved ColorDepth,
15207           ImageSize, ImageStream and TransparentColor implementations to
15208           ImageCollection for better performance as these properties are not used
15209           by ImageList.
15210         * ImageListStreamer.cs: Added a new internal constructor that takes an
15211           ImageList.ImageCollection and serializes Images based on
15212           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15213           match ImageList property name.
15214
15215 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15216
15217         * ListBox.cs: Fixes IndexFromPoint for last item
15218
15219 2005-09-27  Jackson Harper  <jackson@ximian.com>
15220
15221         * Form.cs: Set the position of new mdi children correctly.
15222
15223 2005-09-27  Jackson Harper  <jackson@ximian.com>
15224
15225         * MdiClient.cs: New mdi children need to be added to the back of
15226         the controls collection so the zorder is set correctly. Also add a
15227         count of all the child windows that have been created.
15228
15229 2005-09-27  Jackson Harper  <jackson@ximian.com>
15230
15231         * Form.cs (CreateParams): Setup MDI forms correctly.
15232
15233 2005-09-27  Jackson Harper  <jackson@ximian.com>
15234
15235         * MdiChildContext.cs:
15236         * MonthCalendar.cs:
15237         * UpDownBase.cs:
15238         * ListBox.cs:
15239         * ListView.cs:
15240         * TextBoxBase.cs:
15241         * TreeView.cs:
15242         * ScrollableControl.cs:
15243         * ComboBox.cs: Add implicit controls using the new implict control
15244         functionality in ControlCollection. Also try to block multiple
15245         control add in a suspend/resume layout to save some cycles.
15246         
15247 2005-09-27  Jackson Harper  <jackson@ximian.com>
15248
15249         * Control.cs: Add functionality to the controls collection to add
15250         'implicit controls' these are controls that are created by the
15251         containing control but should not be exposed to the user. Such as
15252         scrollbars in the treeview.
15253         * Form.cs: The list var of the ControlsCollection is no longer
15254         available because of the potential of implicit controls getting
15255         ignored by someone accessing the list directly.
15256
15257 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15258
15259         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15260           loose it's parent. (Fixed bug introduced in r49103 when we added
15261           setting the child parent to null on Remove)
15262
15263 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15264
15265         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15266         * Splitter.cs: Added missing attributes for BorderStyle property.
15267         * TextBoxBase.cs: Marked Calculate* methods internal.
15268         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15269         MS.NET.
15270
15271 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15272          
15273         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15274
15275 2005-09-25  Jackson Harper  <jackson@ximian.com>
15276
15277         * TreeView.cs: Update the node bounds correctly regardless of
15278         whether the node is visible.
15279
15280 2005-09-25  Jackson Harper  <jackson@ximian.com>
15281
15282         * ImageList.cs: Don't dispose the image after it is added to the
15283         image list. Only reformat images that need to be resized.
15284
15285 2005-09-25  Jackson Harper  <jackson@ximian.com>
15286
15287         * ImageList.cs: Don't set the format when changing the image.
15288
15289 2005-09-25  Jackson Harper  <jackson@ximian.com>
15290
15291         * TreeView.cs: We can't just assume the node has a font. Use the
15292         treeviews font if no node font is available.
15293
15294 2005-09-25  Jackson Harper  <jackson@ximian.com>
15295
15296         * TreeView.cs: Allow the scrollbars to be reset with negative
15297         values.
15298         - Don't add scrollbars to negative sized windows.
15299
15300 2005-09-23  Jackson Harper  <jackson@ximian.com>
15301
15302         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15303         old Mono.Posix. Also remove some stray code that shouldn't have
15304         been committed.
15305
15306 2005-09-23  Jackson Harper  <jackson@ximian.com>
15307
15308         * TreeView.cs: Attempt at proper sizing of the horizontal
15309         scrollbar. Also don't resize the scrollbars unless they are
15310         visible.
15311
15312 2005-09-23  Jackson Harper  <jackson@ximian.com>
15313
15314         * TreeView.cs: We don't need to expand the invalid area when the
15315         selection changes, as this is all drawn in the node's bounding
15316         box. The area needs to be expanded (previous typo was contracting
15317         it) when the focus rect moves.
15318
15319 2005-09-23  Jackson Harper  <jackson@ximian.com>
15320
15321         * TreeView.cs: Display the selection box under the correct
15322         circumstances. We were rendering white text with no selection box
15323         before.
15324
15325 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15326
15327         * TextControl.cs(Split): Now updates selection start/end if it points 
15328           into a line that's being split. Fixes a FIXME and bug #75258
15329
15330 2005-09-23  Jackson Harper  <jackson@ximian.com>
15331
15332         * Binding.cs:
15333         * ListControl.cs: Don't use the path when retrieving binding
15334         managers from the binding context. My bat sense tells me that the
15335         path is only used on insertion.
15336
15337 2005-09-22  Jackson Harper  <jackson@ximian.com>
15338
15339         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15340
15341 2005-09-22  Jackson Harper  <jackson@ximian.com>
15342
15343         * Splitter.cs: There are special cursors used for splitting.
15344         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15345
15346 2005-09-22  Jackson Harper  <jackson@ximian.com>
15347
15348         * Splitter.cs: Change the cursor appropriately when the splitter
15349         is moused over, so the user actually knows there is a splitter
15350         there.
15351
15352 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15353
15354        * Label.cs : Fix ToString method to give same output as MS.NET
15355
15356 2005-09-22  Jackson Harper  <jackson@ximian.com>
15357
15358         * TreeView.cs: Create the scrollbars when the handle is created
15359         and add them right away, just make them invisble. Also account for
15360         the window being shrunk vertically to the point that the vert
15361         scrollbar needs to be added.
15362         - Remove some 0.5 adjustments to get around anti aliasing issues.
15363         
15364 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15365          
15366         * MainMenu.cs: Fixes default value
15367         * MenuItem.cs: Fixes default value
15368
15369 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15370
15371         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15372
15373 2005-09-21  Jackson Harper  <jackson@ximian.com>
15374
15375         * Control.cs: Don't try to set the border style on the window if
15376         it hasn't been created. When the window is created the border
15377         style will be used.
15378
15379 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15380
15381         * Control.cs (Update): Don't call XplatUI if we don't have a
15382           window handle yet
15383
15384 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15385
15386         * ContainerControl.cs: Instead of throwing an exception, print
15387           a one-time warning about Validate not being implemented
15388         * XplatUIWin32.cs: Removed debug output
15389
15390 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15391
15392         * Control.cs: Only set XplatUI background if we expect the windowing
15393           system to handle the background. This stops controls that draw their
15394           own background from flickering
15395
15396         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15397           creation. This allows, amongst other things, using MWF X11 windows 
15398           with OpenGL.
15399
15400 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15401
15402         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15403           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15404           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15405           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15406           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15407           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15408           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15409           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15410           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15411           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15412           GridColumnStylesCollection.cs, 
15413           IDataGridColumnStyleEditingNotificationService.cs,
15414           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15415           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15416           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15417           TreeNodeCollection.cs, AmbientProperties.cs, 
15418           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15419           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15420           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15421           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15422           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15423           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15424           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15425           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15426           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15427           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15428           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15429           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15430           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15431           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15432           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15433           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15434           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15435           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15436           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15437           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15438           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15439           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15440           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15441           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15442           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15443           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15444           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15445           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15446           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15447           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15448           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15449           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15450           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15451           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15452           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15453           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15454           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15455
15456 2005-09-21  Jackson Harper  <jackson@ximian.com>
15457
15458         * TreeNode.cs: Call Before/After Expand not Collapse when
15459         expanding.
15460
15461 2005-09-20  Jackson Harper  <jackson@ximian.com>
15462         
15463         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15464
15465 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15466          
15467         * ListViewItem.cs:
15468                 - Fixes bug 76120
15469                 - Fixes proper storing of subitems
15470                 - Fixes not updated items
15471
15472 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15473
15474         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15475           things if our window handle isn't created yet. Also disabled 
15476           debug for TextBoxBase
15477
15478 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15479
15480         * MenuAPI.cs: Remove filtering of events to allow menu usage
15481
15482 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15483
15484         * Cursor.cs: Allow null to be passed to Cursor.Current.
15485
15486 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15487
15488         * ThemeWin32Classic.cs:
15489           - Change some private methods/fields to protected virtual so that 
15490             they can be accessed and overriden in derived classes
15491           - First refactoring of some methods. Derived themes now don't 
15492             need to duplicate the complete code from ThemeWin32Classic
15493         * ThemeNice.cs:
15494           - Added nice StatusBar
15495           - Derive from ThemeWin32Classic and not Theme
15496           - Removed duplicate ThemeWin32Classic code
15497
15498 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15499
15500         * Control.cs (ControlCollection.Add): If the value null is passed
15501         the control is ignored. 
15502
15503         Optimize this loop.
15504
15505 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15506
15507         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15508           PostQuitMessage state.
15509         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15510
15511 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15512
15513         * Application.cs: Our constructor will never get called, move 
15514           initialization to fields; fixes bug #75933
15515
15516 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15517
15518         * FileDialog.cs :
15519                 - Allow files to be selected properly using file name
15520                 combo box.
15521                 - Add ability to change diretory (absolute / relative)
15522                 using file name combo box.
15523
15524 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15525          
15526         * ListBox.cs: 
15527                 - Fixes Multicolumn listboxes item wrong calculations
15528                 - Allows to click when only one item is in the listbox
15529                 - Fixes crash when no items using keyboard navigation
15530
15531 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15532
15533         * ComboBox.cs: Reverted almost everything from the latest patch which
15534           broke ComboBox
15535
15536 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15537         
15538         * ToolTip.cs:
15539                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15540         * ComboBox.cs:
15541                 - When DropDownStyle is Simple, it does not show scrollbar 
15542                 to the last item of the list.
15543                 - When DropDownStyle is Simple, it crashed when the list was 
15544                 scrolled down with the down cursor key.
15545                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15546                 selected item was not shown.
15547                 - The position of the selected item was not preserved when 
15548                 the next dropdown happened.
15549         * ThemeWin32Classic.cs:
15550                 - Items were wrapped at the right end.
15551         * CheckedListBox.cs:
15552                 - Fixed Add method
15553         * ListBox.cs:
15554                 - Items should be fully shown.
15555                 - When resizing and vertical scrollbar disappeared, the item 
15556                 of index 0 should be on the top of the list.
15557                 - GetItemRectangle should consider the size of ver. scrollbar
15558         * StatusBar.cs:
15559                 - SizingGrip area should not be allocated when it is not 
15560                 displayed.
15561                 - Now it reflects MinWidth of the containing panel and 
15562                 fixed a crash that happens when its width becomes so small.
15563
15564 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15565
15566         * CheckedListBox.cs: Fixes bug 76028
15567         * ListBox.cs: Fixes bug 76028
15568
15569 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15570
15571         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15572         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15573
15574 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15575
15576         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15577
15578 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15579
15580         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15581
15582 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15583
15584         * IRootGridEntry.cs: Added
15585         * PropertyGridCommands.cs: Added
15586         * PropertiesTab.cs: Added missing methods and property
15587         * PropertyGridView.cs: Made class internal
15588         * PropertyGridTextBox.cs: Made class internal
15589
15590 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15591
15592         * MimeIcon.cs: Try to check some other environment variables
15593           if "DESKTOP_SESSION" returns "default"
15594
15595 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15596
15597         * ThemeNice.cs: Corrected background colors (e.g. menus)
15598         * ColorDialog.cs: Use correct background colors for controls
15599
15600 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15601
15602         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15603
15604 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15605
15606         * RichTextBox.cs: Added initial implementation
15607         * lang.cs: Removed. Was accidentally checked in long time ago
15608         * TODO: Removed. Contents were obsolete
15609
15610 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15611                                                                                 
15612         * PropertiesTab.cs : Added
15613
15614 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15615                                                                                 
15616         * PropertyGrid.cs : Update
15617         * PropertyGridView.cs : Update
15618         * System.Windows.Forms.resx : Added images and strings
15619
15620 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15621
15622         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15623  
15624 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15625
15626         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15627           a busy loop right after the Ungrab the X11 display is otherwise 
15628           blocked
15629
15630 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15631
15632         * ThemeWin32Classic.cs: Optimise the use of clipping
15633
15634 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15635
15636         * DataGrid.cs: fixes recursion bug
15637
15638 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15639
15640         * ThemeNice.cs: 
15641           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15642           - Cleanup
15643
15644 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15645
15646         * ThemeNice.cs: Draw nice ProgressBars
15647
15648 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15649
15650         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15651
15652         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15653         bug finder.
15654
15655 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15656
15657         * ThemeNice.cs:
15658           - Added nicer menu drawing
15659           - Updated DrawTab
15660           - some refactoring
15661
15662 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15663
15664         * CreateParams.cs (ToString): Made output match MS
15665         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15666             handle is already created (to avoid forcing window creation)
15667         * XplatUIX11.cs: Set window text to caption after creating window,
15668           in case Text was set before window was created
15669         * Form.cs: Use this.Text instead of a static string as caption
15670
15671 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15672
15673         * NotifyIcon.cs: Don't set the window to visible; this screws
15674           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15675           OnPaint without a bitmap)
15676         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15677           happen very often anyway; we could add the check to the WM_PAINT 
15678           event generation code
15679
15680 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15681
15682         * NotifyIcon.cs: Fill the icon area with a background color, to 
15683           avoid 'residue' when transparent icons are drawn
15684         * XplatUIX11.cs:
15685           - Handle whole_window == client_window when destroying windows
15686           - SystrayAdd(): Set client_window to whole_window value to
15687             get mouse and other events passed to NotifyIcon
15688
15689 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15690
15691         * Form.cs: Set proper default for Opacity property
15692         * NotifyIcon.cs:
15693           - ShowSystray(): Don't bother creating telling the OS
15694             about the systray item if no icon is provided
15695           - Now handles WM_NCPAINT message to deal with whole/client window
15696             split
15697           - Create window as visible to not get caught by Expose optimization
15698         * Hwnd.cs: Removed debug message
15699         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15700           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15701             PaintEventStart/End to use new client argument
15702         * TextBoxBase.cs:
15703           - Commented out debug messages
15704           - Switched PaintEventStart/End to use new client argument
15705         * XplatUI.cs: Added client window bool to PaintEventStart()/
15706           PaintEventEnd() calls, to support drawing in non-client areas
15707         * XplatUIDriver.cs: 
15708           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15709             calls, to support drawing in non-client areas
15710           - Added conditional compile to allow using MWF BeginInvoke 
15711             on MS runtime
15712         * XplatUIX11.cs:
15713           - Added some conditional debug output
15714           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15715             whole/client window split
15716           - Implemented handling of client argument to PaintEventStart()/End()
15717         * Control.cs:
15718           - Throw exception if BeginInvoke() is called and the window handle
15719             or one of the window's parent handles is not created
15720           - Added conditional compile to allow using MWF BeginInvoke on
15721             MS runtime
15722           - get_Parent(): Only sets parent if handle is created. This avoids
15723             forcing window handle creation when parent is set.
15724           - Now fires Layout and Parent changed events in proper order
15725           - Switched to use Handle instead of window.Handle for Z-Order setting,
15726             the get_Parent() patch above causes us to possibly get null for 'window'
15727           - Implemented handling of client argument to PaintEventStart()/End()
15728           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15729             default handling)
15730           - Now sends a Refresh() to all child windows when Refresh() is called
15731
15732 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15733
15734         * Form.cs: Added (non-functional) Opacity property
15735         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15736
15737 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15738         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15739           use export MONO_THEME=nice to activate it.
15740           Currently supported controls:
15741           - Button
15742           - ComboBox
15743           - ScrollBar
15744           - TabControl (TabAlignment.Top only, other will follow)
15745         * ThemeEngine.cs: Add theme nice
15746         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15747           if enabled
15748
15749 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15750
15751         * Splitter.cs: Resize docked control and its neighbor.
15752
15753 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15754         -- Making Windows with Menus layout correctly --
15755         * Form.cs : The first leg of the fix
15756                 Menu setter - adjust Client Size as needed to make space for the menu
15757                 SetClientSizeCore - doesn't call base version to be able to pass the 
15758                         menu handle to XplatUI.CalculateWindowRect
15759         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15760         * XplatUIX11.cs: The critical second leg of the fix
15761                 GetWindowPos needs to use a recalculated client_rect
15762                 so that resizing the window doesn't break layout of child controls. 
15763                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15764                 Lots of \t\n killed
15765
15766 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15767
15768         * Label.cs: Now properly recalculates width and height on Font and Text
15769           changes if AutoSize is set
15770
15771 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15772         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15773
15774 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15775
15776         * ImageList.cs: Makes ToString method compatible with MS
15777
15778 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
15779
15780         * MenuAPI.cs: fixes bug 75716
15781
15782 2005-08-11 Umadevi S <sumadevi@novell.com>
15783         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
15784
15785 2005-08-11 Umadevi S <sumadevi@novell.com>
15786         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
15787
15788 2005-08-10  Umadevi S <sumadevi@novell.com>
15789         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
15790
15791 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
15792
15793         * Menu.cs: fixes bug 75700
15794         * MenuAPI.cs: fixes navigation issues
15795
15796 2005-08-09  Umadevi S <sumadevi@novell.com>
15797         * CheckedListBox.cs - simple fix for GetItemChecked.
15798
15799 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
15800
15801         * ComboBox.cs: Serveral fixes
15802         * ListBox.cs: Serveral fixes
15803
15804 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15805
15806         * ComboBox.cs: Fixes FindString methods and GetItemHeight
15807         * ListBox.cs: Fixes FindString methods
15808
15809 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15810
15811         * DataGrid.cs: fixes bugs exposed by new tests
15812
15813 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
15814
15815         * Mime.cs: Compile Mono assembly references only if compiling
15816           with Mono (Allows to build with VS.Net again)
15817
15818 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
15819
15820         * Control.cs (PaintControlBackground): Draw background image
15821         corrrectly.
15822         (CheckForIllegalCrossThreadCalls): Stubbed.
15823         
15824         * Form.cs (OnCreateControl): Center when should be centered.
15825         
15826         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
15827
15828 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
15829
15830         * Binding.cs: Binding to properties should be case unsensitive
15831
15832 2005-07-18 vlindos@nucleusys.com
15833
15834         * DataGrid.cs: fixes setmember order
15835
15836 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
15837
15838         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
15839         * FileDialog.cs: FileDialog is now resizable and uses the new
15840           MimeIconEngine
15841
15842 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
15843
15844         * DataGridTextBoxColumn.cs: default value
15845         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
15846         * GridTableStylesCollection.cs: fixes checking MappingName
15847         * DataGridDrawingLogic.cs: fixes drawing logic issues
15848         * DataSourceHelper.cs: rewritten to make compatible with more data sources
15849         * DataGrid.cs: fixes    
15850
15851 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
15852
15853         * MimeGenerated.cs: Use case sensitive comparer for
15854           NameValueCollections
15855
15856 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
15857
15858         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
15859         * ThemeWin32Classic.cs: bug fixes, code refactoring
15860         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
15861         * DataGrid.cs: bug fixes, code refactoring
15862         * DataGridTextBox.cs: bug fixes, code refactoring
15863         * DataGridColumnStyle.cs:  bug fixes, code refactoring
15864         * Theme.cs:  bug fixes, code refactoring
15865
15866 2005-07-01  Peter Bartok  <pbartok@novell.com> 
15867
15868         * TextControl.cs: Quick fix for the reported crash on ColorDialog
15869           and other text box usage
15870
15871 2005-07-01  Jackson Harper  <jackson@ximian.com>
15872
15873         * TabControl.cs: Make sure the bottom of the tab covers the pages
15874         border.
15875
15876 2005-06-30  Peter Bartok  <pbartok@novell.com> 
15877
15878         * Form.cs (ShowDialog): Assign owner of the dialog
15879         * TextBoxBase.cs: Always refresh caret size when deleting, caret
15880           might have been moved to a tag with different height
15881
15882 2005-06-30  Jackson Harper  <jackson@ximian.com>
15883
15884         * Form.cs: Don't create an infinite loop when setting focus
15885         * MenuItem.cs: Don't dirty the parents if we don't have any
15886
15887 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
15888
15889         * LibSupport.cs: Rename
15890
15891 2005-06-29  Peter Bartok  <pbartok@novell.com>
15892
15893         * TextBoxBase.cs: Re-align caret after deleting a character
15894         * TextControl.cs:
15895           - DeleteChars(): Ensure that tag covers the provided position
15896           - StreamLine(): Drop reference for dropped tag
15897
15898 2005-06-29  Peter Bartok  <pbartok@novell.com> 
15899
15900         * TextControl.cs: 
15901           - Selections now work properly, anchoring at the initial location
15902             and properly extending in either direction (SetSelectionToCaret(),
15903             SetSelectionStart() and SetSelectionEnd())
15904           - No longer redraws the whole control on selection change, now
15905             calculates delta between previous and new selection and only
15906             invalidates/redraws that area
15907           - Fixed FindPos() math off-by-one errors
15908           - Changed DeleteChars() to verify the provided tag covers the
15909             provided position, selections may have a tag that doesn't cover
15910             the position if the selection is at a tag border
15911           - Fixed off-by-one errors in DeleteChars()
15912           - Added missing streamlining check in DeleteChars() to remove
15913             zero-length tags
15914           - Implemented Invalidate() method, now properly calculates exposures
15915             between two given lines/positions
15916           - Implemented SetSelection()
15917           - Obsoleted and removed FixupSelection()
15918           - Improved RecalculateDocument() logic, removing code duplication
15919
15920 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15921
15922         * LibSupport.cs: changes to match different input/output arguments.
15923
15924 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15925
15926         * LibSupport.cs: added libsupport.so init routine.
15927
15928 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
15929         
15930         * ControlBindingsCollection.cs
15931                 - Throws an exception on null datasource when adding
15932                 - Checks for duplicated bindings when adding
15933
15934 2005-06-28  Jackson Harper  <jackson@ximian.com>
15935
15936         * TreeView.cs (OnKeyDown): Support left and right properly
15937         (navigates as well as expanding and collapsing.
15938         - Add support for Multiply, this expands all the selected nodes
15939         children.
15940         - Fix some tabbing.
15941
15942 2005-06-28  Jackson Harper  <jackson@ximian.com>
15943
15944         * TreeView.cs: Implement keyboard navigation, currently supports,
15945         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
15946         support for toggling checkboxes with the space bar.
15947
15948 2005-06-28  Jackson Harper  <jackson@ximian.com>
15949
15950         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
15951         tree.
15952
15953 2005-06-28  Jackson Harper  <jackson@ximian.com>
15954
15955         * TreeView.cs: Add missing event.
15956
15957 2005-06-27  Peter Bartok  <pbartok@novell.com> 
15958
15959         * TextControl.cs:
15960           - Made line ending size configurable (now allows for counting 
15961             lineendings as \n or \r\n)
15962           - Added margin to viewport to keep caret visible on right side
15963           - Fixed translation routines for line/pos to documentpos to consider
15964             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
15965           - Fixed some line-endings to be unix style
15966           - Fixed Document.FormatText to perform it's calculations 1-based
15967           - Added descriptions for a few methods that might otherwise get 
15968             used wrong
15969           - Added NOTE section with some basic conventions to remember at 
15970             the top of the file
15971           - Major fixup for RichTextBox selection drawing:
15972             * Fixed crashes when multiple tags on a single line were selected
15973             * fixed selection box drawing not overlaying text
15974             * fixed bogus offset calculation for tags not starting at index 1
15975             * Switched behaviour from using multiple Substrings of a 
15976               StringBuilder.ToString() to using multiple 
15977               StringBuilder.ToString(start, length) statements, hoping this is
15978               faster (kept original version commented out in the code, in case
15979               original version was faster)
15980         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
15981           alignment != Left
15982         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
15983           call it as well
15984
15985 2005-06-27  Jackson Harper  <jackson@ximian.com>
15986
15987         * TabControl.cs: Move to the left and right with the arrow
15988         keys. These keys don't cycle beyond first and last like
15989         tab. Refresh all the tabs when scrolling them to the left or
15990         right.
15991
15992 2005-06-27  Jackson Harper  <jackson@ximian.com>
15993
15994         * TabControl.cs:
15995           - ToString: Added method
15996           - CreateParams: Remove TODO and comment
15997           - OnKeyDown: Cycle through bounds properly.
15998           - SelectedIndex: Scroll to the right or left if we need to
15999           display the newly selected tab.
16000
16001 2005-06-23  Jackson Harper  <jackson@ximian.com>
16002
16003         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16004         set.
16005
16006 2005-06-23  Jackson Harper  <jackson@ximian.com>
16007
16008         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16009         CTRL-SHIFT-TAB, and HOME, END are there any others?
16010
16011 2005-06-23  Jackson Harper  <jackson@ximian.com>
16012
16013         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16014
16015 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16016         
16017         * DataGridTextBoxColumn.cs: fixes and enhancements
16018         * ThemeWin32Classic.cs: fixes and enhancements
16019         * DataGridBoolColumn.cs:  fixes and enhancements
16020         * DataGridDrawingLogic.cs:  fixes and enhancements
16021         * CurrencyManager.cs: fixes and enhancements
16022         * DataGrid.cs: fixes and enhancements
16023         * DataGridColumnStyle.cs:  fixes and enhancements
16024
16025 2005-06-22  Jackson Harper  <jackson@ximian.com>
16026
16027         * TabControl.cs: Add some missing methods that just call into the
16028         base. Make the TabPageCollection's IList interface behave in the
16029         same manner as the MS implementation.
16030
16031 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16032
16033         * TextControl.cs: Added sanity check
16034         * TextBoxBase.cs: 
16035           - Fixed wrapping behaviour, don't set wrap on single line controls
16036             (this fixes the breakage of colordialog introduced in an earlier
16037              checkin)
16038           - Added rudimentary support for autoscrolling right-aligned controls
16039             (still needs fixing, also, center alignment scroll is missing)
16040
16041 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16042         
16043         * ScrollBar.cs: Fixes thumbpos on Maximum values
16044
16045 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16046         
16047         * PropertyGridView.cs: Pass context information to UITypeEditors 
16048
16049 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16050
16051         * TextBoxBase.cs:
16052           - Now calling PositionCaret with absolute space coordinates
16053           - Enabled vertical scrolling
16054           - Better tracking of scrollbar changes, tied into WidthChange
16055             event
16056           - Improved cursor tracking
16057           - Removed debug output
16058         * TextControl.cs:
16059           - PositionCaret coordinates are now works in absolute space, not 
16060             the canvas
16061           - Improved tracking of document size
16062           - Added events for width and height changes
16063
16064 2005-06-21  Peter Bartok  <pbartok@novell.com>
16065
16066         * Form.cs: Set focus to active control when form is activated
16067         * TextControl.cs: 
16068           - Added word-wrap functionality to RecalculateLine() 
16069           - Added some short function descriptions for VS.Net to aid in
16070             writing dependent controls
16071           - Added Caret property, returning the current coords of the caret
16072           - Added ViewPortWidth and ViewPortHeight properties
16073           - Added Wrap property
16074           - Added CaretMoved event
16075           - Removed some old debug code
16076           - Split() can now create soft splits
16077           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16078           - Added method to format existing text
16079           - Fixed size/alignment calculations to use viewport
16080           - RecalculateDocument now can handle changing line-numbers while
16081             calculating lines
16082
16083         * TextBox.cs:
16084           - Added some wrap logic, we don't wrap if alignment is not left
16085           - Added casts for scrollbar var, base class switched types to
16086             also support RichTextBoxA
16087           - Implemented handling of scrollbar visibility flags
16088
16089         * TextBoxBase.cs:
16090           - Switched scrollbars type to RichTextBoxScrollBars to support
16091             RichTextBox
16092           - Added tracking of canvas width/height
16093           - Switched scrollbars to be not selectable (to keep focus on text)
16094           - Added central CalculateDocument() method to handle all redraw
16095             requirements
16096           - Added ReadOnly support
16097           - Added WordWrap support
16098           - Fixed handling of Enter key (we now treat it as a DialogKey)
16099           - Fixed caret positioning when h or v scroll is not zero
16100           - Fixed placing/generation of vertical scrollbar
16101           - Added CalculateScrollBars() method to allow updating scrollbar
16102             limits and visibility
16103           - Fixed handling of horizontal scroll
16104           - Added handling of vertical scroll
16105           - Implemented auto-'jump' when caret moves to close to a left or
16106             right border and there is text to be scrolled into view (currently
16107             there's the potential for a stack overflow, until a bug in
16108             scrollbar is fixed)
16109
16110 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16111         
16112         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16113
16114 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16115
16116         * Mime.cs:
16117         - added inodes.
16118         - return application/x-zerosize for files with size zero
16119           (if no extension pattern matches).
16120         - check matches collection for strings too.
16121         - return only the first mime type if the name value
16122           collection has more than one mime type.
16123
16124 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16125         
16126         * PropertyGrid.cs: Cleaned up some TODOs
16127         * PropertyGridView.cs: Added support for UITypeEditors
16128
16129 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16130         
16131         * DataGrid.cs: clears cached value
16132
16133 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16134
16135         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16136         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16137         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16138         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16139         
16140 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16141
16142         * ThemeWin32Classic.cs: fixes colour
16143
16144 2005-06-15  Peter Bartok  <pbartok@novell.com>
16145
16146         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16147         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16148         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16149         * Control.cs: Added some MWFCategory and MWFDescription attributes
16150         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16151
16152 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16153
16154         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16155         usage
16156
16157 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16158
16159         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16160         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16161         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16162         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16163         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16164         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16165
16166 2005-06-13  Jackson Harper  <jackson@ximian.com>
16167
16168         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16169         isn't printed when the user enables dropping. (X11 does accept
16170         drops).
16171         
16172 2005-06-13  Jackson Harper  <jackson@ximian.com>
16173
16174         * TreeView.cs: Remove some TODOS.
16175
16176 2005-06-13  Jackson Harper  <jackson@ximian.com>
16177
16178         * Form.cs: Hook into the mdi framework.
16179         * MdiClient.cs: Use the base control collections add method so
16180         parents get setup correctly. Set the default back colour and dock
16181         style.
16182         * MdiChildContext.cs: New class, this bad actor handles an
16183         instance of an MDI window. Right now there is only basic
16184         support. You can drag, close, and resize windows. Minimize and
16185         Maximize are partially implemented.
16186
16187 2005-06-13  Jackson Harper  <jackson@ximian.com>
16188
16189         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16190         freaky when both vals are negative. NOTE: There are probably other
16191         places in XplatUIX11 that this needs to be done.
16192
16193 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16194
16195         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16196         * DataGridColumnStyle.cs: fixes signature
16197
16198 2005-06-12  Jackson Harper  <jackson@ximian.com>
16199
16200         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16201         windows.
16202
16203 2005-06-11  Jackson Harper  <jackson@ximian.com>
16204
16205         * StatusBarPanel.cs: Signature cleanups. Implement
16206         BeginInit/EndInit.
16207
16208 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16209
16210         * DataGridTextBoxColumn.cs: Honors aligment
16211         * GridColumnStylesCollection.cs: Contains is case unsensitive
16212         * GridTableStylesCollection.cs: several fixes
16213         * DataGridTableStyle.cs: default column creation
16214         * DataGridDrawingLogic.cs: fixes
16215         * CurrencyManager.cs: ListName property
16216         * DataGrid.cs: multiple styles support
16217         * DataGridColumnStyle.cs: fixes
16218         
16219
16220 2005-06-10  Peter Bartok  <pbartok@novell.com>
16221
16222         * Control.cs(Select): Moved SetFocus call to avoid potential
16223           loops if controls change the active control when getting focus
16224         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16225           the up/down buttons
16226
16227 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16228
16229         * ImageListConverter.cs: Implemented
16230
16231 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16232
16233         * MonthCalendar.cs: Wired in NumericUpDown control for year
16234
16235 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16236
16237         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16238           DoubleClick events, since they are not meant to be fired.
16239
16240 2005-06-09  Peter Bartok  <pbartok@novell.com>
16241
16242         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16243           Jonathan's standalone controls into MWF, implemented missing
16244           events, attributes and methods; added xxxAccessible classes
16245         * AccessibleObject.cs: Made fields internal so other classes
16246           can change them if needed
16247
16248 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16249
16250         * UpDownBase.cs: Complete implementation
16251         * NumericUpDown.cs: Complete implementation
16252         * DomainUpDown.cs: Complete implementation
16253
16254 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16255
16256         * DataGridTextBoxColumn.cs: drawing fixes
16257         * DataGridCell.cs: fixes ToString method to match MSNet
16258         * DataGridTableStyle.cs: fixes
16259         * DataGridBoolColumn.cs: fixes, drawing
16260         * DataGridDrawingLogic.cs: fixes, new methods
16261         * DataGridTextBox.cs: Keyboard and fixes
16262         * DataGrid.cs:
16263                 - Keyboard navigation
16264                 - Scrolling fixes
16265                 - Row selection (single, multiple, deletion, etc)
16266                 - Lots of fixes
16267         
16268 2005-06-07  Jackson Harper  <jackson@ximian.com>
16269
16270         * ThemeWin32Classic.cs: Clear the background area when drawing
16271         buttons.
16272
16273 2005-06-06  Peter Bartok  <pbartok@novell.com>
16274
16275         * ImageListStreamer.cs: Fixed signature for GetData
16276         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16277         * ComboBox.cs:
16278           - Added missing ChildAccessibleObject class
16279           - Added missing OnXXXFocus overrides, switched to using those
16280             instead of the event handler
16281         * Control.cs:
16282           - Added Parent property for ControlAccessibleObject
16283           - Fixed signatures
16284           - Fixed attributes
16285           - Added ResetBindings()
16286         * ListBindingConverter.cs: Implemented some methods
16287         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16288         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16289         * ContainerControl.cs: Fixed signature, now subscribing to the
16290           ControlRemoved event instead of overriding the handler, LAMESPEC
16291         * CurrencyManager.cs: Added missing attribute
16292         * MonthCalendar.cs: Added missing properties
16293
16294 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16295
16296         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16297         
16298 2005-06-06  Gaurav Vaish and Ankit Jain
16299
16300         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16301         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16302         
16303 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16304
16305         * Control.cs: fixes CreateParams Width / Height.
16306
16307 2005-06-05  Peter Bartok  <pbartok@novell.com>
16308
16309         * Win32DnD.cs: Removed compilation warnings
16310
16311 2005-06-05  Peter Bartok  <pbartok@novell.com>
16312
16313         * Control.cs (CreateParams): Since we don't know if one of the
16314           properties we use is overridden, lets make sure if we fail accessing
16315           we continue with a backup plan
16316
16317 2005-06-05  Peter Bartok  <pbartok@novell.com>
16318
16319         * Win32DnD.cs:
16320           - Removed debug output
16321           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16322             struct
16323           - Plugged resource leak
16324         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16325           MS size
16326
16327 2005-06-05  Peter Bartok  <pbartok@novell.com>
16328
16329         * XplatUIWin32.cs: Removed DnD code
16330         * Win32DnD.cs: Implemented drop source and drop target functionality
16331
16332 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16333
16334         * UpDownBase.cs: remove duplicate addition of event, enable some code
16335         that was commented out.
16336         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16337         Validate input when a key is pressed. It works fine now for every
16338         combination of Hexadecimal. Only missing some drawing love when sharing
16339         space with other controls.
16340
16341 2005-06-04  Peter Bartok  <pbartok@novell.com>
16342
16343         * Control.cs:
16344           - We need to pass a window for DragDrop, so enable callback events
16345           - Added DnD callback events when being a DragSource
16346         * XplatUI.cs (StartDrag): Added window handle argument
16347         * XplatUIDriver.cs (StartDrag): Added window handle argument
16348         * QueryContinueDragEventArgs: Made fields internally accessible so
16349           drivers can set them
16350         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16351           can set them
16352
16353 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16354
16355         * DataGridTextBoxColumn.cs: column text editing
16356         * DataGridTableStyle.cs: Respect columns styles created by the user
16357         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16358         * DataGridBoolColumn.cs: bool column editing
16359         * DataGrid.cs: fixes to scrolling, properties, etc
16360         * DataGridTextBox.cs: handle keyboard
16361         * DataGridColumnStyle.cs: fixes
16362
16363 2005-06-02  Jackson Harper  <jackson@ximian.com>
16364
16365         * ImageListStreamer.cs: Somewhat broken implementation of
16366         GetObjectData. The RLE needs some work to match MS properly.
16367
16368 2005-06-02  Jackson Harper  <jackson@ximian.com>
16369
16370         * X11Dnd.cs: Attempting to keep at least one file in MWF
16371         monostyled.
16372
16373 2005-06-02  Peter Bartok  <pbartok@novell.com>
16374
16375         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16376           that way
16377
16378 2005-06-02  Peter Bartok  <pbartok@novell.com>
16379
16380         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16381         * XplatUI.cs: Added DoDragDrop() method
16382         * XplatUIDriver.cs: Added DoDragDrop() method
16383
16384 2005-06-02  Jackson Harper  <jackson@ximian.com>
16385
16386         * Splitter.cs: Implement BorderStyle.
16387
16388 2005-06-02  Jackson Harper  <jackson@ximian.com>
16389
16390         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16391         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16392         X11 using XDND.
16393
16394 2005-06-02  Peter Bartok  <pbartok@novell.com>
16395
16396         * DataObject.cs:
16397           - Added Data setter
16398           - Fixed broken insertion code for SetData, now also
16399             overwrites any existing entry of the same format name
16400         * Hwnd.cs: Added list of pointers that automatically gets
16401           freed when the window is disposed
16402         * XplatUI.cs: Call driver initialization method when loading
16403           a driver
16404         * Control.cs:
16405           - OnDragLeave takes EventArgs, not DragEventArgs
16406           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16407             supported
16408           - Forces style update when drop state changes
16409         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16410           not perfect since we cannot (yet) call the IDataObject.GetData()
16411           method, we keep getting 0x80004005 error, dunno why)
16412
16413 2005-06-02  Peter Bartok  <pbartok@novell.com>
16414
16415         * DragEventArgs.cs: Make fields internal so we can cache the
16416           object and re-set the fields from XplatUI
16417
16418 2005-06-02  Jackson Harper  <jackson@ximian.com>
16419
16420         * Control.cs: Add some internal methods so the DnD subsystem can
16421         raise DnD events. Also call into the driver when AllowDrop is set.
16422         * XplatUI.cs:
16423         * XplatUIDriver.cs: New method for setting whether or not a window
16424         is allowed to accept drag and drop messages.
16425                 
16426 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16427         
16428         * ScrollBar.cs: Make sure that values sent in Scroll events
16429         are always between Maximum and Minimum.
16430
16431 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16432
16433         * Menu.cs: Call MenuChanged when menuitem visibility has been
16434         changed.
16435         * MenuItem.cs: Rebuild menu when item is (not) visible.
16436         * MainMenu.cs: MainMenu has special MenuChanged.
16437         * Theme.cs: Caption and FrameBorderSize are not fixed.
16438         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16439         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16440         * XplatUIX11.cs,
16441         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16442         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16443
16444 2005-05-30  Jackson Harper  <jackson@ximian.com>
16445
16446         * DataFormat.cs: We can't statically initialize this stuff because
16447         it calls into the xplatui and could create a loop. So we lazy init
16448         it.
16449
16450 2005-05-28  Jackson Harper  <jackson@ximian.com>
16451
16452         * Control.cs: Proper implementation of Product(Name/Version).
16453
16454 2005-05-27  Jackson Harper  <jackson@ximian.com>
16455
16456         * DataObject.cs: Dont crash if no data is found.
16457
16458 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16459         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16460                 as per status page, guessing it should be set to true
16461
16462 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16463
16464         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16465         * DataGridTableStyle.cs: set proper formatting text, def header text
16466         * ThemeWin32Classic.cs: new themable paramaters
16467         * DataGridBoolColumn.cs: paint check box, get data, fixes
16468         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16469         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16470         * DataGridColumnStyle.cs: fixes
16471         * Theme.cs: new themable paramaters
16472                 
16473 2005-05-26  Peter Bartok  <pbartok@novell.com>
16474
16475         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16476
16477 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16478         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16479
16480 2005-05-24  Peter Bartok  <pbartok@novell.com>
16481
16482         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16483           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16484           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16485           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16486           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16487           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16488           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16489           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16490           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16491           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16492           missing attributes, etc
16493         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16494
16495 2005-05-24  Peter Bartok  <pbartok@novell.com>
16496
16497         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16498           when user tries to get help
16499         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16500           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16501           to suppress warnings
16502         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16503           avoid unreachable code warning
16504
16505 2005-05-20  Peter Bartok  <pbartok@novell.com>
16506
16507         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16508
16509 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16510
16511         * DataGridTextBoxColumn.cs: Basic painting methods
16512         * DataGridTableStyle.cs: Set table style in the column
16513         * ThemeWin32Classic.cs: Use Theme for colors
16514         * DataGridDrawingLogic.cs: Implement more drawing
16515         * DataGrid.cs: drawing, theming, enhacements, fixes
16516         * DataGridColumnStyle.cs: fixes, drawing
16517         * Theme.cs: theming for Datagrid
16518
16519 2005-05-20  Peter Bartok  <pbartok@novell.com>
16520
16521         * Cursor.cs: Implemented GetObjectData() method
16522
16523 2005-05-20  Peter Bartok  <pbartok@novell.com>
16524
16525         * Cursors.cs: Added setting of cursor name
16526         * Cursor.cs:
16527           - Implemented constructors
16528           - Implemented Draw and DrawStretched
16529           - Implemented Current property
16530           - Implemented == and != operators
16531           - Implemented Dispose()
16532           - Implemented ToString
16533           - Added missing attributes
16534         * XplatUIX11.cs:
16535           - Added missing reset for OverrideCursor when DoEvents is called
16536           - Fixed creation of cursor, logic was wrong
16537         * XplatUIWin32.cs:
16538           - Added missing reset for OverrideCursor when DoEvents is called
16539           - Fixed creation of cursor, bit arrays were swapped
16540         * Clipboard.cs: Removed obsolete MonoTODO attribute
16541
16542 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16543
16544         * ComboBox.cs: fixes OnSelectedItemChanged
16545         * ControlBindingsCollection.cs: fixes item range check
16546
16547 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16548
16549         * UpDownBase.cs:
16550                 - Calc preferred height properly
16551                 - Implement missing properties
16552                 
16553         * NumericUpDown.cs: Implement missing events
16554
16555 2005-05-19  Jackson Harper  <jackson@ximian.com>
16556
16557         * TabControl.cs: New method that resizes the tab pages before
16558         redrawing them. This as needed as the control is double buffered
16559         and sizing will not be recalculated unless ResizeTabPages is
16560         called.
16561         * TabPage.cs: Set base.Text instead of Text in the constructor so
16562         that UpdateOwner does not get called. Use the new Redraw method of
16563         TabControl instead of Refresh so the sizing is recalculated.
16564         * ThemeWin32Classic.cs: Draw the text for button tabs.
16565
16566 2005-05-19  Jackson Harper  <jackson@ximian.com>
16567
16568         * Control.cs: Paint control background images. Fix typo where
16569         PaintControlBackground was not getting called correctly.
16570
16571 2005-05-19  Peter Bartok  <pbartok@novell.com>
16572
16573         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16574           I can investigate, apparently I broke FileDialog
16575
16576 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16577
16578         * AxHost.cs: Some simple properties.
16579         * Control.cs: window must be accessible after ctor.
16580         * Form.cs: Added TransparencyKey property.
16581         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16582         * XplatUIWin32.cs: SetBorderStyle implemented.
16583
16584 2005-05-18  Peter Bartok  <pbartok@novell.com>
16585
16586         * DataObject.cs: Entries are not global but particular to the
16587           DataObject, now it behaves that way
16588         * XplatUIWin32.cs: Implemented Clipboard methods
16589         * Clipboard.cs: Implemented
16590         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16591         * XplatUIOSX.cs: Updated to final clipboard prototypes
16592         * XplatUIX11.cs: Implemented Clipboard methods
16593         * XplatUIDriver.cs: Updated to final clipboard prototypes
16594         * XplatUIStructs.cs:
16595           - Added BITMAPINFOHEADER struct
16596           - Added ClipboardFormats enum
16597         * X11Structs.cs:
16598           - Added ClipboardStruct
16599           - Added Atom enum items for clipboard types
16600           - Fixed atom types for Selection event structures
16601         * DataFormats.cs:
16602           - Added internal properties and methods for drivers to enumerate
16603             all known formats
16604           - Switched initialization method to allow drivers to assign their
16605             own IDs even for the MS predefined clipboard IDs
16606         * XplatUI.cs: Updated to final clipboard interface
16607
16608 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16609         * PropertyGridView.cs: Fixed compiler warnings.
16610
16611 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16612         * PropertyGrid.cs: Added some event calls
16613         * PropertyGridView.cs: Change drawing code to use double buffering
16614         * PropertyGridTextBox.cs: Changed Text property name
16615         * GridItem.cs: Added Bounds property.
16616         * GridEntry.cs: Added Bounds property.
16617
16618 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16619
16620         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16621         since GetType() may not return the correct type if the object is
16622         a remoting proxy.
16623
16624 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16625
16626         * TreeNodeCollection.cs: fixes get/set item ranges
16627         
16628 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16629
16630         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16631                 
16632 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16633
16634         * ComboBox.cs: Fix item range comparation
16635         * ListView.cs: Fix item range comparation
16636
16637 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16638
16639         * FontDialog.cs:
16640           - Clear example panel when OnPaint is called
16641           - Better solution for displaying the example panel text
16642           - Select default indexes in the ListBoxes
16643
16644 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16645
16646         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16647
16648 2005-05-11  Peter Bartok  <pbartok@novell.com>
16649
16650         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16651         * SelectionRangeConverter.cs: Implemented
16652         * PropertyGrid.cs: Fixed attribute value
16653         * Control.cs:
16654           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16655           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16656         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16657           that's common to all drivers. First methods to go there are
16658           Sebastien Pouliot's CAS Stack Propagation helper methods
16659         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16660           Sebastien Pouliot for CAS Stack Propagation
16661
16662 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16663
16664         * OSXStructs.cs:
16665           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16666
16667 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16668
16669         * DataGridTextBoxColumn.cs: fixed some members
16670         * GridColumnStylesCollection.cs: indexed column is case insensitive
16671         * DataGridTableStyle.cs: fixes
16672         * ThemeWin32Classic.cs: add new theme parameter
16673         * Theme.cs: add new theme parameter
16674         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16675         * DataGrid.cs: fixes, new internal properties, etc.
16676         * DataGridColumnStyle.cs: allows to set grid value
16677         *
16678
16679 2005-05-10  Peter Bartok  <pbartok@novell.com>
16680
16681         * AccessibleObject.cs:
16682           - Removed MonoTODO attribute on help, method is correct
16683           - Fixed Bounds property
16684         * AxHost.cs: Moved MonoTODO
16685         * ButtonBase.cs: Now setting AccessibleObject properties
16686         * RadioButton.cs: Setting proper AccessibleObject role
16687         * CheckBox.cs: Setting proper AccessibleObject role
16688         * ControlBindingsCollection.cs: Added properties, methods and attributes
16689         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16690           userdefined DataFormats.Format items as well
16691         * ListControl.cs: Removed data_member from the public eye
16692         * OpenFileDialog.cs:
16693           - Made class sealed
16694           - Added missing attributes
16695         * SaveFileDialog.cs: Added missing attributes
16696         * ImageListStreamer.cs: Fixed code that caused warnings
16697         * LinkLabel.cs: Removed unreachable code
16698         * TreeView.cs: Fixed code that caused warnings
16699         * PropertyGridView.cs: Fixed code that caused warnings
16700         * GridColumnStylesCollection.cs: Added missing attributes
16701         * GridTableStylesCollection: Added missing attribute
16702         * PropertyManager: Added .ctor
16703         * SecurityIDType: Added
16704         * DataObject.cs: Implemented class
16705         * LinkArea.cs: Added missing attribute
16706
16707 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16708
16709         * RadioButton.cs: call base method to allow to fire OnClick event
16710         * UpDownBase.cs: OnMouseUp call base method
16711         * CheckedListBox.cs: call base method before returning
16712         * TrackBar.cs: call base method before returning
16713         
16714
16715 2005-05-10  Peter Bartok  <pbartok@novell.com>
16716
16717         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16718           for messages
16719
16720 2005-05-10  Peter Bartok  <pbartok@novell.com>
16721
16722         * DataFormats.cs: Implemented
16723         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16724           XplatUIX11.cs: Added Clipboard APIs
16725         * XplatUIWin32.cs: Implemented Clipboard APIs
16726         * FolderBrowserDialog.cs: Added missing event, attributes
16727
16728 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16729
16730         * CheckBox.cs: call base method to allow to fire OnClick event
16731
16732 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16733
16734         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16735
16736 2005-05-06  Peter Bartok  <pbartok@novell.com>
16737
16738         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16739         * Screen.cs: Implemented
16740         * HelpNavigator.cs: Added
16741         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16742           property
16743         * HelpProvider.cs: Implemented all we can do until we have a CHM
16744           help library (which means that "What's This" does work now)
16745
16746 2005-05-06  Jackson Harper  <jackson@ximian.com>
16747
16748         * XplatUIX11.cs: Fix waking up the main loop.
16749                 
16750 2005-05-05  Peter Bartok  <pbartok@novell.com>
16751
16752         * XplatUI.cs: Updated revision
16753         * Form.cs: Removed enless loop
16754         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16755         * Label.cs (OnPaint): Added call to base.OnPaint()
16756         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16757         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16758         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16759         * AxHost.cs: Added
16760         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16761         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16762           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16763           reuse of ToolTipWindow by other controls
16764         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16765         * XplatUIX11.cs: Now clipping drawing area (experimental)
16766         * PictureBox.cs: Moved base.OnPaint() call to end of method
16767         * Theme.cs: Fixed ToolTip abstracts to match new format
16768         * ErrorProvider.cs: Implemented
16769
16770 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16771
16772         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16773         * LinkLabel.cs:
16774                 - Adds cursors
16775                 - Handles focus
16776                 - Implements LinkBehavior
16777                 - Fixes many issues
16778
16779 2005-05-03  Jackson Harper  <jackson@ximian.com>
16780
16781         * ListView.cs: Calculate the scrollbar positioning on resize and
16782         paint, so they get put in the correct place.
16783
16784 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16785
16786         * ColorDialogs.cs: The small color panels are now handled by
16787           SmallColorControl. This fixes drawing of the focus rectangle
16788           and adds a 3D border.
16789
16790 2005-05-03  Peter Bartok  <pbartok@novell.com>
16791
16792         * Control.cs: Modified version of Jonathan Chamber's fix for
16793           double-buffering
16794
16795 2005-05-03  Jackson Harper  <jackson@ximian.com>
16796
16797         * ListView.cs: Remove redraw variable. Control now handles whether
16798         or not a redraw needs to be done, and will only raise the paint
16799         event if redrawing is needed.
16800
16801 2005-05-03  Jackson Harper  <jackson@ximian.com>
16802
16803         * Splitter.cs: No decorations for the splitter form. Cache the
16804         hatch brush.
16805
16806 2005-05-03  Jackson Harper  <jackson@ximian.com>
16807
16808         * TreeView.cs: Use dashed lines to connect nodes. Use the
16809         ControlPaint method for drawing the focus rect instead of doing
16810         that in treeview.
16811
16812 2005-05-02  Peter Bartok  <pbartok@novell.com>
16813
16814         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
16815
16816 2005-04-29  Jackson Harper  <jackson@ximian.com>
16817
16818         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
16819         entire image buffer. Just clear the clipping rectangle.
16820
16821 2005-04-29  Jackson Harper  <jackson@ximian.com>
16822
16823         * ThemeWin32Classic.cs: Don't draw list view items that are
16824         outside the clipping rectangle.
16825
16826 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
16827
16828         * ListBox.cs: added horizontal item scroll
16829
16830 2005-04-29  Jackson Harper  <jackson@ximian.com>
16831
16832         * ThemeWin32Classic.cs: Remove some old debug code that was
16833         causing flicker with the new double buffering code.
16834
16835 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
16836
16837         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
16838         behave like combobox and comboboxlist (still not sure if this is
16839         correct though).
16840
16841 2005-04-28  Jackson Harper  <jackson@ximian.com>
16842
16843         * ThemeWin32Classic.cs: Don't fill the middle of progress
16844         bars. This fills areas outside of the clip bounds that don't need
16845         to be filled.
16846
16847 2005-04-28  Jackson Harper  <jackson@ximian.com>
16848
16849         * Control.cs: Don't expose functionality to touch the image buffers.
16850         * ProgressBar.cs:
16851         * ListView.cs: We do not need to (and no longer can) manipulate
16852         the image buffers directly. All of this is handled by Control.
16853
16854 2005-04-28  Peter Bartok  <pbartok@novell.com>
16855
16856         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
16857           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
16858           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
16859
16860 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
16861
16862         * Combobox:
16863                 - Adjust control's height for non-simple comboboxes (bug fix)
16864                 - Remove dead code
16865         * MenuAPI.cs: remove unused var
16866         * ScrollBar.cs: remove unsed var
16867                  
16868         * ListBox.cs: unselect items when clearing
16869
16870 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
16871
16872         * ListControl.cs: honors OnPositionChanged and default Selected Item
16873         * ListBox.cs: unselect items when clearing
16874
16875 2005-04-27  Jackson Harper  <jackson@ximian.com>
16876
16877         * X11Keyboard.cs: Initialize a default keyboard and give a warning
16878         if a "correct" keyboard is not found. This will make us not crash,
16879         but might give some users bad keyboard layouts...seems to be the
16880         same thing rewind does.
16881
16882 2005-04-27  Jackson Harper  <jackson@ximian.com>
16883
16884         * BindingManagerBase.cs: Attach the current/position changed
16885         handlers to their respective events.
16886
16887 2005-04-27  Jackson Harper  <jackson@ximian.com>
16888
16889         * Control.cs: Make sure that the first WM_PAINT does a full draw,
16890         not just a blit.
16891         * ThemeWin32Classic.cs: Don't fill the background for picture
16892         boxes. This could overright user drawing.
16893         * ComboBox.cs: Just fill the clipping rect not the entire client
16894         rect when drawing the background. This prevents pieces of the
16895         image buffer from getting overwritten and is theoretically faster.
16896
16897 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
16898
16899         * ComboBox.cs: Databinding support fixes, fire missing events
16900         * ListControl.cs: implement missing methods and properties, fixes
16901         * ThemeWin32Classic.cs: Databiding support on Drawing
16902         * CheckedListBox.cs: Databinding support fixes, fire missing events
16903         * ListBox.cs: Databinding support fixes, fire missing events
16904         
16905 2005-04-25  Peter Bartok  <pbartok@novell.com>
16906
16907         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
16908
16909 2005-04-25  Jackson Harper  <jackson@ximian.com>
16910
16911         * TreeView.cs: Use the horizontal scrollbars height not width when
16912         determining how much of the client area is available.
16913
16914 2005-04-25  Jackson Harper  <jackson@ximian.com>
16915
16916         * Control.cs: Double buffering is handled differently now. As per
16917         the spec, the extra buffer is created in the WM_PAINT message and
16918         passed down to the control's drawing code.
16919         * GroupBox.cs:
16920         * Label.cs:
16921         * CheckBox.cs:
16922         * ProgressBar.cs:
16923         * RadioButton.cs:
16924         * ColorDialog.cs:
16925         * ComboBox.cs:
16926         * PropertyGridView.cs:
16927         * UpDownBase.cs:
16928         * MessageBox.cs:
16929         * MenuAPI.cs:
16930         * ListView.cs:
16931         * ButtonBase.cs:
16932         * SizeGrip.cs:
16933         * ScrollBar.cs:
16934         * ListBox.cs:
16935         * TrackBar.cs:
16936         * ToolBar.cs:
16937         * PictureBox.cs:
16938         * DateTimePicker.cs:
16939         * StatusBar.cs:
16940         * TreeView.cs: Update to new double buffering system.
16941         * MonthCalendar.cs: Uncomment block, as Capture is now
16942         working. Update to new double buffering
16943         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
16944         * PaintEventArgs.cs: New internal method allows us to set the
16945         graphics object. This is used for double buffering.
16946         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
16947         rectangle. The internal paint_area var has been removed from
16948         StatusBar. The clipping rect should be used instead.
16949         * Theme.cs: Give the PictureBox drawing method a clipping rect.
16950         * TabPage.cs: The RefreshTabs method was removed, so just call the
16951         tab controls Refresh method now.
16952         * TabControl.cs: Update to new double buffering. Make sure the
16953         handle is created before sizing the tab pages, otherwise we will
16954         get stuck in a loop.
16955
16956 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
16957
16958         * LinkLabel.cs: Fix typo, bug #74719; patch
16959           from Borja Sanchez Zamorano
16960
16961 2005-04-22  Jackson Harper  <jackson@ximian.com>
16962
16963         * TreeNode.cs: Implement Handle stuff.
16964         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
16965
16966 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
16967
16968         * DataGridTextBoxColumn.cs: call base constructors, fixes
16969         * GridColumnStylesCollection.cs: missing events, methods, and functionality
16970         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
16971         * DataGridTableStyle.cs: implements create default column styles
16972         * DataGridBoolColumn.cs: which types can handle
16973         * DataGrid.cs: missing methods, fixes, new functionality
16974         * DataGridColumnStyle.cs: fixes
16975
16976 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
16977         * FolderBrowserDialog.cs:
16978         - Use a thread to fill the TreeView
16979         - Adjusted some sizes
16980
16981 2005-04-19  Peter Bartok  <pbartok@novell.com>
16982
16983         * LinkLabel.cs: (Re-)create the pieces when setting the Text
16984           property. Fixes #74360.
16985
16986 2005-04-19  Jackson Harper  <jackson@ximian.com>
16987
16988         * XEventQueue.cs: Lock when getting the lockqueue size.
16989         * PictureBox.cs: Call base OnPaint
16990         
16991 2005-04-19  Peter Bartok  <pbartok@novell.com>
16992
16993         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
16994           messages were no longer being processed (this broke BeginInvoke)
16995
16996           
16997 2005-04-18  Jackson Harper  <jackson@ximian.com>
16998
16999         * TreeView.cs: buglet that caused node images to get drawn
17000         regardless of whether or not they were in the clipping rectangle.
17001
17002 2005-04-18  Jackson Harper  <jackson@ximian.com>
17003
17004         * CurrencyManager.cs: There are four rules for GetItemProperties:
17005         - If the type is an array use the element type of the array
17006         - If the type is a typed list, use the type
17007         - If the list contains an Item property that is not an object, use
17008         that property
17009         - use the first element of the list if there are any elements in
17010         the list.
17011         
17012 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17013
17014         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17015         click. This handles offsets for scrolling properly and reduces
17016         memory. Also fixed GetNode to not offset now that TopNode works
17017         properly.
17018         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17019         
17020 2005-04-17  Jackson Harper  <jackson@ximian.com>
17021
17022         * CursorConverter.cs: Initial implementation.
17023
17024 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17025
17026         * ListControl.cs: work towards complex data binding support on ListControl
17027         * CurrencyManager.cs: work towards complex data binding support on ListControl
17028         * ListBox.cs: work towards complex data binding support on ListControl
17029
17030
17031 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17032
17033         * GridTableStylesCollection.cs: fixes name and constructor
17034         * DataGridTableStyle.cs: fixes
17035         * DataGridBoolColumn.cs: fixes names and constructors
17036         * DataGrid.cs: define methods and properties. Some init implementations
17037         * DataGridCell.cs: define methods and properties. Some init implementations
17038         * GridTablesFactory.cs: Define methods and properties
17039
17040 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17041
17042         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17043         graphics port changes.  We still want the coordinates in global screen
17044         coordinates.
17045
17046 2005-04-14  Jackson Harper  <jackson@ximian.com>
17047
17048         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17049         check plus minus or checkbox clicks unless those features are enabled.
17050
17051 2005-04-14  Jackson Harper  <jackson@ximian.com>
17052
17053         * TreeView.cs: Add methods for setting the top and bottom visible
17054         nodes. TreeNode::EnsureVisible uses these methods.
17055         * TreeNode.cs: Implement EnsureVisible
17056
17057 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17058
17059         * Form.cs: Pospone menu assignation if the window has not been created yet
17060         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17061         size and position
17062
17063 2005-04-12  Jackson Harper  <jackson@ximian.com>
17064
17065         * TreeView.cs: Set the TopNode properly when scrolling
17066         occurs. This has the added benifit of reducing the amount of
17067         walking that needs to be done when drawing. Also removed an old
17068         misleading TODO.
17069         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17070         
17071 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17072
17073         * Timer.cs: fixes interval setting when the timer is already enabled
17074         
17075 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17076
17077         * FolderBrowserDialog.cs: First approach
17078
17079 2005-04-09  Peter Bartok  <pbartok@novell.com>
17080
17081         * FolderBrowserDialog: Added
17082
17083 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17084
17085         * LinkLabel.cs: move drawing code into the theme
17086         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17087         * Theme.cs: define DrawLinkLabel method
17088
17089 2005-04-05  Jackson Harper  <jackson@ximian.com>
17090
17091         * BindingContext.cs: Use weak references so these bad actors don't
17092         stay alive longer then they need to.
17093
17094 2005-04-05  Jackson Harper  <jackson@ximian.com>
17095
17096         * ListControl.cs: Basic implementation of complex databinding.
17097         * ComboBox.cs:
17098         * ListBox.cs: Add calls to ListControl databinding methods.
17099
17100 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17101
17102         * FileDialog.cs:
17103           - Don't change PopupButtonState to Normal when the
17104             PopupButton gets pressed several times.
17105           - Renamed ButtonPanel to PopupButtonPanel
17106
17107 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17108
17109         * ColorDialog.cs: Use cached objects instead of creating them
17110         * LinkLabel.cs: Use cached objects instead of creating them
17111         * Splitter.cs: Use cached objects instead of creating them
17112         * FontDialog.cs: Use cached objects instead of creating them
17113         * PropertyGridView.cs: Use cached objects instead of creating them
17114         * MessageBox.cs: Use cached objects instead of creating them
17115         * FileDialog.cs: Use cached objects instead of creating them
17116         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17117         * TreeView.cs: Use cached objects instead of creating them
17118         
17119 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17120
17121         * Control.cs: use Equals to compare the font since no == op
17122         * ScrollBar.cs: use Equals to compare the font since no == op
17123
17124 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17125
17126         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17127
17128 2005-04-01  Jackson Harper  <jackson@ximian.com>
17129
17130         * Binding.cs: Implement IsBinding.
17131         * BindingManagerBase.cs:
17132         * PropertyManager.cs:
17133         * CurrencyManager.cs: Add IsSuspended property.
17134
17135 2005-04-01  Jackson Harper  <jackson@ximian.com>
17136
17137         * Binding.cs: Had some IsAssignableFrom calls backwards.
17138
17139 2005-04-01  Jackson Harper  <jackson@ximian.com>
17140
17141         * Binding.cs: Handle null data members when pulling data.
17142         * PropertyManager.cs: Handle the data member being a property that
17143         does not exist.
17144
17145 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17146
17147         * DataGridTextBoxColumn.cs: fixes signature
17148         * DataGrid.cs: calls right constructor
17149
17150 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17151
17152         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17153         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17154         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17155         * DataGridTableStyle.cs: implements DataGridTableStyle
17156         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17157         * DataGridTextBox.cs: implements DataGridTextBox
17158         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17159
17160 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17161
17162         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17163
17164 2005-03-29  Peter Bartok  <pbartok@novell.com>
17165
17166         * Application.cs:
17167           - Properly implemented CompanyName property
17168           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17169             returns a path that includes CompanyName, ProductName and
17170             Version (fixes bug #70330)
17171
17172 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17173
17174         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17175           fixes bug #72588.
17176
17177 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17178
17179         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17180         
17181           - Added ReadOnly CheckBox
17182           - Further refactoring: moved some code from Open-/SaveFileDialog
17183             to FileDialog
17184
17185 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17186
17187         * OpenFileDialog.cs: Fixed CheckFileExists
17188         * FileDialog.cs:
17189           Moved FileView and DirComboBox outside FileDialog class.
17190           They can now be used outside FileDialog
17191
17192 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17193
17194         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17195         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17196
17197 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17198
17199         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17200           - Added missing CreatePrompt property in SaveDialog
17201           - Overall SaveDialog handling should be better now
17202           - Added non standard ShowHiddenFiles property
17203           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17204           - Added InitialDirectory and RestoreDirectory support
17205
17206 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17207
17208         * FileDialog.cs: Made dirComboBox usable
17209
17210 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17211
17212         * FileDialog.cs: Added Filter support (case sensitiv)
17213
17214 2005-03-24  Jackson Harper  <jackson@ximian.com>
17215
17216         * TabControl.cs: Need a couple more pixels for the lines.
17217
17218 2005-03-23  Jackson Harper  <jackson@ximian.com>
17219
17220         * TabControl.cs: Give the tab page focus when it is selected.
17221
17222 2005-03-23  Jackson Harper  <jackson@ximian.com>
17223
17224         * TabControl.cs: Account for the drawing of tabs borders when
17225         invalidating. If the slider was clicked dont do click detection on
17226         the tabs.
17227
17228 2005-03-23  Jackson Harper  <jackson@ximian.com>
17229
17230         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17231
17232 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17233
17234         * CategoryGridEntry.cs: Added
17235         * GridItem.cs: Added helper properties
17236         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17237         * GridEntry.cs: Updated code for collection
17238         * PropertyGrid.cs: Cleaned up some formatting
17239         * PropertyGridView.cs: Added drop down functionality for enums.
17240         * GridItemCollection.cs: Added enumerator logic
17241         * PropertyGridEntry.cs: Added
17242
17243 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17244
17245         * FileDialog.cs:
17246           - Removed unnecessary commented code
17247           - Fixed handling for entering the filename manually in the combobox
17248
17249 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17250
17251         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17252
17253 2005-03-18  Peter Bartok  <pbartok@novell.com>
17254
17255         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17256           them being touching the border
17257
17258 2005-03-18  Peter Bartok  <pbartok@novell.com>
17259
17260         * TextControl.cs: Quick hack to center text better
17261
17262 2005-03-18  Peter Bartok  <pbartok@novell.com>
17263
17264         * ControlPaint.cs:
17265           - Don't throw NotImplemented exceptions, just print a notice once
17266             instead (requested by Miguel). This makes running existing SWF
17267             apps a bit easier
17268         * Control.cs:
17269           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17270           - Added context menu trigger on right click
17271         * Panel.cs: Trigger invalidate on resize
17272         * StatusBar.cs:
17273           - Removed old double-buffer drawing
17274           - Added ResizeRedraw style to force proper update of statusbar
17275         * ListView.cs:
17276           - Removed debug output
17277         * ThemeWin32Classic.cs:
17278           - Fixed drawing of status bar, now draws Text property if there
17279             are no defined panels
17280
17281 2005-03-18  Jackson Harper  <jackson@ximian.com>
17282
17283         * ImageList.cs: When the image stream is set pull all the images
17284         from it.
17285         * ImageListStreamer.cs: Implement reading image list streams.
17286
17287 2005-03-18  Peter Bartok  <pbartok@novell.com>
17288
17289         * ThemeWin32Classic.cs (DrawPictureBox):
17290           - Fixed calculations for centered drawing
17291           - Fixed drawing for normal mode, not scaling the image on normal
17292
17293 2005-03-18  Peter Bartok  <pbartok@novell.com>
17294
17295         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17296           textbox
17297         * FileDialog.cs:
17298           - Made Open/Save button the accept button for FileDialog
17299           - Tied the cancel button to the IButtonControl cancel button
17300           - Save/Open now properly builds the pathname
17301           - Now handles user-entered text
17302           - Preventing crash on right-click if no item is selected
17303           - Fixed Text property, now uses contents of textbox
17304           - Fixed SelectedText property, now just returns the text part that
17305             is selected in the text box
17306
17307 2005-03-18  Jackson Harper  <jackson@ximian.com>
17308
17309         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17310         rect, make sure to de-adjust the interior rect after drawing the
17311         tab text.
17312
17313 2005-03-18  Peter Bartok  <pbartok@novell.com>
17314
17315         * MenuAPI.cs: Remove menu *before* executing selected action to
17316           prevent the menu from 'hanging around'
17317           
17318 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17319
17320         * XplatUIOSX.cs: Implemented WorkingArea property
17321
17322 2005-03-17  Peter Bartok  <pbartok@novell.com>
17323
17324         * XplatUIX11.cs: Fixed menu coord calculations
17325         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17326           for calculating offsets
17327
17328 2005-03-17  Peter Bartok  <pbartok@novell.com>
17329
17330         * Hwnd.cs: Do not consider menu presence for default client
17331           rectangle location/size
17332         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17333           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17334           translation functions
17335         * FileDialog.cs: Fixed (what I presume is a) typo
17336
17337 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17338
17339         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17340           X access (avoids X-Async errors)
17341
17342 2005-03-16  Jackson Harper  <jackson@ximian.com>
17343
17344         * TabControl.cs: Raise the SelectedIndexChanged event.
17345
17346 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17347
17348         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17349           - Removed vertical ToolBar and replaced it with a custom panel
17350             (desktop and home button already work)
17351           - Added Help button (some controls get resized or relocated then)
17352           - Draw correct text depending on Open or Save.
17353           - Fixed some typos...
17354
17355 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17356
17357         * ScrollBar.cs:
17358           - Only change Maximum and Minimum when need it (bug fix)
17359
17360 2005-03-15  Peter Bartok  <pbartok@novell.com>
17361
17362         * Form.cs: Use Handle for icon, to trigger creation if
17363           the window does not yet exist
17364         * Control.cs:
17365           - CanSelect: Slight performance improvement
17366           - Focus(): Preventing possible recursion
17367           - Invalidate(): Removed ControlStyle based clear flag setting
17368           - WM_PAINT: fixed logic for calling OnPaintBackground
17369           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17370             EraseWindowBackground if the control doesn't paint background
17371         * XplatUIWin32.cs:
17372           - Moved EraseWindowBackground() method to internal methods
17373           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17374             is sent via SendMessage on BeginPaint call on Win32
17375         * XplatUIX11.cs:
17376           - Added EraseWindowBackground() method
17377           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17378             PaintEventStart, which more closely matches Win32 behaviour
17379           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17380           - Fixed SetFocus() to properly deal with client and whole windows
17381         * Hwnd.cs: Added ErasePending property
17382         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17383         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17384
17385 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17386
17387         * XplatUIOSX.cs:
17388           - Fix hard loop when timers exist.
17389           - Fix bugs with middle and right click for 3 button mice.
17390
17391 2005-03-11  Peter Bartok  <pbartok@novell.com>
17392
17393         * XplatUIX11.cs:
17394           - get_WorkingArea: Need to call X directly, GetWindowPos only
17395             returns cached data now
17396           - Added sanity check to GetWindowPos hwnd usage
17397
17398 2005-03-11  Jackson Harper  <jackson@ximian.com>
17399
17400         * BindingManagerBase.cs: This method isn't used anymore as
17401         PullData now updates the data in the control.
17402
17403 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17404
17405         * Form.cs: fixes menu drawing on X11
17406         * MenuAPI.cs:  fixes menu drawing on X11
17407
17408 2005-03-11  Peter Bartok  <pbartok@novell.com>
17409
17410         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17411           from Jonathan Gilbert; should fix bug #73606
17412         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17413           in Screen coordinates. Thanks, Jordi.
17414         * Form.cs: Added missing attribute
17415
17416 2005-03-11  Peter Bartok  <pbartok@novell.com>
17417
17418         * Form.cs:
17419           - Rudimentary Mdi support
17420           - Removed outdated FormParent code
17421           - Implemented lots of missing properties and methods, still missing
17422             transparency support
17423           - Added missing attributes
17424           - Implemented support for MaximumBounds
17425           - Added firing of various events
17426         * XplatUI.cs: Added SetIcon() method
17427         * XplatUIDriver.cs: Added SetIcon() abstract
17428         * XplatUIOSX.cs: Stubbed out SetIcon() method
17429         * XplatUIX11.cs:
17430           - Implemented SetIcon() support
17431           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17432           - Switched to unix line endings
17433         * XplatUIWin32.cs:
17434           - Made POINT internal so for can access it as part of MINMAX
17435           - Implemented SetIcon() support
17436           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17437             native Mdi support again, might have to go managed)
17438         * Control.cs: Now fires the StyleChanged event
17439         * MdiClient.cs: Added; still mostly empty
17440
17441 2005-03-10  Peter Bartok  <pbartok@novell.com>
17442
17443         * SaveFileDialog.cs: Added emtpy file
17444
17445 2005-03-08  Peter Bartok  <pbartok@novell.com>
17446
17447         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17448           in turn triggers OnCreateContro) when creating a handle for the
17449           first time.
17450         * TextControl.cs: Fixed endless loop in certain cases when
17451           replacing the current selection
17452
17453 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17454
17455         * ScrollBar.cs:
17456           - Honors NewValue changes in Scroll events allowing apps to change it
17457           - Adds First and Last Scroll events
17458           - Fixes Thumb events
17459
17460 2005-03-07  Peter Bartok  <pbartok@novell.com>
17461
17462         * Hwnd.cs: Added DefaultClientRectangle property
17463         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17464           more detailed debug information
17465         * XplatUIX11.cs:
17466           - Fixed size-change feedback loop, where we would pull an old size
17467             off the queue and mistakenly change our window's size to an
17468             earlier value
17469           - Now compressing ConfigureNotify events, to reduce looping and
17470             redraw issues
17471         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17472           is called
17473
17474 2005-03-07  Jackson Harper  <jackson@ximian.com>
17475
17476         * Binding.cs: Push data pushes from data -> property. Check if the
17477         property is readonly when attempting to set it.
17478
17479 2005-03-07  Jackson Harper  <jackson@ximian.com>
17480
17481         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17482         instead of IsSubclassOf. Pulling data now sets the value on the
17483         control.
17484         * PropertyManager.cs:
17485         * CurrencyManager.cs: Just need to pull data when updating now,
17486         because PullData will set the value on the control.
17487
17488 2005-03-04  Jackson Harper  <jackson@ximian.com>
17489
17490         * Binding.cs: Implement data type parsing and converting on pulled
17491         data. TODO: Are there more ways the data can be converted?
17492
17493 2005-03-04  Jackson Harper  <jackson@ximian.com>
17494
17495         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17496         controls Validating method so we can repull the data when the
17497         control loses focus.
17498
17499 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17500
17501         * ColumnHeader.cs:
17502           - Fixes null string format
17503           
17504         * ListView.cs:
17505           - Adds enum type checks
17506           - Fixes redrawing and recalc need after changing some properties
17507           - Fixes on focus_item set after the event
17508           - Fixes adding columns after the control has been created
17509           
17510         * ThemeWin32Classic.cs:
17511           - Fixes CheckBox focus rectangle
17512           - Fixes ColumnHeader drawing
17513
17514
17515 2005-03-03  Jackson Harper  <jackson@ximian.com>
17516
17517         * Binding.cs: Bind to <Property>Changed events so we can detect
17518         when properties are changed and update the data.
17519
17520 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17521
17522         * ImageList.cs:
17523           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17524           - Fixes ImageList constructor with ImageList container
17525           - Fixes image scaling (wrong parameters at DrawImage)
17526
17527 2005-02-02  Jackson Harper  <jackson@ximian.com>
17528
17529         * Binding.cs: Make property searches case-insensitive. Eliminate
17530         some duplicated code.
17531
17532 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17533
17534         * ComboBox.cs:
17535                 - Handle focus event
17536                 - Fix scrollbar events
17537                 - Discard highlighted item if remove it
17538                 - Fixes SelectedItem with strings
17539
17540 2005-03-01  Peter Bartok  <pbartok@novell.com>
17541
17542         * Control.cs:
17543           - Fixed Visible property, now follows (once again) parent chain
17544             to return false if any control in the chain is visible=false
17545           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17546           - Fixed several places where is_visible instead of Visible was used
17547           - Implemented FIXME related to focus selection when setting focused
17548             control to be invisible
17549
17550         * XplatUIWin32.cs: Now using proper method to find out if window is
17551           visible. Thanks to Jordi for pointing it out
17552
17553 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17554
17555         * ComboBox.cs: show/hide scrollbar instead of creating it
17556
17557 2005-02-27  Jackson Harper  <jackson@ximian.com>
17558
17559         * CurrencyManager.cs: Add PositionChanged stuff.
17560
17561 2005-02-27  Peter Bartok  <pbartok@novell.com>
17562
17563         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17564         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17565         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17566         * XplatUIX11.cs:
17567           - Implemented GetMenuDC()
17568           - Implemented GetMenuOrigin()
17569           - Implemented ReleaseMenuDC()
17570           - Implemented generation of WM_NCPAINT message
17571           - Implemented generation and handling of WM_NCCALCSIZE message
17572         * Form.cs: Added debug helper message for Jordi's menu work
17573         * Hwnd.cs:
17574           - Modified ClientRect property; added setter, fixed getter to handle
17575             setting of ClientRect
17576           - Added MenuOrigin property
17577
17578 2005-02-26  Peter Bartok  <pbartok@novell.com>
17579
17580         * XplatUIX11.cs:
17581           - Destroys the caret if a window that's being destroyed contains it
17582           - Ignores expose events coming from the X11 queue for windows that
17583             already are destroyed
17584           - Now uses the proper variable for handling DestroyNotify, before we
17585             marked the wrong window as destroyed
17586           - Improved/added some debug output
17587
17588 2005-02-26  Peter Bartok  <pbartok@novell.com>
17589
17590         * X11Keyboard.cs: Fixes to work on 64bit systems
17591
17592 2005-02-26  Peter Bartok  <pbartok@novell.com>
17593
17594         * Control.cs:
17595           - Now calling OnHandleDestroyed from DestroyHandle()
17596             instead of Dispose()
17597           - Removed bogus call to controls.Remove() from DestroyHandle()
17598
17599 2005-02-26  Peter Bartok  <pbartok@novell.com>
17600
17601         * Control.cs: Properly destroy child windows when our handle is
17602           destroyed
17603
17604 2005-02-25  Peter Bartok  <pbartok@novell.com>
17605
17606         * XplatUI.cs:
17607           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17608           - Alphabetized Static Methods and Subclasses
17609
17610         * XplatUIX11.cs:
17611           - Added XException class to allow custom handling of X11 exceptions
17612           - Created custom X11 error handler, tied into XException class
17613           - Added support for MONO_XEXCEPTIONS env var to allow the user
17614             to either throw an exception on X errors or continue running
17615             after displaying the error
17616           - Added handling of DestroyNotify message
17617           - Added handler for CreateNotify message (still disabled)
17618           - Improved (tried to at least) Where method to provide file and lineno
17619         * X11Structs.cs:
17620           - Added XErrorHandler delegate
17621           - Added XRequest enumeration (to suppor translation of errors)
17622
17623 2005-02-25  Jackson Harper  <jackson@ximian.com>
17624
17625         * PropertyManager.cs: Implement editing features
17626         * CurrencyManager.cs:
17627         * Binding.cs: First attempt at UpdateIsBinding
17628         * BindingManagerBase.cs: Call UpdateIsBinding before
17629         pushing/pulling data.
17630
17631 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17632
17633         * MenuAPI.cs: Respect disabled items
17634         * ThemeWin32Classic.cs
17635                 - Caches ImageAttributes creation for DrawImageDisabled
17636                 - Fixes vertical menu line drawing
17637                 - Draws disabled arrows in disable menu items
17638
17639 2005-02-24  Peter Bartok  <pbartok@novell.com>
17640
17641         * Hwnd.cs:
17642           - Added UserData property to allow associating arbitrary objects
17643             with the handle
17644           - Fixed leak; now removing Hwnd references from static windows array
17645         * XplatUIWin32.cs:
17646           - Fixed Graphics leak in PaintEventEnd
17647           - Removed usage of HandleData, switched over to Hwnd class
17648         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17649
17650 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17651
17652         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17653         * ScrollBar.cs: Fixes bug
17654         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17655          keyboard navigation enhancements
17656
17657 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17658
17659         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17660         * GroupBox.cs: Add control styles
17661         * Label.cs: Add control styles
17662         * UpDownBase.cs: Add control styles
17663         * ListBox.cs: Add control styles
17664         * XplatUIWin32.cs: Fixes wrong parameter order
17665
17666
17667 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17668
17669         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17670
17671 2005-02-23  Jackson Harper  <jackson@ximian.com>
17672
17673         * PropertyManager.cs: Implement property binding. This doesn't
17674         seem to work yet though as (I think) there are some bugs in
17675         System.ComponentModel.PropertyDescriptor.
17676         * BindingContext.cs: Use new PropertyManager constructor.
17677
17678 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17679
17680         * ProgressBar.cs: use clip region in ProgressBar
17681         * ThemeWin32Classic.cs: use clip region in ProgressBar
17682
17683 2004-02-22  Jackson Harper  <jackson@ximian.com>
17684
17685         * BindingsCollection.cs: Remove some debug code.
17686
17687 2005-02-22  Jackson Harper  <jackson@ximian.com>
17688
17689         * BindingContext.cs:
17690         * ControlBindingsCollection.cs:
17691         * CurrencyManager.cs:
17692         * Binding.cs:
17693         * BindingManagerBase.cs: Initial implementation
17694         * BindingsCollection.cs: Add an internal contains method that the
17695         BindingManagerBase uses to ensure bindings aren't added twice to
17696         the collection.
17697         * PropertyManager.cs: Stubbed out.
17698         * Control.cs:
17699         * ContainerControl.cs: Hook up databinding
17700         
17701 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17702
17703         * XplatUIOSX.cs:
17704           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17705           Fixed Invalidate/Update chain.
17706           Fixed tons of other minor bugs (this is almost a complete rewrite).
17707
17708 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17709
17710         * ComboBox.cs: do subcontrol creation when the control is created
17711
17712 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17713
17714         * Label.cs: fixes image drawing (image and imagelist)
17715         * ThemeWin32Classic.cs: cache brushes
17716         
17717 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17718
17719         * Form.cs: Move menu drawing code to Theme class
17720         * ComboBox.cs: Move ComboBox drawing code to Theme class
17721         * MenuItem.cs: Move menu drawing code to Theme class
17722         * MenuAPI.cs: Move menu drawing code to Theme class
17723         * ThemeWin32Classic.cs: New methods
17724         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17725         * ListBox.cs: Move Listbox drawing code to Theme class
17726         * Theme.cs: New methods
17727
17728 2005-02-20  Peter Bartok  <pbartok@novell.com>
17729
17730         * Control.cs:
17731           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17732             only process mnemonics on those)
17733           - Fixed event sequence for key handling; first calling
17734             ProcessKeyEventArgs now
17735         * TextBoxBase.cs:
17736           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17737             for processing non-character keys
17738           - Fixed WM_CHAR to generate proper event sequence before processing
17739         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17740           generation
17741
17742 2005-02-19  Peter Bartok  <pbartok@novell.com>
17743
17744         * UserControl.cs: Added TextChanged event; added attributes
17745         * SizeGrip.cs: Implemented resizing and optional display of grip
17746         * Form.cs: Fixed attribute
17747         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17748           Changed meaning of ScrollWindow bool argument; instead of the
17749           clear attribute (which will be true usually anyway), it gives the
17750           option of moving child controls as well.
17751         * XplatUIX11.cs:
17752           - Changed to match new ScrollWindow argument
17753           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17754             now handles the implicit parent window a WM puts around us
17755         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17756           to work)
17757         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17758         * TreeView.cs: Adjusted to new ScrollWindow arguments
17759
17760 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17761
17762         * Form.cs: Menu integration with non-client area
17763         * MenuItem.cs: Menu integration with non-client area
17764         * MenuAPI.cs: Menu integration with non-client area
17765
17766 2005-02-18  Peter Bartok  <pbartok@novell.com>
17767
17768         * MethodInvoker.cs: Added
17769         * MdiLayout.cs: Added
17770         * SendKeys.cs: Started implementation
17771         * ErrorIconAlignment.cs: Added
17772
17773 2005-02-18  Peter Bartok  <pbartok@novell.com>
17774
17775         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17776         * Form.cs: Added handling for Menu-related Non-client messages
17777
17778 2005-02-17  Peter Bartok  <pbartok@novell.com>
17779
17780         * UpDownBase.cs: Fixed typo, compilation errors
17781         * DomainUpDown.cs: Fixed attribute value
17782
17783 2005-02-16  Miguel de Icaza  <miguel@novell.com>
17784
17785         * UpDownBase.cs: Attach entry events.
17786         Propagate events.
17787         Add ForeColor property, Focused, InterceptArrowKeys (interception
17788         does not work yet).
17789
17790 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
17791
17792         * Form.cs:
17793                 - Redraw non client are on Setmenu
17794                 - Calc proper menu starting point
17795
17796 2005-02-17  Peter Bartok  <pbartok@novell.com>
17797
17798         * Application.cs: Fixed message_filter check
17799
17800 2005-02-17  Peter Bartok  <pbartok@novell.com>
17801
17802         * Application.cs: Now calls registered message filters
17803         * DockStyle.cs: Fixed attribute
17804         * Form.cs: Fixed attribute
17805         * Menu.cs: Fixed attribute
17806         * ToolTip.cs: Fixed attribute
17807         * TreeNode.cs: Added missing attributes and arranged in regions
17808         * PropertyGrid.cs: Fixed signatures
17809         * TreeNodeCollection.cs: Added attributes
17810         * Splitter.cs: Added missing attributes; arranged into regions
17811         * TabPage.cs: Added missing attributes; arranged into regions
17812         * TextBoxBase.cs: Added missing attributes
17813         * TextBox.cs: Added missing attributes
17814         * ArrangeDirection.cs: Added missing attributes
17815         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
17816         * ToolBarButton.cs: Fixed attributes
17817         * AnchorStyles.cs: Fixed attribute
17818         * TrackBar.cs: Fixed attributes
17819         * TabControl.cs: Added missing attributes and arranged into regions
17820         * ToolBar.cs: Fixed attribute
17821         * StatusBar.cs: Fixed signature, organized into regions and added
17822           attributes
17823         * StatusBarPanel.cs: Fixed attributes
17824         * ContentsResizedEventArgs.cs: Implemented
17825         * ContentsResizedEventHandler.cs: Implemented
17826         * DateBoldEventArgs.cs: Implemented
17827         * DateBoldEventHandler.cs: Implemented
17828         * UpDownEventArgs.cs: Implemented
17829         * UpDownEventHandler.cs: Implemented
17830         
17831 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
17832
17833         * Form.cs: first Menu NC refactoring
17834         * MenuAPI.cs: first Menu NC refactoring
17835         
17836 2005-02-16  Peter Bartok  <pbartok@novell.com>
17837
17838         * ImeMode.cs: Added missing attributes
17839         * Menu.cs: Fixed attribute
17840         * GroupBox.cs: Fixed attribute
17841         * Label.cs: Fixed attribute
17842         * ColorDialog.cs (RunDialog): Removed TODO attribute
17843         * ComboBox.cs: Fixed attributes
17844         * ListControl.cs: Added missing attributes
17845         * PropertyGrid.cs: Fixed attributes
17846         * Control.cs: Fixed attributes
17847         * ListViewItem.cs: Added TypeConverter attribute
17848         * NotifyIcon.cs: Fixed attributes
17849         * ListView.cs: Fixed attributes
17850         * ButtonBase.cs: Fixed attribute
17851         * ImageList.cs: Added missing attributes
17852         * ContainerControl.cs: Fixed signature
17853         * CheckedListBox.cs: Fixed attribute; added missing attributes
17854         * Panel.cs: Fixed attributes
17855         * PropertyTabChangedEventArgs.cs: Added missing attribute
17856         * PropertyValueChangedEventArgs.cs: Added missing attribute
17857         * Binding.cs: Fixed attribute
17858         * ListViewItemConverter: Implemented ListViewSubItemConverter class
17859         * ListBox.cs: Fixed attribute; added missing attributes;
17860         * ScrollableControl.cs: Added missing attributes
17861         * PictureBox.cs: Added missing attributes; implemented missing property
17862         * DateTimePicker.cs: Added missing attributes
17863         * Theme.cs (ToolWindowCaptionHeight): Fixed type
17864         * MonthCalendar.cs: Fixed attributes
17865         * StatusBarPanel.cs: Added missing attributes
17866         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
17867
17868 2005-02-16  Peter Bartok  <pbartok@novell.com>
17869
17870         * TextBoxBase.cs: The previous method to enforce height yet remember
17871           the requested high was less than ideal, this is an attempt to do
17872           it better.
17873         * Control.cs: Added comment about possible problem
17874         * Copyright: Updated format
17875         * GridItemType.cs: Fixed swapped values
17876
17877 2005-02-15  Jackson Harper  <jackson@ximian.com>
17878
17879         * BaseCollection.cs: Use property so we never access an
17880         uninitialized list. Also initialize the list in the property.
17881
17882 2005-02-15  Peter Bartok  <pbartok@novell.com>
17883
17884         * GroupBox.cs (ProcessMnemonic): Implemented
17885         * Label.cs (ProcessMnemonic): Implemented
17886         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
17887           hotkeys
17888
17889 2005-02-15  Peter Bartok  <pbartok@novell.com>
17890
17891         * RadioButton.cs (ProcessMnemonic): Implemented
17892         * CheckBox.cs (ProcessMnemonic): Implemented
17893         * Control.cs:
17894           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
17895             handling
17896           - Added internal method to allow calling ProcessMnemonic from other
17897             controls
17898         * ContainerControl.cs:
17899           - Started support for handling validation chain handling
17900           - Implemented ProcessMnemonic support
17901           - Added Select() call to Active, to make sure the active control
17902             receives focus
17903         * Form.cs: Setting toplevel flag for Forms (this was lost in the
17904           FormParent rewrite)
17905         * ThemeWin32Classic.cs:
17906           - DrawCheckBox(): Fixed stringformat to show hotkeys
17907           - DrawRadioButton(): Fixed stringformat to show hotkeys
17908         * CommonDialog.cs: Removed WndProc override, not needed
17909
17910 2005-02-14  Peter Bartok  <pbartok@novell.com>
17911
17912         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
17913           missed those in the rewrite
17914
17915 2005-02-14  Miguel de Icaza  <miguel@novell.com>
17916
17917         * NumericUpDown.cs (Increment, ToString): Add.
17918         (DecimalPlaces): implement.
17919         
17920         Add attributes.
17921         
17922         * UpDownBase.cs: Add the designer attributes.
17923
17924 2005-02-13  Peter Bartok  <pbartok@novell.com>
17925
17926         * Panel.cs: Removed border_style, now in Control
17927         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
17928           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
17929
17930 2005-02-13  Peter Bartok  <pbartok@novell.com>
17931
17932         * MouseButtons.cs: Added missing attributes
17933         * XplatUIStructs.cs: Added enumeration for title styles
17934         * LeftRightAlignment.cs: Added missing attributes
17935         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
17936           it compatible with Graphics.FromHwnd()
17937         * SelectedGridItemChangedEventArgs.cs: Fixed property type
17938         * Keys.cs: Added missing attributes
17939         * SelectionRange.cs: Added missing attributes
17940         * SelectionRangeConverter.cs: Added
17941         * XplatUI.cs:
17942           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
17943             ReleaseMenuDC methods
17944           - Renamed ReleaseWindow to UngrabWindow
17945           - Added proper startup notice to allow version identification
17946         * Form.cs:
17947           - Added missing attributes
17948           - Removed FormParent concept
17949         * Label.cs: Removed border_style field, now in Control
17950         * RadioButton.cs: Now properly selects RadioButton when focus is
17951           received
17952         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
17953         * Control.cs:
17954           - Added missing attributes
17955           - Added borderstyle handling
17956           - Removed FormParent concept support
17957           - Fixed calls to XplatUI to match changed APIs
17958           - Fixed bug that would case us to use disposed Graphics objects
17959           - Removed unneeded internal methods
17960           - PerformLayout(): Fixed to handle DockStyle.Fill properly
17961           - SelectNextControl(): Fixed to properly check common parents
17962         * TextBoxBase.cs: Removed border_style field (now in Control)
17963         * MessageBox.cs:
17964           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
17965             fixed calculations for form size
17966           - Added support for localized strings and icons
17967           - Improved form size calculations, added border
17968         * ListView.cs: Removed border_style field (now in Control)
17969         * X11Structs.cs: Moved several structs from X11 driver here
17970         * X11Keyboard.cs: Changed debug message
17971         * Application.cs: Removed FormParent concept support
17972         * CommonDialog.cs:
17973           - Resetting end_modal flag
17974           - Removed FormParent concept support
17975         * NativeWindow.cs: Removed FormParent concept support
17976         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
17977           Client area and Non-Client whole window to allow support for WM_NC
17978           messages
17979         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
17980           prevent using it until it supports Hwnd as per Geoff Norton's request
17981         * ToolBar.cs: Fixed drawing, was not doing proper drawing
17982         * PictureBox.cs: Removed border_style field, now in Control
17983         * XplatUIWin32.cs: Added new driver methods
17984
17985 2005-02-12  Peter Bartok  <pbartok@novell.com>
17986
17987         * OpacityConverter.cs: Implemented
17988         * Hwnd.cs: Internal class to support drivers that need to emulate
17989           client area/non-client area window behaviour
17990
17991 2005-02-11  Peter Bartok  <pbartok@novell.com>
17992
17993         * KeysConverter.cs: Implemented
17994
17995 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
17996
17997         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
17998         * LinkLabel: Added missing attributes
17999         * MainMenu.cs: fixes ToString
18000         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18001         * ListBox.cs: fixes event position
18002         * TrackBar.cs: adds missing attributes and events
18003         
18004 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18005
18006         * MenuItem.cs: Use SystemInformation and bug fixes
18007         * MenuAPI.cs: Use SystemInformation and bug fixes
18008
18009 2005-02-09  Jackson Harper  <jackson@ximian.com>
18010
18011         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18012         their keystate otherwise things like VK_MENU get stuck "on".
18013
18014 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18015
18016         * ListBox.cs: Fixes AddRange bug
18017         
18018 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18019
18020         * ProgressBar.cs
18021                 - Add missing attributes
18022                 - Add missing method
18023                 
18024         * CheckedListBox.cs: Added missing attributes
18025                 - Add missing attributes
18026                 - Remove extra method
18027         
18028         * ComboBox.cs: Added missing attributes
18029         * VScrollBar.cs: Added missing attributes
18030         * ScrollBar.cs:  Added missing attributes
18031         * ListBox.cs: Fixes signature, add missing consts
18032         * LinkArea.cs:   Added missing attributes
18033         
18034
18035 2005-02-08  Peter Bartok  <pbartok@novell.com>
18036
18037         * Menu.cs: Added missing attributes
18038         * MainMenu.cs: Added missing attributes
18039         * GroupBox.cs: Added missing attributes
18040         * Label.cs: Added missing attributes
18041         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18042         * ColorDialog.cs:
18043           - Added Instance and Options properties
18044           - Added missing attributes
18045         * Cursor.cs: Made Serializable
18046         * NotifyIcon: Added missing attributes
18047         * MenuItem.cs: Added missing attributes
18048         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18049         * Panel.cs: Added Missing attributes
18050         * MonthCalendar.cs: Fixed CreateParams
18051
18052 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18053         
18054         * LinkLabel.cs:
18055                 - Fixes signature
18056                 - Fixes issues with links
18057                 - Adds the class attributes
18058
18059 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18060         
18061         * ComboBox.cs:
18062                 - Fixes button when no items available in dropdown
18063                 - Fixes repainting problems
18064                 - Adds the class attributes
18065                 
18066 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18067
18068         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18069         the current theme.  Cache these on startup.
18070
18071 2005-02-07  Jackson Harper  <jackson@ximian.com>
18072
18073         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18074         the scrollbar buttons when they are depressed.
18075
18076 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18077
18078         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18079         Get the display size from the main displayid.  We currently dont
18080         support multiple display configurations.
18081
18082 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18083
18084         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18085
18086 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18087
18088         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18089
18090 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18091
18092         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18093
18094 2005-02-04  Jackson Harper  <jackson@ximian.com>
18095
18096         * ThemeWin32Classic.cs: Respect the clipping rect when
18097         drawing. Only fill the intersection of clips and rects so there
18098         isn't a lot of large fills.
18099         * ScrollBar.cs: Pass the correct clipping rect to the theme
18100         engine. Remove some debug code.
18101
18102 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18103         
18104         * DateTimePicker.cs:
18105                 - Fixed crash on DateTime.Parse, use Constructor instead
18106
18107 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18108         
18109         * MenuItem.cs:
18110         * MenuAPI.cs:
18111                 - Owner draw support (MeasureItem and DrawItem)
18112
18113 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18114         
18115         *  Menu.cs:
18116                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18117                 - Fixes MenuItems.Add range
18118         * MenuItem.cs:
18119                 - MergeMenu and Clone and CloneMenu functions
18120
18121 2005-02-03  Jackson Harper  <jackson@ximian.com>
18122
18123         * ScrollBar.cs: Make abstract
18124         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18125         is abstract.
18126
18127 2005-02-03  Jackson Harper  <jackson@ximian.com>
18128
18129         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18130         all the unneeded refreshes and uses invalidates with properly
18131         computed rects.
18132
18133 2005-02-03  Peter Bartok  <pbartok@novell.com>
18134
18135         * ComponentModel.cs: Added
18136         * IDataGridEditingService.cs: Added
18137         * Timer.cs: Added missing attributes
18138         * ToolTip.cs: Added missing attributes
18139
18140 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18141
18142         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18143
18144 2005-02-03  Peter Bartok  <pbartok@novell.com>
18145
18146         * ListBox.cs: Added missing attributes
18147
18148 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18149         
18150         * ListBox.cs:
18151                 - Fixes font height after font change
18152                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18153                 
18154 2005-02-02  Peter Bartok  <pbartok@novell.com>
18155
18156         * HandleData.cs: Introduced static methods to allow class
18157           to be more self-contained and track it's own HandleData objects
18158         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18159           HandleData to use new static methods
18160
18161 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18162
18163         * Combobox.cs:
18164                 - Fixes default size and PreferredHeight
18165                 - Missing events
18166                 - ObjectCollection.Insert implementation
18167                 
18168         * ListControl.cs
18169                 - Fixes signature
18170         * ListBox.cs:
18171                 - Several fixes
18172                 - ObjectCollection.Insert implementation
18173                 - No selection after clean
18174                 - Small fixes
18175
18176 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18177
18178         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18179
18180 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18181
18182         * Combobox.cs:
18183                 - Caches ItemHeight calculation for OwnerDrawVariable
18184                 - Handles dropdown properly
18185                 - Fixes several minor bugs
18186
18187 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18188
18189         * ListBox.cs:
18190                 - Fixes 71946 and 71950
18191                 - Fixes changing Multicolumn on the fly
18192                 - Fixes keyboard navigation on Multicolumn listboxes
18193
18194 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18195         
18196         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18197         crash reporter log.
18198
18199 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18200
18201         * XplatUIOSX.cs: Allow applications to actually exit.
18202
18203 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18204
18205         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18206         their parent at creation time rather than lazily later.  Fixes a major
18207         regression we were experiencing.
18208
18209 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18210
18211         * ThemeWin32Classic.cs: more date time picker painting fixes
18212         * DateTimePicker.cs: more monthcalendar drop down fixes
18213         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18214
18215 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18216
18217         * ScrollBar.cs:
18218                 - When moving the thumb going outside the control should stop the moving
18219                 - Adds the firing of missing events
18220                 - Fixes no button show if Size is not specified
18221                 - End / Home keys for keyboard navigation
18222
18223 2005-01-30  Peter Bartok  <pbartok@novell.com>
18224
18225         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18226           sanity check to prevent theoretical loop
18227         * XplatUIWin32.cs (SetVisible): Removed debug output
18228         * XplatUIX11.cs (SystrayChange): Added sanity check
18229         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18230         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18231           behaviour, valid until the X11 client window rewrite is done
18232         * TextBox.cs (ctor): Setting proper default foreground and background
18233           colors
18234
18235 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18236
18237         * Theme: Added DrawDateTimePicker to interface
18238         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18239         * DateTimePicker.cs: Created (still needs keys and painting code)
18240         * DateTimePickerFormat.cs: added
18241         * MonthCalendar.cs: fixed CreateParams for popup window mode
18242           
18243 2005-01-29  Peter Bartok  <pbartok@novell.com>
18244
18245         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18246           this should also the calculations for ligher/darker
18247         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18248
18249 2005-01-29  Peter Bartok  <pbartok@novell.com>
18250
18251         * ArrangeDirection.cs: Added
18252         * ArrangeStartingPositon.cs: Added
18253         * SystemInformation.cs: Implemented
18254         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18255           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18256           used by SystemInformation class
18257         * X11Strucs.cs: Added XSizeHints structure
18258         * MenuAPI.cs:
18259           - Fixed CreateParams to make sure the menu window is always visible
18260           - TrackPopupMenu: Added check to make sure we don't draw the
18261             menu offscreen
18262
18263 2005-01-29  Peter Bartok  <pbartok@novell.com>
18264
18265         * HandleData.cs: Added method for altering invalid area
18266         * TextBoxBase.cs: Implemented TextLength
18267
18268 2005-01-28  Peter Bartok  <pbartok@novell.com>
18269
18270         * XplatUIX11.cs: Improvement over last patch, not sending
18271           the WM_PAINT directly anymore, instead we scroll any pending
18272           exposed areas and let the system pick out the WM_PAINT later
18273
18274 2005-01-28  Peter Bartok  <pbartok@novell.com>
18275
18276         * SWF.csproj: Deleted, no longer used. Instead,
18277           Managed.Windows.Forms/SWF.csproj should be used
18278         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18279           directly, to avoid a potential race condition with the next
18280           scroll
18281
18282 2005-01-28  Peter Bartok  <pbartok@novell.com>
18283
18284         * XplatUI.cs: Made class internal
18285
18286 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18287
18288         * CheckedListBox.cs:
18289                 - Draw focus
18290                 - Fixed Drawing
18291                 - Missing methods and events
18292
18293 2005-01-27  Peter Bartok  <pbartok@novell.com>
18294
18295         * Application.cs (Run): Don't use form if we don't have one
18296
18297 2005-01-27  Peter Bartok  <pbartok@novell.com>
18298
18299         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18300
18301 2005-01-27  Peter Bartok  <pbartok@novell.com>
18302
18303         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18304         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18305         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18306         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18307         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18308         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18309         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18310         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18311         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18312         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18313         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18314         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18315
18316 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18317
18318         * Combobox.cs:
18319                 - Draw focus on Simple Combobox
18320                 - Fixes drawing issues
18321                 - fixes 71834
18322
18323 2005-01-27  Peter Bartok  <pbartok@novell.com>
18324
18325         * Form.cs:
18326           - Place window in default location, instead of hardcoded 0/0
18327           - Send initial LocationChanged event
18328         * Control.cs:
18329           - UpdateBounds after creation to find out where the WM placed us
18330           - Make sure that if the ParentForm changes location the Form
18331             is notified
18332         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18333             to the root, but to whatever the WM placed around us.
18334             Translate to root coordinates before returning toplevel
18335             coordinates
18336         * XplatUIWin32.cs: Removed debug output
18337         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18338           flag to GetWindowPos, to allow translation of coordinates on X11
18339
18340 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18341
18342         * ListBox.cs: connect LostFocus Event
18343
18344 2005-01-27  Peter Bartok  <pbartok@novell.com>
18345
18346         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18347           XplatUIX11.cs: Extended the Systray API
18348         * Form.cs: Removed debug output
18349         * Application.cs: Fixed focus assignment, always need to call
18350           XplatUI.Activate() since Form.Activate() has rules that may
18351           prevent activation
18352         * NotifyIcon.cs: Should be complete now
18353         * ToolTip.cs: Worked around possible timer bug
18354
18355 2005-01-27  Jackson Harper  <jackson@ximian.com>
18356
18357         * TabControl.cs:
18358         - Only invalidate the effected tabs when the
18359         selected index changes. This reduces drawing and gets rid of some
18360         flicker.
18361         - Only refresh if the tabs need to be shifted, otherwise only
18362         invalidate the slider button.
18363         - On windows the tabs are not filled to right if the slider is
18364         visible.
18365         
18366 2005-01-27  Jackson Harper  <jackson@ximian.com>
18367
18368         * TabControl.cs: Only refresh on mouseup if we are showing the
18369         slider. Also only invalidate the button whose state has changed.
18370
18371 2005-01-26  Peter Bartok  <pbartok@novell.com>
18372
18373         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18374         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18375           and SystrayRemove() methods
18376         * XplatUIOSX.cs: Stubbed Systray methods
18377         * XplatUIX11.cs:
18378           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18379             methods
18380           - Fixed broken XChangeProperty calls (marshalling messed up things)
18381         * X11Structs.cs: Added enums and structs required for Size hinting
18382         * NotifyIcon.cs: Added & implemented
18383
18384 2005-01-26  Jackson Harper  <jackson@ximian.com>
18385
18386         * TabControl.cs: Space vertically layed out tabs properly.
18387
18388 2005-01-26  Peter Bartok  <pbartok@novell.com>
18389
18390         * Form.cs (CreateClientParams): Always set the location to 0,0
18391           since we're a child window.
18392
18393         * Control.cs (SetVisibleCore): Always explicitly setting the location
18394           of a toplevel window, apparently X11 doesn't like to move windows
18395           while they're not mapped.
18396
18397 2005-01-26  Jackson Harper  <jackson@ximian.com>
18398
18399         * TabControl.cs: Implement FillToRight size mode with vertically
18400         rendered tabs.
18401
18402 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18403
18404         * ControlPaint.cs, ThemeWin32Classic.cs
18405                 - Fixes DrawFocusRectangle
18406
18407 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18408
18409         * MenuAPI.cs:
18410                 - MenuBar tracking only starts when item is first clicked
18411                 - Fixes menu hidding for multiple subitems
18412                 - Unselect item in MenuBar when item Executed
18413                 - Fixes bug 71495
18414
18415 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18416
18417         * ListControl.cs:
18418                 - IsInputKey for ListBox
18419         * ListBox.cs:
18420                 - Focus item
18421                 - Shift and Control item selection
18422                 - Implement SelectionMode.MultiExtended
18423                 - Fixes RightToLeft
18424         * ComboBox.cs:
18425                 - IsInputKey implemented
18426                 - Do not generate OnTextChangedEdit on internal txt changes
18427                 
18428 2005-01-23  Peter Bartok  <pbartok@novell.com>
18429
18430         * AccessibleObject.cs: Partially implemented Select()
18431         * MonthCalendar.cs: Added missing attributes and events
18432         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18433           form can properly override CreateParams.
18434         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18435           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18436           Control performs Invalidate & Update
18437         * NativeWindow (CreateHandle): Added special handling for Form
18438           and Form.FormParent classes to allow overriding of From.CreateParams
18439         * Control.cs:
18440           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18441             name 'owner'
18442           - ControlNativeWindow: Added Owner property
18443           - Removed usage of Refresh() on property changes, changed into
18444             Invalidate(), we need to wait until the queue is processed for
18445             updates, direct calls might cause problems if not all vars for
18446             Paint are initialized
18447           - Added call to UpdateStyles() when creating the window, to set any
18448             styles that CreateWindow might have ignored.
18449           - Added support for Form CreateParent overrides to UpdateStyles()
18450         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18451           CreateParams are now properly overridable
18452         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18453           CreateParams are now properly overridable
18454
18455 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18456
18457         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18458         OnTextBoxChanged.
18459
18460         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18461         recursive invocation that I have not figured out yet.
18462
18463         Reset the timer when not using (it was accumulating).
18464
18465
18466         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18467         user has made changes that require validation.
18468
18469         Reset changing to avoid loops.
18470
18471 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18472
18473         * NumericUpDown.cs: Display value at startup.
18474
18475         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18476         ValidateEditText.
18477
18478         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18479         filled in.  Added some basic parsing of text.
18480
18481         Still missing the OnXXX method overrides, and figuring out the
18482         events that must be emitted.
18483
18484         * UpDownBase.cs: Handle UserEdit on the Text property.
18485         
18486 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18487
18488         * ComboBox.cs:
18489           - Fixes IntegralHeight
18490           - ToString method
18491
18492 2005-01-21  Jackson Harper  <jackson@ximian.com>
18493
18494         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18495         is set so that the page visibility is updated and the tabs are
18496         sized correctly.
18497
18498 2005-01-21  Jackson Harper  <jackson@ximian.com>
18499
18500         * TabControl.cs: Use cliping rectangle for blitting. Give the
18501         theme the clipping rect so we can do clipping while
18502         drawing. Remove some debug code.
18503
18504 2005-01-21  Jackson Harper  <jackson@ximian.com>
18505
18506         * TabPage.cs: Add a new method so tab pages can force the tab
18507         control to recalculate the tab page sizes.
18508         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18509         sizes.
18510
18511 2005-01-20  Jackson Harper  <jackson@ximian.com>
18512
18513         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18514
18515 2005-01-20  Jackson Harper  <jackson@ximian.com>
18516
18517         * TreeView.cs: Set the bounds for nodes properly. They were
18518         getting screwed up when checkboxes were not enabled, but images
18519         were.
18520
18521 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18522
18523         * ListBox.cs:
18524                 - Owner draw support
18525                 - Fixes
18526                 
18527 2005-01-20  Jackson Harper  <jackson@ximian.com>
18528
18529         * XplatUIStructs.cs: More misc keys
18530         * X11Keyboard.cs: Ignore some control keys.
18531
18532 2005-01-20  Jackson Harper  <jackson@ximian.com>
18533
18534         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18535         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18536
18537 2005-01-19  Peter Bartok  <pbartok@novell.com>
18538
18539         * Control.cs: Un-selecting the control when it is loosing focus
18540
18541 2005-01-19  Jackson Harper  <jackson@ximian.com>
18542
18543         * TreeView.cs: Hook up to the text controls leave event so we can
18544         end editing when the users clicks outside the text box.
18545         
18546 2005-01-19  Jackson Harper  <jackson@ximian.com>
18547
18548         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18549         get set in the conversion array.
18550
18551 2005-01-19  Peter Bartok  <pbartok@novell.com>
18552
18553         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18554           focus is properly set
18555         * Button.cs:
18556           - Added missing attributes
18557           - removed styles, those are already set in the base class
18558         * ButtonBase.cs:
18559           - Added missing attributes
18560           - Added clip window styles
18561         * CheckBox.cs: Added missing attributes
18562         * CommonDialog.cs:
18563           - FormParentWindow.CreateParams: Added required clip styles
18564         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18565           also filters modifier keys
18566         * MessageBox.cs:
18567           - Added assignment of Accept and Cancel button to enable Enter
18568             and Esc keys in MessageBox dialogs
18569           - FormParentWindow.CreateParams: Added required clip styles
18570         * RadioButton.cs: Added missing attributes
18571         * TextControl.cs: No longer draws selection if control does not
18572           have focus
18573         * TextBoxBase.cs:
18574           - Now draws simple rectangle around test area to make it obvious
18575             there's a control. This is a hack until we properly support borders
18576           - A few simple fixes to support selections better, now erases selected
18577             text when typing, and resets selection when using movement keys
18578
18579 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18580
18581         * UpDownBase.cs: Added some new properties.
18582
18583         * DomainUpDown.cs: Implement a lot to get my test working.
18584
18585 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18586
18587         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18588
18589 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18590
18591         * OSXStructs (WindowAttributes): Fixed csc complaints
18592
18593 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18594
18595         * XplayUIOSX.cs:
18596           OSXStructs.cs: Initial refactor to move enums and consts into
18597           OSXStructs and use them in the driver for greater readability.
18598
18599 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18600
18601         * XplatUIOSX.cs: Initial support for Standard Cursors.
18602         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18603
18604 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18605
18606         * ComboBox.cs: ability to change style when the ctrl is already
18607         created, missing methods and events, bug fixes, signature fixes
18608
18609 2005-01-19  Peter Bartok  <pbartok@novell.com>
18610
18611         * Cursors.cs (ctor): Added ctor to fix signature
18612
18613 2005-01-18  Peter Bartok  <pbartok@novell.com>
18614
18615         * Button.cs: Implemented DoubleClick event
18616         * ButtonBase.cs:
18617           - Fixed keyboard handling to behave like MS, where the press of
18618             Spacebar is equivalent to a mousedown, and the key release is
18619             equivalent to mouseup. Now a spacebar push will give the same
18620             visual feedback like a mouse click.
18621           - Added missing attributes
18622           - Added ImeModeChanged event
18623           - Added support for generating DoubleClick event for derived classes
18624         * CheckBox.cs:
18625           - Implemented DoubleClick event
18626           - Added missing attributes
18627         * CommonDialog.cs: Added missing attribute
18628         * ContextMenu.cs: Added missing attributes
18629         * RadioButton.cs:
18630           - AutoChecked buttons do not allow to be unselected when clicked
18631             (otherwise we might end up with no selected buttons in a group)
18632           - Added missing attributes
18633           - Implemented DoubleClickEvent
18634         * ThreadExceptionDialog.cs: Enabled TextBox code
18635
18636 2005-01-18  Peter Bartok  <pbartok@novell.com>
18637
18638         * Form.cs: Removed debug output
18639         * Button.cs: Added support for DoubleClick method
18640
18641 2005-01-18  Peter Bartok  <pbartok@novell.com>
18642
18643         * Form.cs:
18644           - Added method to parent window that allows triggering size
18645             calculations when a menu is added/removed
18646           - set_Menu: Cleaned up mess from early days of Form and Control,
18647             now properly triggers a recalc when a menu is added/removed
18648           - Added case to select form itself as focused form if no child
18649             controls exist
18650           - Added PerformLayout call when showing dialog, to ensure properly
18651             placed controls
18652         * Control.cs:
18653           - Select(): Made internal so Form can access it
18654           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18655             status
18656         * Application.cs (Run): Removed hack and calls PerformLayout instead
18657           to trigger calculation when Form becomes visible
18658
18659 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18660
18661         * ComboBox.cs: fixes for ownerdraw
18662
18663 2005-01-18  Peter Bartok  <pbartok@novell.com>
18664
18665         * TextControl.cs:
18666           - Sentinel is no longer static, each Document gets it's own, this
18667             avoids locking or alternatively overwrite problems when more
18668             than one text control is used simultaneously.
18669           - Switched to use Hilight and HilightText brushes for text selection
18670
18671         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18672
18673 2005-01-18  Peter Bartok  <pbartok@novell.com>
18674
18675         * Control.cs:
18676           - Hooked up the following events:
18677                 o ControlAdded
18678                 o ControlRemoved
18679                 o HandleDestroyed
18680                 o ImeModeChanged
18681                 o ParentChanged
18682                 o TabStopChanged
18683                 o Invalidated
18684                 o SystemColorsChanged
18685                 o ParentFontChanged
18686                 o Move
18687           - Removed debug output
18688           - Added a call to the current theme's ResetDefaults when a color change
18689             is detected
18690         * Form.cs: Now setting the proper ImeMode
18691         * Theme.cs: Defined a method to force recreation of cached resources
18692           and rereading of system defaults (ResetDefaults())
18693         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18694
18695 2005-01-17  Peter Bartok  <pbartok@novell.com>
18696
18697         * Control.cs: Added missing attributes
18698
18699 2005-01-17  Jackson Harper  <jackson@ximian.com>
18700
18701         * TreeNode.cs: Implement editing. Add missing properties selected
18702         and visible.
18703         * TreeView.cs: Implement node editing. Also some fixes to use
18704         Invalidate (invalid area) instead of Refresh when selecting.
18705
18706 2005-01-17  Peter Bartok  <pbartok@novell.com>
18707
18708         * Control.cs:
18709           - Implemented InvokeGotFocus() method
18710           - Implemented InvokeLostFocus() method
18711           - Implemented InvokePaint() method
18712           - Implemented InvokePaintBackground() method
18713           - Implemented InvokeClick() method
18714           - Implemented FindForm() method
18715           - Implemented RectangleToClient() method
18716           - Implemented ClientToRectangle() method
18717           - Implemented ResetBackColor() method
18718           - Implemented ResetCursor() method
18719           - Implemented ResetFont() method
18720           - Implemented ResteForeColor() method
18721           - Implemented ResetImeMode() method
18722           - Implemented ResetLeftToRight() method
18723           - Implemented ResetText() method
18724           - Implemented Scale() methods
18725           - Implemented ScaleCore() method
18726           - Implemented Update() method
18727           - Removed unused variables
18728           - Stubbed AccessibilityNotifyClients and
18729             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18730             with those yet)
18731           - Now setting proper default for RightToLeft property
18732           - Fixed bug in SetClientSizeCore that would cause windows to get
18733             really big
18734           - Now sending Click/DoubleClick events
18735           - Now selecting controls when left mouse button is clicked on
18736             selectable control
18737         * AccessibleEvents.cs: Added
18738         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18739         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18740         * XplatUIWin32.cs: Implemented UpdateWindow() method
18741         * XplatUIX11.cs: Implemented UpdateWindow() method
18742         * Form.cs: Removed stray semicolon causing CS0162 warning
18743         * ThemeWin32Classic.cs: Fixed unused variable warnings
18744         * ScrollableControl.cs: Now calls base method for ScaleCore
18745         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18746           style to avoid interference with internal click handler (which is
18747           different than standard Control click handling)
18748         * RadioButton.cs:
18749           - Now unchecks all sibling radio buttons when control is
18750             selected (Fixes #68756)
18751           - Removed internal tabstop variable, using the one inherited from
18752             Control
18753
18754 2005-01-17  Jackson Harper  <jackson@ximian.com>
18755
18756         * NavigateEventArgs.cs: Fix base type.
18757         * LinkLabel.cs: Sig fix
18758         
18759 2005-01-17  Jackson Harper  <jackson@ximian.com>
18760
18761         * TreeView.cs: Only invalidate the effected nodes bounds when
18762         selecting nodes.
18763
18764 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18765
18766         * XplatUIWin32.cs: fixes Win32 marshaling
18767         * XplatUIX11.cs: fixes method signature
18768
18769 2005-01-17  Peter Bartok  <pbartok@novell.com>
18770
18771         * XplatUIX11.cs: Clean up resources when we no longer need them
18772
18773 2005-01-17  Peter Bartok  <pbartok@novell.com>
18774
18775         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18776           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18777           and DestroyCursor() methods.
18778         * Cursor.cs: Partially implemented, now supports standard cursors;
18779           still contains some debug code
18780         * Cursors.cs: Implemented class
18781         * Control.cs:
18782           - WndProc(): Added handling of WM_SETCURSOR message, setting the
18783             appropriate cursor
18784           - Implemented Cursor property
18785           - Replaced break; with return; more straightforwar and possibly
18786             faster
18787           - Now properly setting the result for WM_HELP
18788         * X11Structs.cs: Added CursorFontShape enum
18789         * XplatUIStructs.cs:
18790           - Added StdCursor enum (to support DefineStdCursor() method)
18791           - Added HitTest enum (to support sending WM_SETCURSOR message)
18792         * XplatUIX11.cs:
18793           - Now sends the WM_SETCURSOR message
18794           - Implemented new cursor methods
18795         * XplatUIOSX.cs: Stubbed new cursor methods
18796         * XplatUIWin32.cs:
18797           - Implemented new cursor methods
18798           - Added GetSystemMetrics function and associated enumeration
18799
18800 2005-01-15  Peter Bartok  <pbartok@novell.com>
18801
18802         * Control.cs:
18803           - WndProc(): Now handles EnableNotifyMessage
18804           - SelectNextControl(): Fixed bug where if no child or sibling
18805             controls exist we looped endlessly
18806
18807 2005-01-14  Jackson Harper  <jackson@ximian.com>
18808
18809         * TreeView.cs: Recalculate the tab pages when a new one is added
18810         so that the proper bounding rects are created.
18811
18812 2005-01-14  Jackson Harper  <jackson@ximian.com>
18813
18814         * TreeView.cs: Draw a gray box instead of a grip in the lower
18815         right hand corner when there are both horizontal and vertical
18816         scroll bars.
18817
18818 2005-01-14  Jackson Harper  <jackson@ximian.com>
18819
18820         * Control.cs: When erasing backgrounds use FromHwnd instead of
18821         FromHdc when there is a NULL wparam. This occurs on the X driver.
18822         * XplatUIX11.cs: Set the wparam to NULL.
18823
18824 2005-01-13  Jackson Harper  <jackson@ximian.com>
18825
18826         * PictureBox.cs: Implement missing methods (except ToString, need
18827         to test that on windows) and events. When visibility is changed we
18828         need to redraw the image because the buffers are killed. When size
18829         is changed refresh if the sizemode needs it.
18830
18831 2005-01-13  Peter Bartok  <pbartok@novell.com>
18832
18833         * Control.cs (SelectNextControl): Was using wrong method to select
18834           a control
18835
18836 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18837
18838         * ComboBox.cs: fixes dropstyle
18839
18840 2005-01-13  Peter Bartok  <pbartok@novell.com>
18841
18842         * Form.cs:
18843           - Implemented Select() override
18844           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
18845           - Now sets keyboard focus on startup
18846         * Control.cs (SelectNextControl): Now properly handles directed=true
18847         * TextBoxBase.cs:
18848           - WndProc: Now passes tab key on to base if AcceptTabChar=false
18849           - Added (really bad) focus rectangle (mostly for testing)
18850         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
18851           to enforce redraw on focus changes
18852         * ContainerControl.cs:
18853           - Fixed detection of Shift-Tab key presses
18854           - Fixed traversal with arrow keys
18855         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
18856           gonna keep this or if it's complete yet
18857         
18858 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18859
18860         * ComboBox.cs: missing properties, fixes
18861
18862 2005-01-13  Peter Bartok  <pbartok@novell.com>
18863
18864         * Panel.cs (ctor): Setting Selectable window style to off
18865         * Splitter.cs (ctor): Setting Selectable window style to off
18866         * GroupBox.cs (ctor): Setting Selectable window style to off
18867         * Label.cs (ctor): Setting Selectable window style to off
18868
18869 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
18870
18871         * UpDownBase.cs (InitTimer): If the timer has been already
18872         created, enable it.
18873
18874         Use a TextBox instead of a Label.
18875
18876 2005-01-12  Jackson Harper  <jackson@ximian.com>
18877
18878         * TreeView.cs: Refresh the tree after sorting the nodes. Always
18879         draw the connecting node lines (when ShowLines is true).
18880         * TreeNode.cs: The nodes index can now be updated. This is used
18881         when a node collection is sorted.
18882         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
18883         insert or an existing unsorted node collection can be sorted.
18884         
18885 2005-01-12  Peter Bartok  <pbartok@novell.com>
18886
18887         * ContainerControl.cs: Implemented ProcessDialogKeys()
18888
18889 2005-01-12  Peter Bartok  <pbartok@novell.com>
18890
18891         * Control.cs:
18892           - Implemented SelectNextControl() method
18893           - Several focus related bug fixes
18894           - Fixed Docking calculations to match MS documentation and
18895             behaviour
18896
18897 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
18898
18899         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
18900         bug fixes
18901
18902 2005-01-12  Peter Bartok  <pbartok@novell.com>
18903
18904         * Control.cs:
18905           - Fixed broken Contains() method
18906           - Implemented GetNextControl() method. Finally. This is the pre-
18907             requisite for focus handling.
18908
18909 2005-01-12  Peter Bartok  <pbartok@novell.com>
18910
18911         * OSXStrucs.cs: Added
18912
18913 2005-01-12  Peter Bartok  <pbartok@novell.com>
18914
18915         * XplatUIWin32.cs:
18916           - Removed PeekMessageFlags
18917           - Implemented SetWindowStyle() method
18918         * XplatUIStructs.cs: Added PeekMessageFlags
18919         * X11Structs: Added missing border_width field to XWindowChanges struct
18920         * XplatUIX11.cs:
18921           - PeekMessage: Now throws exception if flags which are not yet
18922             supported are passed
18923           - Implemented SetWindowStyle() method
18924           - Fixed SetZOrder to handle AfterHwnd properly
18925         * XplatUI.cs: Added SetWindowStyle() method
18926         * XplatUIDriver.cs: Added SetWindowStyle() abstract
18927         * Control.cs:
18928           - Implemented UpdateStyles() method
18929           - Implemented UpdateZOrder() method
18930         * XplatUIOSX.cs: Added SetWindowStyle() stub
18931
18932 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
18933
18934         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
18935         button mouse).
18936
18937
18938 2005-01-11  Jackson Harper  <jackson@ximian.com>
18939
18940         * TreeView.cs: Still need to draw lines to siblings even if out of
18941         the current node is out of the clip.
18942
18943 2005-01-11  Jackson Harper  <jackson@ximian.com>
18944
18945         * TreeView.cs: When setting the hbar/vbar/grip position use
18946         SetBounds so that perform layout is only called once. Also suspend
18947         and resume layout so layout is only done once for all controls.
18948         - Removed some debug fluff
18949         * SizeGrip.cs: Call base implmentation in overriding methods.
18950         - When visibility is changed the drawing buffers are killed so we
18951         need to redraw.
18952
18953 2005-01-11  Jackson Harper  <jackson@ximian.com>
18954
18955         * TreeView.cs: Calculate the open node count while drawing. This
18956         saves us an entire tree traversal for every paint operation. Use
18957         a member var for the open node count so less vars are passed around.
18958
18959 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
18960
18961         * MonthCalendar.cs:
18962         - fixed selection to use mousemove, not mouse polling on timer
18963         * ThemeWin32Classic.cs
18964         - removed redundant unused variable "no_more_content"
18965         
18966 2005-01-11  Peter Bartok  <pbartok@novell.com>
18967
18968         * XplatUIX11.cs (DoEvents): Needs to return when no more events
18969           are pending, so it now calls PeekMessage instead of GetMessage;
18970           implemented a incomplete version of PeekMessage
18971         
18972 2005-01-11  Peter Bartok  <pbartok@novell.com>
18973
18974         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
18975           I18n issues
18976         * TextBoxBase.cs: Added sending of TextChanged event
18977
18978 2005-01-10  Jackson Harper  <jackson@ximian.com>
18979
18980         * TreeView.cs: Try not to draw outside the clipping rectangle on
18981         each node element.
18982
18983 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
18984
18985         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
18986
18987 2005-01-10  Jackson Harper  <jackson@ximian.com>
18988
18989         * TreeView.cs:
18990         - Implement fast scrolling. Now only the newly
18991         exposed nodes are drawn and the old image is moved using the
18992         XplatUI::ScrollWindow method.
18993         - Factor in height of nodes when calculating whether or not the
18994         node is in the clipping rect.
18995
18996 2005-01-10  Jackson Harper  <jackson@ximian.com>
18997
18998         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
18999
19000 2005-01-10  Peter Bartok  <pbartok@novell.com>
19001
19002         * Application.cs: Added temporary hack to resolve all our resize
19003           required issues on startup. This will get fixed properly at
19004           some point in the future
19005
19006 2005-01-10  Jackson Harper  <jackson@ximian.com>
19007
19008         * SizeGrip.cs: New internal class that is used as a sizing
19009         grip control...hence the name.
19010
19011 2005-01-10  Peter Bartok  <pbartok@novell.com>
19012
19013         * Control.cs: Implemented proper TabIndex handling, now assigning
19014           a tabindex when a control is added to a container
19015         * GroupBox.cs (ctor): Now sets the Container style bit, required
19016           for Control.GetNextControl()
19017
19018 2005-01-09  Jackson Harper  <jackson@ximian.com>
19019
19020         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19021
19022 2005-01-09  Peter Bartok <pbartok@novell.com>
19023
19024         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19025           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19026           an overload for ScrollWindow to allow only scrolling a rectangle
19027
19028 2005-01-09  Peter Bartok <pbartok@novell.com>
19029
19030         * Form.cs:
19031           - Implemented SetDesktopBounds method
19032           - Implemented SetDesktopLocation method
19033
19034 2005-01-08  Jackson Harper  <jackson@ximian.com>
19035
19036         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19037         the node count has changed, this removes to VScroll::Refresh calls
19038         when drawing.
19039
19040 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19041
19042         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19043
19044 2005-01-07  Jackson Harper  <jackson@ximian.com>
19045
19046         * TreeNode.cs: Just update the single node when it is
19047         checked. Don't refresh after toggling, the Expand/Collapse already
19048         handles this.
19049         * TreeView.cs: Respect clipping a little more when drawing. Try
19050         not to redraw things that don't need to be redrawn. Just hide the
19051         scrollbars when they are no longer needed instead of removing
19052         them, so they don't have to be created again and again.
19053         
19054 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19055
19056         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19057         coordinates to window space to place the caret properly, FIXED.
19058         Implement GetWindowState & SetWindowState
19059
19060 2005-01-06  Peter Bartok <pbartok@novell.com>
19061
19062         * Form.cs:
19063           - Implemented ClientSize property
19064           - Implemented DesktopBounds property
19065           - Implemented DesktopLocation property
19066           - Implemented IsRestrictedWindow property
19067           - Implemented Size property
19068           - Implemented TopLevel property
19069           - Implemented FormWindowState property
19070         * Control.cs:
19071           - Implemented GetTopLevel() method
19072           - Implemented SetTopLevel() method
19073         * X11Structs.cs (Atom):
19074           - Added AnyPropertyType definition
19075           - Added MapState definiton and updated XWindowAttribute struct
19076         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19077         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19078         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19079         * XplatUIWin32.cs:
19080           - Implemented GetWindowState() and SetWindowState() methods
19081           - Fixed Win32GetWindowLong return type
19082         * XplatUIX11.cs:
19083           - Introduced central function for sending NET_WM messages
19084           - Implemented GetWindowState() and SetWindowState() methods
19085         * TextBoxBase.cs (set_Lines):
19086           - Now uses Foreground color for text added via Text property (Duh!)
19087           - Added code to remember programmatically requested size (fixes
19088             behaviour when Multiline is set after Size)
19089           - Added AutoSize logic
19090
19091 2005-01-06  Jackson Harper  <jackson@ximian.com>
19092
19093         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19094
19095 2005-01-06  Jackson Harper  <jackson@ximian.com>
19096
19097         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19098         set to less then 0.
19099
19100 2005-01-06  Jackson Harper  <jackson@ximian.com>
19101
19102         * ScrollableControl.cs: Lazy init the scrollbars.
19103         
19104 2005-01-06  Jackson Harper  <jackson@ximian.com>
19105
19106         * Theme.cs: Speed up getting pens and solid brushes, by using
19107         their ARGB as a hash instead of tostring and not calling Contains.
19108
19109 2005-01-06  Peter Bartok <pbartok@novell.com>
19110
19111         * Form.cs:
19112           - Implemented OnActivated and OnDeactivate event trigger
19113           - Implemented Activate() method
19114           - Fixed ShowDialog() to activate the form that was active before
19115             the dialog was shown
19116         * XplatUIX11.cs:
19117           - Added global active_window var that tracks the currently active
19118             X11 window
19119           - Now always grabs Property changes from the root window to always
19120             catch changes on the active window property
19121           - Added code to PropertyNotify handler to send Active/Inactive
19122             messages when state changes. This puts X11 and Win32 en par on
19123             WM_ACTIVATE notifications (except for double notifications when
19124             the user clicks away from our modal window to another one of our
19125             windows)
19126
19127 2005-01-05  Jackson Harper  <jackson@ximian.com>
19128
19129         * ImageList.cs: Implment ctor
19130
19131 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19132
19133         * XplatUIOSX.cs: Implement Activate/SetTopmost
19134
19135 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19136
19137         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19138
19139 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19140
19141         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19142
19143 2005-01-05  Peter Bartok <pbartok@novell.com>
19144
19145         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19146           XplatUIOSX.cs: Added GetActive method to return the currently
19147           active window for the application (or null, if none is active)
19148         * Form.cs:
19149           - Implemented ActiveForm
19150           - Commented out owner assignment for modal dialogs (causes problems
19151             on Win32, since the owner will be disabled)
19152           - Reworked some Active/Focus handling (still incomplete)
19153         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19154           (causes problems on Win32, since the owner will be disabled)
19155         * IWin32Window: Added ComVisible attribute
19156
19157 2005-01-05  Peter Bartok <pbartok@novell.com>
19158
19159         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19160           required XplatUI functions.
19161
19162 2005-01-05  Peter Bartok <pbartok@novell.com>
19163
19164         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19165           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19166           to implement focus and activation handling; still incomplete and
19167           with debug output
19168
19169 2005-01-04  Peter Bartok <pbartok@novell.com>
19170
19171         * TextBoxBase.cs: Changed access level for Document property to
19172           match switch to internal for TextControl
19173
19174 2005-01-04  Peter Bartok <pbartok@novell.com>
19175
19176         * AccessibleObject: Added ComVisible attribute
19177
19178 2005-01-04  Jackson Harper  <jackson@ximian.com>
19179
19180         * X11Keyboard.cs: Remove unneeded var.
19181
19182 2005-01-04  Jackson Harper  <jackson@ximian.com>
19183
19184         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19185         but PAINT.
19186         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19187         ClientMessage. This makes apps exit cleanly (more often).
19188         
19189 2005-01-04  Jackson Harper  <jackson@ximian.com>
19190
19191         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19192         handling focus, return correct colors and fonts,
19193         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19194         handle selection, horizontal scrolling, and mouse interaction.
19195
19196 2005-01-04  Peter Bartok <pbartok@novell.com>
19197
19198         * ICommandExecutor.cs: Added
19199         * IDataGridColumnStyleEditingNotificationService.cs: Added
19200         * IFeatureSupport.cs: Added
19201         * IFileReaderService.cs: Added
19202         * IDataObject.cs: Added ComVisible attribute
19203         * AmbientProperties.cs: Added
19204         * BaseCollection.cs: Added missing attributes
19205         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19206         * BaseCollection.cs: Added missing attributes
19207         * Binding.cs: Added TypeConverter attribute
19208         * BindingContext.cs: Added DefaultEvent attribute
19209         * BindingsCollection.cs: Added DefaultEvent attribute
19210         * Button.cs: Added DefaultValue attribute
19211         * DragEventArgs.cs: Added ComVisible attribute
19212         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19213         * KeyEventArgs.cs: Added ComVisible attribute
19214         * KeyPressEventArgs.cs: Added ComVisible attribute
19215         * MouseEventArgs.cs: Added ComVisible attribute
19216         * NavigateEventArgs.cs: Added
19217         * NavigateEventHandler.cs: Added
19218         * FeatureSupport.cs: Added
19219         * OSFeature.cs: Added
19220         * Theme.cs: Added abstract Version property to support OSFeature
19221         * ThemeWin32Classic.cs: Added Version property to
19222           support OSFeature.Themes
19223         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19224           the proper styles to avoid background drawing are set, also doesn't
19225           match MS signature
19226         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19227         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19228         * ScrollEventArgs.cs: Added ComVisible attribute
19229         * SplitterEventArgs.cs: Added ComVisible attribute
19230         * AccessibleSelection.cs: Added Flags attribute
19231         * Appearance.cs: Added ComVisible attribute
19232         * Border3DSide.cs: Added ComVisible attribute
19233         * Border3DStyle.cs: Added ComVisible attribute
19234         * BorderStyle.cs: Added ComVisible attribute
19235         * DragAction.cs: Added ComVisible attribute
19236         * ErrorBlinkStyle.cs: Added
19237         * ScrollEventType.cs: Added ComVisible attribute
19238         * AnchorStyles.cs: Added Editor attribute
19239         * DockStyle.cs: Added Editor attribute
19240         * HorizontalAlignment.cs: Added ComVisible attribute
19241         * HelpEventArgs.cs: Added ComVisible attribute
19242         * PaintEventArgs.cs: Added IDisposable
19243
19244 2005-01-04  Peter Bartok <pbartok@novell.com>
19245
19246         * TextControl.cs: Switched Line, LineTag and Document classes to
19247           internal
19248
19249 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19250
19251         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19252         Simple mode, fixes, IntegralHeight, etc.
19253
19254 2005-01-04  Peter Bartok <pbartok@novell.com>
19255
19256         * TextBoxBase.cs: Using proper font variable now
19257
19258 2005-01-04  Peter Bartok <pbartok@novell.com>
19259
19260         * Form.cs (ShowDialog): Set parent to owner, if provided
19261         * GroupBox.cs: Removed unused vars
19262         * TextControl.cs:
19263           - Added GetHashCode() for Document and LineTag classes
19264           - Removed unused variables
19265           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19266             to allow translation between continuous char position and line/pos
19267         * CheckBox.cs: Removed vars that are provided by base class
19268         * RadioButton.cs: Removed vars that are provided by base class, added
19269           new keyword where required
19270         * LinkLabel.cs: Added new keyword where required
19271         * Control.cs (WndProc): Removed unused variable
19272         * TextBoxBase.cs:
19273           - Finished SelectionLength property
19274           - Implemented SelectionStart property
19275           - Implemented Text property
19276           - Removed unused vars
19277         * MessageBox.cs: Added new keyword where required
19278         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19279           WndProc signature
19280         * MenuAPI.cs: Added new keyword where required
19281         * ButtonBase.cs: Removed vars that are provided by base class, added
19282           new keyword where required
19283         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19284           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19285           into this)
19286         * Application.cs (Run): Now triggers the ThreadExit event
19287         * CommonDialog.cs: Added new keyword where required; now properly sets
19288           parent (owner) for dialog
19289         * XplatUIX11.cs: Commented out unused vars
19290         * StatusBar.cs: Fixed signature for Text property
19291         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19292
19293 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19294
19295         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19296         TrackBar.cs, MonthCalendar.cs: remove unused vars
19297
19298 2005-01-03  Jackson Harper  <jackson@ximian.com>
19299
19300         * ThemeWin32Classic.cs:
19301         * X11Keyboard.cs: Remove unused vars.
19302
19303 2005-01-03  Peter Bartok  <pbartok@novell.com>
19304
19305         * TextBox.cs:
19306           - set_Text: Tied into TextControl
19307           - set_TextAlignment: Tied into TextControl
19308         * TextControl.cs:
19309           - Added alignment properties and implemented alignment handling
19310             and drawing (still has a bug, not generating proper expose events)
19311           - Added new Line() constructor to allow passing the line alignment
19312           - Fixed selection setting, properly handling end<start now
19313           - Added aligment considerations to RecalculateDocument()
19314         * TextBoxBase.cs:
19315           - Now properly enforces control height for single line controls
19316           - Added support for CharacterCasing
19317           - Added IsInputKey override
19318           - Fixed Keys.Enter logic
19319           - Added SetBoundsCore override
19320           - Fixed mouse selection handling
19321
19322 2005-01-03  Jackson Harper  <jackson@ximian.com>
19323
19324         * TreeView.cs:
19325           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19326           - Checkboxes are always aligned to the bottom of the node,
19327           regardless of item height.
19328           - Use the node bounds to draw the text so we can center it when
19329           the item height is greater then the font height.
19330           - Node::Bounds are only the text part of the node.
19331         * TreeNode.cs: New method to combine collapsing and unchecking all
19332           nodes recursively.
19333
19334 2005-01-02  Jackson Harper  <jackson@ximian.com>
19335
19336         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19337         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19338         tree when a check is changed. TODO: Only refresh the checked node.
19339
19340 2004-12-30  Jackson Harper  <jackson@ximian.com>
19341
19342         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19343         * TreeNode.cs: When collapsing make sure to never collapse the
19344         root node.
19345
19346 2004-12-29  Jackson Harper  <jackson@ximian.com>
19347
19348         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19349         
19350 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19351
19352         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19353
19354 2004-12-28  Peter Bartok  <pbartok@novell.com>
19355
19356         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19357           not yet assigned
19358
19359 2004-12-28  Peter Bartok  <pbartok@novell.com>
19360
19361         * Control.cs (WndProc): Added WM_HELP handler, now generates
19362           HelpRequested event
19363         * Form.cs: Added HelpButton property and required support code
19364         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19365
19366 2004-12-28  Peter Bartok  <pbartok@novell.com>
19367
19368         * CommonDialog.cs:
19369           - Made DialogForm.owner variable internal
19370           - Added check to ensure owner form is set before setting
19371             owner properties in CreateParams
19372
19373 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19374
19375         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19376           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19377           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19378           system to support borderless/titleless windows (implements menus).
19379           Fix GetWindowPos.  Implement initial background color support for
19380           views.
19381
19382 2004-12-28  Peter Bartok  <pbartok@novell.com>
19383
19384         * Form.cs (get_CreateParams): Make sure we have an owner before using
19385           the owner variable. Implement proper default if no owner exists
19386
19387 2004-12-28  Peter Bartok  <pbartok@novell.com>
19388
19389         * In preparation for making Managed.Windows.Forms the default build target
19390           for System.Windows.Forms, the following stubbed files were added.
19391           Dialogs are currently being implemented by contributors and are only
19392           short-term place holders.
19393         * ColorDialog.cs: Initial check-in (minmal stub)
19394         * DataGrid.cs: Initial check-in (minimal stub)
19395         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19396         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19397         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19398         * FontDialog.cs: Initial check-in (minimal stub)
19399         * FileDialog.cs: Initial check-in (minimal stub)
19400         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19401         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19402         * OpenFileDialog: Initial check-in (minimal stub)
19403         * IComponentEditorPageSite.cs: Initial check-in
19404         * Splitter.cs: Initial check-in (for Jackson)
19405         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19406         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19407         * TextBox.cs: Initial check-in; still needs some wiring to
19408           TextControl backend
19409         * Form.cs: Implemented ControlBox property
19410         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19411         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19412         * TextControl.cs: Added selection functionality; added todo header
19413         * TextBoxBase.cs:
19414           - Implemented Lines property
19415           - Implemented TextHeight property
19416           - Implemented SelectedText property
19417           - Implemented SelectionLength property
19418           - Implemented SelectAll method
19419           - Implemented ToString method
19420           - Removed and cleaned up some debug code
19421           - Implemented (still buggy) mouse text selection
19422
19423 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19424
19425         * ComboBox.cs: Complete DropDownList implementation, fixes.
19426
19427 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19428
19429         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19430         * ComboBoxStyle.cs: ComboBoxStyle enum
19431         * ComboBox.cs: Initial work on ComboBox control
19432
19433 2004-12-21  Peter Bartok  <pbartok@novell.com>
19434
19435         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19436           forward so that anything that creates a window gets the default,
19437           also no longer uses Visible property in CreateParams to avoid
19438           walking up the parent chain and possibly get the wrong visible
19439           status. Fixed IsVisible to no longer walk up to the parent.
19440
19441 2004-12-21  Peter Bartok  <pbartok@novell.com>
19442
19443         * Form.cs (ShowDialog): Unset modality for the proper window
19444  
19445 2004-12-20  Peter Bartok  <pbartok@novell.com>
19446
19447         * CommonDialog.cs: Initial check-in
19448
19449 2004-12-20  Peter Bartok  <pbartok@novell.com>
19450
19451         * Control.cs (Visible): Now uses the parent window instead of the
19452           client area window for the property
19453
19454         * Form.cs
19455           - ShowDialog(): Now uses the proper window for modality
19456           - The default visibility state for the form parent is now false. This
19457             will prevent the user from seeing all the changes to the form and
19458             its controls before the application hits Application.Run()
19459           - Removed some stale commented out code
19460
19461         * NativeWindow.cs:
19462           - Added FindWindow() method to have a method to check for existence
19463             of a window handle
19464           - Added ability to override default exception handling (for example
19465             when debugging with VS.Net; to do this the ExternalExceptionHandler
19466             define must be set
19467           - Removed some useless debug output
19468
19469         * XplatUIX11.cs:
19470           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19471             not working as expected
19472           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19473             property to allow switching back to the modal window if focus is
19474             given to another one of our windows (Application Modal)
19475           - Now only sets override_redirect if we create a window
19476             without WS_CAPTION
19477           - Moved EventMask selection before mapping of newly created window
19478             so we can catch the map event as well
19479           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19480           - Added various Atom related DllImports
19481           - Implemented Exit() method
19482           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19483             in the CreateParams
19484
19485         * MessageBox.cs: Now properly deals with the FormParent window by
19486           providing an override the FormParent CreateParams property to
19487           set as POPUP instead of OVERLAPPED window.
19488
19489 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19490
19491         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19492         Minor code cleanup.
19493
19494 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19495         
19496         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19497
19498 2004-12-18  Peter Bartok  <pbartok@novell.com>
19499
19500         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19501           implementing SetModal() method
19502
19503 2004-12-18  Peter Bartok  <pbartok@novell.com>
19504
19505         * X11Structs.cs (XGCValues): Fixed type of function element
19506         * XplatUI.cs: Added ScrollWindow() method
19507         * XplatUIDriver.cs: Added ScrollWindow() abstract
19508         * XplatUIWin32.cs: Implemented ScrollWindow() method
19509         * XplatUIX11.cs: Implemented ScrollWindow() method
19510         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19511
19512 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19513
19514         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19515         Some more keyboard support (INCOMPLETE)
19516
19517 2004-12-17  Peter Bartok  <pbartok@novell.com>
19518
19519         * TextControl.cs:
19520         - Added color attribute to line tags.
19521         - Added color argument to all functions dealing with tags
19522         - Added color argument support to various functions
19523         - Fixed miss-calculation of baseline/shift in certain circumstances
19524
19525         * TextBoxBase.cs: Added new color option to test code
19526
19527 2004-12-17  Jackson Harper  <jackson@ximian.com>
19528
19529         * TreeNode.cs:
19530         * MonthCalendar.cs: Signature fixes
19531
19532 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19533
19534         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19535         keyboard event moved it.  Create a new graphics context for each paint resolves this
19536
19537 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19538
19539         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19540         Make caret exist and go blink blink.  Initial keyboard support.
19541         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19542         works.
19543
19544 2004-12-17  Jackson Harper  <jackson@ximian.com>
19545
19546         * XplatUIStructs.cs: Updated set of virtual keycodes.
19547         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19548
19549 2004-12-17  Jackson Harper  <jackson@ximian.com>
19550
19551         * XplatUIX11.cs: Prune old keyboard code.
19552
19553 2004-12-17  Jackson Harper  <jackson@ximian.com>
19554
19555         * XplatUIX11.cs: When generating mouse wparams get the modifier
19556         keys from the ModifierKeys property.
19557
19558 2004-12-17  Jackson Harper  <jackson@ximian.com>
19559
19560         * X11Keyboard.cs: Send up/down input when generating
19561         messages. Remove some unused vars.
19562
19563 2004-12-17  Jackson Harper  <jackson@ximian.com>
19564
19565         * TabControl.cs:
19566         * TreeView.cs: get rid of warnings.
19567
19568 2004-12-17  Jackson Harper  <jackson@ximian.com>
19569
19570         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19571
19572 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19573
19574         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19575           CheckedListBox.cs: Implementation
19576
19577 2004-12-17  Peter Bartok  <pbartok@novell.com>
19578
19579         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19580
19581 2004-12-16  Peter Bartok  <pbartok@novell.com>
19582
19583         * TextControl.cs:
19584           - InsertCharAtCaret(): Fixed start pos fixup
19585           - CaretLine_get: No longer derives the line from the tag, the tag
19586             could be stale if lines in the document have been added or deleted
19587           - RebalanceAfterDelete(): Fixed bug in balancing code
19588           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19589           - Line.Streamline(): Now can also elminate leading empty tags
19590           - DumpTree(): Added a few more tests and prevented exception on
19591             uninitialized data
19592           - Added Debug section for Combining lines
19593           - Delete(): Now copies all remaining properties of a line
19594           
19595         * TextBoxBase.cs:
19596           - Left mousebutton now sets the caret (and middle button still acts
19597             as formatting tester, which must go away soon)
19598           - Added Debug section for Deleting/Combining lines
19599           - Fixed calculations for UpdateView after Combining lines
19600
19601 2004-12-16  Peter Bartok  <pbartok@novell.com>
19602
19603         * TextControl.cs: Now properly aligns text on a baseline, using the
19604           new XplatUI.GetFontMetrics() method. Simplified several calculations
19605         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19606           defined
19607
19608 2004-12-16  Peter Bartok  <pbartok@novell.com>
19609
19610         * XplatUI.cs: Added GetFontMetrics() method
19611         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19612         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19613           into libgdiplus, our private GetFontMetrics function
19614         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19615         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19616
19617 2004-12-16  Jackson Harper  <jackson@ximain.com>
19618
19619         * XplatUIStruct.cs: Add enum for dead keys
19620         * X11Keyboard.cs: Map and unmap dead keys.
19621
19622 2004-12-16  Jackson Harper  <jackson@ximian.com>
19623
19624         * X11Keyboard.cs: Detect and use the num lock mask.
19625
19626 2004-12-16  Peter Bartok  <pbartok@novell.com>
19627
19628         * Control.cs (CreateGraphics): Added check to make sure the
19629           handle of the window exists before calling Graphics.FromHwnd()
19630
19631 2004-12-16  Peter Bartok  <pbartok@novell.com>
19632
19633         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19634           contains a lot of code that's not supposed to be there for the
19635           real thing, but required for developing/testing the textbox
19636           backend.
19637
19638 2004-12-16  Peter Bartok  <pbartok@novell.com>
19639
19640         * TextControl.cs:
19641         - Fixed Streamline method
19642         - Added FindTag method to Line
19643         - Added DumpTree method for debugging
19644         - Added DecrementLines() method for deleting lines
19645         - Fixed UpdateView to update the cursor to end-of-line on single-line
19646           updates
19647         - Added PositionCaret() method
19648         - Fixed MoveCaret(LineDown) to move into the last line, too
19649         - Added InsertChar overload
19650         - Fixed InsertChar tag offset calculations
19651         - Added DeleteChar() method
19652         - Added Combine() method for folding lines
19653         - Fixed Delete() method, no longer allocates wasted Line object and
19654           now copies all properties when swapping nodes
19655         - Delete() method now updates document line counter
19656
19657 2004-12-15  Jackson Harper  <jackson@ximian.com>
19658
19659         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19660         * X11Keyboard.cs: Expose the currently selected modifier keys
19661         through a property.
19662
19663 2004-12-15  Peter Bartok  <pbartok@novell.com>
19664
19665         * TextControl.cs: Initial check-in. Still incomplete
19666
19667 2004-12-15  Jackson Harper  <jackson@ximian.com>
19668
19669         * TreeNode.cs:
19670         * TreeView.cs: Fix build on csc (second time today ;-))
19671
19672 2004-12-15  Jackson Harper  <jackson@ximian.com>
19673
19674         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19675         is calculated and use this for click testing.
19676         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19677
19678 2004-12-15  Jackson Harper  <jackson@ximian.com>
19679
19680         * TreeView.cs: Pass the nodes image index to the image list when
19681         drawing that image.
19682
19683 2004-12-15  Jackson Harper  <jackson@ximian.com>
19684
19685         * X11Keyboard.cs: Set messages hwnd.
19686         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19687         post_message calls.
19688
19689 2004-12-15  Jackson Harper  <jackson@ximian.com>
19690
19691         * X11Keyboard.cs: Fix to compile with csc.
19692         
19693 2004-12-15  Jackson Harper  <jackson@ximian.com>
19694
19695         * X11Structs.cs: Add key mask values
19696         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19697         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19698         down/up foo into WM_CHAR foo
19699         * KeyboardLayouts.cs: Common keyboard layouts
19700         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19701         post messages into the main queue.
19702
19703 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19704
19705         * Button.cs: implement ProcessMnemonic
19706         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19707           brushes everytime
19708         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19709         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19710
19711 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19712         
19713         * MonthCalendar.cs: Implemented click-hold for next/previous month
19714           and date selection
19715           
19716 2004-12-11  Peter Bartok  <pbartok@novell.com>
19717
19718         * X11Structs.cs:
19719           - Added XKeyboardState (moved from XplatUIX11.cs)
19720           - Added XCreateGC related enums and structures
19721           - Added GXFunction for XSetFunction
19722
19723         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19724
19725         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19726           CaretVisible() calls
19727
19728         * ToolTip.cs: Added code to prevent stealing focus from app windows
19729
19730         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19731           DestroyCaret, SetCaretPos and CaretVisible)
19732
19733         * XplatUIX11.cs:
19734           - Added implementation for caret functions
19735           - Moved hover variables into a struct, to make it a bit easier
19736             on the eyes and to debug
19737           - Removed XKeyboardState (moved to XplatUIX11.cs)
19738           - Moved Keyboard properties into the properties region
19739
19740         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19741           call to get a graphics context for our control
19742
19743         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19744
19745         * TreeView.cs: Fixed bug. No matter what color was set it would always
19746           return SystemColors.Window
19747
19748         * XplatUIWin32.cs: Implemented caret overrides
19749
19750 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19751
19752         * ListBox.cs: fire events, implement missing methods and properties,
19753         sorting.
19754
19755 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19756
19757         * MonthCalendar.cs: invalidation bug fixing
19758         * ThemeWin32Classic.cs: paint fixing
19759
19760 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19761
19762         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19763         prepare the CGContextRef there now.
19764
19765 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19766
19767         * MonthCalendar.cs:
19768           - optimisationL only invalidate areas that have changed
19769         * ThemeWin32Classic.cs:
19770           - only paint parts that intersect with clip_area
19771
19772 2004-12-09  Peter Bartok  <pbartok@novell.com>
19773
19774         * Application.cs: Undid changes from r37004 which cause problems
19775         on X11
19776
19777 2004-12-09  Ravindra  <rkumar@novell.com>
19778
19779         * ToolBar.cs: Added support for displaying ContextMenu
19780         attached to a button on ToolBar.
19781         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
19782         property.
19783
19784 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19785
19786         * Label.cs: autosize works in text change and removes unnecessary
19787         invalidate
19788
19789 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19790
19791         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
19792         remove warnings
19793
19794 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
19795
19796         * XplatUIOSX.cs: Added mouse move/click/grab support
19797         Remove some debugging WriteLines not needed anymore.
19798         Add window resizing/positioning.
19799         Fix visibility on reparenting.
19800
19801 2004-12-08  Peter Bartok  <pbartok@novell.com>
19802
19803         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
19804
19805 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
19806
19807         * XplatUIOSX.cs: Initial checkin
19808         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
19809
19810 2004-12-03  Ravindra <rkumar@novell.com>
19811
19812         * ListView.cs: Added some keybindings and fixed scrolling.
19813         ScrollBars listen to ValueChanged event instead of Scroll
19814         Event. This would let us take care of all changes being
19815         done in the scrollbars' values programmatically or manually.
19816         * ListView.cs (CanMultiselect): Added a check for shift key.
19817         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
19818         * ListViewItem.cs (Clone): Fixed. We need to make a copy
19819         of ListViewSubItemCollection as well.
19820
19821 2004-12-06  Peter Bartok <pbartok@novell.com>
19822
19823         * Control.cs (Parent): Added check and exception to prevent
19824         circular parenting
19825
19826 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
19827
19828         * ListBox.cs: implemented clipping, selection single and multiple,
19829         bug fixing
19830
19831 2004-12-03  Ravindra <rkumar@novell.com>
19832
19833         * ListView.cs (ListView_KeyDown):
19834         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
19835         when CTRL key is pressed.
19836         * ListViewItem.cs (Selected): Fixed setting the property.
19837
19838 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19839
19840         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
19841
19842         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
19843         MinimizeBox, ShowInTaskbar, TopMost properties.
19844
19845         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
19846         will be implemented).
19847
19848 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19849
19850         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
19851
19852         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
19853         tests.
19854         
19855         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
19856         
19857         * TreeView.cs: BackColor is Colors.Window.
19858
19859 2004-12-01  Jackson Harper  <jackson@ximian.com>
19860
19861         * TreeView.cs: When resizing the tree if the user is making it
19862         smaller we don't get expose events, so we need to handle adding
19863         the horizontal scrollbar in the size changed handler as well as
19864         the expose handler.
19865
19866 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
19867
19868         * DrawItemState.cs: fixes wrong enum values
19869
19870 2004-12-01  Jackson Harper  <jackson@ximian.com>
19871
19872         * TreeView.cs: Resize the hbar as well as the vbar on resize.
19873
19874 2004-12-01  Jackson Harper  <jackson@ximian.com>
19875
19876         * NodeLabelEditEventArgs.cs:
19877         * NodeLabelEditEventHandler.cs:
19878         * OpenTreeNodeEnumerator.cs:
19879         * TreeNode.cs:
19880         * TreeNodeCollection.cs:
19881         * TreeView.cs:
19882         * TreeViewAction.cs:
19883         * TreeViewCancelEventArgs.cs:
19884         * TreeViewCancelEventHandler.cs:
19885         * TreeViewEventArgs.cs:
19886         * TreeViewEventHandler.cs: Initial implementation.
19887
19888 2004-12-01  Ravindra <rkumar@novell.com>
19889
19890         * ListView.cs (CalculateListView): Fixed scrolling related
19891         calculations. Also, removed some debug statements from other
19892         places.
19893         * ListViewItem.cs: Changed access to 'selected' instance variable
19894         from private to internal.
19895         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
19896
19897 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
19898
19899         * ThemeWin32Classic.cs: remove cache of brush and pens for
19900         specific controls and use the global system, fixes scrollbutton
19901         bugs (for small sizes, disabled, etc)
19902         
19903         * ScrollBar.cs: does not show the thumb for very small controls
19904         (as MS) and allow smaller buttons that the regular size
19905
19906 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
19907
19908         * UpDownBase.cs: Add abstract methods for the interface.
19909         Add new virtual methods (need to be hooked up to TextEntry when it
19910         exists).
19911         Add override methods for most features.
19912         Computes the size, forces the height of the text entry.
19913
19914         * NumericUpDown.cs: Put here the current testing code.
19915
19916         * Set eol-style property on all files that do not have mixed line
19917         endings, to minimize the future problems.  There are still a few
19918         files with mixed endings, and someone should choose whether they
19919         want to move it or not.
19920
19921 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
19922
19923         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
19924         System.Colors
19925         
19926 2004-11-30  Ravindra <rkumar@novell.com>
19927
19928         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
19929         drawing and replaced use of SystemColors by theme colors.
19930         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
19931         * ListView.cs (ListViewItemCollection.Add): Throw exception when
19932         same ListViewItem is being added more than once.
19933
19934 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
19935
19936         * MonthCalendar.cs:
19937           - ControlStyles love to make the control not flicker
19938           
19939 2004-11-30  Peter Bartok  <pbartok@novell.com>
19940
19941         * CharacterCasing.cs: Added
19942
19943 2004-11-29  Peter Bartok  <pbartok@novell.com>
19944
19945         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
19946           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
19947           I am removing these files as they conflict with already completed
19948           work. While it is fantastic to get contributions to MWF, I
19949           respectfully ask that everyone please coordinate their contributions
19950           through mono-winforms-list or #mono-winforms at this time. We're
19951           explicitly avoiding stubbing and don't want controls that don't have
19952           their basic functionality implemented in svn. Please also see
19953           http://www.mono-project.com/contributing/winforms.html
19954
19955
19956 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
19957
19958         * Application.cs (ModalRun): Don't hang after exit.
19959
19960         * Theme.cs: New TreeViewDefaultSize property.
19961
19962         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
19963         with less hardcoded SystemColors constant.
19964         Implemented TreeViewDefaultSize.
19965
19966         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
19967         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
19968
19969
19970 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
19971
19972         * MonthCalendar.cs:
19973           - Fix NextMonthDate and PrevMonthDate click moving calendar
19974
19975 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
19976
19977         * MonthCalendar.cs:
19978           - Fix usage of ScrollChange Property when scrolling months
19979
19980 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
19981
19982         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
19983          - Fixes menu destroying
19984          - Support adding and removing items on already created menus
19985
19986 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
19987
19988         * MonthCalendar.cs:
19989           - Re-worked all bolded dates handling to match win32
19990         * ThemeWin32Classic.cs:
19991           - Fixed rendering with bolded dates
19992
19993 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
19994
19995         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
19996         - Horizontal scroolbar
19997         - Multicolumn
19998         - Fixes
19999
20000
20001 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20002
20003         * MonthCalendar.cs:
20004           - Fix Usage of MaxSelectionCount from SelectionRange
20005           - Fixed Shift + Cursor Selection
20006           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20007           - Fixed normal cursor selection to be compat with win32
20008           - Fixed Shift + Mouse Click selection
20009
20010 2004-11-24  Peter Bartok <pbartok@novell.com>
20011
20012         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20013         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20014         * XplatUIX11.cs:
20015           - CreatedKeyBoardMsg now updates keystate with Alt key
20016           - Added workaround for timer crash to CheckTimers, Jackson will
20017             develop a proper fix and check in later
20018           - Implemented DispatchMessage
20019           - Removed calling the native window proc from GetMessage (call
20020             now moved to DispatchMessage)
20021
20022         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20023           the keydata (Fixes bug #69831)
20024
20025         * XplatUIWin32.cs:
20026           - (DispatchMessage): Switched to return IntPtr
20027           - Added DllImport for SetFocus
20028
20029 2004-11-24  Ravindra <rkumar@novell.com>
20030
20031         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20032         background drawing.
20033         * ListViewItem.cs: Fixed various properties, calculations
20034         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20035         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20036         and some internal properties. Fixed MouseDown handler and Paint
20037         method.
20038
20039 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20040
20041         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20042
20043 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20044
20045         * ContainerControl.cs: correct accidental check in of local changes
20046
20047 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20048
20049         * ThemeWin32Classic.cs:
20050                 - Fixed Drawing Last month in grid (sometimes not showing)
20051         * MonthCalendar.cs:
20052                 - Fixed title width calculation bug (makeing title small)
20053
20054 2004-11-23  Peter Bartok <pbartok@novell.com>
20055
20056         * XplatUIX11.cs:
20057           - Added generation of WM_MOUSEHOVER event
20058           - Added missing assignment of async_method atom
20059           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20060
20061 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20062
20063         * ThemeWin32Classic.cs:
20064                 - Fixed Drawing of today circle when showtodaycircle not set
20065                 - fixed drawing of first and last month in the grid (gay dates)
20066         * MonthCalendar.cs:
20067                 - Fixed Drawing of today circle
20068                 - Fixed drawing of grady dates
20069                 - Fixed HitTest for today link when ShowToday set to false
20070                 - Fixed DefaultSize to obey ShowToday
20071
20072 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20073
20074         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20075         * System.Windows.Forms/Theme.cs
20076         * MonthCalendar.cs: added for MonthCalendar
20077         * SelectionRange.cs: added for MonthCalendar
20078         * Day.cs: added for MonthCalendar: added for MonthCalendar
20079         * DateRangeEventArgs.cs: added for MonthCalendar
20080         * DateRangeEventHandler.cs: added for MonthCalendar
20081
20082 2004-11-22  Ravindra <rkumar@novell.com>
20083
20084         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20085         property.
20086
20087 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20088
20089         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20090         event handler.
20091         
20092         * NumericUpDown.cs: Added new implementation.
20093         * UpDownBase.cs: Added new implementation.
20094
20095         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20096         implementations.
20097         
20098         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20099         implementations.
20100
20101         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20102         methods.
20103
20104 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20105
20106         * Timer.cs  (Dispose): Should call the base dispose when
20107         overriding.
20108
20109 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20110
20111         * ScrollBar.cs: updates thumb position when max, min or increment
20112         is changed
20113
20114 2004-11-21  Ravindra <rkumar@novell.com>
20115
20116         * ListView.cs: Implemented item selection, activation and
20117         column header style. Fixed properties to do a redraw, if
20118         required. Added support for MouseHover, DoubleClick, KeyDown
20119         and KeyUp event handling and some minor fixes.
20120         * ListViewItem.cs: Fixed constructor.
20121         * ThemeWin32Classic.cs: Improved drawing for ListView.
20122
20123 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20124
20125         * ThemeWin32Classic.cs: initial listbox drawing code
20126         * DrawMode.cs: new enumerator
20127         * ListControl.cs: stubbed class
20128         * ListBox.cs: initial implementation
20129         * Theme.cs: new methods definitions
20130         * SelectionMode.cs: new enumerator
20131
20132 2004-11-17  Peter Bartok  <pbartok@novell.com>
20133
20134         * XplatUIWin32.cs: Added double-click events to the class style
20135         * Control.cs (WndProc):
20136           - Added handling of click-count to MouseDown/ MouseUp events.
20137           - Added handling of middle and right mouse buttons
20138           - Removed old debug code
20139
20140 2004-11-17  Jackson Harper  <jackson@ximian.com>
20141
20142         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20143
20144 2004-11-17  Ravindra <rkumar@novell.com>
20145
20146         * ListView.cs: Added event handling for MouseMove/Up/Down.
20147         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20148         * ThemeWin32Classic.cs: We need to clear the graphics context and
20149         draw column header in a proper state.
20150
20151
20152 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20153
20154         *  Menu.cs: fixes signature
20155
20156 2004-11-16  Peter Bartok  <pbartok@novell.com>
20157
20158         * XplatUIX11.cs (GetMessage): Implemented generation of
20159           double click mouse messages
20160
20161 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20162
20163         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20164         not by menu
20165
20166 2004-11-11  Peter Bartok  <pbartok@novell.com>
20167
20168         * HandleData.cs: Added Visible property
20169         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20170           HandleData
20171         * XplatUIX11.cs: Removed old debug leftovers
20172         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20173         * Control.cs (WndProc): Removed old debug leftovers,
20174           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20175           needed WM_SIZE handling
20176
20177 2004-11-11  Jackson Harper  <jackson@ximian.com>
20178
20179         * OwnerDrawPropertyBag.cs:
20180         * TreeViewImageIndexConverter.cs: Initial implementation
20181
20182 2004-11-10  Jackson Harper  <jackson@ximian.com>
20183
20184         * ThemeWin32Classic.cs:
20185         * TabControl.cs: instead of moving tabs by the slider pos just
20186         start drawing at the tab that is offset by the slider. This way
20187         scrolling always moves by exactly one tab.
20188
20189 2004-11-10  Jackson Harper  <jackson@ximian.com>
20190
20191         * TabControl.cs: You can only scroll left when the slider has
20192         already ben moved right.
20193         
20194 2004-11-10  Jackson Harper  <jackson@ximian.com>
20195
20196         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20197         the clip area.
20198         
20199 2004-11-10  Jackson Harper  <jackson@ximian.com>
20200
20201         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20202         clip area.
20203         
20204 2004-11-09  Jackson Harper  <jackson@ximian.com>
20205
20206         * TabControl.cs (CalcXPos): New helper method so we can determine
20207         the proper place to start drawing vertical tabs.
20208         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20209         
20210 2004-11-09  Jackson Harper  <jackson@ximian.com>
20211
20212         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20213         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20214         and Bottom, left and right are illegal values for this and
20215         multiline is enabled when the alignment is set to left or right.
20216         (DrawTab): Each alignment block should draw the text itself now
20217         because Left requires special love. Also add rendering for Left
20218         aligned tabs.
20219         
20220 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20221
20222         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20223         does not destroy the windows, removes debugging messages
20224
20225 2004-11-09  jba  <jba-mono@optusnet.com.au>
20226
20227         * ThemeWin32Classic.cs
20228         (DrawButtonBase): Fix verticle text rect clipping in windows
20229         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20230         rendering and incorrect text rect clipping
20231         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20232         rendering and incorrect text rect clipping
20233         
20234 2004-11-08  Jackson Harper  <jackson@ximian.com>
20235
20236         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20237         bottom when they are bottom aligned so the bottoms of the tabs get
20238         displayed.
20239         * TabControl.cs (DropRow): Move rows up instead of down when the
20240         tab control is bottom aligned.
20241
20242 2004-11-08 13:59  pbartok
20243
20244         * XplatUIX11.cs:
20245           - Added handling for various window styles
20246           - Added handling for popup windows
20247           - Added SetTopmost handling
20248
20249 2004-11-08 13:55  pbartok
20250
20251         * XplatUIWin32.cs:
20252           - Added argument to SetTopmost method
20253           - Fixed broken ClientToScreen function
20254
20255 2004-11-08 13:53  pbartok
20256
20257         * XplatUIStructs.cs:
20258           - Added missing WS_EX styles
20259
20260 2004-11-08 13:53  pbartok
20261
20262         * XplatUI.cs, XplatUIDriver.cs:
20263           - Added argument to SetTopmost
20264
20265 2004-11-08 13:52  pbartok
20266
20267         * X11Structs.cs:
20268           - Added XSetWindowAttributes structure
20269           - Improved XWindowAttributes structure
20270           - Added SetWindowValuemask enum
20271           - Added window creation arguments enum
20272           - Added gravity enum
20273           - Added Motif hints structure
20274           - Added various Motif flags and enums
20275           - Added PropertyMode enum for property functions
20276
20277 2004-11-08 13:50  pbartok
20278
20279         * Form.cs:
20280           - Fixed arguments for updated SetTopmost method
20281
20282 2004-11-08 13:49  pbartok
20283
20284         * ToolTip.cs:
20285           - Fixed arguments for updated SetTopmost function
20286           - Fixed usage of PointToClient
20287
20288 2004-11-08 13:44  pbartok
20289
20290         * MenuAPI.cs:
20291           - Added Clipping of children and siblings
20292
20293 2004-11-08 13:41  pbartok
20294
20295         * MainMenu.cs:
20296           - Removed SetMenuBarWindow call. We do this in Form.cs
20297
20298 2004-11-08 13:40  jackson
20299
20300         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20301           scrolling jimmi in the correct location with bottom aligned tabs
20302
20303 2004-11-08 13:36  pbartok
20304
20305         * ContainerControl.cs:
20306           - Implemented BindingContext
20307           - Implemented ParentForm
20308
20309 2004-11-08 12:46  jackson
20310
20311         * TabControl.cs: Put bottom rendered tabs in the right location
20312
20313 2004-11-08 07:15  jordi
20314
20315         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20316           removes dead code
20317
20318 2004-11-05 17:30  jackson
20319
20320         * TabControl.cs: When selected tabs are expanded make sure they
20321           don't go beyond the edges of the tab control
20322
20323 2004-11-05 14:57  jackson
20324
20325         * TabControl.cs: Reset show_slider so if the control is resized to
20326           a size where it is no longer needed it's not displayed anymore
20327
20328 2004-11-05 13:16  jackson
20329
20330         * TabControl.cs: Make tab pages non visible when added to the
20331           control
20332
20333 2004-11-05 12:42  jackson
20334
20335         * TabControl.cs: Implement SizeMode.FillToRight
20336
20337 2004-11-05 12:16  jackson
20338
20339         * Control.cs: Do not call CreateHandle if the handle is already
20340           created
20341
20342 2004-11-05 11:46  jackson
20343
20344         * TabControl.cs: Remove superflous call to CalcTabRows
20345
20346 2004-11-05 09:07  jackson
20347
20348         * XplatUIX11.cs: Update for Mono.Posix changes
20349
20350 2004-11-05 07:00  ravindra
20351
20352         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20353           scrolling.
20354
20355 2004-11-04 22:47  jba
20356
20357         * ThemeWin32Classic.cs:
20358           - Fix Button rendering for FlatStyle = Flat or Popup
20359           - Fix RadioButton and CheckBox rendering when Appearance = Button
20360             (normal and flatstyle).
20361           - Correct outer rectangle color when drawing focus rectangle
20362           - Adjust button bounds to be 1 px smaller when focused
20363           - Make button not draw sunken 3d border when pushed (windows compat)
20364           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20365           - Offset the text in RadioButton and Checkbox when being rendered as
20366           a button.
20367           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20368           radiobuttons
20369           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20370           - Fixed disabled text rendering for normally rendered radiobuttons
20371
20372 2004-11-04 10:26  jackson
20373
20374         * TabControl.cs: Recalculate tab rows when resizing
20375
20376 2004-11-04 07:47  jordi
20377
20378         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20379           collection completion, drawing issues, missing features
20380
20381 2004-11-04 05:03  ravindra
20382
20383         * ScrollBar.cs:
20384                 - We need to recalculate the Thumb area when
20385                 LargeChange/maximum/minimum values are changed.
20386           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20387                 than minimum. This is required to handle the case if large_change is
20388                 more than max, and use LargeChange property instead of large_change
20389                 variable.
20390           - We return max+1 when large_change is more than max, like MS does.
20391
20392 2004-11-04 04:29  ravindra
20393
20394         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20395                 - Changed default value signatures (prefixed all with ListView).
20396                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20397                 ListView.
20398           - Fixed calculations for ListViewItem and implemented Clone()
20399           method.
20400
20401 2004-11-04 04:26  ravindra
20402
20403         * Theme.cs, ThemeWin32Classic.cs:
20404                 - Changed default ListView values signatures (prefixed all with
20405                 ListView).
20406           - Fixed default size values for VScrollBar and HScrollBar.
20407                 - Fixed DrawListViewItem method.
20408
20409 2004-11-04 04:05  ravindra
20410
20411         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20412
20413 2004-11-04 04:04  ravindra
20414
20415         * ImageList.cs: Implemented the missing overload for Draw method.
20416
20417 2004-11-03 19:29  jackson
20418
20419         * TabControl.cs: Handle dropping rows on selection properly
20420
20421 2004-11-03 11:59  jackson
20422
20423         * TabControl.cs: remove debug code
20424
20425 2004-11-03 11:52  jackson
20426
20427         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20428           the scrolly widgerywoo
20429
20430 2004-11-02 13:52  jackson
20431
20432         * TabControl.cs: Resize the tab pages and tabs when the tab control
20433           is resized
20434
20435 2004-11-02 13:40  jackson
20436
20437         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20438           selected tab to the bottom
20439
20440 2004-11-02 13:39  jackson
20441
20442         * TabPage.cs: Store the tab pages row
20443
20444 2004-11-02 12:33  jordi
20445
20446         * MenuItem.cs: fixes handle creation
20447
20448 2004-11-02 11:42  jackson
20449
20450         * TabControl.cs: signature fix
20451
20452 2004-11-02 08:56  jackson
20453
20454         * TabControl.cs: Calculate whether the tab is on an edge properly.
20455           Remove top secret debugging code
20456
20457 2004-11-01 19:57  jackson
20458
20459         * TabControl.cs: Add click handling, and proper sizing
20460
20461 2004-11-01 19:47  jackson
20462
20463         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20464           tab controls
20465
20466 2004-11-01 19:39  jackson
20467
20468         * TabPage.cs: add internal property to store the bounds of a tab
20469           page
20470
20471 2004-10-30 04:23  ravindra
20472
20473         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20474           values.
20475
20476 2004-10-30 04:21  ravindra
20477
20478         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20479           fixed calculations.
20480
20481 2004-10-30 03:06  pbartok
20482
20483         * XplatUIX11.cs:
20484           - Removed extension of DllImported libs
20485
20486 2004-10-29 09:55  jordi
20487
20488         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20489           navigation, itemcollection completion, menu fixes
20490
20491 2004-10-27 22:58  pbartok
20492
20493         * XplatUIX11.cs:
20494           - Now throws a nice error message when no X display could be opened
20495
20496 2004-10-26 13:51  jordi
20497
20498         * ListView.cs: removes warning
20499
20500 2004-10-26 03:55  ravindra
20501
20502         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20503           ThemeWin32Classic.cs: Some formatting for my last checkins.
20504
20505 2004-10-26 03:36  ravindra
20506
20507         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20508           control and default values.
20509
20510 2004-10-26 03:35  ravindra
20511
20512         * Theme.cs: Added some default values for ListView control.
20513
20514 2004-10-26 03:33  ravindra
20515
20516         * ToolBar.cs: ToolBar should use the user specified button size, if
20517           there is any. Added a size_specified flag for the same.
20518
20519 2004-10-26 03:33  ravindra
20520
20521         * ColumnHeader.cs: Added some internal members and calculations for
20522           ColumnHeader.
20523
20524 2004-10-26 03:32  ravindra
20525
20526         * ListViewItem.cs: Calculations for ListViewItem.
20527
20528 2004-10-26 03:31  ravindra
20529
20530         * ListView.cs: Added some internal members and calculations for
20531           ListView.
20532
20533 2004-10-22 13:31  jordi
20534
20535         * MenuAPI.cs: speedup menus drawing
20536
20537 2004-10-22 13:16  jackson
20538
20539         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20540           expose event
20541
20542 2004-10-22 11:49  jackson
20543
20544         * Control.cs: oops
20545
20546 2004-10-22 11:41  jackson
20547
20548         * Control.cs: Check to see if the window should have its background
20549           repainted by X when drawing.
20550
20551 2004-10-22 11:31  jackson
20552
20553         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20554           clear is true, this way we do not get flicker from X repainting the
20555           background
20556
20557 2004-10-22 11:28  jackson
20558
20559         * XEventQueue.cs: Queue properly
20560
20561 2004-10-21 09:38  jackson
20562
20563         * XEventQueue.cs: Fix access modifier
20564
20565 2004-10-21 09:36  jackson
20566
20567         * XEventQueue.cs: Don't loose messages
20568
20569 2004-10-21 09:22  jackson
20570
20571         * XEventQueue.cs: Don't loose messages
20572
20573 2004-10-20 04:15  jordi
20574
20575         * BootMode.cs: enum need it by SystemInfo
20576
20577 2004-10-19 21:58  pbartok
20578
20579         * XplatUIWin32.cs:
20580           - Small sanity check
20581
20582 2004-10-19 21:56  pbartok
20583
20584         * Form.cs:
20585           - Added private FormParentWindow class which acts as the container
20586             for our form and as the non-client area where menus are drawn
20587           - Added/Moved required tie-ins to Jordi's menus
20588           - Fixed/Implemented the FormStartPosition functionality
20589
20590 2004-10-19 21:52  pbartok
20591
20592         * Control.cs:
20593           - Removed unneeded locals
20594           - Added code to all size and location properties to understand and
20595             deal with the parent container of Form
20596
20597 2004-10-19 21:33  pbartok
20598
20599         * Application.cs:
20600           - Fixed to deal with new Form subclasses for menus
20601
20602 2004-10-19 17:48  jackson
20603
20604         * XEventQueue.cs: commit correct version of file
20605
20606 2004-10-19 16:50  jackson
20607
20608         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20609
20610 2004-10-19 16:15  jordi
20611
20612         * MenuAPI.cs: MenuBarCalcSize returns the height
20613
20614 2004-10-19 08:31  pbartok
20615
20616         * Control.cs:
20617           - Added missing call to PreProcessMessage before calling OnXXXKey
20618           methods
20619
20620 2004-10-19 00:04  ravindra
20621
20622         * ToolTip.cs: Fixed constructor.
20623
20624 2004-10-18 09:31  jordi
20625
20626         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20627
20628 2004-10-18 09:26  jordi
20629
20630         * MenuItem.cs: fixes MenuItem class signature
20631
20632 2004-10-18 08:56  jordi
20633
20634         * MenuAPI.cs: prevents windows from showing in the taskbar
20635
20636 2004-10-18 00:28  ravindra
20637
20638         * ToolTip.cs: Suppressed a warning message.
20639
20640 2004-10-18 00:27  ravindra
20641
20642         * Control.cs: Default value of visible property must be true.
20643
20644 2004-10-17 23:19  pbartok
20645
20646         * ToolTip.cs:
20647           - Complete implementation
20648
20649 2004-10-17 23:19  pbartok
20650
20651         * XplatUIX11.cs:
20652           - Added EnableWindow method
20653           - Added SetModal stub
20654           - Added generation of WM_ACTIVATE message (still needs testing)
20655           - Added SetTopMost stub
20656           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20657
20658 2004-10-17 23:17  pbartok
20659
20660         * XplatUIWin32.cs:
20661           - Removed VirtualKeys to XplatUIStructs
20662           - Implemented SetTopMost method
20663           - Implemented EnableWindow method
20664           - Bugfix in ScreenToClient()
20665           - Bugfixes in ClientToScreen()
20666
20667 2004-10-17 22:51  pbartok
20668
20669         * XplatUIStructs.cs:
20670           - Added WS_EX styles to WindowStyles enumeration
20671
20672 2004-10-17 22:50  pbartok
20673
20674         * XplatUI.cs, XplatUIDriver.cs:
20675           - Added method for enabling/disabling windows
20676           - Added method for setting window modality
20677           - Added method for setting topmost window
20678
20679 2004-10-17 22:49  pbartok
20680
20681         * ThemeWin32Classic.cs:
20682           - Added ToolTip drawing code
20683
20684 2004-10-17 22:49  pbartok
20685
20686         * Theme.cs:
20687           - Added ToolTip abstracts
20688
20689 2004-10-17 22:47  pbartok
20690
20691         * Form.cs:
20692           - Fixed Form.ControlCollection to handle owner relations
20693           - Added Owner/OwnedForms handling
20694           - Implemented Z-Ordering for owned forms
20695           - Removed unneeded private overload of ShowDialog
20696           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20697             so I hope)
20698           - Fixed Close(), had wrong default
20699           - Added firing of OnLoad event
20700           - Added some commented out debug code for Ownership handling
20701
20702 2004-10-17 22:16  pbartok
20703
20704         * Control.cs:
20705           - Fixed/implemented flat list of controls
20706
20707 2004-10-17 22:14  pbartok
20708
20709         * Application.cs:
20710           - Added code to simulate modal dialogs on Win32
20711
20712 2004-10-17 16:11  jordi
20713
20714         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20715           mouse event
20716
20717 2004-10-17 13:39  jordi
20718
20719         * MenuAPI.cs: menu drawing fixes
20720
20721 2004-10-15 09:10  ravindra
20722
20723         * StructFormat.cs: General Enum.
20724
20725 2004-10-15 09:09  ravindra
20726
20727         * SizeGripStyle.cs: Enum for Form.
20728
20729 2004-10-15 09:08  ravindra
20730
20731         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20732           in Theme for ListView.
20733
20734 2004-10-15 09:06  ravindra
20735
20736         * ColumnHeader.cs: Flushing some formatting changes.
20737
20738 2004-10-15 09:05  ravindra
20739
20740         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20741           style.
20742
20743 2004-10-15 09:03  ravindra
20744
20745         * ListView.cs: Implemented Paint method and fixed coding style.
20746
20747 2004-10-15 07:34  jordi
20748
20749         * MenuAPI.cs: fix for X11
20750
20751 2004-10-15 07:32  ravindra
20752
20753         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20754                 - Renamed Paint() method to Draw() for clarity. Also, moved
20755                 DrawImage() to OnPaint().
20756
20757 2004-10-15 07:25  ravindra
20758
20759         * CheckBox.cs, RadioButton.cs:
20760                 - Removed Redraw (), we get it from ButtonBase.
20761                 - Implemented Paint (), to do class specific painting.
20762
20763 2004-10-15 07:16  ravindra
20764
20765         * ButtonBase.cs:
20766                 - Redraw () is not virtual now.
20767                 - Added an internal virtual method Paint (), so that
20768                 derived classes can do their painting on their own.
20769                 - Modified OnPaint () to call Paint ().
20770
20771 2004-10-15 06:43  jordi
20772
20773         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20774           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20775
20776 2004-10-15 00:30  ravindra
20777
20778         * MessageBox.cs:
20779                 - MessageBox on windows does not have min/max buttons.
20780                 This change in CreateParams fixes this on Windows. We
20781                 still need to implement this windowstyle behavior in
20782                 our X11 driver.
20783
20784 2004-10-14 05:14  ravindra
20785
20786         * ToolBar.cs:
20787                 - Changed Redraw () to do a Refresh () always.
20788                 - Fixed the MouseMove event handling when mouse is pressed,
20789                 ie drag event handling.
20790                 - Replaced the usage of ToolBarButton.Pressed property to
20791                 ToolBarButton.pressed internal variable.
20792
20793 2004-10-14 05:10  ravindra
20794
20795         * ToolBarButton.cs:
20796                 - Added an internal member 'inside' to handle mouse move
20797                 with mouse pressed ie mouse drag event.
20798                 - Changed 'Pressed' property to return true only when
20799                 'inside' and 'pressed' are both true.
20800                 - Some coding style love.
20801
20802 2004-10-14 00:17  ravindra
20803
20804         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
20805           public method.
20806
20807 2004-10-14 00:15  ravindra
20808
20809         * ButtonBase.cs: Redraw () related improvements.
20810
20811 2004-10-14 00:14  ravindra
20812
20813         * MessageBox.cs: Moved InitFormSize () out of Paint method and
20814           removed unnecessary calls to Button.Show () method.
20815
20816 2004-10-13 17:50  pbartok
20817
20818         * XplatUIX11.cs:
20819           - Formatting fix
20820           - Removed destroying of window until we solve the problem of X
20821             destroying the window before us on shutdown
20822
20823 2004-10-13 16:32  pbartok
20824
20825         * ButtonBase.cs:
20826           - Now Redraws on MouseUp for FlatStyle Flat and Popup
20827
20828 2004-10-13 14:18  pbartok
20829
20830         * XplatUIX11.cs:
20831           - Added code to destroy the X window
20832
20833 2004-10-13 14:18  pbartok
20834
20835         * XplatUIWin32.cs:
20836           - Added code to destroy a window
20837
20838 2004-10-13 14:12  pbartok
20839
20840         * ButtonBase.cs:
20841           - Added the Redraw on Resize that got dropped in the last rev
20842
20843 2004-10-13 09:06  pbartok
20844
20845         * ThemeWin32Classic.cs:
20846           - Path from John BouAntoun:
20847             * Fix check rendering (centre correctly for normal style, offset
20848               correctly for FlatStyle).
20849             * Fix border color usage (use backcolor) for FlatStyle.Popup
20850             * Use checkbox.Capture instead of checkbox.is_pressed when
20851               rendering flatstyle states.
20852
20853 2004-10-12 21:48  pbartok
20854
20855         * ThemeWin32Classic.cs:
20856           - Removed all occurences of SystemColors and replaced them with the
20857             matching theme color
20858
20859 2004-10-12 21:41  pbartok
20860
20861         * ThemeWin32Classic.cs:
20862           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
20863             him using the function for flatstyle drawing
20864           - Changed functions to use the new version of CPDrawBorder3D
20865
20866 2004-10-12 21:15  pbartok
20867
20868         * ControlPaint.cs:
20869           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
20870             match MS documentation. They need to return defined colors if the
20871             passed color matches the configured control color. Thanks to John
20872             BouAntoun for pointing this out.
20873
20874 2004-10-12 20:57  pbartok
20875
20876         * Control.cs:
20877           - Fix from John BouAntoun: Raise ForeColorChanged event when text
20878             color is changed
20879
20880 2004-10-12 20:46  pbartok
20881
20882         * CheckBox.cs:
20883           - Fix from John BouAntoun: Now properly sets the Appearance property
20884
20885 2004-10-12 20:45  pbartok
20886
20887         * ThemeWin32Classic.cs:
20888           - Fixes from John BouAntoun: now handles forecolors and backcolors
20889             for flatstyle rendered controls much better; It also fixes normal
20890             checkbox rendering when pushed or disabled.
20891
20892 2004-10-08 02:50  jordi
20893
20894         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
20895           work
20896
20897 2004-10-07 08:56  jordi
20898
20899         * ThemeWin32Classic.cs: Removes deletion of cached brushes
20900
20901 2004-10-06 03:59  jordi
20902
20903         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
20904           XplatUIWin32.cs: removes warnings from compilation
20905
20906 2004-10-05 12:23  jackson
20907
20908         * RadioButton.cs: Fix ctor
20909
20910 2004-10-05 11:10  pbartok
20911
20912         * MessageBox.cs:
20913           - Partial implementation by Benjamin Dasnois
20914
20915 2004-10-05 10:15  jackson
20916
20917         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
20918           by John BouAntoun
20919
20920 2004-10-05 03:07  ravindra
20921
20922         * ToolBar.cs:
20923                 - Removed a private method, Draw ().
20924                 - Fixed the ButtonDropDown event handling.
20925                 - Fixed MouseMove event handling.
20926
20927 2004-10-05 03:04  ravindra
20928
20929         * ThemeWin32Classic.cs:
20930                 - Added DrawListView method and ListViewDefaultSize property.
20931                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
20932                 - Changed DOS style CRLF to Unix format (dos2unix).
20933
20934 2004-10-05 03:03  ravindra
20935
20936         * Theme.cs:
20937                 - Added DrawListView method and ListViewDefaultSize property.
20938
20939 2004-10-05 02:42  ravindra
20940
20941         * ToolBarButton.cs: Added an internal member dd_pressed to handle
20942           clicks on DropDown arrow.
20943
20944 2004-10-04 22:56  jackson
20945
20946         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
20947           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
20948           Control handle the buffers, derived classes should not have to
20949           CreateBuffers themselves.
20950
20951 2004-10-04 21:20  jackson
20952
20953         * StatusBar.cs: The control handles resizing the buffers now.
20954
20955 2004-10-04 21:18  jackson
20956
20957         * Control.cs: When resizing the buffers should be invalidated. This
20958           should be handled in Control not in derived classes.
20959
20960 2004-10-04 14:45  jackson
20961
20962         * TabPage.cs: oops
20963
20964 2004-10-04 02:14  pbartok
20965
20966         * LeftRightAlignment.cs:
20967           - Initial check-in
20968
20969 2004-10-04 01:09  jordi
20970
20971         * ThemeWin32Classic.cs: fixes right button position causing right
20972           button not showing on horizontal scrollbars
20973
20974 2004-10-02 13:12  pbartok
20975
20976         * XplatUIX11.cs:
20977           - Simplified the Invalidate method by using an X call instead of
20978             generating the expose ourselves
20979           - Added an expose when the window background is changed
20980           - Implemented ClientToScreen method
20981
20982 2004-10-02 13:08  pbartok
20983
20984         * XplatUIWin32.cs:
20985           - Added Win32EnableWindow method (test for implementing modal
20986           dialogs)
20987           - Added ClientToScreen method and imports
20988
20989 2004-10-02 13:07  pbartok
20990
20991         * XplatUI.cs, XplatUIDriver.cs:
20992           - Added ClientToScreen coordinate translation method
20993
20994 2004-10-02 13:06  pbartok
20995
20996         * KeyPressEventArgs.cs:
20997           - Fixed access level for constructor
20998
20999 2004-10-02 13:06  pbartok
21000
21001         * NativeWindow.cs:
21002           - Changed access level for the window_collection hash table
21003
21004 2004-10-02 13:05  pbartok
21005
21006         * Form.cs:
21007           - Added KeyPreview property
21008           - Added Menu property (still incomplete, pending Jordi's menu work)
21009           - Implemented ProcessCmdKey
21010           - Implemented ProcessDialogKey
21011           - Implemented ProcessKeyPreview
21012
21013 2004-10-02 13:02  pbartok
21014
21015         * Control.cs:
21016           - Added private method to get the Control object from the window
21017           handle
21018           - Implemented ContextMenu property
21019           - Implemented PointToScreen
21020           - Implemented PreProcessMessage
21021           - Implemented IsInputChar
21022           - Implemented IsInputKey
21023           - Implemented ProcessCmdKey
21024           - Completed ProcessKeyEventArgs
21025           - Fixed message loop to call the proper chain of functions on key
21026           events
21027           - Implemented ProcessDialogChar
21028           - Implemented ProcessDialogKey
21029           - Implemented ProcessKeyMessage
21030           - Implemented ProcessKeyPreview
21031           - Added RaiseDragEvent stub (MS internal method)
21032           - Added RaiseKeyEvent stub (MS internal method)
21033           - Added RaiseMouseEvent stub (MS Internal method)
21034           - Added RaisePaintEvent stub (MS Internal method)
21035           - Added ResetMouseEventArgs stub (MS Internal method)
21036           - Implemented RtlTranslateAlignment
21037           - Implemented RtlTranslateContent
21038           - Implemented RtlTranslateHorizontal
21039           - Implemented RtlTranslateLeftRight
21040           - Added generation of KeyPress event
21041
21042 2004-10-02 05:57  ravindra
21043
21044         * ListViewItem.cs: Added attributes.
21045
21046 2004-10-02 05:32  ravindra
21047
21048         * ListView.cs: Added attributes.
21049
21050 2004-10-01 11:53  jackson
21051
21052         * Form.cs: Implement the Close method so work on MessageBox can
21053           continue.
21054
21055 2004-09-30 14:06  pbartok
21056
21057         * XplatUIX11.cs:
21058           - Bug fixes
21059
21060 2004-09-30 11:34  jackson
21061
21062         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21063
21064 2004-09-30 07:26  ravindra
21065
21066         * ListViewItemConverter.cs: Converter for ListViewItem.
21067
21068 2004-09-30 07:26  ravindra
21069
21070         * SortOrder.cs: Enum for ListView control.
21071
21072 2004-09-30 07:25  ravindra
21073
21074         * ColumnHeader.cs: Supporting class for ListView control.
21075
21076 2004-09-30 07:24  ravindra
21077
21078         * ListView.cs, ListViewItem.cs: Initial implementation.
21079
21080 2004-09-30 07:20  ravindra
21081
21082         * ItemActivation.cs: Enum for ListView Control.
21083
21084 2004-09-29 20:29  pbartok
21085
21086         * XplatUIX11.cs:
21087           - Added lookup of pixel value for background color; tries to get a
21088             color 'close' to the requested color, it avoids having to create a
21089             colormap.  Depending on the display this could mean the used color
21090             is slightly off the desired color. Might have to change it to a more
21091             resource intensive colormap approach, but it will work as a
21092           workaround to avoid red screens.
21093
21094 2004-09-29 14:27  jackson
21095
21096         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21097
21098 2004-09-28 12:44  pbartok
21099
21100         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21101           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21102           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21103           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21104           TrackBar.cs, VScrollBar.cs:
21105           - Streamlined Theme interfaces:
21106             * Each DrawXXX method for a control now is passed the object for
21107               the control to be drawn in order to allow accessing any state the
21108               theme might require
21109
21110             * ControlPaint methods for the theme now have a CP prefix to avoid
21111               name clashes with the Draw methods for controls
21112
21113             * Every control now retrieves it's DefaultSize from the current
21114             theme
21115
21116 2004-09-28 12:17  jackson
21117
21118         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21119           drawing
21120
21121 2004-09-24 14:57  jackson
21122
21123         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21124           Gives us a nice little performance boost.
21125
21126 2004-09-24 12:02  jackson
21127
21128         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21129           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21130           Control and supporting classes. Initial checkin
21131
21132 2004-09-23 13:08  jackson
21133
21134         * Form.cs: Temp build fixage
21135
21136 2004-09-23 01:39  ravindra
21137
21138         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21139           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21140           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21141           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21142           EventHandlers needed by ListView Control.
21143
21144 2004-09-22 14:12  pbartok
21145
21146         * ScrollableControl.cs:
21147           - Implemented DockPadding property
21148           - Implemented AutoScroll property
21149           - Implemented AutoScrollMargin property
21150           - Implemented AutoScrollMinSize property
21151           - Implemented AutoScrollPosition property
21152           - Implemented DisplayRectangle property (still incomplete)
21153           - Implemented CreateParams property
21154           - Implemented HScroll property
21155           - Implemented VScroll property
21156           - Implemented OnVisibleChanged property
21157
21158 2004-09-22 14:09  pbartok
21159
21160         * Form.cs:
21161           - Added Form.ControllCollection class
21162           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21163             RemoveOwnedForm (still incomplete, missing on-top and common
21164             minimize/maximize behaviour)
21165           - Added StartPosition property (still incomplete, does not use when
21166             creating the form)
21167           - Added ShowDialog() methods (still incomplete, missing forcing the
21168             dialog modal)
21169
21170 2004-09-22 14:05  pbartok
21171
21172         * Application.cs:
21173           - Added message loop for modal dialogs
21174
21175 2004-09-22 14:02  pbartok
21176
21177         * GroupBox.cs:
21178           - Fixed wrong types for events
21179
21180 2004-09-22 14:00  pbartok
21181
21182         * Shortcut.cs, FormWindowState.cs:
21183           - Fixed wrong values
21184
21185 2004-09-22 12:01  jackson
21186
21187         * Control.cs: Text is never null
21188
21189 2004-09-20 22:14  pbartok
21190
21191         * XplatUIWin32.cs:
21192           - Fixed accessibility level for Idle handler
21193
21194 2004-09-20 18:54  jackson
21195
21196         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21197           XplatUIX11.cs: New message loop that uses poll so we don't get a
21198           busy loop
21199
21200 2004-09-17 10:43  pbartok
21201
21202         * ScrollBar.cs:
21203           - Fixed behaviour of arrow buttons. Now properly behaves like
21204             Buttons (and like Microsoft's scrollbar arrow buttons)
21205
21206 2004-09-17 10:14  pbartok
21207
21208         * ScrollBar.cs:
21209           - Added missing release of keyboard/mouse capture
21210
21211 2004-09-17 06:18  jordi
21212
21213         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21214           Theme.cs: Very early menu support
21215
21216 2004-09-16 17:45  pbartok
21217
21218         * XplatUIWin32.cs:
21219           - Fixed sending a window to the front
21220           - Added overload for SetWindowPos to avoid casting
21221
21222 2004-09-16 17:44  pbartok
21223
21224         * Control.cs:
21225           - Added SendToBack and BringToFront methods
21226
21227 2004-09-16 07:00  ravindra
21228
21229         * Copyright: Added Novell URL.
21230
21231 2004-09-16 07:00  ravindra
21232
21233         * ToolBar.cs: Invalidate should be done before redrawing.
21234
21235 2004-09-15 21:19  ravindra
21236
21237         * ColumnHeaderStyle.cs: Enum for ListView Control.
21238
21239 2004-09-15 21:18  ravindra
21240
21241         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21242           ListView Control.
21243
21244 2004-09-13 18:26  jackson
21245
21246         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21247           properly
21248
21249 2004-09-13 18:13  jackson
21250
21251         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21252           a second thread and post messages into the main threads message
21253           queue. This makes timing much more consistent. Both win2K and XP
21254           have a minimum timer value of 15 milliseconds, so we now do this
21255           too.
21256
21257 2004-09-13 15:18  pbartok
21258
21259         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21260           XplatUIX11.cs:
21261           - Added Z-Ordering methods
21262
21263 2004-09-13 10:56  pbartok
21264
21265         * Form.cs:
21266           - Fixed #region names
21267           - Moved properties and methods into their proper #regions
21268
21269 2004-09-13 10:51  pbartok
21270
21271         * Form.cs:
21272           - Added Accept and CancelButton properties
21273           - Added ProcessDialogKey() method
21274
21275 2004-09-13 08:18  pbartok
21276
21277         * IWindowTarget.cs:
21278           - Initial check-in
21279
21280 2004-09-10 21:50  pbartok
21281
21282         * Control.cs:
21283           - Added DoDragDrop() [incomplete]
21284           - Properly implemented 'Visible' handling
21285           - Added SetVisibleCore()
21286           - Implemented FindChildAtPoint()
21287           - Implemented GetContainerControl()
21288           - Implemented Hide()
21289
21290 2004-09-10 19:28  pbartok
21291
21292         * Control.cs:
21293           - Moved methods into their appropriate #regions
21294           - Reordered methods within regions alphabetically
21295
21296 2004-09-10 18:57  pbartok
21297
21298         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21299           - Added method to retrieve text from window
21300
21301 2004-09-10 18:56  pbartok
21302
21303         * Control.cs:
21304           - Moved some internal functions into the internal region
21305           - Implemented FontHeight
21306           - Implemented RenderRightToLeft
21307           - Implemented ResizeRedraw
21308           - Implemented ShowFocusCues
21309           - Implemented ShowKeyboardCues
21310           - Implemented FromChildHandle
21311           - Implemented FromHandle
21312           - Implemented IsMnemonic
21313           - Implemented ReflectMessage
21314           - All public and protected Static Methods are now complete
21315
21316 2004-09-10 16:54  pbartok
21317
21318         * Control.cs:
21319           - Implemented remaining missing public instance properties
21320           - Alphabetized some out of order properties
21321
21322 2004-09-10 05:51  ravindra
21323
21324         * PictureBox.cs: Added a check for null image.
21325
21326 2004-09-10 00:59  jordi
21327
21328         * GroupBox.cs: remove cvs tag
21329
21330 2004-09-09 05:25  ravindra
21331
21332         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21333
21334 2004-09-09 05:23  ravindra
21335
21336         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21337           parent redraw.
21338
21339 2004-09-09 02:28  pbartok
21340
21341         * ThemeWin32Classic.cs:
21342           - Improve disabled string look
21343
21344 2004-09-09 01:15  jordi
21345
21346         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21347           args and handler
21348
21349 2004-09-08 23:56  ravindra
21350
21351         * ItemBoundsPortion.cs: It's enum, not a class!
21352
21353 2004-09-08 23:47  ravindra
21354
21355         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21356           Enums for Form.
21357
21358 2004-09-08 21:13  ravindra
21359
21360         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21361           ListView control.
21362
21363 2004-09-08 21:03  ravindra
21364
21365         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21366           avoid crash.
21367
21368 2004-09-08 21:01  ravindra
21369
21370         * ScrollableControl.cs: Removed unreachable code.
21371
21372 2004-09-08 06:45  jordi
21373
21374         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21375
21376 2004-09-08 01:00  jackson
21377
21378         * XplatUIX11.cs: Only run the timers when updating the message
21379           queue. This effectively gives X messages a higher priority then
21380           timer messages. Timers still need love though
21381
21382 2004-09-07 14:01  jackson
21383
21384         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21385           this for us and the handle is no longer valid.
21386
21387 2004-09-07 13:59  jackson
21388
21389         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21390           loop that manages to not crash. TODO: Add poll and cleanup timers
21391
21392 2004-09-07 11:12  jordi
21393
21394         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21395
21396 2004-09-07 03:40  jordi
21397
21398         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21399           fixes, methods, multiple links
21400
21401 2004-09-06 06:55  jordi
21402
21403         * Control.cs: Caches ClientRectangle rectangle value
21404
21405 2004-09-05 02:03  jordi
21406
21407         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21408           certain situations
21409
21410 2004-09-04 11:10  jordi
21411
21412         * Label.cs: Refresh when font changed
21413
21414 2004-09-02 16:24  pbartok
21415
21416         * Control.cs:
21417           - Added sanity check to creation of double buffer bitmap
21418
21419 2004-09-02 16:24  pbartok
21420
21421         * ButtonBase.cs:
21422           - Fixed selection of text color
21423           - Fixed handling of resize event; now properly recreates double
21424             buffering bitmap
21425           - Added missing assignment of TextAlignment
21426           - Added proper default for TextAlignment
21427
21428 2004-09-02 14:26  pbartok
21429
21430         * RadioButton.cs:
21431           - Added missing RadioButton.RadioButtonAccessibleObject class
21432
21433 2004-09-02 14:26  pbartok
21434
21435         * Control.cs:
21436           - Added missing Control.ControlAccessibleObject class
21437           - Started to implement Select()ion mechanisms, still very incomplete
21438
21439 2004-09-02 14:25  pbartok
21440
21441         * AccessibleObject.cs:
21442           - Added missing methods
21443
21444 2004-09-02 14:23  pbartok
21445
21446         * AccessibleNavigation.cs, AccessibleSelection.cs:
21447           - Initial check-in
21448
21449 2004-09-02 10:32  jordi
21450
21451         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21452           pool for pens, brushes, and hatchbruses
21453
21454 2004-09-01 15:30  jackson
21455
21456         * StatusBar.cs: Fix typo
21457
21458 2004-09-01 14:44  pbartok
21459
21460         * RadioButton.cs:
21461           - Fixed state
21462
21463 2004-09-01 14:39  pbartok
21464
21465         * Button.cs, RadioButton.cs:
21466           - Functional initial check-in
21467
21468 2004-09-01 14:01  pbartok
21469
21470         * CheckBox.cs:
21471           - Added missing default
21472           - Added missing region mark
21473
21474 2004-09-01 09:10  jordi
21475
21476         * Label.cs: fixes method signatures, new methods, events, fixes
21477           autosize
21478
21479 2004-09-01 07:19  jordi
21480
21481         * Control.cs: Init string variables with an empty object
21482
21483 2004-09-01 04:20  jordi
21484
21485         * Control.cs: fires OnFontChanged event
21486
21487 2004-08-31 20:07  pbartok
21488
21489         * ButtonBase.cs:
21490           - Enabled display of strings
21491
21492 2004-08-31 20:05  pbartok
21493
21494         * Form.cs:
21495           - Added (partial) implementation of DialogResult; rest needs to be
21496             implemented when the modal loop code is done
21497
21498 2004-08-31 19:55  pbartok
21499
21500         * CheckBox.cs:
21501           - Fixed to match the removal of the needs_redraw concept
21502
21503 2004-08-31 19:55  pbartok
21504
21505         * ButtonBase.cs:
21506           - Removed the rather odd split between 'needs redraw' and redrawing
21507           - Now handles the events that require regeneration (ambient
21508             properties and size)
21509
21510 2004-08-31 19:41  pbartok
21511
21512         * Control.cs:
21513           - Added firing of BackColorChanged event
21514           - Added TopLevelControl property
21515           - Fixed handling of WM_ERASEBKGRND message
21516
21517 2004-08-31 12:49  pbartok
21518
21519         * ButtonBase.cs:
21520           - Removed debug
21521           - Minor fixes
21522
21523 2004-08-31 12:48  pbartok
21524
21525         * CheckBox.cs:
21526           - Finished (famous last words)
21527
21528 2004-08-31 04:35  jordi
21529
21530         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21531           scrolling bugs, adds new methods
21532
21533 2004-08-30 14:42  pbartok
21534
21535         * CheckBox.cs:
21536           - Implemented CheckBox drawing code
21537
21538 2004-08-30 14:42  pbartok
21539
21540         * ButtonBase.cs:
21541           - Made Redraw() and CheckRedraw() virtual
21542           - Improved mouse up/down/move logic to properly track buttons
21543
21544 2004-08-30 09:44  pbartok
21545
21546         * CheckBox.cs:
21547           - Updated to fix broken build. Not complete yet.
21548
21549 2004-08-30 09:28  pbartok
21550
21551         * CheckState.cs:
21552           - Initial checkin
21553
21554 2004-08-30 09:17  pbartok
21555
21556         * Appearance.cs:
21557           - Initial check-in
21558
21559 2004-08-27 16:12  ravindra
21560
21561         * ToolBarButton.cs: Added TypeConverter attribute.
21562
21563 2004-08-27 16:07  ravindra
21564
21565         * ImageIndexConverter.cs: Implemented.
21566
21567 2004-08-27 14:17  pbartok
21568
21569         * Control.cs:
21570           - Removed unneeded stack vars
21571           - First attempt to fix sizing issues when layout is suspended
21572
21573 2004-08-25 15:35  jordi
21574
21575         * ScrollBar.cs: more fixes to scrollbar
21576
21577 2004-08-25 14:04  ravindra
21578
21579         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21580           Added the missing divider code and grip for ToolBar Control.
21581
21582 2004-08-25 13:20  pbartok
21583
21584         * Control.cs:
21585           - Control now properly passes the ambient background color to child
21586             controls
21587
21588 2004-08-25 13:20  jordi
21589
21590         * ScrollBar.cs: small bug fix regarding bar position
21591
21592 2004-08-25 12:33  pbartok
21593
21594         * Timer.cs:
21595           - Now only calls SetTimer or KillTimer if the enabled state has
21596           changed
21597
21598 2004-08-25 12:33  pbartok
21599
21600         * XplatUIWin32.cs:
21601           - Fixed timer handling, now seems to work
21602           - Improved error message for window creation
21603
21604 2004-08-25 12:32  pbartok
21605
21606         * Control.cs:
21607           - Fixed generation of MouseUp message
21608
21609 2004-08-25 12:29  jordi
21610
21611         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21612           and fixes for progressbar
21613
21614 2004-08-24 18:43  ravindra
21615
21616         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21617           in ToolBar control.
21618
21619 2004-08-24 17:15  pbartok
21620
21621         * Panel.cs:
21622           - Added #region
21623           - Added missing events
21624           - Alphabetized
21625
21626 2004-08-24 17:14  pbartok
21627
21628         * StatusBar.cs, PictureBox.cs:
21629           - Now uses Control's CreateParams
21630
21631 2004-08-24 16:36  pbartok
21632
21633         * XplatUIX11.cs:
21634           - Fixed background color handling
21635           - Fixed sending of enter/leave events on a grab
21636
21637 2004-08-24 16:35  pbartok
21638
21639         * X11Structs.cs:
21640           - Refined definitions for CrossingEvent
21641
21642 2004-08-24 12:37  jordi
21643
21644         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21645           formmating, methods signature, and adds missing events
21646
21647 2004-08-24 12:24  jordi
21648
21649         * Control.cs: fire OnEnabledChanged event
21650
21651 2004-08-24 11:17  pbartok
21652
21653         * XplatUIWin32.cs:
21654           - Implemented SetTimer() and KillTimer()
21655
21656 2004-08-24 11:16  pbartok
21657
21658         * XplatUIX11.cs:
21659           - Now uses Remove instead of Add to kill the timer
21660
21661 2004-08-24 10:16  jackson
21662
21663         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21664           picture boxes in the theme now. Draw picture box borders and obey
21665           sizing modes
21666
21667 2004-08-24 05:49  jackson
21668
21669         * Timer.cs: Remove top secret debugging code
21670
21671 2004-08-24 05:34  jackson
21672
21673         * PictureBox.cs: Temp hack to make picture boxes draw their full
21674           image
21675
21676 2004-08-24 05:29  jackson
21677
21678         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21679           XplatUIX11.cs: Move timers to the driver level. On X they are
21680           queued by the driver and checked on idle.
21681
21682 2004-08-24 01:07  jackson
21683
21684         * XplatUIX11.cs: Use a queue for async messages instead of passing
21685           them as ClientMessages since that was totally broken. Also simply
21686           check for events and return an idle message if none are found. This
21687           gives us an idle handler, and prevents deadlocking when no messages
21688           are in the queue.
21689
21690 2004-08-23 18:19  ravindra
21691
21692         * XplatUIWin32.cs: Removed the unwanted destructor.
21693
21694 2004-08-23 17:27  pbartok
21695
21696         * ButtonBase.cs:
21697           - Finishing touches. Works now, just needs some optimizations.
21698
21699 2004-08-23 16:53  jordi
21700
21701         * ScrollBar.cs: small fix
21702
21703 2004-08-23 16:45  pbartok
21704
21705         * Application.cs:
21706           - Removed debug output
21707           - Simplifications
21708
21709 2004-08-23 16:43  jordi
21710
21711         * ScrollBar.cs: [no log message]
21712
21713 2004-08-23 16:10  pbartok
21714
21715         * Form.cs:
21716           - Fixed handling of WM_CLOSE message
21717           - Removed debug output
21718
21719 2004-08-23 16:09  pbartok
21720
21721         * Application.cs:
21722           - Added handling of Idle event
21723           - Added handling of form closing
21724           - Fixed reporting of MessageLoop property
21725           - Removed some unneeded code, should provide a bit of a speedup
21726
21727 2004-08-23 15:22  pbartok
21728
21729         * Control.cs:
21730           - Added InitLayout() method
21731           - Added code to properly perform layout when Anchor or Dock property
21732             is changed
21733           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21734             LAMESPEC, tried to do it in a way that makes sense
21735
21736 2004-08-23 14:10  jordi
21737
21738         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21739           properties and methods
21740
21741 2004-08-23 13:55  pbartok
21742
21743         * Control.cs:
21744           - Properly fixed Jordi's last fix
21745           - Now uses Cursor's Position property instead of calling XplatUI
21746           directly
21747
21748 2004-08-23 13:44  jordi
21749
21750         * PaintEventHandler.cs: Adding missing attribute
21751
21752 2004-08-23 13:39  pbartok
21753
21754         * Cursor.cs:
21755           - Implemented Position property
21756
21757 2004-08-23 13:39  pbartok
21758
21759         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21760           - Added method to move mouse cursor
21761
21762 2004-08-23 13:39  pbartok
21763
21764         * XplatUIX11.cs:
21765           - Fixed setting of background color
21766           - Added method to move mouse cursor
21767
21768 2004-08-23 13:16  jordi
21769
21770         * Control.cs: avoids null exception
21771
21772 2004-08-22 17:46  jackson
21773
21774         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21775           PictureBox
21776
21777 2004-08-22 17:40  jackson
21778
21779         * XplatUIX11.cs: Add some missing locks
21780
21781 2004-08-22 15:10  pbartok
21782
21783         * Control.cs, Form.cs:
21784           - Removed OverlappedWindow style from Control, instead it's default
21785             now is child
21786           - Made form windows OverlappedWindow by default
21787
21788 2004-08-22 13:34  jackson
21789
21790         * ScrollBar.cs: Update the position through the Value property so
21791           the OnValueChanged event is raised.
21792
21793 2004-08-22 12:04  pbartok
21794
21795         * SWF.csproj:
21796           - Added Cursor.cs and UserControl.cs
21797
21798 2004-08-22 12:03  pbartok
21799
21800         * Cursor.cs:
21801           - Started implementation, not usable yet
21802
21803 2004-08-22 12:00  pbartok
21804
21805         * UserControl.cs:
21806           - Implemented UserControl (complete)
21807
21808 2004-08-21 19:20  ravindra
21809
21810         * ToolBar.cs: Correcting the formatting mess of VS.NET.
21811
21812 2004-08-21 18:49  ravindra
21813
21814         * ToolBar.cs: Probably this completes the missing attributes in
21815           toolbar control.
21816
21817 2004-08-21 18:03  ravindra
21818
21819         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
21820           Fixed toolbar control signatures.
21821
21822 2004-08-21 16:32  pbartok
21823
21824         * LinkLabel.cs:
21825           - Signature Fixes
21826
21827 2004-08-21 16:30  pbartok
21828
21829         * Label.cs:
21830           - Signature fixes
21831
21832 2004-08-21 16:19  pbartok
21833
21834         * Control.cs, Label.cs:
21835           - Signature fixes
21836
21837 2004-08-21 15:57  pbartok
21838
21839         * ButtonBase.cs:
21840           - Added loads of debug output for development
21841           - Fixed typo in method name
21842
21843 2004-08-21 15:52  pbartok
21844
21845         * ToolBarButtonClickEventArgs.cs:
21846           - Added missing base class
21847
21848 2004-08-21 14:53  pbartok
21849
21850         * Control.cs:
21851           - Updated to match new GrabWindow signature
21852
21853 2004-08-21 14:51  pbartok
21854
21855         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21856           - Added method to get default display size
21857
21858 2004-08-21 14:23  pbartok
21859
21860         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21861           - Added method to query current grab state
21862           - Added argument to allow confining a grab to a window
21863
21864 2004-08-21 14:22  pbartok
21865
21866         * Keys.cs:
21867           - Added [Flags] attribute so that modifiers can be used in bitwise
21868           ops
21869
21870 2004-08-21 14:21  pbartok
21871
21872         * TrackBar.cs, ScrollBar.cs:
21873           - Replaced direct XplatUI calls with their Control counterpart
21874
21875 2004-08-21 13:32  pbartok
21876
21877         * Control.cs:
21878           - Implemented Created property
21879
21880 2004-08-21 13:28  pbartok
21881
21882         * Control.cs:
21883           - Implemented ContainsFocus
21884
21885 2004-08-21 13:26  pbartok
21886
21887         * Control.cs:
21888           - Implemented CausesValidation
21889
21890 2004-08-21 13:21  pbartok
21891
21892         * Control.cs:
21893           - Implemented CanFocus
21894           - Implemented CanSelect
21895           - Implemented Capture
21896
21897 2004-08-21 12:35  pbartok
21898
21899         * XplatUIWin32.cs:
21900           - Fixed bug with Async message handling
21901           - Implemented getting the ModifierKeys
21902
21903 2004-08-21 12:32  jackson
21904
21905         * AsyncMethodResult.cs: Make sure we have the mutex before we
21906           release it. Fixes BeginInvoke on windows
21907
21908 2004-08-21 11:31  pbartok
21909
21910         * XplatUIWin32.cs, XplatUIX11.cs:
21911           - Drivers now return proper mouse state
21912
21913 2004-08-21 10:54  jackson
21914
21915         * Control.cs: Implement EndInvoke
21916
21917 2004-08-21 10:48  jackson
21918
21919         * Timer.cs: Remove unneeded finalizer
21920
21921 2004-08-20 19:52  ravindra
21922
21923         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
21924           in mouse event handling in the ToolBar control.
21925
21926 2004-08-20 19:50  ravindra
21927
21928         * ImageList.cs: Changed draw method to use the arguments passed in
21929           to draw the image.
21930
21931 2004-08-20 18:58  pbartok
21932
21933         * XplatUIStructs.cs:
21934           - Added private message for async communication
21935
21936 2004-08-20 17:38  ravindra
21937
21938         * Control.cs: Made RightToLeft property virtual and removed a
21939           Console.WriteLine.
21940
21941 2004-08-20 14:39  jordi
21942
21943         * ThemeGtk.cs: use style_attach
21944
21945 2004-08-20 14:39  pbartok
21946
21947         * XplatUIWin32.cs:
21948           - Added jackson's Async code from X11 to Win32
21949
21950 2004-08-20 14:09  pbartok
21951
21952         * SWF.csproj:
21953           - Added all new files
21954
21955 2004-08-20 14:09  pbartok
21956
21957         * Control.cs:
21958           - Added call to set window background color
21959
21960 2004-08-20 14:03  pbartok
21961
21962         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
21963           - Added method for setting the window background
21964
21965 2004-08-20 14:02  pbartok
21966
21967         * XplatUIWin32.cs:
21968           - Added method for setting the background color
21969           - Added handling for erasing the window background
21970
21971 2004-08-20 13:45  jordi
21972
21973         * TrackBar.cs: fixes timer, new properties and methods
21974
21975 2004-08-20 13:34  jackson
21976
21977         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
21978           correct thread
21979
21980 2004-08-20 13:22  jackson
21981
21982         * Timer.cs: Timer Tick events are now handed through Controls Async
21983           mechanism so the callbacks are executed in the same thread as X
21984
21985 2004-08-20 13:19  jackson
21986
21987         * XplatUIDriver.cs: Expose functionality to send async messages
21988           through the driver
21989
21990 2004-08-20 13:18  jackson
21991
21992         * Control.cs: Implement Begininvoke
21993
21994 2004-08-20 13:14  jackson
21995
21996         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
21997           messages through the driver
21998
21999 2004-08-20 13:12  jackson
22000
22001         * XplatUIX11.cs: Lock before all X operations. Also added Async
22002           method functionality through XSendEvent
22003
22004 2004-08-20 13:11  jackson
22005
22006         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22007           This will screw up on 64 bit systems)
22008
22009 2004-08-20 13:10  jackson
22010
22011         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22012           Async messages through X/Win32
22013
22014 2004-08-19 19:39  pbartok
22015
22016         * XplatUIX11.cs:
22017           - Updated code to match new HandleData.DeviceContext type
22018
22019 2004-08-19 19:38  pbartok
22020
22021         * HandleData.cs:
22022           - Made DeviceContext a generic object to allow usage from various
22023           drivers
22024           - Added support for queueing Windows messages
22025
22026 2004-08-19 19:37  pbartok
22027
22028         * XplatUIWin32.cs:
22029           - Added generation of MouseEnter, MouseLeave and MouseHover events
22030           - Added cleanup on EndPaint
22031
22032 2004-08-19 19:17  pbartok
22033
22034         * Control.cs:
22035           - Added handling of WM_MOUSEHOVER
22036           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22037           code
22038
22039 2004-08-19 18:55  jordi
22040
22041         * ThemeGtk.cs: fixes button order
22042
22043 2004-08-19 18:12  jordi
22044
22045         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22046
22047 2004-08-19 17:09  pbartok
22048
22049         * Control.cs:
22050           - Added Right property
22051           - Added RightToLeft property
22052
22053 2004-08-19 16:27  jordi
22054
22055         * ThemeGtk.cs: experimental GTK theme support
22056
22057 2004-08-19 16:26  jordi
22058
22059         * ITheme.cs, Theme.cs: move themes from an interface to a class
22060
22061 2004-08-19 16:25  jordi
22062
22063         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22064           theme enhancaments
22065
22066 2004-08-19 16:04  pbartok
22067
22068         * XplatUIX11.cs:
22069           - Added colormap basics
22070           - Added a way to re-initialize with a different display handle
22071           - Fixed setting of the window background color
22072           - Added various X11 imports related to colors and colormaps
22073
22074 2004-08-19 15:51  pbartok
22075
22076         * X11Structs.cs:
22077           - Removed packing hints (Paolo suggested this a while back)
22078           - fixed colormap type
22079           - Added default Atom types
22080           - Added Screen and color structs and enums
22081
22082 2004-08-19 15:39  pbartok
22083
22084         * ImageList.cs:
22085           - Added missing Draw() method
22086           - Added missing RecreateHandle event
22087
22088 2004-08-19 15:30  pbartok
22089
22090         * Form.cs:
22091           - Added handling of WM_CLOSE
22092
22093 2004-08-18 13:16  jordi
22094
22095         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22096           a table
22097
22098 2004-08-18 09:56  jordi
22099
22100         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22101
22102 2004-08-17 15:31  ravindra
22103
22104         * SWF.csproj: Updated project.
22105
22106 2004-08-17 15:25  pbartok
22107
22108         * Control.cs:
22109           - Drawing improvement; don't call UpdateBounds if we are not visible
22110             (or have been minimized)
22111
22112 2004-08-17 15:24  pbartok
22113
22114         * XplatUIWin32.cs:
22115           - Finished IsVisible
22116           - Added Win32GetWindowPlacement
22117
22118 2004-08-17 15:08  jackson
22119
22120         * Panel.cs: Initial checkin of the Panel
22121
22122 2004-08-17 14:25  pbartok
22123
22124         * Control.cs:
22125           - Fixed broken handling of default window sizes
22126
22127 2004-08-17 13:29  jackson
22128
22129         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22130           has a large startup time.
22131
22132 2004-08-17 10:25  jackson
22133
22134         * HandleData.cs: union areas properly
22135
22136 2004-08-17 10:12  jackson
22137
22138         * HandleData.cs: union areas properly
22139
22140 2004-08-16 20:00  ravindra
22141
22142         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22143
22144 2004-08-16 18:48  ravindra
22145
22146         * ToolBar.cs: Added attributes.
22147
22148 2004-08-16 17:17  ravindra
22149
22150         * SWF.csproj: Updated project.
22151
22152 2004-08-16 17:16  jackson
22153
22154         * XplatUIX11.cs: Check for more expose events before sending a
22155           WM_PAINT so they can all be grouped together. This makes dragging a
22156           window across another window redraw in a sane way.
22157
22158 2004-08-16 15:47  pbartok
22159
22160         * Control.cs:
22161           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22162             support OnMouseEnter/Leave()
22163           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22164             exposure handling
22165
22166 2004-08-16 15:46  pbartok
22167
22168         * XplatUIStructs.cs, XplatUIX11.cs:
22169           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22170           OnMouseEnter/Leave()
22171
22172 2004-08-16 15:34  jackson
22173
22174         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22175           sure messages get the message field set to WM_NULL if they are not
22176           handled.
22177
22178 2004-08-16 15:24  jackson
22179
22180         * HandleData.cs: HandleData is used for storing message information
22181           for window handles
22182
22183 2004-08-15 17:23  ravindra
22184
22185         * ColorDepth.cs: Added attribute.
22186
22187 2004-08-15 17:23  ravindra
22188
22189         * SWF.csproj: Updated project for ToolBar Control.
22190
22191 2004-08-15 17:20  ravindra
22192
22193         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22194           control and also dos2unix format.
22195
22196 2004-08-15 17:13  ravindra
22197
22198         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22199           ToolBarButtonClickEventArgs.cs,
22200           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22201           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22202
22203 2004-08-15 15:31  pbartok
22204
22205         * ButtonBase.cs:
22206           - First (mostly) working version
22207
22208 2004-08-13 16:15  pbartok
22209
22210         * Control.cs:
22211           - Fixed Anchor default
22212
22213 2004-08-13 15:43  pbartok
22214
22215         * Control.cs:
22216           - Changed GetCursorPos signature
22217
22218 2004-08-13 15:42  pbartok
22219
22220         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22221           - Changed signature for GetCursorPos
22222
22223 2004-08-13 15:25  pbartok
22224
22225         * XplatUIX11.cs:
22226           - Cleanup
22227           - Fixed resizing/exposure handling
22228
22229 2004-08-13 15:22  jordi
22230
22231         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22232           with tickposition
22233
22234 2004-08-13 14:55  jordi
22235
22236         * TrackBar.cs: change from wndproc to events
22237
22238 2004-08-13 13:00  jordi
22239
22240         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22241           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22242
22243 2004-08-13 12:53  pbartok
22244
22245         * XplatUIWin32.cs:
22246           - Changed GetWindowPos to also provide client area size
22247           - Fixed broken prototypes for several win32 functions
22248
22249 2004-08-13 12:53  pbartok
22250
22251         * XplatUI.cs, XplatUIDriver.cs:
22252           - Changed GetWindowPos to also provide client area size
22253
22254 2004-08-13 12:52  pbartok
22255
22256         * XplatUIX11.cs:
22257           - Added generation of WM_POSCHANGED
22258           - Changed GetWindowPos to also provide client area size
22259
22260 2004-08-13 12:52  pbartok
22261
22262         * Control.cs:
22263           - Added Dispose() and destructor
22264           - Fixed resizing and bounds calculation
22265           - Fixed Layout
22266           - Added memory savings for invisible windows
22267
22268 2004-08-13 12:46  jordi
22269
22270         * TrackBar.cs: adds timer and grap window
22271
22272 2004-08-13 10:25  jackson
22273
22274         * Timer.cs: SWF Timer
22275
22276 2004-08-12 16:59  pbartok
22277
22278         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22279           - Implemented method to get current mouse position
22280
22281 2004-08-12 14:29  jordi
22282
22283         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22284           enhancement, fix mouse problems, highli thumb, etc
22285
22286 2004-08-12 13:31  pbartok
22287
22288         * Control.cs:
22289           - Fixed Anchoring bugs
22290
22291 2004-08-12 13:01  jackson
22292
22293         * StatusBar.cs: Don't forget things
22294
22295 2004-08-12 12:54  jackson
22296
22297         * ThemeWin32Classic.cs: Handle owner draw status bars
22298
22299 2004-08-12 12:54  jackson
22300
22301         * StatusBar.cs: Implement missing properties, events, and methods.
22302           Handle mouse clicking
22303
22304 2004-08-12 10:19  jackson
22305
22306         * StatusBarPanelClickEventArgs.cs,
22307           StatusBarPanelClickEventHandler.cs: Classes for handling status
22308           bar panel click events
22309
22310 2004-08-12 10:10  jackson
22311
22312         * Control.cs: Add missing properties
22313
22314 2004-08-12 09:46  pbartok
22315
22316         * BindingsManagerBase.cs:
22317           - Name changed to BindingManagerBase.cs
22318
22319 2004-08-12 09:25  jordi
22320
22321         * ScrollableControl.cs: calls ctrlbase instead of exeception
22322
22323 2004-08-11 16:28  pbartok
22324
22325         * InputLanguageChangingEventArgs.cs:
22326           - Never check in before compiling. Fixes the last check-in
22327
22328 2004-08-11 16:26  pbartok
22329
22330         * InputLanguageChangingEventArgs.cs:
22331           - More signature fixes
22332
22333 2004-08-11 16:20  pbartok
22334
22335         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22336           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22337           ImageListStreamer.cs, InputLanguage.cs,
22338           InputLanguageChangedEventArgs.cs,
22339           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22340           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22341           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22342           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22343           - Signature fixes
22344
22345 2004-08-11 16:16  pbartok
22346
22347         * Application.cs:
22348           - Fixed Signature
22349           - Added .Net 1.1 method
22350
22351 2004-08-11 15:25  pbartok
22352
22353         * SWF.csproj:
22354           - Fixed BindingManagerBase.cs filename
22355
22356 2004-08-11 15:22  pbartok
22357
22358         * BindingManagerBase.cs:
22359           - Was checked in with wrong filename
22360
22361 2004-08-11 14:50  pbartok
22362
22363         * SWF.csproj:
22364           - Updated
22365
22366 2004-08-11 13:41  jordi
22367
22368         * XplatUIWin32.cs: Fixes ClientRect
22369
22370 2004-08-11 13:19  pbartok
22371
22372         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22373           XplatUIX11.cs:
22374           - We had SetWindowPos and MoveWindow to set window positions and
22375             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22376             keep SetWindowPos as matching counterpart
22377           - Added some X11 sanity checking
22378
22379 2004-08-11 12:59  pbartok
22380
22381         * Control.cs:
22382           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22383             (It seems that SetBounds is just a front for SetBoundsCore and
22384              SetBoundsCore updates the underlying window system and
22385              UpdateBounds is responsible for updating the variables associated
22386              with the Control and sending the events)
22387           - Major cleanup of Size handling; we now have two sizes, client_size
22388             and bounds. Bounds defines the window with decorations, client_size
22389             without them.
22390
22391 2004-08-11 12:55  pbartok
22392
22393         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22394           - Added method to calculate difference between decorated window and
22395             raw client area
22396
22397 2004-08-11 12:54  pbartok
22398
22399         * Label.cs:
22400           - Forcing redraw on resize
22401
22402 2004-08-11 11:43  pbartok
22403
22404         * ImageList.cs:
22405           - Removed disposing of the actual images when the list is disposed
22406
22407 2004-08-11 09:13  pbartok
22408
22409         * Control.cs:
22410           - Now properly reparents windows
22411
22412 2004-08-11 08:37  pbartok
22413
22414         * Control.cs:
22415           - Duh!
22416
22417 2004-08-11 07:47  pbartok
22418
22419         * Control.cs:
22420           - Rewrote the collection stuff. Might not be as fast now, not
22421             keeping the number of children around and accessible directly, but
22422             it's more straightforward
22423
22424 2004-08-11 07:44  pbartok
22425
22426         * AccessibleObject.cs:
22427           - Fixed to match ControlCollection rewrite
22428
22429 2004-08-11 07:43  pbartok
22430
22431         * ImageList.cs:
22432           - Added missing creation of the collection list
22433
22434 2004-08-10 20:08  jackson
22435
22436         * StatusBar.cs: Get the paint message from WndProc
22437
22438 2004-08-10 19:31  jackson
22439
22440         * ThemeWin32Classic.cs: Create Brushes as little as possible
22441
22442 2004-08-10 19:20  jackson
22443
22444         * UICues.cs: Add Flags attribute
22445
22446 2004-08-10 19:19  jackson
22447
22448         * StatusBarPanel.cs: Signature cleanup
22449
22450 2004-08-10 19:10  jackson
22451
22452         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22453           Initial implementation of status bar item drawing
22454
22455 2004-08-10 17:27  jordi
22456
22457         * TrackBar.cs: add missing methods, properties, and restructure to
22458           hide extra ones
22459
22460 2004-08-10 16:24  jackson
22461
22462         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22463           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22464           attribute
22465
22466 2004-08-10 13:21  jordi
22467
22468         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22469           enhancements and standarize on win colors defaults
22470
22471 2004-08-10 12:52  jackson
22472
22473         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22474           ThemeWin32Classic.cs: Implement DrawItem functionality
22475
22476 2004-08-10 12:47  jordi
22477
22478         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22479
22480 2004-08-10 12:32  jordi
22481
22482         * Control.cs: throw ontextchange event
22483
22484 2004-08-10 11:43  pbartok
22485
22486         * Control.cs:
22487           - Added more to the still unfinished Dock/Anchor layout code
22488
22489 2004-08-10 11:39  pbartok
22490
22491         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22492           - Added GetWindowPos method
22493
22494 2004-08-10 11:36  pbartok
22495
22496         * XplatUIWin32.cs:
22497           - Implemented several methods
22498
22499 2004-08-10 09:47  jackson
22500
22501         * TrackBar.cs: Allow control to handle buffering
22502
22503 2004-08-10 09:41  jackson
22504
22505         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22506
22507 2004-08-10 09:24  jackson
22508
22509         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22510
22511 2004-08-10 09:09  jackson
22512
22513         * StatusBar.cs: Let Control handle all the buffering.
22514
22515 2004-08-10 09:08  jackson
22516
22517         * Control.cs: Control will now handle the buffering code, so each
22518           control does not have to implement this.
22519
22520 2004-08-10 08:34  jackson
22521
22522         * XplatUIDriver.cs: Use default colors from the theme
22523
22524 2004-08-09 17:12  pbartok
22525
22526         * ImageList.cs:
22527           - Fixed several bugs Ravindra pointed out
22528
22529 2004-08-09 16:11  pbartok
22530
22531         * Control.cs:
22532           - Added incomplete dock layout code
22533           - Added support for mouse wheel
22534
22535 2004-08-09 16:09  pbartok
22536
22537         * XplatUIX11.cs:
22538           - Added handling for middle and right mousebutton
22539           - Added handling for mouse wheel
22540           - Added handling for key state and mouse state and position
22541           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22542           messages
22543
22544 2004-08-09 15:40  jackson
22545
22546         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22547           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22548           checkin
22549
22550 2004-08-09 15:37  jackson
22551
22552         * StatusBar.cs: Initial implementation of StatusBar
22553
22554 2004-08-09 15:36  jackson
22555
22556         * ITheme.cs: Add support for drawing status bar and getting status
22557           bar item sizes
22558
22559 2004-08-09 15:35  pbartok
22560
22561         * MouseButtons.cs:
22562           - Fixed values
22563
22564 2004-08-09 15:34  jackson
22565
22566         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22567           status bar item sizes
22568
22569 2004-08-09 15:21  jackson
22570
22571         * ThemeWin32Classic.cs: Use known colors for default control
22572           colours
22573
22574 2004-08-09 15:12  jackson
22575
22576         * ThemeWin32Classic.cs: Make the default font static, it is static
22577           in control so this doesn't change functionality and creating fonts
22578           is sloooooow.
22579
22580 2004-08-09 14:56  pbartok
22581
22582         * X11Structs.cs:
22583           - Added GrabMode enum
22584
22585 2004-08-09 14:55  pbartok
22586
22587         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22588           - Removed Run method, was only required for initial development
22589
22590 2004-08-09 14:51  pbartok
22591
22592         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22593           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22594           capture
22595
22596 2004-08-09 13:48  pbartok
22597
22598         * XplatUIX11.cs:
22599           - Fixed default sizing for child windows
22600
22601 2004-08-09 12:56  pbartok
22602
22603         * XplatUIX11.cs:
22604           - Added generation of WM_DESTROY message
22605           - Added handling of window manager induced shutdown
22606
22607 2004-08-09 11:31  jackson
22608
22609         * ThemeWin32Classic.cs: New names for control properties
22610
22611 2004-08-09 11:25  jackson
22612
22613         * Control.cs: Use new color names
22614
22615 2004-08-09 11:02  jackson
22616
22617         * XplatUI.cs: Get default window properties from the theme
22618
22619 2004-08-09 11:01  jackson
22620
22621         * ITheme.cs: The theme engine now controls default window
22622           properties
22623
22624 2004-08-09 11:00  jackson
22625
22626         * ThemeWin32Classic.cs: Add default window color properties
22627
22628 2004-08-09 10:17  jackson
22629
22630         * ThemeWin32Classic.cs: Use correct default back color
22631
22632 2004-08-09 10:05  jackson
22633
22634         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22635           the theme now.
22636
22637 2004-08-09 09:56  jackson
22638
22639         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22640
22641 2004-08-09 09:54  jackson
22642
22643         * Control.cs: Get default properties from the theme.
22644
22645 2004-08-09 09:53  jackson
22646
22647         * ITheme.cs: Themes now handle default control properties
22648
22649 2004-08-09 09:53  jackson
22650
22651         * ThemeWin32Classic.cs: Themes now handle default control
22652           properties so coloring will be consistent
22653
22654 2004-08-08 16:54  jordi
22655
22656         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22657
22658 2004-08-08 15:08  jordi
22659
22660         * XplatUIX11.cs: fixes keyboard crash
22661
22662 2004-08-08 13:47  jordi
22663
22664         * Label.cs: add cvs header info
22665
22666 2004-08-08 12:09  jackson
22667
22668         * ThemeWin32Classic.cs: Add pen_buttonface
22669
22670 2004-08-08 11:52  jordi
22671
22672         * Label.cs, LinkLabel.cs: [no log message]
22673
22674 2004-08-08 11:34  jordi
22675
22676         * ThemeWin32Classic.cs: Use Windows Standard Colours
22677
22678 2004-08-07 17:32  jordi
22679
22680         * TrackBar.cs: throw exceptions of invalid enums values
22681
22682 2004-08-07 17:31  jordi
22683
22684         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22685           draw method name
22686
22687 2004-08-07 16:56  jackson
22688
22689         * HorizontalAlignment.cs: Initial checkin
22690
22691 2004-08-07 13:16  jordi
22692
22693         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22694           methods
22695
22696 2004-08-07 13:05  jordi
22697
22698         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22699           GetSysColor defines
22700
22701 2004-08-06 18:01  pbartok
22702
22703         * ThemeWin32Classic.cs:
22704           - Fixed some rounding issues with float/int
22705
22706 2004-08-06 18:00  jackson
22707
22708         * DockStyle.cs, AnchorStyles.cs:
22709
22710                   Add flags and serializable attributes.
22711
22712 2004-08-06 17:46  pbartok
22713
22714         * XplatUIX11.cs:
22715           - Implemented GetParent
22716
22717 2004-08-06 17:18  pbartok
22718
22719         * TrackBar.cs:
22720           - Fixed some rounding issues with float/int
22721
22722 2004-08-06 17:17  pbartok
22723
22724         * X11Structs.cs, XplatUIX11.cs:
22725           - Fixed Refresh and Invalidate
22726
22727 2004-08-06 15:30  pbartok
22728
22729         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22730           - Fixed recursive loop when resizing
22731           - Improved/fixed redrawing on expose messages
22732
22733 2004-08-06 09:53  jordi
22734
22735         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22736           keyboard navigation
22737
22738 2004-08-06 08:02  pbartok
22739
22740         * X11Structs.cs, XplatUIX11.cs:
22741           - Fixed reparenting
22742           - Fixed window border creation
22743
22744 2004-08-05 15:38  pbartok
22745
22746         * XplatUIX11.cs:
22747           - Attempted fix for reparenting problems
22748
22749 2004-08-04 15:14  pbartok
22750
22751         * Control.cs:
22752           - Fixed Invalidation bug (calculated wrong client area)
22753           - Added ClientSize setter
22754
22755 2004-08-04 15:13  pbartok
22756
22757         * Form.cs:
22758           - Added AutoScale properties
22759
22760 2004-08-04 15:13  pbartok
22761
22762         * SWF.csproj:
22763           - Added latest files
22764
22765 2004-08-04 14:11  pbartok
22766
22767         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22768           XplatUIX11.cs:
22769           - Added Invalidate handling
22770
22771 2004-08-03 17:09  jordi
22772
22773         * XplatUIDriver.cs: fixes spelling mistake
22774
22775 2004-07-27 09:53  jordi
22776
22777         * TrackBar.cs: fixes trackbar events, def classname, methods
22778           signature
22779
22780 2004-07-27 09:29  jordi
22781
22782         * ScrollBar.cs: fixes scrollbar events
22783
22784 2004-07-27 04:38  jordi
22785
22786         * Control.cs: changes to be able to run winforms samples
22787
22788 2004-07-26 11:42  jordi
22789
22790         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
22791           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
22792
22793 2004-07-26 05:41  jordi
22794
22795         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
22796           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
22797           implementation
22798
22799 2004-07-22 09:22  jordi
22800
22801         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
22802           check link overlapping, implement events, and fixes
22803
22804 2004-07-21 10:28  jordi
22805
22806         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
22807
22808 2004-07-21 10:19  jordi
22809
22810         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
22811           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
22812           LinkLabelLinkClickedEventArgs.cs,
22813           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
22814           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
22815           implementation
22816
22817 2004-07-19 13:09  jordi
22818
22819         * Control.cs, Label.cs: label control re-written: added missing
22820           functionlity, events, and properties
22821
22822 2004-07-19 10:49  jordi
22823
22824         * Control.cs: fixes SetBounds logic
22825
22826 2004-07-19 01:29  jordi
22827
22828         * Control.cs: Call RefreshWindow only if the window has created
22829
22830 2004-07-15 14:05  pbartok
22831
22832         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
22833           - Implemented ImageList and ImageList.ImageCollection classes
22834           - Added ColorDepth enumeration
22835           - Updated SWF VS.Net project
22836
22837 2004-07-15 11:06  jordi
22838
22839         * XplatUIStructs.cs: added MsgButons enum
22840
22841 2004-07-15 11:03  jordi
22842
22843         * Control.cs: added basic mouse handeling events
22844
22845 2004-07-15 03:38  jordi
22846
22847         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
22848           Vertical TrackBar control implementation
22849
22850 2004-07-13 09:33  jordi
22851
22852         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
22853
22854 2004-07-13 09:31  jordi
22855
22856         * Control.cs, Form.cs: commit: new properties and fixes form size
22857           problems
22858
22859 2004-07-09 14:13  miguel
22860
22861         * ProgressBar.cs: Spelling
22862
22863 2004-07-09 11:25  pbartok
22864
22865         * ProgressBar.cs:
22866           - Removed usage of Rectangle for drawing. Miguel pointed out it's
22867           faster
22868
22869 2004-07-09 11:17  miguel
22870
22871         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
22872
22873                 * ProgressBar.cs: Fixed spelling for `block'
22874
22875                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
22876                 style guidelines.
22877
22878                 Avoid using the += on rect.X, that exposed a bug in the compiler.
22879
22880 2004-07-08 23:21  pbartok
22881
22882         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
22883           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
22884           BaseCollection.cs, Binding.cs, BindingContext.cs,
22885           BindingMemberInfo.cs, BindingsCollection.cs,
22886           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
22887           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
22888           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
22889           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
22890           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
22891           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
22892           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
22893           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
22894           FrameStyle.cs, GiveFeedbackEventArgs.cs,
22895           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
22896           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
22897           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
22898           InputLanguageChangedEventArgs.cs,
22899           InputLanguageChangedEventHandler.cs,
22900           InputLanguageChangingEventArgs.cs,
22901           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
22902           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
22903           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
22904           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
22905           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
22906           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
22907           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
22908           QueryAccessibilityHelpEventArgs.cs,
22909           QueryAccessibilityHelpEventHandler.cs,
22910           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
22911           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
22912           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
22913           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
22914           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
22915           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
22916           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
22917           XplatUIX11.cs, lang.cs:
22918           - Initial check-in
22919